99ceb03a1c
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
32 lines
976 B
C++
32 lines
976 B
C++
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "core/frontend/emu_window.h"
|
|
#include "shader_recompiler/frontend/ir/basic_block.h"
|
|
#include "shader_recompiler/frontend/maxwell/control_flow.h"
|
|
|
|
namespace OpenGL::ShaderContext {
|
|
struct ShaderPools {
|
|
void ReleaseContents() {
|
|
flow_block.ReleaseContents();
|
|
block.ReleaseContents();
|
|
inst.ReleaseContents();
|
|
}
|
|
|
|
Shader::ObjectPool<Shader::IR::Inst> inst;
|
|
Shader::ObjectPool<Shader::IR::Block> block;
|
|
Shader::ObjectPool<Shader::Maxwell::Flow::Block> flow_block;
|
|
};
|
|
|
|
struct Context {
|
|
explicit Context(Core::Frontend::EmuWindow& emu_window)
|
|
: gl_context{emu_window.CreateSharedContext()}, scoped{*gl_context} {}
|
|
|
|
std::unique_ptr<Core::Frontend::GraphicsContext> gl_context;
|
|
Core::Frontend::GraphicsContext::Scoped scoped;
|
|
ShaderPools pools;
|
|
};
|
|
|
|
} // namespace OpenGL::ShaderContext
|