Commit 1441da7f authored by hybrid's avatar hybrid

Fixed the missing reset of texture matrices. Fixed a reorder warning.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@721 dfc29bdd-3216-0410-991c-e03cc46cb475
parent cda27017
......@@ -581,11 +581,14 @@ void CD3D8Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
case ETS_TEXTURE_1:
case ETS_TEXTURE_2:
case ETS_TEXTURE_3:
if (mat.isIdentity())
break;
pID3DDevice->SetTextureStageState( state - ETS_TEXTURE_0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
pID3DDevice->SetTransform((D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )),
(D3DMATRIX*)((void*)mat.pointer()));
if (mat.isIdentity())
pID3DDevice->SetTransform( (D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )), &UnitMatrixD3D8 );
else
pID3DDevice->SetTransform((D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )),
(D3DMATRIX*)((void*)mat.pointer()));
break;
case ETS_COUNT:
break;
}
......
......@@ -590,11 +590,12 @@ void CD3D9Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
case ETS_TEXTURE_1:
case ETS_TEXTURE_2:
case ETS_TEXTURE_3:
if (mat.isIdentity())
break;
pID3DDevice->SetTextureStageState( state - ETS_TEXTURE_0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
pID3DDevice->SetTransform((D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )),
(D3DMATRIX*)((void*)mat.pointer()));
if (mat.isIdentity())
pID3DDevice->SetTransform( (D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )), &UnitMatrixD3D9 );
else
pID3DDevice->SetTransform((D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0+ ( state - ETS_TEXTURE_0 )),
(D3DMATRIX*)((void*)mat.pointer()));
break;
case ETS_COUNT:
break;
......
......@@ -22,8 +22,8 @@ CGUIStaticText::CGUIStaticText(const wchar_t* text, bool border,
bool background)
: IGUIStaticText(environment, parent, id, rectangle), Border(border),
OverrideColorEnabled(false), WordWrap(false), Background(background),
OverrideColor(video::SColor(101,255,255,255)), OverrideFont(0), LastBreakFont(0),
BGColor(video::SColor(101,210,210,210))
OverrideColor(video::SColor(101,255,255,255)), BGColor(video::SColor(101,210,210,210)),
OverrideFont(0), LastBreakFont(0)
{
#ifdef _DEBUG
setDebugName("CGUIStaticText");
......
......@@ -446,15 +446,17 @@ void COpenGLDriver::setTransform(E_TRANSFORMATION_STATE state, const core::matri
case ETS_TEXTURE_1:
case ETS_TEXTURE_2:
case ETS_TEXTURE_3:
if (mat.isIdentity())
return;
if (MultiTextureExtension)
extGlActiveTexture(GL_TEXTURE0_ARB + ( state - ETS_TEXTURE_0 ));
glMatrixMode(GL_TEXTURE);
createGLTextureMatrix(glmat, mat );
glLoadMatrixf(glmat);
if (mat.isIdentity())
glLoadIdentity();
else
{
createGLTextureMatrix(glmat, mat );
glLoadMatrixf(glmat);
}
break;
default:
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment