GL3: Cleanup

--HG--
branch : opengl3
hg/feature/opengl3
kaetemi 11 years ago
parent a37d7a3127
commit 9df1935f5e

@ -387,7 +387,7 @@ bool CDriverGL3::setupDisplay()
_CurrScissor.initFullScreen(); _CurrScissor.initFullScreen();
_ForceNormalize = false; _ForceNormalize = false;
// Setup defaults for blend, lighting ... // Setup defaults for blend, lighting ...
_DriverGLStates.forceDefaults(inlGetNumTextStages()); _DriverGLStates.forceDefaults(IDRV_MAT_MAXTEXTURES);
// Default delta camera pos. // Default delta camera pos.
_PZBCameraPos = CVector::Null; _PZBCameraPos = CVector::Null;
@ -411,7 +411,7 @@ bool CDriverGL3::setupDisplay()
// Activate the default texture environnments for all stages. // Activate the default texture environnments for all stages.
//=========================================================== //===========================================================
for (uint stage = 0; stage < inlGetNumTextStages(); ++stage) for (uint stage = 0; stage < IDRV_MAT_MAXTEXTURES; ++stage)
{ {
// init no texture. // init no texture.
_CurrentTexture[stage] = NULL; _CurrentTexture[stage] = NULL;
@ -613,7 +613,7 @@ bool CDriverGL3::swapBuffers()
//=========================================================== //===========================================================
// This is not a requirement, but it ensure a more stable state each frame. // This is not a requirement, but it ensure a more stable state each frame.
// (well, maybe the good reason is "it hides much more the bugs" :o)). // (well, maybe the good reason is "it hides much more the bugs" :o)).
for (uint stage = 0; stage < inlGetNumTextStages(); ++stage) for (uint stage = 0; stage < IDRV_MAT_MAXTEXTURES; ++stage)
{ {
// init no texture. // init no texture.
_CurrentTexture[stage]= NULL; _CurrentTexture[stage]= NULL;
@ -625,7 +625,7 @@ bool CDriverGL3::swapBuffers()
// Activate the default material. // Activate the default material.
//=========================================================== //===========================================================
// Same reasoning as textures :) // Same reasoning as textures :)
_DriverGLStates.forceDefaults(inlGetNumTextStages()); _DriverGLStates.forceDefaults(IDRV_MAT_MAXTEXTURES);
_CurrentMaterial= NULL; _CurrentMaterial= NULL;
@ -1132,7 +1132,7 @@ void CDriverGL3::setMatrix2DForTextureOffsetAddrMode(const uint stage, const flo
if (!supportTextureShaders()) return; if (!supportTextureShaders()) return;
//nlassert(supportTextureShaders()); //nlassert(supportTextureShaders());
nlassert(stage < inlGetNumTextStages()); nlassert(stage < IDRV_MAT_MAXTEXTURES);
_DriverGLStates.activeTexture(stage); _DriverGLStates.activeTexture(stage);
//glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, mat); //glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV, mat);
@ -1187,7 +1187,7 @@ NLMISC::CRGBA CDriverGL3::getBlendConstantColor() const
uint CDriverGL3::getNbTextureStages() const uint CDriverGL3::getNbTextureStages() const
{ {
H_AUTO_OGL(CDriverGL3_getNbTextureStages) H_AUTO_OGL(CDriverGL3_getNbTextureStages)
return inlGetNumTextStages(); return IDRV_MAT_MAXTEXTURES;
} }
// *************************************************************************** // ***************************************************************************
@ -1807,8 +1807,8 @@ void CDriverGL3::stencilMask(uint mask)
// *************************************************************************** // ***************************************************************************
void CDriverGL3::getNumPerStageConstant(uint &lightedMaterial, uint &unlightedMaterial) const void CDriverGL3::getNumPerStageConstant(uint &lightedMaterial, uint &unlightedMaterial) const
{ {
lightedMaterial = inlGetNumTextStages(); lightedMaterial = IDRV_MAT_MAXTEXTURES;
unlightedMaterial = inlGetNumTextStages(); unlightedMaterial = IDRV_MAT_MAXTEXTURES;
} }
// *************************************************************************** // ***************************************************************************

@ -1288,9 +1288,6 @@ private:
static void initCausticCubeMap(); static void initCausticCubeMap();
// @} // @}
/// Same as getNbTextureStages(), but faster because inline, and not virtual!!
uint inlGetNumTextStages() const { return _Extensions.NbFragmentTextureUnits; }
NLMISC::CRGBA _CurrentBlendConstantColor; NLMISC::CRGBA _CurrentBlendConstantColor;

@ -328,7 +328,7 @@ bool CDriverGL3::setupMaterial(CMaterial& mat)
// because setupTexture() may disable all stage. // because setupTexture() may disable all stage.
if (matShader != CMaterial::Water && matShader != CMaterial::Program) if (matShader != CMaterial::Water && matShader != CMaterial::Program)
{ {
for (uint stage = 0; stage < inlGetNumTextStages(); ++stage) for (uint stage = 0; stage < IDRV_MAT_MAXTEXTURES; ++stage)
{ {
ITexture *text = mat.getTexture(uint8(stage)); ITexture *text = mat.getTexture(uint8(stage));
if (text != NULL && !setupTexture(*text)) if (text != NULL && !setupTexture(*text))
@ -366,7 +366,7 @@ bool CDriverGL3::setupMaterial(CMaterial& mat)
&& matShader != CMaterial::Water && matShader != CMaterial::Water
) )
{ {
uint maxTex = matShader == CMaterial::Specular ? 2 : inlGetNumTextStages(); uint maxTex = matShader == CMaterial::Specular ? 2 : IDRV_MAT_MAXTEXTURES;
for (uint stage = 0; stage < maxTex; ++stage) for (uint stage = 0; stage < maxTex; ++stage)
{ {
ITexture *text = mat.getTexture(uint8(stage)); ITexture *text = mat.getTexture(uint8(stage));
@ -471,7 +471,7 @@ bool CDriverGL3::setupMaterial(CMaterial& mat)
// Textures user matrix // Textures user matrix
if (matShader == CMaterial::Normal) if (matShader == CMaterial::Normal)
{ {
setupUserTextureMatrix(inlGetNumTextStages(), mat); setupUserTextureMatrix(IDRV_MAT_MAXTEXTURES, mat);
} }
else // deactivate texture matrix else // deactivate texture matrix
{ {
@ -602,7 +602,7 @@ void CDriverGL3::computeLightMapInfos (const CMaterial &mat)
static const uint32 RGBMaskPacked = CRGBA(255,255,255,0).getPacked(); static const uint32 RGBMaskPacked = CRGBA(255,255,255,0).getPacked();
// For optimisation consideration, suppose there is not too much lightmap. // For optimisation consideration, suppose there is not too much lightmap.
nlassert(mat._LightMaps.size()<=NL3D_DRV_MAX_LIGHTMAP); nlassert(mat._LightMaps.size() <= NL3D_DRV_MAX_LIGHTMAP);
// Compute number of lightmaps really used (ie factor not NULL), and build the LUT. // Compute number of lightmaps really used (ie factor not NULL), and build the LUT.
_NLightMaps = 0; _NLightMaps = 0;
@ -618,10 +618,10 @@ void CDriverGL3::computeLightMapInfos (const CMaterial &mat)
} }
// Compute how many pass, according to driver caps. // Compute how many pass, according to driver caps.
_NLightMapPerPass = inlGetNumTextStages()-1; _NLightMapPerPass = IDRV_MAT_MAXTEXTURES - 1;
// Number of pass. // Number of pass.
_NLightMapPass = (_NLightMaps + _NLightMapPerPass-1)/(_NLightMapPerPass); _NLightMapPass = (_NLightMaps + _NLightMapPerPass - 1) / (_NLightMapPerPass);
// NB: _NLightMaps==0 means there is no lightmaps at all. // NB: _NLightMaps==0 means there is no lightmaps at all.
} }
@ -694,7 +694,7 @@ void CDriverGL3::setupLightMapPass(uint pass)
// setTexGenModeVP(0, TexGenDisabled); // FIXME GL3 // setTexGenModeVP(0, TexGenDisabled); // FIXME GL3
// And disable other stages. // And disable other stages.
for (uint stage = 1; stage < inlGetNumTextStages(); stage++) for (uint stage = 1; stage < IDRV_MAT_MAXTEXTURES; stage++)
{ {
// disable texturing. // disable texturing.
activateTexture(stage, NULL); activateTexture(stage, NULL);
@ -743,7 +743,7 @@ void CDriverGL3::setupLightMapPass(uint pass)
} }
// setup all stages. // setup all stages.
for (uint stage= 0; stage<inlGetNumTextStages(); stage++) for (uint stage= 0; stage<IDRV_MAT_MAXTEXTURES; stage++)
{ {
// if must setup a lightmap stage. // if must setup a lightmap stage.
if (stage<nstages-1) if (stage<nstages-1)
@ -1016,7 +1016,7 @@ void CDriverGL3::setupPPLPass(uint pass)
activateTexture(1, mat.getTexture(0)); activateTexture(1, mat.getTexture(0));
activateTexture(2, tex2);*/ activateTexture(2, tex2);*/
/*for (uint k = 3; k < inlGetNumTextStages(); ++k) /*for (uint k = 3; k < IDRV_MAT_MAXTEXTURES; ++k)
{ {
activateTexture(k, NULL); activateTexture(k, NULL);
}*/ }*/
@ -1076,7 +1076,7 @@ void CDriverGL3::setupPPLNoSpecPass(uint pass)
/* activateTexture(0, tex0); /* activateTexture(0, tex0);
activateTexture(1, mat.getTexture(0)); activateTexture(1, mat.getTexture(0));
*/ */
/*for (uint k = 2; k < inlGetNumTextStages(); ++k) /*for (uint k = 2; k < IDRV_MAT_MAXTEXTURES; ++k)
{ {
activateTexture(k, NULL); activateTexture(k, NULL);
}*/ }*/
@ -1175,7 +1175,7 @@ void CDriverGL3::setupWaterPass(uint /* pass */)
setupTexture(*tex); setupTexture(*tex);
activateTexture(3, tex); activateTexture(3, tex);
} }
for (k = 4; k < inlGetNumTextStages(); ++k) for (k = 4; k < IDRV_MAT_MAXTEXTURES; ++k)
{ {
activateTexture(k, NULL); activateTexture(k, NULL);
} }

@ -725,7 +725,7 @@ bool CDriverGL3::setupTextureEx (ITexture& tex, bool bUpload, bool &bAllUploaded
But this is grave only if a new texture is created, with the same pointer (bad luck). But this is grave only if a new texture is created, with the same pointer (bad luck).
Since an newly allocated texture always pass here before use, we are sure to avoid any problems. Since an newly allocated texture always pass here before use, we are sure to avoid any problems.
*/ */
for (uint stage = 0; stage < inlGetNumTextStages(); stage++) for (uint stage = 0; stage < IDRV_MAT_MAXTEXTURES; stage++)
{ {
activateTexture(stage, NULL); activateTexture(stage, NULL);
} }
@ -1468,7 +1468,7 @@ void CDriverGL3::swapTextureHandle(ITexture &tex0, ITexture &tex1)
setupTexture(tex1); setupTexture(tex1);
// avoid any problem, disable all textures // avoid any problem, disable all textures
for (uint stage = 0; stage < inlGetNumTextStages(); stage++) for (uint stage = 0; stage < IDRV_MAT_MAXTEXTURES; stage++)
{ {
activateTexture(stage, NULL); activateTexture(stage, NULL);
} }

Loading…
Cancel
Save