mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -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::
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user