From c2a8365eaa2222db6f61dbf0129ce72dd80e5d39 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 2 Sep 2018 13:16:11 +0100 Subject: [PATCH] Make GL text rendering macOS compatible * We switch to core context compatible shaders rather than assuming older GLSL versions are supported --- renderdoc/driver/gl/gl_rendertext.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/gl/gl_rendertext.cpp b/renderdoc/driver/gl/gl_rendertext.cpp index 0bd4bf853..d03df74ce 100644 --- a/renderdoc/driver/gl/gl_rendertext.cpp +++ b/renderdoc/driver/gl/gl_rendertext.cpp @@ -155,7 +155,7 @@ void WrappedOpenGL::ContextData::CreateDebugData() ShaderType shaderType; int glslVersion; - string fragDefines; + std::string vertDefines, fragDefines; if(IsGLES) { @@ -167,10 +167,23 @@ void WrappedOpenGL::ContextData::CreateDebugData() { shaderType = eShaderGLSL; glslVersion = 110; + +#if ENABLED(RDOC_APPLE) + // on mac we need to define a more modern version and use modern texture sampling + glslVersion = GLCoreVersion * 10; + fragDefines = + "#define varying in\n" + "#define texture2D texture\n" + "#define gl_FragColor outcol\n" + "out vec4 outcol;"; + vertDefines = + "#define varying out\n" + "#define attribute in"; +#endif } - GenerateGLSLShader(vs, shaderType, "", GetEmbeddedResource(glsl_gltext_vert), glslVersion, - false); + GenerateGLSLShader(vs, shaderType, vertDefines.c_str(), + GetEmbeddedResource(glsl_gltext_vert), glslVersion, false); GenerateGLSLShader(fs, shaderType, fragDefines.c_str(), GetEmbeddedResource(glsl_gltext_frag), glslVersion, false);