]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_backend.c
fix missing .string message fielddef
[xonotic/darkplaces.git] / gl_backend.c
index dc46cc719dcd21016f55b6e36522f0dced00ab9d..e8d2e6408dd4dc597c2a52bfbb9dbb86e4ec4c10 100644 (file)
@@ -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;
                }
        }