Changed OpenGL default Renderstate to ALPHA_TEST being disabled. Some indentation changes in other files.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@786 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
63b756e8db
commit
838ea26474
|
@ -1,5 +1,10 @@
|
|||
Changes in version 1.4 (... 2007)
|
||||
|
||||
- Fixed some OpenGL renderstate stuff. setBasicRenderstate returns with
|
||||
active texture layer 0. The material renderer must return from OnUnset
|
||||
with the same active texture layer. The alpha test is disabled and the
|
||||
texture mode should be GL_MODULATE.
|
||||
|
||||
- Fixed CSoftwareTexture2::getOriginalSize, reported by CaptainPants. Added a
|
||||
new method CSoftwareTexture2::getMaxSize to return the size of the largest
|
||||
mipmap, which is used by texelarea instead of getOriginalSize.
|
||||
|
|
|
@ -227,6 +227,9 @@ bool CGUIListBox::OnEvent(SEvent event)
|
|||
break;
|
||||
case KEY_PRIOR:
|
||||
Selected -= AbsoluteRect.getHeight() / ItemHeight;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (Selected >= (s32)Items.size())
|
||||
Selected = Items.size() - 1;
|
||||
|
@ -278,6 +281,8 @@ bool CGUIListBox::OnEvent(SEvent event)
|
|||
if (event.GUIEvent.Caller == this)
|
||||
Selecting = false;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EET_MOUSE_INPUT_EVENT:
|
||||
|
@ -333,6 +338,8 @@ bool CGUIListBox::OnEvent(SEvent event)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -473,7 +480,7 @@ s32 CGUIListBox::addItem(const wchar_t* text, s32 icon)
|
|||
u32 rno = IconBank->getSprites()[(u32)icon].Frames[0].rectNumber;
|
||||
if (IconBank->getPositions().size() > rno)
|
||||
{
|
||||
s32 w = IconBank->getPositions()[rno].getWidth();
|
||||
const s32 w = IconBank->getPositions()[rno].getWidth();
|
||||
if (w > ItemsIconWidth)
|
||||
ItemsIconWidth = w;
|
||||
}
|
||||
|
@ -554,7 +561,6 @@ void CGUIListBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadW
|
|||
for (i=0; i<Items.size(); ++i)
|
||||
addItem(tmpText[i].c_str(), tmpIcons[i].c_str());
|
||||
|
||||
|
||||
this->setSelected(in->getAttributeAsInt("Selected"));
|
||||
*/
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ CGUISpriteBank::CGUISpriteBank(IGUIEnvironment* env) :
|
|||
if (Driver)
|
||||
Driver->grab();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CGUISpriteBank::~CGUISpriteBank()
|
||||
|
@ -31,7 +30,6 @@ CGUISpriteBank::~CGUISpriteBank()
|
|||
// drop video driver
|
||||
if (Driver)
|
||||
Driver->drop();
|
||||
|
||||
}
|
||||
|
||||
core::array< core::rect<s32> >& CGUISpriteBank::getPositions()
|
||||
|
@ -81,8 +79,9 @@ void CGUISpriteBank::setTexture(u32 index, video::ITexture* texture)
|
|||
|
||||
|
||||
//! draws a sprite in 2d with scale and color
|
||||
void CGUISpriteBank::draw2DSprite(u32 index, const core::position2di& pos, const core::rect<s32>* clip,
|
||||
const video::SColor& color, u32 starttime, u32 currenttime, bool loop, bool center)
|
||||
void CGUISpriteBank::draw2DSprite(u32 index, const core::position2di& pos,
|
||||
const core::rect<s32>* clip, const video::SColor& color,
|
||||
u32 starttime, u32 currenttime, bool loop, bool center)
|
||||
{
|
||||
if (index >= Sprites.size() || Sprites[index].Frames.empty())
|
||||
return;
|
||||
|
|
|
@ -1051,7 +1051,6 @@ bool COpenGLDriver::setTexture(s32 stage, video::ITexture* texture)
|
|||
if (stage >= MaxTextureUnits)
|
||||
return false;
|
||||
|
||||
// Not working, texture confusion in menu of Meshviewer.
|
||||
if (CurrentTexture[stage]==texture)
|
||||
return true;
|
||||
|
||||
|
@ -1187,6 +1186,7 @@ void COpenGLDriver::setRenderStates3DMode()
|
|||
{
|
||||
// Reset Texture Stages
|
||||
glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_ALPHA_ARB, GL_MODULATE );
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
glDisable( GL_BLEND );
|
||||
glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_COLOR );
|
||||
|
||||
|
|
|
@ -53,8 +53,6 @@ public:
|
|||
// thanks to Murphy, the following line removed some
|
||||
// bugs with several OpenGL implementations.
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -91,6 +89,7 @@ public:
|
|||
glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, (f32) modulate );
|
||||
|
||||
glBlendFunc( getGLBlend(srcFact), getGLBlend(dstFact) );
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
if ( getTexelAlpha ( srcFact ) + getTexelAlpha ( dstFact ) )
|
||||
|
@ -109,6 +108,7 @@ public:
|
|||
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PREVIOUS_EXT);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -171,13 +171,12 @@ public:
|
|||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -200,8 +199,6 @@ public:
|
|||
|
||||
if ((material.MaterialType != lastMaterial.MaterialType) || resetAllRenderstates)
|
||||
{
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glEnable(GL_BLEND);
|
||||
|
@ -238,8 +235,6 @@ public:
|
|||
|
||||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
|
||||
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_EXT, GL_REPLACE);
|
||||
|
@ -348,9 +343,7 @@ public:
|
|||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
|
||||
glAlphaFunc(GL_GREATER, 0.5);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
}
|
||||
}
|
||||
|
@ -386,8 +379,6 @@ public:
|
|||
|
||||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
// diffuse map
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
|
||||
|
@ -457,6 +448,7 @@ public:
|
|||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1.f );
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -481,8 +473,6 @@ public:
|
|||
|
||||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
// diffuse map
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
|
||||
|
@ -502,6 +492,7 @@ public:
|
|||
|
||||
glTexEnvi(GL_TEXTURE_ENV,GL_SOURCE1_RGB_EXT, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV,GL_OPERAND1_RGB_EXT,GL_SRC_COLOR);
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -525,18 +516,8 @@ public:
|
|||
|
||||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
|
||||
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
|
||||
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
|
||||
|
||||
|
@ -547,8 +528,6 @@ public:
|
|||
|
||||
virtual void OnUnsetMaterial()
|
||||
{
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
}
|
||||
|
@ -573,8 +552,6 @@ public:
|
|||
|
||||
if (material.MaterialType != lastMaterial.MaterialType || resetAllRenderstates)
|
||||
{
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
|
||||
|
@ -611,16 +588,19 @@ public:
|
|||
|
||||
virtual void OnUnsetMaterial()
|
||||
{
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
}
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); // default value
|
||||
Driver->extGlActiveTexture(GL_TEXTURE1_ARB);
|
||||
}
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -645,8 +625,6 @@ public:
|
|||
{
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE);
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE );
|
||||
|
@ -666,7 +644,6 @@ public:
|
|||
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glEnable(GL_BLEND);
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
|
||||
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
|
||||
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
|
||||
|
@ -684,6 +661,11 @@ public:
|
|||
glDisable(GL_BLEND);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
if (Driver->queryFeature(EVDF_MULTITEXTURE))
|
||||
{
|
||||
Driver->extGlActiveTexture(GL_TEXTURE0_ARB);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); // default value
|
||||
}
|
||||
}
|
||||
|
||||
//! Returns if the material is transparent.
|
||||
|
|
Loading…
Reference in New Issue