source: GTP/trunk/App/Demos/Vis/FriendlyCulling/src/RenderState.cpp @ 2800

Revision 2800, 1.5 KB checked in by mattausch, 16 years ago (diff)

friendly culling debug version with timers, no materials

Line 
1#include "RenderState.h"
2#include "glInterface.h"
3#include "Geometry.h"
4#include "Material.h"
5
6
7namespace CHCDemoEngine
8{
9
10
11RenderState::RenderState():
12mAlphaTestEnabled(false),
13mTexturesEnabled(false),
14mMode(RENDER)
15{
16        Reset();
17}
18
19       
20bool RenderState::SetState(Mode mode)
21{
22        ///////////
23        //-- just change the modewhen necessary
24
25        if (mode == mMode) return false;
26
27        mMode = mode;
28
29        if (mode == QUERY)
30        {
31                //glDisableClientState(GL_NORMAL_ARRAY);
32                glDisable(GL_LIGHTING);
33                glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
34                glDepthMask(GL_FALSE);
35
36                SetState(false, false);
37        }
38        else // mode returns to render
39        {
40                /////////////
41                //-- restore render state
42
43                glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
44                glDepthMask(GL_TRUE);
45                glEnable(GL_LIGHTING);
46        }
47
48        return true;
49}
50
51       
52void RenderState::SetState(bool texturing, bool alphaTest)
53{
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
67        if (mAlphaTestEnabled && !alphaTest)
68        {
69                mAlphaTestEnabled = false;
70                glDisable(GL_ALPHA_TEST);
71        }
72        else if (!mAlphaTestEnabled && alphaTest)
73        {
74                mAlphaTestEnabled = true;
75                //glEnable(GL_ALPHA_TEST);
76                //glAlphaFunc(GL_GEQUAL, 0.5f);
77        }
78}
79
80
81void RenderState::Reset()
82{
83        mCurrentVboId = -1;
84        SetState(false, false);
85        SetState(RENDER);
86}
87
88
89}
Note: See TracBrowser for help on using the repository browser.