mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-23 12:32:09 +00:00
Always use GL_Cull to change cull state
Manually changing cull state can cause later GL_Cull calls to not change the cull state.
This commit is contained in:
parent
39cf21bf54
commit
1ba9e7a45e
5 changed files with 17 additions and 45 deletions
|
@ -710,7 +710,7 @@ void RB_SetGL2D (void) {
|
|||
GLS_SRCBLEND_SRC_ALPHA |
|
||||
GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA );
|
||||
|
||||
qglDisable( GL_CULL_FACE );
|
||||
GL_Cull( CT_TWO_SIDED );
|
||||
qglDisable( GL_CLIP_PLANE0 );
|
||||
|
||||
// set time for 2D shaders
|
||||
|
|
|
@ -211,7 +211,6 @@ void RB_ShadowTessEnd( void ) {
|
|||
// draw the silhouette edges
|
||||
|
||||
GL_Bind( tr.whiteImage );
|
||||
qglEnable( GL_CULL_FACE );
|
||||
GL_State( GLS_SRCBLEND_ONE | GLS_DSTBLEND_ZERO );
|
||||
qglColor3f( 0.2f, 0.2f, 0.2f );
|
||||
|
||||
|
@ -222,28 +221,15 @@ void RB_ShadowTessEnd( void ) {
|
|||
qglEnable( GL_STENCIL_TEST );
|
||||
qglStencilFunc( GL_ALWAYS, 1, 255 );
|
||||
|
||||
// mirrors have the culling order reversed
|
||||
if ( backEnd.viewParms.isMirror ) {
|
||||
qglCullFace( GL_FRONT );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
GL_Cull( CT_BACK_SIDED );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
R_RenderShadowEdges();
|
||||
|
||||
qglCullFace( GL_BACK );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
GL_Cull( CT_FRONT_SIDED );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
} else {
|
||||
qglCullFace( GL_BACK );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
|
||||
qglCullFace( GL_FRONT );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
}
|
||||
R_RenderShadowEdges();
|
||||
|
||||
|
||||
// reenable writing to the color buffer
|
||||
|
@ -272,7 +258,7 @@ void RB_ShadowFinish( void ) {
|
|||
qglStencilFunc( GL_NOTEQUAL, 0, 255 );
|
||||
|
||||
qglDisable (GL_CLIP_PLANE0);
|
||||
qglDisable (GL_CULL_FACE);
|
||||
GL_Cull( CT_TWO_SIDED );
|
||||
|
||||
GL_Bind( tr.whiteImage );
|
||||
|
||||
|
|
|
@ -818,7 +818,7 @@ void RB_SetGL2D (void) {
|
|||
GLS_SRCBLEND_SRC_ALPHA |
|
||||
GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA );
|
||||
|
||||
qglDisable( GL_CULL_FACE );
|
||||
GL_Cull( CT_TWO_SIDED );
|
||||
qglDisable( GL_CLIP_PLANE0 );
|
||||
|
||||
// set time for 2D shaders
|
||||
|
|
|
@ -748,7 +748,7 @@ void FBO_BlitFromTexture(struct image_s *src, ivec4_t inSrcBox, vec2_t inSrcTexS
|
|||
|
||||
Mat4Ortho(0, width, height, 0, 0, 1, projection);
|
||||
|
||||
qglDisable( GL_CULL_FACE );
|
||||
GL_Cull( CT_TWO_SIDED );
|
||||
|
||||
GL_BindToTMU(src, TB_COLORMAP);
|
||||
|
||||
|
|
|
@ -211,7 +211,6 @@ void RB_ShadowTessEnd( void ) {
|
|||
// draw the silhouette edges
|
||||
|
||||
GL_Bind( tr.whiteImage );
|
||||
qglEnable( GL_CULL_FACE );
|
||||
GL_State( GLS_SRCBLEND_ONE | GLS_DSTBLEND_ZERO );
|
||||
qglColor3f( 0.2f, 0.2f, 0.2f );
|
||||
|
||||
|
@ -222,28 +221,15 @@ void RB_ShadowTessEnd( void ) {
|
|||
qglEnable( GL_STENCIL_TEST );
|
||||
qglStencilFunc( GL_ALWAYS, 1, 255 );
|
||||
|
||||
// mirrors have the culling order reversed
|
||||
if ( backEnd.viewParms.isMirror ) {
|
||||
qglCullFace( GL_FRONT );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
GL_Cull( CT_BACK_SIDED );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
R_RenderShadowEdges();
|
||||
|
||||
qglCullFace( GL_BACK );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
GL_Cull( CT_FRONT_SIDED );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
} else {
|
||||
qglCullFace( GL_BACK );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_INCR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
|
||||
qglCullFace( GL_FRONT );
|
||||
qglStencilOp( GL_KEEP, GL_KEEP, GL_DECR );
|
||||
|
||||
R_RenderShadowEdges();
|
||||
}
|
||||
R_RenderShadowEdges();
|
||||
|
||||
|
||||
// reenable writing to the color buffer
|
||||
|
@ -272,7 +258,7 @@ void RB_ShadowFinish( void ) {
|
|||
qglStencilFunc( GL_NOTEQUAL, 0, 255 );
|
||||
|
||||
qglDisable (GL_CLIP_PLANE0);
|
||||
qglDisable (GL_CULL_FACE);
|
||||
GL_Cull( CT_TWO_SIDED );
|
||||
|
||||
GL_Bind( tr.whiteImage );
|
||||
|
||||
|
|
Loading…
Reference in a new issue