mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
fix texture matrix on dx7
This commit is contained in:
parent
6dfe2d4a49
commit
e541881492
@ -3856,7 +3856,24 @@ issue_transform(const TransformState *transform) {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void DXGraphicsStateGuardian7::
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user