mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-09 00:11:17 +12:00
Renderers: Cleanup RendererOutputShaders
This commit is contained in:
parent
b41d600276
commit
af5114d031
3 changed files with 20 additions and 6 deletions
|
@ -257,6 +257,7 @@ void LatteThread_Exit()
|
||||||
LatteSHRC_UnloadAll();
|
LatteSHRC_UnloadAll();
|
||||||
// close disk cache
|
// close disk cache
|
||||||
LatteShaderCache_Close();
|
LatteShaderCache_Close();
|
||||||
|
RendererOutputShader::ShutdownStatic();
|
||||||
// destroy renderer but make sure that g_renderer remains valid until the destructor has finished
|
// destroy renderer but make sure that g_renderer remains valid until the destructor has finished
|
||||||
if (g_renderer)
|
if (g_renderer)
|
||||||
{
|
{
|
||||||
|
|
|
@ -149,8 +149,8 @@ void main(){
|
||||||
|
|
||||||
RendererOutputShader::RendererOutputShader(const std::string& vertex_source, const std::string& fragment_source)
|
RendererOutputShader::RendererOutputShader(const std::string& vertex_source, const std::string& fragment_source)
|
||||||
{
|
{
|
||||||
m_vertex_shader = g_renderer->shader_create(RendererShader::ShaderType::kVertex, 0, 0, vertex_source, false, false);
|
m_vertex_shader.reset(g_renderer->shader_create(RendererShader::ShaderType::kVertex, 0, 0, vertex_source, false, false));
|
||||||
m_fragment_shader = g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, fragment_source, false, false);
|
m_fragment_shader.reset(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, fragment_source, false, false));
|
||||||
|
|
||||||
m_vertex_shader->PreponeCompilation(true);
|
m_vertex_shader->PreponeCompilation(true);
|
||||||
m_fragment_shader->PreponeCompilation(true);
|
m_fragment_shader->PreponeCompilation(true);
|
||||||
|
@ -374,3 +374,15 @@ void RendererOutputShader::InitializeStatic()
|
||||||
s_hermit_shader_ud = new RendererOutputShader(vertex_source_ud, s_hermite_shader_source);*/
|
s_hermit_shader_ud = new RendererOutputShader(vertex_source_ud, s_hermite_shader_source);*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RendererOutputShader::ShutdownStatic()
|
||||||
|
{
|
||||||
|
delete s_copy_shader;
|
||||||
|
delete s_copy_shader_ud;
|
||||||
|
|
||||||
|
delete s_bicubic_shader;
|
||||||
|
delete s_bicubic_shader_ud;
|
||||||
|
|
||||||
|
delete s_hermit_shader;
|
||||||
|
delete s_hermit_shader_ud;
|
||||||
|
}
|
||||||
|
|
|
@ -21,15 +21,16 @@ public:
|
||||||
|
|
||||||
RendererShader* GetVertexShader() const
|
RendererShader* GetVertexShader() const
|
||||||
{
|
{
|
||||||
return m_vertex_shader;
|
return m_vertex_shader.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
RendererShader* GetFragmentShader() const
|
RendererShader* GetFragmentShader() const
|
||||||
{
|
{
|
||||||
return m_fragment_shader;
|
return m_fragment_shader.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InitializeStatic();
|
static void InitializeStatic();
|
||||||
|
static void ShutdownStatic();
|
||||||
|
|
||||||
static RendererOutputShader* s_copy_shader;
|
static RendererOutputShader* s_copy_shader;
|
||||||
static RendererOutputShader* s_copy_shader_ud;
|
static RendererOutputShader* s_copy_shader_ud;
|
||||||
|
@ -44,8 +45,8 @@ public:
|
||||||
static std::string GetOpenGlVertexSource(bool render_upside_down);
|
static std::string GetOpenGlVertexSource(bool render_upside_down);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
RendererShader* m_vertex_shader;
|
std::unique_ptr<RendererShader> m_vertex_shader;
|
||||||
RendererShader* m_fragment_shader;
|
std::unique_ptr<RendererShader> m_fragment_shader;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue