DDraceNetwork Documentation
Loading...
Searching...
No Matches
opengl_sl_program.h
Go to the documentation of this file.
1// This file can be included several times.
2#if (!defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H)) || \
3 (defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H_AS_ES))
4
5#if !defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H)
6#define ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H
7#endif
8
9#if defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H_AS_ES)
10#define ENGINE_CLIENT_BACKEND_OPENGL_OPENGL_SL_PROGRAM_H_AS_ES
11#endif
12
13#include <base/color.h>
14#include <base/vmath.h>
15
17
18class CGLSL;
19
21{
22public:
23 void CreateProgram();
24 void DeleteProgram();
25
26 bool AddShader(CGLSL *pShader) const;
27
28 bool LinkProgram();
29 void UseProgram() const;
30 TWGLuint GetProgramId() const;
31
32 void DetachShader(CGLSL *pShader) const;
33 void DetachShaderById(TWGLuint ShaderId) const;
34 void DetachAllShaders() const;
35
36 //Support various types
37 void SetUniformVec2(int Loc, int Count, const float *pValue);
38 void SetUniformVec4(int Loc, int Count, const float *pValue);
39 void SetUniform(int Loc, int Value);
40 void SetUniform(int Loc, bool Value);
41 void SetUniform(int Loc, float Value);
42 void SetUniform(int Loc, int Count, const float *pValues);
43
44 //for performance reason we do not use SetUniform with using strings... save the Locations of the variables instead
45 int GetUniformLoc(const char *pName) const;
46
48 virtual ~CGLSLProgram();
49
50protected:
53};
54
72
97
99{
100public:
101};
102
122
140
149
163
164#endif
int m_LocCenter
Definition opengl_sl_program.h:115
int m_LocVertciesColor
Definition opengl_sl_program.h:116
float m_LastRotation
Definition opengl_sl_program.h:118
vec2 m_LastCenter
Definition opengl_sl_program.h:119
int m_LocRotation
Definition opengl_sl_program.h:114
CGLSLPrimitiveExProgram()
Definition opengl_sl_program.h:106
ColorRGBA m_LastVerticesColor
Definition opengl_sl_program.h:120
Definition opengl_sl_program.h:99
void CreateProgram()
Definition opengl_sl_program.cpp:19
bool LinkProgram()
Definition opengl_sl_program.cpp:55
CGLSLProgram()
Definition opengl_sl_program.cpp:152
TWGLuint m_ProgramId
Definition opengl_sl_program.h:51
int GetUniformLoc(const char *pName) const
Definition opengl_sl_program.cpp:136
void UseProgram() const
Definition opengl_sl_program.cpp:141
bool m_IsLinked
Definition opengl_sl_program.h:52
void DetachShader(CGLSL *pShader) const
Definition opengl_sl_program.cpp:42
void DeleteProgram()
Definition opengl_sl_program.cpp:24
void SetUniformVec2(int Loc, int Count, const float *pValue)
Definition opengl_sl_program.cpp:111
bool AddShader(CGLSL *pShader) const
Definition opengl_sl_program.cpp:32
void DetachAllShaders() const
Definition opengl_sl_program.cpp:85
TWGLuint GetProgramId() const
Definition opengl_sl_program.cpp:147
void DetachShaderById(TWGLuint ShaderId) const
Definition opengl_sl_program.cpp:50
void SetUniformVec4(int Loc, int Count, const float *pValue)
Definition opengl_sl_program.cpp:106
virtual ~CGLSLProgram()
Definition opengl_sl_program.cpp:157
void SetUniform(int Loc, int Value)
Definition opengl_sl_program.cpp:121
Definition opengl_sl_program.h:142
int m_LocOffsets
Definition opengl_sl_program.h:145
int m_LocQuadOffset
Definition opengl_sl_program.h:147
int m_LocColors
Definition opengl_sl_program.h:144
int m_LocRotations
Definition opengl_sl_program.h:146
int m_LocVertciesColor
Definition opengl_sl_program.h:135
CGLSLSpriteMultipleProgram()
Definition opengl_sl_program.h:126
int m_LocRSP
Definition opengl_sl_program.h:133
int m_LocCenter
Definition opengl_sl_program.h:134
ColorRGBA m_LastVerticesColor
Definition opengl_sl_program.h:138
vec2 m_LastCenter
Definition opengl_sl_program.h:137
vec2 m_LastScreenBR
Definition opengl_sl_program.h:70
int m_LastIsTextured
Definition opengl_sl_program.h:68
int m_LocPos
Definition opengl_sl_program.h:64
vec2 m_LastScreenTL
Definition opengl_sl_program.h:69
CGLSLTWProgram()
Definition opengl_sl_program.h:58
int m_LastTextureSampler
Definition opengl_sl_program.h:67
int m_LocTextureSampler
Definition opengl_sl_program.h:65
ColorRGBA m_LastColor
Definition opengl_sl_program.h:91
ColorRGBA m_LastOutlineColor
Definition opengl_sl_program.h:92
int m_LastTextureSize
Definition opengl_sl_program.h:95
int m_LocOutlineColor
Definition opengl_sl_program.h:86
int m_LastTextOutlineSampler
Definition opengl_sl_program.h:94
int m_LocTextSampler
Definition opengl_sl_program.h:87
CGLSLTextProgram()
Definition opengl_sl_program.h:76
int m_LocTextOutlineSampler
Definition opengl_sl_program.h:88
int m_LastTextSampler
Definition opengl_sl_program.h:93
int m_LocTextureSize
Definition opengl_sl_program.h:89
int m_LocColor
Definition opengl_sl_program.h:85
CGLSLTileProgram()
Definition opengl_sl_program.h:153
int m_LocNum
Definition opengl_sl_program.h:160
int m_LocJumpIndex
Definition opengl_sl_program.h:161
int m_LocColor
Definition opengl_sl_program.h:156
int m_LocDir
Definition opengl_sl_program.h:158
int m_LocScale
Definition opengl_sl_program.h:159
int m_LocOffset
Definition opengl_sl_program.h:157
Definition opengl_sl.h:18
Definition color.h:182
uint32_t TWGLuint
Definition graphics_defines.h:7
vector2_base< float > vec2
Definition vmath.h:161