}
#endif
+extern cvar_t r_transparent_alphatocoverage;
static void GL_Backend_ResetState(void)
{
qglColorMask(1, 1, 1, 1);CHECKGLERROR
qglAlphaFunc(gl_state.alphafunc, gl_state.alphafuncvalue);CHECKGLERROR
- qglDisable(GL_ALPHA_TEST);CHECKGLERROR
+ qglDisable((r_transparent_alphatocoverage.integer) ? GL_SAMPLE_ALPHA_TO_COVERAGE_ARB : GL_ALPHA_TEST);CHECKGLERROR
qglBlendFunc(gl_state.blendfunc1, gl_state.blendfunc2);CHECKGLERROR
qglDisable(GL_BLEND);CHECKGLERROR
qglCullFace(gl_state.cullface);CHECKGLERROR
}
}
+void GL_MultiSampling(qboolean state)
+{
+ switch(vid.renderpath)
+ {
+ case RENDERPATH_GL11:
+ case RENDERPATH_GL13:
+ case RENDERPATH_GLES1:
+ case RENDERPATH_GL20:
+ case RENDERPATH_GLES2:
+ if (vid.support.arb_multisample)
+ {
+ if (state)
+ qglEnable(GL_MULTISAMPLE_ARB);
+ else
+ qglDisable(GL_MULTISAMPLE_ARB);
+ CHECKGLERROR
+ }
+ break;
+ case RENDERPATH_D3D9:
+ break;
+ case RENDERPATH_D3D10:
+ break;
+ case RENDERPATH_D3D11:
+ break;
+ case RENDERPATH_SOFT:
+ break;
+ }
+}
+
void GL_AlphaTest(int state)
{
if (gl_state.alphatest != state)
CHECKGLERROR
if (gl_state.alphatest)
{
- qglEnable(GL_ALPHA_TEST);CHECKGLERROR
+ qglEnable((r_transparent_alphatocoverage.integer) ? GL_SAMPLE_ALPHA_TO_COVERAGE_ARB : GL_ALPHA_TEST);CHECKGLERROR
}
else
{
- qglDisable(GL_ALPHA_TEST);CHECKGLERROR
+ qglDisable((r_transparent_alphatocoverage.integer) ? GL_SAMPLE_ALPHA_TO_COVERAGE_ARB : GL_ALPHA_TEST);CHECKGLERROR
}
break;
case RENDERPATH_D3D9:
break;
case RENDERPATH_GL20:
case RENDERPATH_GLES2:
+ if (vid_multisampling.integer)
+ {
+ if (gl_state.alphatest && r_transparent_alphatocoverage.integer)
+ qglEnable(GL_SAMPLE_ALPHA_TO_COVERAGE_ARB);
+ else
+ qglDisable(GL_SAMPLE_ALPHA_TO_COVERAGE_ARB);
+ CHECKGLERROR
+ }
break;
}
}