diff --git a/src/Cafe/HW/Latte/Core/LatteDefaultShaders.cpp b/src/Cafe/HW/Latte/Core/LatteDefaultShaders.cpp index 1fc76ebf..8ec3fcef 100644 --- a/src/Cafe/HW/Latte/Core/LatteDefaultShaders.cpp +++ b/src/Cafe/HW/Latte/Core/LatteDefaultShaders.cpp @@ -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(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(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(g_renderer->shader_create(RendererShader::ShaderType::kFragment, 0, 0, std::string{fCStr_defaultFragShader.c_str()}, false, false)); + RendererShaderGL* fragShader = static_cast(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");