fix texture matrix on dx7

This commit is contained in:
David Rose 2003-11-29 00:52:41 +00:00
parent 6dfe2d4a49
commit e541881492

View File

@ -3856,7 +3856,24 @@ issue_transform(const TransformState *transform) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void DXGraphicsStateGuardian7:: void DXGraphicsStateGuardian7::
issue_tex_matrix(const TexMatrixAttrib *attrib) { issue_tex_matrix(const TexMatrixAttrib *attrib) {
// Not implemented. const LMatrix4f &m = attrib->get_mat();
// This is ugly. Need to make this a simple boolean test instead of
// a matrix compare.
if (m == LMatrix4f::ident_mat()) {
_pScrn->pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS,
D3DTTFF_DISABLE);
} else {
// We have to reorder the elements of the matrix for some reason.
LMatrix4f dm(m(0, 0), m(0, 1), m(0, 3), 0.0f,
m(1, 0), m(1, 1), m(1, 3), 0.0f,
m(3, 0), m(3, 1), m(3, 3), 0.0f,
0.0f, 0.0f, 0.0f, 1.0f);
_pScrn->pD3DDevice->SetTransform(D3DTRANSFORMSTATE_TEXTURE0,
(D3DMATRIX *)dm.get_data());
_pScrn->pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS,
D3DTTFF_COUNT2);
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////