18 #include "precompiled.h"
73 return Binding((
int)GL_TEXTURE_2D, index);
88 pglActiveTextureARB((
int)(GL_TEXTURE0+index));
89 glBindTexture(GL_TEXTURE_2D, tex);
95 int index =
id.second;
197 pglActiveTextureARB(GL_TEXTURE2);
198 GLfloat texgenS1[4] = { v0, 0, 0, v1 };
199 GLfloat texgenT1[4] = { 0, 0, v0, v1 };
200 glTexGenfv(GL_S, GL_OBJECT_PLANE, texgenS1);
201 glTexGenfv(GL_T, GL_OBJECT_PLANE, texgenT1);
205 float c[] = { v0, v1, v2, v3 };
206 pglActiveTextureARB(GL_TEXTURE1);
207 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, c);
231 pglActiveTextureARB(GL_TEXTURE0);
232 glEnable(GL_TEXTURE_2D);
233 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
236 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
237 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
238 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
241 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE);
242 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_TEXTURE);
243 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA);
247 pglActiveTextureARB(GL_TEXTURE1);
248 glEnable(GL_TEXTURE_2D);
249 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
255 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE);
256 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB,
m_UseObjectColor ? GL_CONSTANT : GL_PRIMARY_COLOR);
257 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
258 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS);
259 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
260 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_TEXTURE);
261 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_COLOR);
264 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE);
265 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB,
m_UseObjectColor ? GL_CONSTANT : GL_PRIMARY_COLOR);
266 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA);
267 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_ARB, GL_PREVIOUS);
268 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_ARB, GL_SRC_ALPHA);
272 pglActiveTextureARB(GL_TEXTURE2);
273 glEnable(GL_TEXTURE_2D);
274 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
280 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
281 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS);
282 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
287 glEnable(GL_TEXTURE_GEN_S);
288 glEnable(GL_TEXTURE_GEN_T);
289 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
290 glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
293 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);
294 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS);
295 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
296 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
297 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_ALPHA);
301 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE);
302 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS);
303 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA);
312 pglActiveTextureARB(GL_TEXTURE2);
313 glDisable(GL_TEXTURE_2D);
315 glDisable(GL_TEXTURE_GEN_S);
316 glDisable(GL_TEXTURE_GEN_T);
318 pglActiveTextureARB(GL_TEXTURE1);
319 glDisable(GL_TEXTURE_2D);
321 pglActiveTextureARB(GL_TEXTURE0);
322 glDisable(GL_TEXTURE_2D);
351 glColor4f(v0, v1, v2, v3);
357 glLoadMatrixf(&v.
_11);
362 glMatrixMode(GL_PROJECTION);
365 glMatrixMode(GL_MODELVIEW);
368 pglActiveTextureARB(GL_TEXTURE0);
369 glEnable(GL_TEXTURE_2D);
370 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
379 pglActiveTextureARB(GL_TEXTURE0);
380 glDisable(GL_TEXTURE_2D);
382 glMatrixMode(GL_PROJECTION);
384 glMatrixMode(GL_MODELVIEW);
415 glLoadMatrixf(&v.
_11);
420 glMatrixMode(GL_PROJECTION);
423 glMatrixMode(GL_MODELVIEW);
433 glMatrixMode(GL_PROJECTION);
435 glMatrixMode(GL_MODELVIEW);
452 pglActiveTextureARB(GL_TEXTURE0);
453 glEnable(GL_TEXTURE_2D);
454 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
459 pglActiveTextureARB(GL_TEXTURE0);
460 glDisable(GL_TEXTURE_2D);
477 glColor4f(v0, v1, v2, v3);
484 pglActiveTextureARB(GL_TEXTURE0);
485 glEnable(GL_TEXTURE_2D);
487 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
489 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD);
490 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_ADD);
492 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
493 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
494 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
495 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
497 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PREVIOUS);
498 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
499 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_PREVIOUS);
500 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
505 glColor4f(1.f, 1.f, 1.f, 1.f);
507 pglActiveTextureARB(GL_TEXTURE0);
508 glDisable(GL_TEXTURE_2D);
558 static const float GreyscaleDotColor[4] = {
564 static const float GreyscaleInterpColor0[4] = { 1.0f, 1.0f, 1.0f, 1.0f };
565 static const float GreyscaleInterpColor1[4] = { 0.5f, 0.5f, 0.5f, 1.0f };
567 pglActiveTextureARB(GL_TEXTURE0);
568 glEnable(GL_TEXTURE_2D);
570 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
572 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
573 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
575 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
577 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
578 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
579 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GreyscaleInterpColor0);
581 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_PREVIOUS);
582 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_COLOR);
584 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
585 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
586 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
588 glColor4fv(GreyscaleInterpColor1);
590 pglActiveTextureARB(GL_TEXTURE1);
591 glEnable(GL_TEXTURE_2D);
593 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
595 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
596 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
597 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
598 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
600 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_DOT3_RGB);
611 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
613 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
614 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
615 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GreyscaleDotColor);
620 g_Renderer.GetTextureManager().GetErrorTexture()->Bind(1);
625 glColor4f(1.f, 1.f, 1.f, 1.f);
627 pglActiveTextureARB(GL_TEXTURE1);
628 glDisable(GL_TEXTURE_2D);
630 pglActiveTextureARB(GL_TEXTURE0);
631 glDisable(GL_TEXTURE_2D);
648 glColor4f(v0, v1, v2, v3);
655 pglActiveTextureARB(GL_TEXTURE0);
656 glDisable(GL_TEXTURE_2D);
686 if (defines.
GetInt(
"USE_OBJECTCOLOR"))
689 if (defines.
GetInt(
"USE_PLAYERCOLOR"))
702 glLoadMatrixf(&v.
_11);
709 pglActiveTextureARB(GL_TEXTURE3);
710 GLfloat texgenS1[4] = { v0, 0, 0, v1 };
711 GLfloat texgenT1[4] = { 0, 0, v0, v1 };
712 glTexGenfv(GL_S, GL_OBJECT_PLANE, texgenS1);
713 glTexGenfv(GL_T, GL_OBJECT_PLANE, texgenT1);
719 glMatrixMode(GL_PROJECTION);
722 glMatrixMode(GL_MODELVIEW);
727 pglActiveTextureARB(GL_TEXTURE3);
728 glEnable(GL_TEXTURE_2D);
729 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
734 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
735 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS);
736 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
741 glEnable(GL_TEXTURE_GEN_S);
742 glEnable(GL_TEXTURE_GEN_T);
743 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
744 glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
747 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);
748 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS);
749 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
750 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
751 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_ALPHA);
755 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_REPLACE);
756 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS);
757 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA);
768 pglActiveTextureARB(GL_TEXTURE3);
769 glDisable(GL_TEXTURE_2D);
771 glDisable(GL_TEXTURE_GEN_S);
772 glDisable(GL_TEXTURE_GEN_T);
774 pglActiveTextureARB(GL_TEXTURE0);
776 glMatrixMode(GL_PROJECTION);
778 glMatrixMode(GL_MODELVIEW);
797 pglActiveTextureARB(GL_TEXTURE0);
798 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
799 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
800 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
801 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
802 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
803 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
806 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
807 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE);
808 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
813 float scale2[] = { 2.0f, 2.0f, 2.0f };
814 glTexEnvfv(GL_TEXTURE_ENV, GL_RGB_SCALE, scale2);
823 pglActiveTextureARB(GL_TEXTURE0);
826 float scale1[] = { 1.0f, 1.0f, 1.0f };
827 glTexEnvfv(GL_TEXTURE_ENV, GL_RGB_SCALE, scale1);
847 float color[] = { v0, v1, v2, v3 };
848 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);
863 pglActiveTextureARB(GL_TEXTURE0);
864 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
865 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
866 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE);
867 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_ONE_MINUS_SRC_ALPHA);
868 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_CONSTANT);
869 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_ONE_MINUS_SRC_COLOR);
872 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
873 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
874 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
877 pglActiveTextureARB(GL_TEXTURE1);
878 glEnable(GL_TEXTURE_2D);
879 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
880 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
881 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
882 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_ONE_MINUS_SRC_COLOR);
883 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR);
884 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
887 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
888 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
889 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
892 pglActiveTextureARB(GL_TEXTURE2);
893 glEnable(GL_TEXTURE_2D);
894 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
895 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
896 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
897 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
898 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE0);
899 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
902 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
903 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
904 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
906 float color[] = { 1.0f, 1.0f, 1.0f, 1.0f };
907 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);
910 float scale[] = { 2.0f, 2.0f, 2.0f };
911 glTexEnvfv(GL_TEXTURE_ENV, GL_RGB_SCALE, scale);
915 g_Renderer.GetTextureManager().GetErrorTexture()->Bind(1);
916 g_Renderer.GetTextureManager().GetErrorTexture()->Bind(2);
925 pglActiveTextureARB(GL_TEXTURE2);
926 glDisable(GL_TEXTURE_2D);
928 float scale[] = { 1.0f, 1.0f, 1.0f };
929 glTexEnvfv(GL_TEXTURE_ENV, GL_RGB_SCALE, scale);
931 pglActiveTextureARB(GL_TEXTURE1);
932 glDisable(GL_TEXTURE_2D);
934 pglActiveTextureARB(GL_TEXTURE0);
953 float color[] = { v0, v1, v2, v3 };
954 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);
960 float color[] = { 1.0f, 1.0f, 1.0f, 1.0f };
961 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);
963 pglActiveTextureARB(GL_TEXTURE0);
964 glEnable(GL_TEXTURE_2D);
965 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
966 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
967 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_CONSTANT);
968 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
969 glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
970 glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_CONSTANT);
971 glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
990 pglActiveTextureARB(GL_TEXTURE0);
991 glEnable(GL_TEXTURE_2D);
992 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
1004 if (
id ==
"overlayline")
1006 if (
id ==
"gui_text")
1008 if (
id ==
"gui_basic")
1010 if (
id ==
"gui_add")
1012 if (
id ==
"gui_grayscale")
1014 if (
id ==
"gui_solid")
1020 if (
id ==
"model_color")
1022 if (
id ==
"model_solid")
1024 if (
id ==
"model_solid_tex")
1027 LOGERROR(L
"CShaderProgram::ConstructFFP: '%hs': Invalid id",
id.c_str());
1028 debug_warn(L
"CShaderProgram::ConstructFFP: Invalid id");
1032 #else // CONFIG2_GLES
1036 debug_warn(L
"CShaderProgram::ConstructFFP: FFP not supported on this device");
1040 #endif // CONFIG2_GLES
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
virtual void Bind()
Binds the shader into the GL context.
CShaderProgramFFP_Model(const CShaderDefines &defines)
virtual void Bind()
Binds the shader into the GL context.
int GetUniformIndex(CStrIntern id)
virtual void Bind()
Binds the shader into the GL context.
virtual void Bind()
Binds the shader into the GL context.
virtual void Bind()
Binds the shader into the GL context.
virtual void Uniform(Binding id, const CMatrix3D &v)
#define UNUSED(param)
mark a function parameter as unused and avoid the corresponding compiler warning. ...
CShaderProgramFFP_GuiAdd()
void SetUniformIndex(const char *id, int value)
Player-coloring diffuse-textured model rendering.
CShaderProgramFFP_Dummy()
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Bind()
Binds the shader into the GL context.
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Unbind()
Unbinds the shader from the GL context.
CShaderProgramFFP_GuiText()
void UnbindClientStates()
CShaderProgramFFP_GuiGrayscale()
bool ogl_SquelchError(GLenum err_to_ignore)
ignore and reset the specified OpenGL error.
Common functionality for model rendering in the fixed renderpath.
virtual void Uniform(Binding id, const CMatrix3D &v)
CShaderProgramFFP_ModelSolid(const CShaderDefines &defines)
static CShaderProgram * ConstructFFP(const std::string &id, const CShaderDefines &defines)
Construct an instance of a pre-defined fixed-function pipeline setup.
virtual void Bind()
Binds the shader into the GL context.
virtual void Uniform(Binding id, size_t count, const CMatrix3D *v)
Status ogl_tex_bind(Handle ht, size_t unit)
Bind texture to the specified unit in preparation for using it in rendering.
virtual void BindTexture(Binding id, Handle tex)
virtual void Bind()
Binds the shader into the GL context.
virtual void Bind()
Binds the shader into the GL context.
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
virtual Binding GetUniformBinding(uniform_id_t id)
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Bind()
Binds the shader into the GL context.
CShaderProgramFFP_Gui_Base(int streamflags)
CShaderProgramFFP_GuiBasic()
virtual void Uniform(Binding id, const CMatrix3D &v)
virtual void Bind()
Binds the shader into the GL context.
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
i64 Handle
`handle' representing a reference to a resource (sound, texture, etc.)
std::map< CStrIntern, int > m_UniformIndexes
CShaderProgramFFP_ModelColor(const CShaderDefines &defines)
A shader that does nothing but provide a shader-compatible interface to fixed-function features...
Plain unlit texture model rendering, for e.g.
CShaderProgramFFP_GuiSolid()
virtual void Unbind()
Unbinds the shader from the GL context.
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
virtual void Bind()
Binds the shader into the GL context.
virtual void Uniform(Binding id, const CMatrix3D &v)
virtual Binding GetTextureBinding(uniform_id_t id)
CShaderProgramFFP allows rendering code to use the shader-based API even if the 'shader' is actually ...
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
virtual void BindTexture(texture_id_t id, Handle tex)
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
CShaderProgramFFP_OverlayLine(const CShaderDefines &defines)
Optionally-player-colored untextured model rendering.
virtual void Bind()
Binds the shader into the GL context.
int GetInt(const char *name) const
Return the value for the given name as an integer, or 0 if not defined.
Represents a uniform attribute or texture binding.
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
CShaderProgramFFP_Model_Base(const CShaderDefines &defines, int streamflags)
virtual void Uniform(Binding id, const CMatrix3D &v)
CShaderProgramFFP_ModelSolidTex(const CShaderDefines &defines)
virtual void Uniform(Binding id, float v0, float v1, float v2, float v3)
#define debug_warn(expr)
display the error dialog with the given text.
virtual void BindTexture(texture_id_t id, GLuint tex)
virtual void Unbind()
Unbinds the shader from the GL context.
A compiled vertex+fragment shader program.
virtual void Unbind()
Unbinds the shader from the GL context.
CShaderProgramFFP(int streamflags)
Basic non-recolored diffuse-textured model rendering.