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