aboutsummaryrefslogtreecommitdiff
path: root/xbmc/rendering/gl/RenderSystemGL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/rendering/gl/RenderSystemGL.cpp')
-rw-r--r--xbmc/rendering/gl/RenderSystemGL.cpp47
1 files changed, 43 insertions, 4 deletions
diff --git a/xbmc/rendering/gl/RenderSystemGL.cpp b/xbmc/rendering/gl/RenderSystemGL.cpp
index 4b80014d41..516027ef49 100644
--- a/xbmc/rendering/gl/RenderSystemGL.cpp
+++ b/xbmc/rendering/gl/RenderSystemGL.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005-2018 Team Kodi
+ * Copyright (C) 2005-2024 Team Kodi
* This file is part of Kodi - https://kodi.tv
*
* SPDX-License-Identifier: GPL-2.0-or-later
@@ -682,13 +682,24 @@ void CRenderSystemGL::InitialiseShaders()
CLog::Log(LOGERROR, "GUI Shader gl_shader_frag_multi.glsl - compile and link failed");
}
- m_pShader[ShaderMethodGL::SM_FONTS] =
- std::make_unique<CGLShader>("gl_shader_frag_fonts.glsl", defines);
+ m_pShader[ShaderMethodGL::SM_FONTS] = std::make_unique<CGLShader>(
+ "gl_shader_vert_simple.glsl", "gl_shader_frag_fonts.glsl", defines);
if (!m_pShader[ShaderMethodGL::SM_FONTS]->CompileAndLink())
{
m_pShader[ShaderMethodGL::SM_FONTS]->Free();
m_pShader[ShaderMethodGL::SM_FONTS].reset();
- CLog::Log(LOGERROR, "GUI Shader gl_shader_frag_fonts.glsl - compile and link failed");
+ CLog::Log(LOGERROR, "GUI Shader gl_shader_vert_simple.glsl + gl_shader_frag_fonts.glsl - "
+ "compile and link failed");
+ }
+
+ m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP] =
+ std::make_unique<CGLShader>("gl_shader_vert_clip.glsl", "gl_shader_frag_fonts.glsl", defines);
+ if (!m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP]->CompileAndLink())
+ {
+ m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP]->Free();
+ m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP].reset();
+ CLog::Log(LOGERROR, "GUI Shader gl_shader_vert_clip.glsl + gl_shader_frag_fonts.glsl - compile "
+ "and link failed");
}
m_pShader[ShaderMethodGL::SM_TEXTURE_NOBLEND] =
@@ -732,6 +743,10 @@ void CRenderSystemGL::ReleaseShaders()
m_pShader[ShaderMethodGL::SM_FONTS]->Free();
m_pShader[ShaderMethodGL::SM_FONTS].reset();
+ if (m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP])
+ m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP]->Free();
+ m_pShader[ShaderMethodGL::SM_FONTS_SHADER_CLIP].reset();
+
if (m_pShader[ShaderMethodGL::SM_TEXTURE_NOBLEND])
m_pShader[ShaderMethodGL::SM_TEXTURE_NOBLEND]->Free();
m_pShader[ShaderMethodGL::SM_TEXTURE_NOBLEND].reset();
@@ -811,6 +826,30 @@ GLint CRenderSystemGL::ShaderGetModel()
return -1;
}
+GLint CRenderSystemGL::ShaderGetMatrix()
+{
+ if (m_pShader[m_method])
+ return m_pShader[m_method]->GetMatrixLoc();
+
+ return -1;
+}
+
+GLint CRenderSystemGL::ShaderGetClip()
+{
+ if (m_pShader[m_method])
+ return m_pShader[m_method]->GetShaderClipLoc();
+
+ return -1;
+}
+
+GLint CRenderSystemGL::ShaderGetCoordStep()
+{
+ if (m_pShader[m_method])
+ return m_pShader[m_method]->GetShaderCoordStepLoc();
+
+ return -1;
+}
+
std::string CRenderSystemGL::GetShaderPath(const std::string &filename)
{
std::string path = "GL/1.2/";