diff options
Diffstat (limited to 'xbmc/rendering/gl/GLShader.h')
-rw-r--r-- | xbmc/rendering/gl/GLShader.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/xbmc/rendering/gl/GLShader.h b/xbmc/rendering/gl/GLShader.h new file mode 100644 index 0000000..d5b82f3 --- /dev/null +++ b/xbmc/rendering/gl/GLShader.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "guilib/Shader.h" + +#include <string> + +class CGLShader : public Shaders::CGLSLShaderProgram +{ +public: + CGLShader(const char* shader, const std::string& prefix); + CGLShader(const char* vshader, const char* fshader, const std::string& prefix); + void OnCompiledAndLinked() override; + bool OnEnabled() override; + void Free(); + + GLint GetPosLoc() {return m_hPos;} + GLint GetColLoc() {return m_hCol;} + GLint GetCord0Loc() {return m_hCord0;} + GLint GetCord1Loc() {return m_hCord1;} + GLint GetUniColLoc() {return m_hUniCol;} + GLint GetModelLoc() {return m_hModel; } + bool HardwareClipIsPossible() {return m_clipPossible; } + GLfloat GetClipXFactor() {return m_clipXFactor; } + GLfloat GetClipXOffset() {return m_clipXOffset; } + GLfloat GetClipYFactor() {return m_clipYFactor; } + GLfloat GetClipYOffset() {return m_clipYOffset; } + +protected: + GLint m_hTex0 = 0; + GLint m_hTex1 = 0; + GLint m_hUniCol = 0; + GLint m_hProj = 0; + GLint m_hModel = 0; + GLint m_hPos = 0; + GLint m_hCol = 0; + GLint m_hCord0 = 0; + GLint m_hCord1 = 0; + + const GLfloat *m_proj = nullptr; + const GLfloat *m_model = nullptr; + + bool m_clipPossible = false; + GLfloat m_clipXFactor; + GLfloat m_clipXOffset; + GLfloat m_clipYFactor; + GLfloat m_clipYOffset; +}; |