Commit fce0e252 authored by hybrid's avatar hybrid

Some cleanup for IdentityMatrix.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1526 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 1970d0f3
......@@ -1733,7 +1733,7 @@ namespace core
//! Typedef for f32 matrix
typedef CMatrix4<f32> matrix4;
//! global const identity matrix
const matrix4 IdentityMatrix(matrix4::EM4CONST_IDENTITY);
extern const matrix4 IdentityMatrix;
} // end namespace core
} // end namespace irr
......
......@@ -61,7 +61,6 @@ CD3D8Driver::CD3D8Driver(const core::dimension2d<s32>& screenSize, HWND window,
}
//! destructor
CD3D8Driver::~CD3D8Driver()
{
......@@ -574,9 +573,6 @@ void CD3D8Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
case ETS_TEXTURE_2:
case ETS_TEXTURE_3:
pID3DDevice->SetTextureStageState( state - ETS_TEXTURE_0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
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;
......@@ -588,7 +584,6 @@ void CD3D8Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
}
//! sets the current Texture
bool CD3D8Driver::setTexture(s32 stage, const video::ITexture* texture)
{
......@@ -1542,10 +1537,9 @@ void CD3D8Driver::setRenderStatesStencilFillMode(bool alpha)
{
if (CurrentRenderMode != ERM_STENCIL_FILL || Transformation3DChanged)
{
core::matrix4 mat;
pID3DDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_VIEW, &UnitMatrixD3D8);
pID3DDevice->SetTransform(D3DTS_WORLD, &UnitMatrixD3D8);
pID3DDevice->SetTransform(D3DTS_PROJECTION, &UnitMatrixD3D8);
pID3DDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
pID3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
......@@ -1604,10 +1598,9 @@ void CD3D8Driver::setRenderStates2DMode(bool alpha, bool texture, bool alphaChan
if (CurrentRenderMode != ERM_2D || Transformation3DChanged)
{
core::matrix4 mat;
pID3DDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_VIEW, &UnitMatrixD3D8);
pID3DDevice->SetTransform(D3DTS_WORLD, &UnitMatrixD3D8);
pID3DDevice->SetTransform(D3DTS_PROJECTION, &UnitMatrixD3D8);
pID3DDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
//pID3DDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
......
......@@ -617,9 +617,6 @@ void CD3D9Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
case ETS_TEXTURE_2:
case ETS_TEXTURE_3:
pID3DDevice->SetTextureStageState( state - ETS_TEXTURE_0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
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;
......@@ -631,7 +628,6 @@ void CD3D9Driver::setTransform(E_TRANSFORMATION_STATE state, const core::matrix4
}
//! sets the current Texture
bool CD3D9Driver::setTexture(s32 stage, const video::ITexture* texture)
{
......@@ -1875,9 +1871,9 @@ void CD3D9Driver::setRenderStatesStencilFillMode(bool alpha)
if (CurrentRenderMode != ERM_STENCIL_FILL || Transformation3DChanged)
{
core::matrix4 mat;
pID3DDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_VIEW, &UnitMatrixD3D9);
pID3DDevice->SetTransform(D3DTS_WORLD, &UnitMatrixD3D9);
pID3DDevice->SetTransform(D3DTS_PROJECTION, &UnitMatrixD3D9);
pID3DDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
pID3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
......@@ -1964,10 +1960,9 @@ void CD3D9Driver::setRenderStates2DMode(bool alpha, bool texture, bool alphaChan
pID3DDevice->SetTransform( D3DTS_TEXTURE0, &UnitMatrixD3D9 );
}
core::matrix4 mat;
pID3DDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_PROJECTION, (D3DMATRIX*)((void*)mat.pointer()));
pID3DDevice->SetTransform(D3DTS_VIEW, &UnitMatrixD3D9);
pID3DDevice->SetTransform(D3DTS_WORLD, &UnitMatrixD3D9);
pID3DDevice->SetTransform(D3DTS_PROJECTION, &UnitMatrixD3D9);
Transformation3DChanged = false;
}
......
......@@ -39,6 +39,10 @@ namespace irr
return createDeviceEx(p);
}
namespace core
{
const matrix4 IdentityMatrix(matrix4::EM4CONST_IDENTITY);
}
} // end namespace irr
......
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