mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
fix texture matrix bleed-over
This commit is contained in:
parent
b222f63f77
commit
03c13618e2
@ -3770,11 +3770,14 @@ void DXGraphicsStateGuardian7::
|
||||
issue_tex_matrix(const TexMatrixAttrib *attrib) {
|
||||
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()) {
|
||||
if (!attrib->has_stage(TextureStage::get_default())) {
|
||||
_pScrn->pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS,
|
||||
D3DTTFF_DISABLE);
|
||||
// For some reason, "disabling" texture coordinate transforms
|
||||
// doesn't seem to be sufficient. We'll load an identity matrix
|
||||
// to underscore the point.
|
||||
_pScrn->pD3DDevice->SetTransform(D3DTRANSFORMSTATE_TEXTURE0, &matIdentity);
|
||||
|
||||
} 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,
|
||||
|
@ -3163,11 +3163,14 @@ void DXGraphicsStateGuardian8::
|
||||
issue_tex_matrix(const TexMatrixAttrib *attrib) {
|
||||
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()) {
|
||||
if (!attrib->has_stage(TextureStage::get_default())) {
|
||||
_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS,
|
||||
D3DTTFF_DISABLE);
|
||||
// For some reason, "disabling" texture coordinate transforms
|
||||
// doesn't seem to be sufficient. We'll load an identity matrix
|
||||
// to underscore the point.
|
||||
_pD3DDevice->SetTransform(D3DTS_TEXTURE0, &matIdentity);
|
||||
|
||||
} 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,
|
||||
|
@ -3151,11 +3151,14 @@ void DXGraphicsStateGuardian9::
|
||||
issue_tex_matrix(const TexMatrixAttrib *attrib) {
|
||||
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()) {
|
||||
if (!attrib->has_stage(TextureStage::get_default())) {
|
||||
_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS,
|
||||
D3DTTFF_DISABLE);
|
||||
// For some reason, "disabling" texture coordinate transforms
|
||||
// doesn't seem to be sufficient. We'll load an identity matrix
|
||||
// to underscore the point.
|
||||
_pD3DDevice->SetTransform(D3DTS_TEXTURE0, &matIdentity);
|
||||
|
||||
} 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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user