X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=gl_backend.c;h=e8d2e6408dd4dc597c2a52bfbb9dbb86e4ec4c10;hb=11df435654c96dd18d622b68ab2a819584555b95;hp=dc46cc719dcd21016f55b6e36522f0dced00ab9d;hpb=8c215d5236b730b87168ff735e47a2d61f88976c;p=xonotic%2Fdarkplaces.git diff --git a/gl_backend.c b/gl_backend.c index dc46cc71..e8d2e640 100644 --- a/gl_backend.c +++ b/gl_backend.c @@ -1381,6 +1381,7 @@ static int d3dstencilopforglfunc(int f) } #endif +extern cvar_t r_transparent_alphatocoverage; static void GL_Backend_ResetState(void) { @@ -1436,7 +1437,7 @@ 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((vid_multisampling.integer && 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 @@ -2133,11 +2134,11 @@ void GL_AlphaTest(int state) CHECKGLERROR if (gl_state.alphatest) { - qglEnable(GL_ALPHA_TEST);CHECKGLERROR + qglEnable((vid_multisampling.integer && r_transparent_alphatocoverage.integer) ? GL_SAMPLE_ALPHA_TO_COVERAGE_ARB : GL_ALPHA_TEST);CHECKGLERROR } else { - qglDisable(GL_ALPHA_TEST);CHECKGLERROR + qglDisable((vid_multisampling.integer && r_transparent_alphatocoverage.integer) ? GL_SAMPLE_ALPHA_TO_COVERAGE_ARB : GL_ALPHA_TEST);CHECKGLERROR } break; case RENDERPATH_D3D9: @@ -2154,6 +2155,14 @@ void GL_AlphaTest(int state) 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; } }