diff options
Diffstat (limited to 'xbmc/rendering/gles/RenderSystemGLES.cpp')
-rw-r--r-- | xbmc/rendering/gles/RenderSystemGLES.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/xbmc/rendering/gles/RenderSystemGLES.cpp b/xbmc/rendering/gles/RenderSystemGLES.cpp index f25f783960..a5c02803b0 100644 --- a/xbmc/rendering/gles/RenderSystemGLES.cpp +++ b/xbmc/rendering/gles/RenderSystemGLES.cpp @@ -425,7 +425,7 @@ void CRenderSystemGLES::InitialiseShaders() } m_pShader[ShaderMethodGLES::SM_FONTS] = - std::make_unique<CGLESShader>("gles_shader_fonts.frag", defines); + std::make_unique<CGLESShader>("gles_shader_simple.vert", "gles_shader_fonts.frag", defines); if (!m_pShader[ShaderMethodGLES::SM_FONTS]->CompileAndLink()) { m_pShader[ShaderMethodGLES::SM_FONTS]->Free(); @@ -433,6 +433,16 @@ void CRenderSystemGLES::InitialiseShaders() CLog::Log(LOGERROR, "GUI Shader gles_shader_fonts.frag - compile and link failed"); } + m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP] = + std::make_unique<CGLESShader>("gles_shader_clip.vert", "gles_shader_fonts.frag", defines); + if (!m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP]->CompileAndLink()) + { + m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP]->Free(); + m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP].reset(); + CLog::Log(LOGERROR, "GUI Shader gles_shader_clip.vert + gles_shader_fonts.frag - compile " + "and link failed"); + } + m_pShader[ShaderMethodGLES::SM_TEXTURE_NOBLEND] = std::make_unique<CGLESShader>("gles_shader_texture_noblend.frag", defines); if (!m_pShader[ShaderMethodGLES::SM_TEXTURE_NOBLEND]->CompileAndLink()) @@ -528,6 +538,10 @@ void CRenderSystemGLES::ReleaseShaders() m_pShader[ShaderMethodGLES::SM_FONTS]->Free(); m_pShader[ShaderMethodGLES::SM_FONTS].reset(); + if (m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP]) + m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP]->Free(); + m_pShader[ShaderMethodGLES::SM_FONTS_SHADER_CLIP].reset(); + if (m_pShader[ShaderMethodGLES::SM_TEXTURE_NOBLEND]) m_pShader[ShaderMethodGLES::SM_TEXTURE_NOBLEND]->Free(); m_pShader[ShaderMethodGLES::SM_TEXTURE_NOBLEND].reset(); @@ -675,3 +689,27 @@ GLint CRenderSystemGLES::GUIShaderGetModel() return -1; } + +GLint CRenderSystemGLES::GUIShaderGetMatrix() +{ + if (m_pShader[m_method]) + return m_pShader[m_method]->GetMatrixLoc(); + + return -1; +} + +GLint CRenderSystemGLES::GUIShaderGetClip() +{ + if (m_pShader[m_method]) + return m_pShader[m_method]->GetShaderClipLoc(); + + return -1; +} + +GLint CRenderSystemGLES::GUIShaderGetCoordStep() +{ + if (m_pShader[m_method]) + return m_pShader[m_method]->GetShaderCoordStepLoc(); + + return -1; +} |