Class for optimizing calls to openGL states, by caching old ones. More...
#include <driver_opengl_states.h>
Public Types | |
| enum | TCullMode { CCW = 0, CW } |
Public Member Functions | |
| CDriverGLStates () | |
| Constructor. no-op. | |
| void | init (bool supportTextureCubeMap, bool supportTextureRectangle, uint maxLight) |
| void | forceDefaults (uint nbTextureStages) |
| Reset all OpenGL states of interest to default, and update caching. This don't apply to light. | |
| void | blendFunc (GLenum src, GLenum dst) |
| glBlendFunc. | |
| void | depthFunc (GLenum zcomp) |
| glDepthFunc. | |
| void | alphaFunc (float threshold) |
| glAlphaFunc | |
| void | stencilFunc (GLenum stencilFunc, GLint ref, GLuint mask) |
| glStencilFunc | |
| void | stencilOp (GLenum fail, GLenum zfail, GLenum zpass) |
| glStencilOp | |
| void | stencilMask (uint mask) |
| glStencilMask | |
| void | bindARBVertexBuffer (uint objectID) |
| void | forceBindARBVertexBuffer (uint objectID) |
| uint | getCurrBoundARBVertexBuffer () const |
| void | setCullMode (TCullMode cullMode) |
| TCullMode | getCullMode () const |
enable if !0 | |
| void | enableBlend (uint enable) |
| void | enableFog (uint enable) |
| void | enableCullFace (uint enable) |
| void | enableAlphaTest (uint enable) |
| enable and set good AlphaFunc. | |
| void | enableZWrite (uint enable) |
| void | enableLighting (uint enable) |
| bool | isLightingEnabled () const |
| void | enableLight (uint num, uint enable) |
| enable/disable specific light. num must be < "maxLight" param set in init() | |
| bool | isLightEnabled (uint num) const |
| void | enableStencilTest (bool enable) |
| enable/disable stencil test | |
| bool | isStencilTestEnabled () const |
Material setting. | |
| void | setEmissive (uint32 packedColor, const GLfloat color[4]) |
| void | setAmbient (uint32 packedColor, const GLfloat color[4]) |
| void | setDiffuse (uint32 packedColor, const GLfloat color[4]) |
| void | setSpecular (uint32 packedColor, const GLfloat color[4]) |
| void | setShininess (float shin) |
| void | setVertexColorLighted (bool enable) |
| void | setDepthRange (float znear, float zfar) |
| void | getDepthRange (float &znear, float &zfar) const |
| void | setZBias (float zbias) |
| Set z-bias NB : this is done in window coordinate, not in world coordinate as with CMaterial. | |
| void | setTexGenMode (uint stage, GLint mode) |
Vertex Array enabling. | |
| void | enableVertexArray (bool enable) |
| void | enableNormalArray (bool enable) |
| void | enableWeightArray (bool enable) |
| void | enableColorArray (bool enable) |
| void | enableSecondaryColorArray (bool enable) |
| void | clientActiveTextureARB (uint stage) |
| same as glClientActiveTextureARB(). useful for enableTexCoordArray. | |
| void | enableTexCoordArray (bool enable) |
| NB: caller must call correct clientActiveTextureARB() before. | |
| void | enableVertexAttribArray (uint glIndex, bool enable) |
| For vertexProgram. | |
| void | enableVertexAttribArrayForEXTVertexShader (uint glIndex, bool enable, uint *variants) |
| Same as enableVertexAttribArray, but for EXTVertexShader (need variant ID). | |
| void | enableVertexAttribArrayARB (uint glIndex, bool enable) |
Private Types | |
| enum | { MaxLight = 8 } |
Private Member Functions | |
| void | updateDepthRange () |
Private Attributes | |
| bool | _CurBlend |
| bool | _CurFog |
| bool | _CurCullFace |
| bool | _CurAlphaTest |
| bool | _CurLighting |
| bool | _CurZWrite |
| bool | _CurStencilTest |
| GLenum | _CurBlendSrc |
| GLenum | _CurBlendDst |
| GLenum | _CurDepthFunc |
| GLenum | _CurStencilFunc |
| GLint | _CurStencilRef |
| GLuint | _CurStencilMask |
| GLenum | _CurStencilOpFail |
| GLenum | _CurStencilOpZFail |
| GLenum | _CurStencilOpZPass |
| GLuint | _CurStencilWriteMask |
| float | _CurAlphaTestThreshold |
| uint32 | _CurEmissive |
| uint32 | _CurAmbient |
| uint32 | _CurDiffuse |
| uint32 | _CurSpecular |
| float | _CurShininess |
| bool | _VertexColorLighted |
| bool | _TextureCubeMapSupported |
| bool | _TextureRectangleSupported |
| uint | _CurrentActiveTextureARB |
| TTextureMode | _TextureMode [8] |
| bool | _VertexArrayEnabled |
| bool | _NormalArrayEnabled |
| bool | _WeightArrayEnabled |
| bool | _ColorArrayEnabled |
| bool | _SecondaryColorArrayEnabled |
| uint | _CurrentClientActiveTextureARB |
| bool | _TexCoordArrayEnabled [8] |
| bool | _VertexAttribArrayEnabled [CVertexBuffer::NumValue] |
| GLint | _TexGenMode [8] |
| uint | _CurrARBVertexBuffer |
| float | _DepthRangeNear |
| float | _DepthRangeFar |
| float | _ZBias |
| TCullMode | _CullMode |
| uint | _MaxDriverLight |
| bool | _CurLight [MaxLight] |
Texture Mode setting. | |
|
| |
| enum | TTextureMode { TextureDisabled, Texture2D, TextureRect, TextureCubeMap, TextureModeCount } |
| void | activeTextureARB (uint stage) |
| same as glActiveTextureARB(). useful for setTextureMode. | |
| void | forceActiveTextureARB (uint stage) |
| same as active texture arb, but with no cache check | |
| uint | getActiveTextureARB () const |
| get active texture | |
| void | setTextureMode (TTextureMode texMode) |
| change if needed the texture mode of the current active Texture ARB. | |
| TTextureMode | getTextureMode () const |
| void | resetTextureMode () |
Class for optimizing calls to openGL states, by caching old ones.
All following call with OpenGL must be done with only one instance of this class:
Definition at line 76 of file driver_opengl_states.h.
anonymous enum [private] |
Definition at line 250 of file driver_opengl_states.h.
Definition at line 190 of file driver_opengl_states.h.
Definition at line 142 of file driver_opengl_states.h.
| NL3D::CDriverGLStates::CDriverGLStates | ( | ) |
Constructor. no-op.
Definition at line 36 of file driver_opengl_states.cpp.
References _CullMode, _CurrARBVertexBuffer, _DepthRangeFar, _DepthRangeNear, _MaxDriverLight, _TextureCubeMapSupported, _ZBias, CCW, and H_AUTO_OGL.
| void NL3D::CDriverGLStates::activeTextureARB | ( | uint | stage | ) |
same as glActiveTextureARB(). useful for setTextureMode.
Definition at line 725 of file driver_opengl_states.cpp.
References _CurrentActiveTextureARB, H_AUTO_OGL, and nglActiveTextureARB.
Referenced by NL3D::CDriverGL::activateTexture(), NL3D::CDriverGL::bindTextureWithMode(), NL3D::CDriverGL::checkTextureOn(), NL3D::CDriverGL::copyFrameBufferToTexture(), NL3D::CDriverGL::disableUserTextureMatrix(), NL3D::CDriverGL::endLightMapMultiPass(), NL3D::CDriverGL::forceActivateTexEnvColor(), NL3D::CDriverGL::forceActivateTexEnvMode(), NL3D::CDriverGL::initEMBM(), NL3D::CDriverGL::resetTextureShaders(), NL3D::CDriverGL::setEMBMMatrix(), NL3D::CDriverGL::setMatrix2DForTextureOffsetAddrMode(), NL3D::CDriverGL::setTextureEnvFunction(), NL3D::CDriverGL::setTextureShaders(), NL3D::CDriverGL::setupCloudPass(), NL3D::CDriverGL::setupLightMapPass(), NL3D::CDriverGL::setupPPLNoSpecPass(), NL3D::CDriverGL::setupPPLPass(), NL3D::CDriverGL::setupSpecularBegin(), NL3D::CDriverGL::setupSpecularEnd(), NL3D::CDriverGL::setupSpecularPass(), NL3D::CDriverGL::setupUserTextureMatrix(), NL3D::CDriverGL::setupWaterPassNV20(), and NL3D::CDriverGL::uploadTexture().
| void NL3D::CDriverGLStates::alphaFunc | ( | float | threshold | ) |
glAlphaFunc
Definition at line 395 of file driver_opengl_states.cpp.
References _CurAlphaTestThreshold, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::bindARBVertexBuffer | ( | uint | objectID | ) |
Definition at line 989 of file driver_opengl_states.cpp.
References _CurrARBVertexBuffer, forceBindARBVertexBuffer(), and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::activeVertexBuffer(), NL3D::CVertexBufferHardARB::lock(), NL3D::CDriverGL::setupGlArraysForARBVertexProgram(), NL3D::CDriverGL::setupGlArraysForEXTVertexShader(), NL3D::CDriverGL::setupGlArraysForNVVertexProgram(), NL3D::CDriverGL::setupGlArraysStd(), NL3D::CDriverGL::setupUVPtr(), and NL3D::CVertexBufferHardARB::unlock().
| void NL3D::CDriverGLStates::blendFunc | ( | GLenum | src, | |
| GLenum | dst | |||
| ) |
glBlendFunc.
Definition at line 361 of file driver_opengl_states.cpp.
References _CurBlendDst, _CurBlendSrc, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupLightMapPass(), NL3D::CDriverGL::setupMaterial(), and NL3D::CDriverGL::setupSpecularPass().
| void NL3D::CDriverGLStates::clientActiveTextureARB | ( | uint | stage | ) |
same as glClientActiveTextureARB(). useful for enableTexCoordArray.
Definition at line 832 of file driver_opengl_states.cpp.
References _CurrentClientActiveTextureARB, H_AUTO_OGL, and nglClientActiveTextureARB.
Referenced by enableVertexAttribArrayForEXTVertexShader(), NL3D::CDriverGL::setupGlArraysForEXTVertexShader(), NL3D::CDriverGL::setupUVPtr(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
| void NL3D::CDriverGLStates::depthFunc | ( | GLenum | zcomp | ) |
glDepthFunc.
Definition at line 378 of file driver_opengl_states.cpp.
References _CurDepthFunc, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::enableAlphaTest | ( | uint | enable | ) |
enable and set good AlphaFunc.
Definition at line 236 of file driver_opengl_states.cpp.
References _CurAlphaTest, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::enableBlend | ( | uint | enable | ) |
Definition at line 196 of file driver_opengl_states.cpp.
References _CurBlend, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupLightMapPass(), NL3D::CDriverGL::setupMaterial(), and NL3D::CDriverGL::setupSpecularPass().
| void NL3D::CDriverGLStates::enableColorArray | ( | bool | enable | ) |
Definition at line 793 of file driver_opengl_states.cpp.
References _ColorArrayEnabled, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::beginLightMapMultiPass(), enableVertexAttribArrayForEXTVertexShader(), NL3D::CDriverGL::resetLightMapVertexSetup(), NL3D::CDriverGL::setupGlArraysForNVVertexProgram(), NL3D::CDriverGL::setupGlArraysStd(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
| void NL3D::CDriverGLStates::enableCullFace | ( | uint | enable | ) |
Definition at line 216 of file driver_opengl_states.cpp.
References _CurCullFace, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::enableFog | ( | uint | enable | ) |
Definition at line 959 of file driver_opengl_states.cpp.
References _CurFog, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::enableFog(), and NL3D::CDriverGL::setupMaterial().
enable/disable specific light. num must be < "maxLight" param set in init()
Definition at line 285 of file driver_opengl_states.cpp.
References _CurLight, _MaxDriverLight, GLenum(), and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::enableLightInternal().
| void NL3D::CDriverGLStates::enableLighting | ( | uint | enable | ) |
Definition at line 263 of file driver_opengl_states.cpp.
References _CurLighting, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::beginLightMapMultiPass(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::enableNormalArray | ( | bool | enable | ) |
Definition at line 763 of file driver_opengl_states.cpp.
References _NormalArrayEnabled, and H_AUTO_OGL.
Referenced by enableVertexAttribArrayForEXTVertexShader(), NL3D::CDriverGL::setupGlArraysStd(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
| void NL3D::CDriverGLStates::enableSecondaryColorArray | ( | bool | enable | ) |
Definition at line 810 of file driver_opengl_states.cpp.
References _SecondaryColorArrayEnabled, H_AUTO_OGL, and nglSecondaryColor3ubEXT.
Referenced by NL3D::CDriverGL::setupGlArraysForNVVertexProgram(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
| void NL3D::CDriverGLStates::enableStencilTest | ( | bool | enable | ) |
enable/disable stencil test
Definition at line 340 of file driver_opengl_states.cpp.
References _CurStencilTest, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::enableStencilTest().
| void NL3D::CDriverGLStates::enableTexCoordArray | ( | bool | enable | ) |
NB: caller must call correct clientActiveTextureARB() before.
Definition at line 843 of file driver_opengl_states.cpp.
References _CurrentClientActiveTextureARB, _TexCoordArrayEnabled, and H_AUTO_OGL.
Referenced by enableVertexAttribArrayForEXTVertexShader(), NL3D::CDriverGL::setupUVPtr(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
| void NL3D::CDriverGLStates::enableVertexArray | ( | bool | enable | ) |
Definition at line 748 of file driver_opengl_states.cpp.
References _VertexArrayEnabled, and H_AUTO_OGL.
Referenced by enableVertexAttribArrayForEXTVertexShader(), NL3D::CDriverGL::setupGlArraysStd(), NL3D::CDriverGL::toggleGlArraysForARBVertexProgram(), NL3D::CDriverGL::toggleGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
For vertexProgram.
do not check if supported or not.
Definition at line 859 of file driver_opengl_states.cpp.
References _VertexAttribArrayEnabled, GL_VERTEX_ATTRIB_ARRAY0_NV, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupGlArraysForNVVertexProgram(), and NL3D::CDriverGL::toggleGlArraysForNVVertexProgram().
Definition at line 875 of file driver_opengl_states.cpp.
References _VertexAttribArrayEnabled, H_AUTO_OGL, nglDisableVertexAttribArrayARB, and nglEnableVertexAttribArrayARB.
Referenced by NL3D::CDriverGL::setupGlArraysForARBVertexProgram(), and NL3D::CDriverGL::toggleGlArraysForARBVertexProgram().
| void NL3D::CDriverGLStates::enableVertexAttribArrayForEXTVertexShader | ( | uint | glIndex, | |
| bool | enable, | |||
| uint * | variants | |||
| ) |
Same as enableVertexAttribArray, but for EXTVertexShader (need variant ID).
| firstVariantSymbol | the first variant symbol |
Definition at line 892 of file driver_opengl_states.cpp.
References _VertexAttribArrayEnabled, clientActiveTextureARB(), enableColorArray(), enableNormalArray(), enableTexCoordArray(), enableVertexArray(), NL3D::CDriverGL::EVSFogCoordsVariant, NL3D::CDriverGL::EVSPaletteSkinVariant, NL3D::CDriverGL::EVSSecondaryColorVariant, NL3D::CDriverGL::EVSSkinWeightVariant, H_AUTO_OGL, nglDisableVariantClientStateEXT, nglEnableVariantClientStateEXT, and nlstop.
Referenced by NL3D::CDriverGL::setupGlArraysForEXTVertexShader(), and NL3D::CDriverGL::toggleGlArraysForEXTVertexShader().
| void NL3D::CDriverGLStates::enableWeightArray | ( | bool | enable | ) |
Definition at line 778 of file driver_opengl_states.cpp.
References _WeightArrayEnabled, and H_AUTO_OGL.
| void NL3D::CDriverGLStates::enableZWrite | ( | uint | enable | ) |
Definition at line 319 of file driver_opengl_states.cpp.
References _CurZWrite, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::clearZBuffer(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::forceActiveTextureARB | ( | uint | stage | ) |
same as active texture arb, but with no cache check
Definition at line 738 of file driver_opengl_states.cpp.
References _CurrentActiveTextureARB, H_AUTO_OGL, and nglActiveTextureARB.
| void NL3D::CDriverGLStates::forceBindARBVertexBuffer | ( | uint | objectID | ) |
Definition at line 981 of file driver_opengl_states.cpp.
References _CurrARBVertexBuffer, GL_ARRAY_BUFFER_ARB, H_AUTO_OGL, and nglBindBufferARB.
Referenced by bindARBVertexBuffer(), NL3D::CVertexArrayRangeARB::createVBHardGL(), NL3D::CVertexBufferHardARB::lock(), NL3D::CVertexBufferHardARB::unlock(), and NL3D::CVertexBufferHardARB::~CVertexBufferHardARB().
| void NL3D::CDriverGLStates::forceDefaults | ( | uint | nbTextureStages | ) |
Reset all OpenGL states of interest to default, and update caching. This don't apply to light.
Definition at line 85 of file driver_opengl_states.cpp.
References _CullMode, _CurAlphaTest, _CurAlphaTestThreshold, _CurAmbient, _CurBlend, _CurBlendDst, _CurBlendSrc, _CurCullFace, _CurDepthFunc, _CurDiffuse, _CurEmissive, _CurFog, _CurLighting, _CurrentActiveTextureARB, _CurrentClientActiveTextureARB, _CurShininess, _CurSpecular, _CurStencilFunc, _CurStencilMask, _CurStencilOpFail, _CurStencilOpZFail, _CurStencilOpZPass, _CurStencilRef, _CurStencilTest, _CurStencilWriteMask, _CurZWrite, _DepthRangeFar, _DepthRangeNear, _TexGenMode, _TextureCubeMapSupported, _TextureMode, _TextureRectangleSupported, _VertexColorLighted, _ZBias, CCW, GL_TEXTURE_RECTANGLE_NV, H_AUTO_OGL, nglActiveTextureARB, nglClientActiveTextureARB, and TextureDisabled.
Referenced by NL3D::CDriverGL::swapBuffers().
| uint NL3D::CDriverGLStates::getActiveTextureARB | ( | ) | const [inline] |
get active texture
Definition at line 148 of file driver_opengl_states.h.
References _CurrentActiveTextureARB.
Referenced by NL3D::CDriverGL::checkTextureOn().
| CDriverGLStates::TCullMode NL3D::CDriverGLStates::getCullMode | ( | ) | const |
Definition at line 1014 of file driver_opengl_states.cpp.
References _CullMode, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::getCullMode().
| uint NL3D::CDriverGLStates::getCurrBoundARBVertexBuffer | ( | ) | const [inline] |
Definition at line 188 of file driver_opengl_states.h.
References _CurrARBVertexBuffer.
Referenced by NL3D::CVertexBufferHardARB::~CVertexBufferHardARB().
Definition at line 129 of file driver_opengl_states.h.
References _DepthRangeFar, and _DepthRangeNear.
Referenced by NL3D::CDriverGL::getDepthRange().
| TTextureMode NL3D::CDriverGLStates::getTextureMode | ( | ) | const [inline] |
Definition at line 153 of file driver_opengl_states.h.
References _CurrentActiveTextureARB, and _TextureMode.
Referenced by NL3D::CDriverGL::checkTextureOn().
| void NL3D::CDriverGLStates::init | ( | bool | supportTextureCubeMap, | |
| bool | supportTextureRectangle, | |||
| uint | maxLight | |||
| ) |
Definition at line 50 of file driver_opengl_states.cpp.
References _ColorArrayEnabled, _CurLight, _DepthRangeFar, _DepthRangeNear, _MaxDriverLight, _NormalArrayEnabled, _SecondaryColorArrayEnabled, _TexCoordArrayEnabled, _TextureCubeMapSupported, _TextureRectangleSupported, _VertexArrayEnabled, _VertexAttribArrayEnabled, _WeightArrayEnabled, _ZBias, H_AUTO_OGL, MaxLight, min, and NL3D::CVertexBuffer::NumValue.
Definition at line 308 of file driver_opengl_states.cpp.
References _CurLight, _MaxDriverLight, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::cleanLightSetup().
| bool NL3D::CDriverGLStates::isLightingEnabled | ( | ) | const [inline] |
Definition at line 97 of file driver_opengl_states.h.
References _CurLighting.
| bool NL3D::CDriverGLStates::isStencilTestEnabled | ( | ) | const [inline] |
Definition at line 103 of file driver_opengl_states.h.
References _CurStencilTest.
Referenced by NL3D::CDriverGL::isStencilTestEnabled().
| void NL3D::CDriverGLStates::resetTextureMode | ( | ) |
Definition at line 659 of file driver_opengl_states.cpp.
References _CurrentActiveTextureARB, _TextureCubeMapSupported, _TextureMode, _TextureRectangleSupported, GL_TEXTURE_RECTANGLE_NV, H_AUTO_OGL, and TextureDisabled.
| void NL3D::CDriverGLStates::setAmbient | ( | uint32 | packedColor, | |
| const GLfloat | color[4] | |||
| ) |
Definition at line 478 of file driver_opengl_states.cpp.
References _CurAmbient, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::beginLightMapMultiPass(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setCullMode | ( | TCullMode | cullMode | ) |
Definition at line 1001 of file driver_opengl_states.cpp.
References _CullMode, CCW, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setCullMode().
Definition at line 596 of file driver_opengl_states.cpp.
References _DepthRangeFar, _DepthRangeNear, H_AUTO_OGL, nlassert, and updateDepthRange().
Referenced by NL3D::CDriverGL::setDepthRange().
| void NL3D::CDriverGLStates::setDiffuse | ( | uint32 | packedColor, | |
| const GLfloat | color[4] | |||
| ) |
Definition at line 491 of file driver_opengl_states.cpp.
References _CurDiffuse, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupLightMapPass(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setEmissive | ( | uint32 | packedColor, | |
| const GLfloat | color[4] | |||
| ) |
Definition at line 465 of file driver_opengl_states.cpp.
References _CurEmissive, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupLightMapPass(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setShininess | ( | float | shin | ) |
Definition at line 517 of file driver_opengl_states.cpp.
References _CurShininess, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setSpecular | ( | uint32 | packedColor, | |
| const GLfloat | color[4] | |||
| ) |
Definition at line 504 of file driver_opengl_states.cpp.
References _CurSpecular, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::beginLightMapMultiPass(), and NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setTexGenMode | ( | uint | stage, | |
| GLint | mode | |||
| ) |
Definition at line 611 of file driver_opengl_states.cpp.
References _TexGenMode, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::setTextureEnvFunction(), NL3D::CDriverGL::setupLightMapPass(), NL3D::CDriverGL::setupSpecularBegin(), and NL3D::CDriverGL::setupSpecularEnd().
| void NL3D::CDriverGLStates::setTextureMode | ( | TTextureMode | texMode | ) |
change if needed the texture mode of the current active Texture ARB.
NB: if CubeMap extension not supported, TextureCubeMap <=> TextureDisabled.
Definition at line 676 of file driver_opengl_states.cpp.
References _CurrentActiveTextureARB, _TextureCubeMapSupported, _TextureMode, _TextureRectangleSupported, GL_TEXTURE_RECTANGLE_NV, H_AUTO_OGL, Texture2D, TextureCubeMap, and TextureRect.
Referenced by NL3D::CDriverGL::activateTexture(), NL3D::CDriverGL::bindTextureWithMode(), NL3D::CDriverGL::copyFrameBufferToTexture(), NL3D::CDriverGL::setupSpecularPass(), NL3D::CDriverGL::setupTextureEx(), and NL3D::CDriverGL::uploadTexture().
| void NL3D::CDriverGLStates::setVertexColorLighted | ( | bool | enable | ) |
Definition at line 542 of file driver_opengl_states.cpp.
References _CurDiffuse, _VertexColorLighted, NLMISC::CRGBA::A, NLMISC::CRGBA::B, NL3D::convColor(), NLMISC::CRGBA::G, H_AUTO_OGL, and NLMISC::CRGBA::R.
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::setZBias | ( | float | zbias | ) |
Set z-bias NB : this is done in window coordinate, not in world coordinate as with CMaterial.
Definition at line 582 of file driver_opengl_states.cpp.
References _ZBias, H_AUTO_OGL, and updateDepthRange().
Referenced by NL3D::CDriverGL::setupMaterial().
| void NL3D::CDriverGLStates::stencilFunc | ( | GLenum | stencilFunc, | |
| GLint | ref, | |||
| GLuint | mask | |||
| ) |
glStencilFunc
Definition at line 411 of file driver_opengl_states.cpp.
References _CurStencilFunc, _CurStencilMask, _CurStencilRef, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::stencilFunc().
| void NL3D::CDriverGLStates::stencilMask | ( | uint | mask | ) |
glStencilMask
Referenced by NL3D::CDriverGL::stencilMask().
| void NL3D::CDriverGLStates::stencilOp | ( | GLenum | fail, | |
| GLenum | zfail, | |||
| GLenum | zpass | |||
| ) |
glStencilOp
Definition at line 430 of file driver_opengl_states.cpp.
References _CurStencilOpFail, _CurStencilOpZFail, _CurStencilOpZPass, and H_AUTO_OGL.
Referenced by NL3D::CDriverGL::stencilOp().
| void NL3D::CDriverGLStates::updateDepthRange | ( | ) | [private] |
Definition at line 574 of file driver_opengl_states.cpp.
References _DepthRangeFar, _DepthRangeNear, _ZBias, and H_AUTO_OGL.
Referenced by setDepthRange(), and setZBias().
Definition at line 230 of file driver_opengl_states.h.
Referenced by enableColorArray(), and init().
TCullMode NL3D::CDriverGLStates::_CullMode [private] |
Definition at line 244 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), forceDefaults(), getCullMode(), and setCullMode().
bool NL3D::CDriverGLStates::_CurAlphaTest [private] |
Definition at line 198 of file driver_opengl_states.h.
Referenced by enableAlphaTest(), and forceDefaults().
Definition at line 213 of file driver_opengl_states.h.
Referenced by alphaFunc(), and forceDefaults().
uint32 NL3D::CDriverGLStates::_CurAmbient [private] |
Definition at line 216 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setAmbient().
bool NL3D::CDriverGLStates::_CurBlend [private] |
Definition at line 195 of file driver_opengl_states.h.
Referenced by enableBlend(), and forceDefaults().
GLenum NL3D::CDriverGLStates::_CurBlendDst [private] |
Definition at line 204 of file driver_opengl_states.h.
Referenced by blendFunc(), and forceDefaults().
GLenum NL3D::CDriverGLStates::_CurBlendSrc [private] |
Definition at line 203 of file driver_opengl_states.h.
Referenced by blendFunc(), and forceDefaults().
bool NL3D::CDriverGLStates::_CurCullFace [private] |
Definition at line 197 of file driver_opengl_states.h.
Referenced by enableCullFace(), and forceDefaults().
GLenum NL3D::CDriverGLStates::_CurDepthFunc [private] |
Definition at line 205 of file driver_opengl_states.h.
Referenced by depthFunc(), and forceDefaults().
uint32 NL3D::CDriverGLStates::_CurDiffuse [private] |
Definition at line 217 of file driver_opengl_states.h.
Referenced by forceDefaults(), setDiffuse(), and setVertexColorLighted().
uint32 NL3D::CDriverGLStates::_CurEmissive [private] |
Definition at line 215 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setEmissive().
bool NL3D::CDriverGLStates::_CurFog [private] |
Definition at line 196 of file driver_opengl_states.h.
Referenced by enableFog(), and forceDefaults().
bool NL3D::CDriverGLStates::_CurLight[MaxLight] [private] |
Definition at line 252 of file driver_opengl_states.h.
Referenced by enableLight(), init(), and isLightEnabled().
bool NL3D::CDriverGLStates::_CurLighting [private] |
Definition at line 199 of file driver_opengl_states.h.
Referenced by enableLighting(), forceDefaults(), and isLightingEnabled().
Definition at line 238 of file driver_opengl_states.h.
Referenced by bindARBVertexBuffer(), CDriverGLStates(), forceBindARBVertexBuffer(), and getCurrBoundARBVertexBuffer().
Definition at line 224 of file driver_opengl_states.h.
Referenced by activeTextureARB(), forceActiveTextureARB(), forceDefaults(), getActiveTextureARB(), getTextureMode(), resetTextureMode(), and setTextureMode().
Definition at line 232 of file driver_opengl_states.h.
Referenced by clientActiveTextureARB(), enableTexCoordArray(), and forceDefaults().
float NL3D::CDriverGLStates::_CurShininess [private] |
Definition at line 219 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setShininess().
uint32 NL3D::CDriverGLStates::_CurSpecular [private] |
Definition at line 218 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setSpecular().
GLenum NL3D::CDriverGLStates::_CurStencilFunc [private] |
Definition at line 206 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilFunc().
GLuint NL3D::CDriverGLStates::_CurStencilMask [private] |
Definition at line 208 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilFunc().
GLenum NL3D::CDriverGLStates::_CurStencilOpFail [private] |
Definition at line 209 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilOp().
GLenum NL3D::CDriverGLStates::_CurStencilOpZFail [private] |
Definition at line 210 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilOp().
GLenum NL3D::CDriverGLStates::_CurStencilOpZPass [private] |
Definition at line 211 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilOp().
GLint NL3D::CDriverGLStates::_CurStencilRef [private] |
Definition at line 207 of file driver_opengl_states.h.
Referenced by forceDefaults(), and stencilFunc().
bool NL3D::CDriverGLStates::_CurStencilTest [private] |
Definition at line 201 of file driver_opengl_states.h.
Referenced by enableStencilTest(), forceDefaults(), and isStencilTestEnabled().
GLuint NL3D::CDriverGLStates::_CurStencilWriteMask [private] |
Definition at line 212 of file driver_opengl_states.h.
Referenced by forceDefaults().
bool NL3D::CDriverGLStates::_CurZWrite [private] |
Definition at line 200 of file driver_opengl_states.h.
Referenced by enableZWrite(), and forceDefaults().
float NL3D::CDriverGLStates::_DepthRangeFar [private] |
Definition at line 241 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), forceDefaults(), getDepthRange(), init(), setDepthRange(), and updateDepthRange().
float NL3D::CDriverGLStates::_DepthRangeNear [private] |
Definition at line 240 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), forceDefaults(), getDepthRange(), init(), setDepthRange(), and updateDepthRange().
uint NL3D::CDriverGLStates::_MaxDriverLight [private] |
Definition at line 251 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), enableLight(), init(), and isLightEnabled().
Definition at line 228 of file driver_opengl_states.h.
Referenced by enableNormalArray(), and init().
Definition at line 231 of file driver_opengl_states.h.
Referenced by enableSecondaryColorArray(), and init().
bool NL3D::CDriverGLStates::_TexCoordArrayEnabled[8] [private] |
Definition at line 233 of file driver_opengl_states.h.
Referenced by enableTexCoordArray(), and init().
GLint NL3D::CDriverGLStates::_TexGenMode[8] [private] |
Definition at line 236 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setTexGenMode().
Definition at line 222 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), forceDefaults(), init(), resetTextureMode(), and setTextureMode().
TTextureMode NL3D::CDriverGLStates::_TextureMode[8] [private] |
Definition at line 225 of file driver_opengl_states.h.
Referenced by forceDefaults(), getTextureMode(), resetTextureMode(), and setTextureMode().
Definition at line 223 of file driver_opengl_states.h.
Referenced by forceDefaults(), init(), resetTextureMode(), and setTextureMode().
Definition at line 227 of file driver_opengl_states.h.
Referenced by enableVertexArray(), and init().
bool NL3D::CDriverGLStates::_VertexAttribArrayEnabled[CVertexBuffer::NumValue] [private] |
Definition at line 234 of file driver_opengl_states.h.
Referenced by enableVertexAttribArray(), enableVertexAttribArrayARB(), enableVertexAttribArrayForEXTVertexShader(), and init().
Definition at line 220 of file driver_opengl_states.h.
Referenced by forceDefaults(), and setVertexColorLighted().
Definition at line 229 of file driver_opengl_states.h.
Referenced by enableWeightArray(), and init().
float NL3D::CDriverGLStates::_ZBias [private] |
Definition at line 242 of file driver_opengl_states.h.
Referenced by CDriverGLStates(), forceDefaults(), init(), setZBias(), and updateDepthRange().
1.6.1