[iortcw] 257/497: All: Rend2: Some culling fixes
Simon McVittie
smcv at debian.org
Fri Sep 8 10:37:03 UTC 2017
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: M4N4T4RMS at gmail.com <M4N4T4RMS at 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
More information about the Pkg-games-commits
mailing list