This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit c5285014cf4123e5f8eef1e4a15be7ce5db21a88
Author: m4n4t4...@gmail.com 
<m4n4t4...@gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date:   Sat Nov 29 10:24:38 2014 +0000

    All: Rend2: Some culling fixes
---
 MP/code/rend2/tr_backend.c |  2 +-
 MP/code/rend2/tr_init.c    |  2 ++
 MP/code/rend2/tr_shade.c   | 15 ++++++++++++++-
 SP/code/rend2/tr_backend.c |  2 +-
 SP/code/rend2/tr_init.c    |  2 ++
 SP/code/rend2/tr_shade.c   | 15 ++++++++++++++-
 6 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/MP/code/rend2/tr_backend.c b/MP/code/rend2/tr_backend.c
index 8543e00..e372f12 100644
--- a/MP/code/rend2/tr_backend.c
+++ b/MP/code/rend2/tr_backend.c
@@ -135,7 +135,7 @@ void GL_Cull( int cullType ) {
        {
                qboolean cullFront;
 
-               if ( glState.faceCulling == CT_TWO_SIDED )
+               if ( glState.faceCulling == CT_TWO_SIDED || glState.faceCulling 
== -1 )
                {
                        qglEnable( GL_CULL_FACE );
                }
diff --git a/MP/code/rend2/tr_init.c b/MP/code/rend2/tr_init.c
index a3bf09e..0fd6310 100644
--- a/MP/code/rend2/tr_init.c
+++ b/MP/code/rend2/tr_init.c
@@ -1020,6 +1020,8 @@ void GL_SetDefaultState( void ) {
        //
        glState.glStateBits = GLS_DEPTHTEST_DISABLE | GLS_DEPTHMASK_TRUE;
        glState.storedGlState = 0;
+       glState.faceCulling = CT_TWO_SIDED;
+       glState.faceCullFront = CT_FRONT_SIDED;
 
        glState.currentProgram = 0;
        qglUseProgramObjectARB(0);
diff --git a/MP/code/rend2/tr_shade.c b/MP/code/rend2/tr_shade.c
index bd64b84..e643b63 100644
--- a/MP/code/rend2/tr_shade.c
+++ b/MP/code/rend2/tr_shade.c
@@ -1289,7 +1289,20 @@ static void RB_IterateStagesGeneric( shaderCommands_t 
*input )
                        GLSL_SetUniformFloat(sp, UNIFORM_FOGEYET, eyeT);
                }
 
-               GL_State( pStage->stateBits );
+               {
+                       unsigned int stateBits = pStage->stateBits;
+                       
+                       if (tess.shader->sort == SS_OPAQUE && 
r_depthPrepass->integer && !backEnd.depthFill && !(backEnd.refdef.rdflags & 
RDF_NOWORLDMODEL))
+                       {
+                               if (!(stateBits & GLS_DEPTHMASK_TRUE) && 
!(stateBits & GLS_DEPTHTEST_DISABLE) && (stateBits & GLS_DEPTHFUNC_BITS) != 
GLS_DEPTHFUNC_GREATER)
+                               {
+                                       stateBits &= ~GLS_DEPTHFUNC_BITS;
+                                       stateBits |= GLS_DEPTHMASK_TRUE | 
GLS_DEPTHFUNC_EQUAL;
+                               }
+                       }
+ 
+                       GL_State( stateBits );
+               }
 
                {
                        vec4_t baseColor;
diff --git a/SP/code/rend2/tr_backend.c b/SP/code/rend2/tr_backend.c
index b6086d2..f804171 100644
--- a/SP/code/rend2/tr_backend.c
+++ b/SP/code/rend2/tr_backend.c
@@ -135,7 +135,7 @@ void GL_Cull( int cullType ) {
        {
                qboolean cullFront;
 
-               if ( glState.faceCulling == CT_TWO_SIDED )
+               if ( glState.faceCulling == CT_TWO_SIDED || glState.faceCulling 
== -1 )
                {
                        qglEnable( GL_CULL_FACE );
                }
diff --git a/SP/code/rend2/tr_init.c b/SP/code/rend2/tr_init.c
index 0e99183..86b1995 100644
--- a/SP/code/rend2/tr_init.c
+++ b/SP/code/rend2/tr_init.c
@@ -1025,6 +1025,8 @@ void GL_SetDefaultState( void ) {
        //
        glState.glStateBits = GLS_DEPTHTEST_DISABLE | GLS_DEPTHMASK_TRUE;
        glState.storedGlState = 0;
+       glState.faceCulling = CT_TWO_SIDED;
+       glState.faceCullFront = CT_FRONT_SIDED;
 
        glState.currentProgram = 0;
        qglUseProgramObjectARB(0);
diff --git a/SP/code/rend2/tr_shade.c b/SP/code/rend2/tr_shade.c
index cd4cafb..8aa0071 100644
--- a/SP/code/rend2/tr_shade.c
+++ b/SP/code/rend2/tr_shade.c
@@ -1283,7 +1283,20 @@ static void RB_IterateStagesGeneric( shaderCommands_t 
*input )
                        GLSL_SetUniformFloat(sp, UNIFORM_FOGEYET, eyeT);
                }
 
-               GL_State( pStage->stateBits );
+               {
+                       unsigned int stateBits = pStage->stateBits;
+                       
+                       if (tess.shader->sort == SS_OPAQUE && 
r_depthPrepass->integer && !backEnd.depthFill && !(backEnd.refdef.rdflags & 
RDF_NOWORLDMODEL))
+                       {
+                               if (!(stateBits & GLS_DEPTHMASK_TRUE) && 
!(stateBits & GLS_DEPTHTEST_DISABLE) && (stateBits & GLS_DEPTHFUNC_BITS) != 
GLS_DEPTHFUNC_GREATER)
+                               {
+                                       stateBits &= ~GLS_DEPTHFUNC_BITS;
+                                       stateBits |= GLS_DEPTHMASK_TRUE | 
GLS_DEPTHFUNC_EQUAL;
+                               }
+                       }
+ 
+                       GL_State( stateBits );
+               }
 
                {
                        vec4_t baseColor;

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/iortcw.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to