GLboolean depthmask;
int colormask; // stored as bottom 4 bits: r g b a (3 2 1 0 order)
int depthtest;
+ int alphatest;
int scissortest;
unsigned int unit;
unsigned int clientunit;
{
memset(&gl_state, 0, sizeof(gl_state));
gl_state.depthtest = true;
+ gl_state.alphatest = false;
gl_state.blendfunc1 = GL_ONE;
gl_state.blendfunc2 = GL_ZERO;
gl_state.blend = false;
CHECKGLERROR
qglColorMask(1, 1, 1, 1);
- qglEnable(GL_CULL_FACE);CHECKGLERROR
- qglCullFace(GL_FRONT);CHECKGLERROR
- qglEnable(GL_DEPTH_TEST);CHECKGLERROR
+ qglAlphaFunc(GL_GEQUAL, 0.5);CHECKGLERROR
+ qglDisable(GL_ALPHA_TEST);CHECKGLERROR
qglBlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);CHECKGLERROR
qglDisable(GL_BLEND);CHECKGLERROR
+ qglCullFace(GL_FRONT);CHECKGLERROR
+ qglEnable(GL_CULL_FACE);CHECKGLERROR
+ qglDepthFunc(GL_LEQUAL);CHECKGLERROR
+ qglEnable(GL_DEPTH_TEST);CHECKGLERROR
qglDepthMask(gl_state.depthmask);CHECKGLERROR
qglVertexPointer(3, GL_FLOAT, sizeof(float[3]), NULL);CHECKGLERROR
}
}
+void GL_AlphaTest(int state)
+{
+ if (gl_state.alphatest != state)
+ {
+ gl_state.alphatest = state;
+ if (gl_state.alphatest)
+ {
+ qglEnable(GL_ALPHA_TEST);CHECKGLERROR
+ }
+ else
+ {
+ qglDisable(GL_ALPHA_TEST);CHECKGLERROR
+ }
+ }
+}
+
void GL_ColorMask(int r, int g, int b, int a)
{
int state = r*8 + g*4 + b*2 + a*1;