PDGL_API void pdglDepthRange(float nearv, float farv) { if(pglDepthRange) { pglDepthRange(nearv, farv); return; } pglDepthRange=pdglGetProcAddress("glDepthRange"); pglDepthRange(nearv, farv); }
/* ============= R_Clear ============= */ static void R_Clear( int bitMask ) { int bits; if( gl_overview->integer ) pglClearColor( 0.0f, 1.0f, 0.0f, 1.0f ); // green background (Valve rules) else pglClearColor( 0.5f, 0.5f, 0.5f, 1.0f ); bits = GL_DEPTH_BUFFER_BIT; if( RI.drawWorld && r_fastsky->integer ) bits |= GL_COLOR_BUFFER_BIT; if( glState.stencilEnabled ) bits |= GL_STENCIL_BUFFER_BIT; bits &= bitMask; pglClear( bits ); // change ordering for overview if( RI.drawOrtho ) { gldepthmin = 1.0f; gldepthmax = 0.0f; } else { gldepthmin = 0.0f; gldepthmax = 1.0f; } pglDepthFunc( GL_LEQUAL ); pglDepthRange( gldepthmin, gldepthmax ); }
// set depth buffer range static void ogl_DepthRange( FLOAT fMin, FLOAT fMax) { // check consistency ASSERT( _pGfx->gl_eCurrentAPI==GAT_OGL); #ifndef NDEBUG GLfloat fDepths[2]; pglGetFloatv( GL_DEPTH_RANGE, fDepths); OGL_CHECKERROR; ASSERT( fDepths[0]==GFX_fMinDepthRange && fDepths[1]==GFX_fMaxDepthRange); #endif // cached? if( GFX_fMinDepthRange==fMin && GFX_fMaxDepthRange==fMax && gap_bOptimizeStateChanges) return; GFX_fMinDepthRange = fMin; GFX_fMaxDepthRange = fMax; _sfStats.StartTimer(CStatForm::STI_GFXAPI); pglDepthRange( fMin, fMax); OGL_CHECKERROR; _sfStats.StopTimer(CStatForm::STI_GFXAPI); }