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