Ignore:
Timestamp:
06/27/08 13:33:46 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderState.cpp

    r2800 r2801  
    1212mAlphaTestEnabled(false),  
    1313mTexturesEnabled(false),  
    14 mMode(RENDER)  
     14mMode(RENDER), 
     15mIsDepthPass(false) 
    1516{ 
    1617        Reset();  
     
    2930        if (mode == QUERY) 
    3031        { 
    31                 //glDisableClientState(GL_NORMAL_ARRAY); 
    32                 glDisable(GL_LIGHTING); 
    33                 glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); 
     32                if (!mIsDepthPass) 
     33                { 
     34                        glDisable(GL_LIGHTING); 
     35                        glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); 
     36                } 
     37 
    3438                glDepthMask(GL_FALSE); 
    3539 
     
    4145                //-- restore render state 
    4246 
    43                 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); 
     47                if (!mIsDepthPass) 
     48                { 
     49                        glEnable(GL_LIGHTING); 
     50                        glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); 
     51                } 
     52 
    4453                glDepthMask(GL_TRUE); 
    45                 glEnable(GL_LIGHTING); 
    4654        } 
    4755 
     
    5260void RenderState::SetState(bool texturing, bool alphaTest) 
    5361{ 
    54         if (mTexturesEnabled && !texturing)  
    55         { 
    56                 mTexturesEnabled = false; 
    57                 glDisable(GL_TEXTURE_2D); 
    58                 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
    59         } 
    60         else if (!mTexturesEnabled && texturing) 
    61         { 
    62                 mTexturesEnabled = true; 
    63                 //glEnable(GL_TEXTURE_2D); 
    64                 //glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
    65         } 
    66  
    6762        if (mAlphaTestEnabled && !alphaTest)  
    6863        { 
     
    7368        { 
    7469                mAlphaTestEnabled = true; 
    75                 //glEnable(GL_ALPHA_TEST); 
    76                 //glAlphaFunc(GL_GEQUAL, 0.5f); 
     70                glEnable(GL_ALPHA_TEST); 
     71        } 
     72 
     73        // allow only alpha textures in depth pass 
     74        if (mTexturesEnabled &&  
     75                (!texturing || mIsDepthPass && !mAlphaTestEnabled)) 
     76        { 
     77                mTexturesEnabled = false; 
     78                glDisable(GL_TEXTURE_2D); 
     79                glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
     80        } 
     81        else if (!mTexturesEnabled && texturing) 
     82        { 
     83                if (!mIsDepthPass || mAlphaTestEnabled) 
     84                { 
     85                        mTexturesEnabled = true; 
     86                        glEnable(GL_TEXTURE_2D); 
     87                        glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
     88                } 
    7789        } 
    7890} 
Note: See TracChangeset for help on using the changeset viewer.