diff options
Diffstat (limited to 'xbmc/rendering/gles/GLESShader.h')
-rw-r--r-- | xbmc/rendering/gles/GLESShader.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/xbmc/rendering/gles/GLESShader.h b/xbmc/rendering/gles/GLESShader.h new file mode 100644 index 0000000..8ce31e5 --- /dev/null +++ b/xbmc/rendering/gles/GLESShader.h @@ -0,0 +1,65 @@ +/* + * 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 CGLESShader : public Shaders::CGLSLShaderProgram +{ +public: + CGLESShader(const char* shader, const std::string& prefix); + CGLESShader(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 GetCoord0MatrixLoc() { return m_hCoord0Matrix; } + GLint GetFieldLoc() { return m_hField; } + GLint GetStepLoc() { return m_hStep; } + GLint GetContrastLoc() { return m_hContrast; } + GLint GetBrightnessLoc() { return m_hBrightness; } + 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; + GLint m_hCoord0Matrix = 0; + GLint m_hField = 0; + GLint m_hStep = 0; + GLint m_hContrast = 0; + GLint m_hBrightness = 0; + + const GLfloat *m_proj; + const GLfloat *m_model; + + bool m_clipPossible; + GLfloat m_clipXFactor; + GLfloat m_clipXOffset; + GLfloat m_clipYFactor; + GLfloat m_clipYOffset; +}; |