summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/TransformUnit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoBackends/Software/TransformUnit.cpp')
-rw-r--r--Source/Core/VideoBackends/Software/TransformUnit.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/Source/Core/VideoBackends/Software/TransformUnit.cpp b/Source/Core/VideoBackends/Software/TransformUnit.cpp
index 0ab93ce106..6be3142534 100644
--- a/Source/Core/VideoBackends/Software/TransformUnit.cpp
+++ b/Source/Core/VideoBackends/Software/TransformUnit.cpp
@@ -106,24 +106,26 @@ void TransformNormal(const InputVertexData* src, bool nbt, OutputVertexData* dst
static void TransformTexCoordRegular(const TexMtxInfo& texinfo, int coordNum, bool specialCase,
const InputVertexData* srcVertex, OutputVertexData* dstVertex)
{
- const Vec3* src;
+ Vec3 src;
switch (texinfo.sourcerow)
{
case XF_SRCGEOM_INROW:
- src = &srcVertex->position;
+ src = srcVertex->position;
break;
case XF_SRCNORMAL_INROW:
- src = &srcVertex->normal[0];
+ src = srcVertex->normal[0];
break;
case XF_SRCBINORMAL_T_INROW:
- src = &srcVertex->normal[1];
+ src = srcVertex->normal[1];
break;
case XF_SRCBINORMAL_B_INROW:
- src = &srcVertex->normal[2];
+ src = srcVertex->normal[2];
break;
default:
_assert_(texinfo.sourcerow >= XF_SRCTEX0_INROW && texinfo.sourcerow <= XF_SRCTEX7_INROW);
- src = (Vec3*)srcVertex->texCoords[texinfo.sourcerow - XF_SRCTEX0_INROW];
+ src.x = srcVertex->texCoords[texinfo.sourcerow - XF_SRCTEX0_INROW][0];
+ src.y = srcVertex->texCoords[texinfo.sourcerow - XF_SRCTEX0_INROW][1];
+ src.z = 1.0f;
break;
}
@@ -133,18 +135,18 @@ static void TransformTexCoordRegular(const TexMtxInfo& texinfo, int coordNum, bo
if (texinfo.projection == XF_TEXPROJ_ST)
{
if (texinfo.inputform == XF_TEXINPUT_AB11 || specialCase)
- MultiplyVec2Mat24(*src, mat, *dst);
+ MultiplyVec2Mat24(src, mat, *dst);
else
- MultiplyVec3Mat24(*src, mat, *dst);
+ MultiplyVec3Mat24(src, mat, *dst);
}
else // texinfo.projection == XF_TEXPROJ_STQ
{
_assert_(!specialCase);
if (texinfo.inputform == XF_TEXINPUT_AB11)
- MultiplyVec2Mat34(*src, mat, *dst);
+ MultiplyVec2Mat34(src, mat, *dst);
else
- MultiplyVec3Mat34(*src, mat, *dst);
+ MultiplyVec3Mat34(src, mat, *dst);
}
// normalize