mirror of
https://github.com/cemu-project/Cemu.git
synced 2026-01-30 11:13:31 +00:00
C++-ify GL default shader code
This commit is contained in:
parent
657d9f6f43
commit
81a6f92f8d
@ -3,7 +3,6 @@
|
||||
#include "Cafe/HW/Latte/Core/LatteDefaultShaders.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Renderer.h"
|
||||
#include "Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.h"
|
||||
#include "util/helpers/StringBuf.h"
|
||||
|
||||
LatteDefaultShader_t* _copyShader_depthToColor;
|
||||
LatteDefaultShader_t* _copyShader_colorToDepth;
|
||||
@ -13,20 +12,20 @@ LatteDefaultShader_t* LatteDefaultShader_getPixelCopyShader_depthToColor()
|
||||
if (_copyShader_depthToColor != 0)
|
||||
return _copyShader_depthToColor;
|
||||
catchOpenGLError();
|
||||
LatteDefaultShader_t* defaultShader = (LatteDefaultShader_t*)malloc(sizeof(LatteDefaultShader_t));
|
||||
memset(defaultShader, 0, sizeof(LatteDefaultShader_t));
|
||||
LatteDefaultShader_t* defaultShader = new LatteDefaultShader_t{};
|
||||
|
||||
StringBuf fCStr_defaultFragShader(1024 * 16);
|
||||
fCStr_defaultFragShader.add("#version 420\r\n");
|
||||
fCStr_defaultFragShader.add("in vec2 passUV;\r\n");
|
||||
fCStr_defaultFragShader.add("uniform sampler2D textureSrc;\r\n");
|
||||
fCStr_defaultFragShader.add("layout(location = 0) out vec4 colorOut0;\r\n");
|
||||
fCStr_defaultFragShader.add("\r\n");
|
||||
fCStr_defaultFragShader.add("void main(){\r\n");
|
||||
fCStr_defaultFragShader.add("colorOut0 = vec4(texture(textureSrc, passUV).r,0.0,0.0,1.0);\r\n");
|
||||
fCStr_defaultFragShader.add("}\r\n");
|
||||
std::string defaultFragmentShader =
|
||||
R"glsl(#version 420
|
||||
in vec2 passUV;
|
||||
uniform sampler2D textureSrc;
|
||||
layout(location = 0) out vec4 colorOut0;
|
||||
|
||||
RendererShaderGL* fragShader = static_cast<RendererShaderGL*>(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, std::string{fCStr_defaultFragShader.c_str()}, false, false));
|
||||
void main(){
|
||||
colorOut0 = vec4(texture(textureSrc, passUV).r,0.0,0.0,1.0);
|
||||
}
|
||||
)glsl";
|
||||
|
||||
RendererShaderGL* fragShader = static_cast<RendererShaderGL*>(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, std::move(defaultFragmentShader), false, false));
|
||||
fragShader->PreponeCompilation();
|
||||
|
||||
defaultShader->glProgamId = fragShader->GetProgram();
|
||||
@ -45,21 +44,19 @@ LatteDefaultShader_t* LatteDefaultShader_getPixelCopyShader_colorToDepth()
|
||||
if (_copyShader_colorToDepth != 0)
|
||||
return _copyShader_colorToDepth;
|
||||
catchOpenGLError();
|
||||
LatteDefaultShader_t* defaultShader = (LatteDefaultShader_t*)malloc(sizeof(LatteDefaultShader_t));
|
||||
memset(defaultShader, 0, sizeof(LatteDefaultShader_t));
|
||||
LatteDefaultShader_t* defaultShader = new LatteDefaultShader_t{};
|
||||
|
||||
StringBuf fCStr_defaultFragShader(1024 * 16);
|
||||
fCStr_defaultFragShader.add("#version 420\r\n");
|
||||
fCStr_defaultFragShader.add("in vec2 passUV;\r\n");
|
||||
fCStr_defaultFragShader.add("uniform sampler2D textureSrc;\r\n");
|
||||
fCStr_defaultFragShader.add("layout(location = 0) out vec4 colorOut0;\r\n");
|
||||
fCStr_defaultFragShader.add("\r\n");
|
||||
fCStr_defaultFragShader.add("void main(){\r\n");
|
||||
fCStr_defaultFragShader.add("gl_FragDepth = texture(textureSrc, passUV).r;\r\n");
|
||||
fCStr_defaultFragShader.add("}\r\n");
|
||||
std::string defaultFragShader = R"glsl(#version 420
|
||||
in vec2 passUV;
|
||||
uniform sampler2D textureSrc;
|
||||
layout(location = 0) out vec4 colorOut0;
|
||||
|
||||
void main() {
|
||||
gl_FragDepth = texture(textureSrc, passUV).r;
|
||||
}
|
||||
)glsl";
|
||||
|
||||
RendererShaderGL* fragShader = static_cast<RendererShaderGL*>(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, std::string{fCStr_defaultFragShader.c_str()}, false, false));
|
||||
RendererShaderGL* fragShader = static_cast<RendererShaderGL*>(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, std::move(defaultFragShader), false, false));
|
||||
fragShader->PreponeCompilation();
|
||||
defaultShader->glProgamId = fragShader->GetProgram();
|
||||
defaultShader->copyShaderUniforms.uniformLoc_textureSrc = fragShader->GetUniformLocation("textureSrc");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user