33 #if ( defined DC_BACKENDS_SHADERGL_X11 || defined DC_BACKENDS_SHADERGL_WIN32 )
35 #ifndef H_DC_STATICPROGRAM_GL3_1_INCLUDED
36 #define H_DC_STATICPROGRAM_GL3_1_INCLUDED
38 #include <Dynacoe/Backends/Renderer/ShaderGL_Multi.h>
39 #include <Dynacoe/Backends/Renderer/ShaderGL/StaticProgram.h>
46 class StaticProgram_GL3_1 :
public StaticProgram {
48 StaticProgram_GL3_1();
52 bool Set(
const char * vertexShader,
53 const char * fragShader,
55 const std::string & name,
56 RenderBuffer * DynacoeView_uniformID,
57 RenderBuffer * Projection_uniformID,
58 RenderBuffer * DynacoeTexturePos_uniformID,
59 RenderBuffer * DynacoeTextureInfo_uniformID,
60 RenderBuffer * DynacoeLighting_uniformID,
61 RenderBuffer * DynacoeLightingInfo_uniformID
66 void Run(uint32_t *, uint32_t, RenderBuffer *, RenderBuffer *, RenderBuffer *, GLuint, GLuint);
68 int MaxLights() {
return 1024; }
69 int MaxTextures() {
return 1022; }
73 void SetUniformBindings(RenderBuffer *, RenderBuffer *);
74 void SetVertexBinding(
int);
76 void printShaderLog(
int shaderID);
77 void printProgramLog(
int program);
82 int baseTextureActiveIndex;
84 RenderBuffer * viewUniform;
85 RenderBuffer * projectionUniform;
86 RenderBuffer * textureUniformData;
87 RenderBuffer * lightUniformData;
88 RenderBuffer * textureUniformInfo;
89 RenderBuffer * lightUniformInfo;
91 GLuint viewBindingIndex;
92 GLuint projectionBindingIndex;
93 GLuint textureBindingIndex;
94 GLuint lightingBindingIndex;
106 StaticProgram * CreateStaticProgram();