Switched to the C version of TranslatePoint.
This commit is contained in:
parent
2d2faf1247
commit
adbf5e440d
1 changed files with 2 additions and 56 deletions
58
src/kshape.c
58
src/kshape.c
|
@ -4384,54 +4384,7 @@ extern void TranslationSetup(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef LINUX
|
#if defined(_MSC_VER) && 0
|
||||||
#ifndef _MSC_VER
|
|
||||||
void TranslatePoint(int *source, int *dest, int *matrix);
|
|
||||||
#pragma aux TranslatePoint = \
|
|
||||||
"fld DWORD PTR [esi]"\
|
|
||||||
"fmul DWORD PTR [edi]"\
|
|
||||||
"fld DWORD PTR [esi+4]"\
|
|
||||||
"fmul DWORD PTR [edi+4]"\
|
|
||||||
"fld DWORD PTR [esi+8]"\
|
|
||||||
"fmul DWORD PTR [edi+8]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(2),st"\
|
|
||||||
"fld DWORD PTR [esi]"\
|
|
||||||
"fmul DWORD PTR [edi+16]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(2),st"\
|
|
||||||
"fld DWORD PTR [esi+4]"\
|
|
||||||
"fmul DWORD PTR [edi+20]"\
|
|
||||||
"fld DWORD PTR [esi+8]"\
|
|
||||||
"fmul DWORD PTR [edi+24]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(2),st"\
|
|
||||||
"fld DWORD PTR [esi]"\
|
|
||||||
"fmul DWORD PTR [edi+32]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(2),st"\
|
|
||||||
"fld DWORD PTR [esi+4]"\
|
|
||||||
"fmul DWORD PTR [edi+36]"\
|
|
||||||
"fld DWORD PTR [esi+8]"\
|
|
||||||
"fmul DWORD PTR [edi+40]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(2),st"\
|
|
||||||
"fxch st(3)"\
|
|
||||||
"fadd DWORD PTR [edi+12]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"faddp st(3),st"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"fadd DWORD PTR [edi+28]"\
|
|
||||||
"fxch st(2)"\
|
|
||||||
"fadd DWORD PTR [edi+44]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"fstp DWORD PTR [ebx]"\
|
|
||||||
"fxch st(1)"\
|
|
||||||
"fstp DWORD PTR [ebx+4]"\
|
|
||||||
"fstp DWORD PTR [ebx+8]"\
|
|
||||||
parm[esi] [ebx] [edi];
|
|
||||||
|
|
||||||
#else
|
|
||||||
void TranslatePoint(int *source, int *dest, int *matrix)
|
void TranslatePoint(int *source, int *dest, int *matrix)
|
||||||
{
|
{
|
||||||
__asm
|
__asm
|
||||||
|
@ -4482,9 +4435,7 @@ void TranslatePoint(int *source, int *dest, int *matrix)
|
||||||
fstp DWORD PTR [ebx+8]
|
fstp DWORD PTR [ebx+8]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
#endif
|
|
||||||
#else /* LINUX */
|
|
||||||
static void TranslatePoint(const float *source, float *dest, const float *matrix)
|
static void TranslatePoint(const float *source, float *dest, const float *matrix)
|
||||||
{
|
{
|
||||||
dest[0] = matrix[ 0] * source[0] + matrix[ 1] * source[1] + matrix[ 2] * source[2] + matrix[ 3];
|
dest[0] = matrix[ 0] * source[0] + matrix[ 1] * source[1] + matrix[ 2] * source[2] + matrix[ 3];
|
||||||
|
@ -4499,7 +4450,6 @@ void TranslatePointIntoViewspace(VECTORCH *pointPtr)
|
||||||
Source[1] = pointPtr->vy;
|
Source[1] = pointPtr->vy;
|
||||||
Source[2] = pointPtr->vz;
|
Source[2] = pointPtr->vz;
|
||||||
|
|
||||||
// TranslatePoint((int*)&Source,(int*)&Dest,(int*)&ViewMatrix);
|
|
||||||
TranslatePoint(Source, Dest, ViewMatrix);
|
TranslatePoint(Source, Dest, ViewMatrix);
|
||||||
|
|
||||||
f2i(pointPtr->vx,Dest[0]);
|
f2i(pointPtr->vx,Dest[0]);
|
||||||
|
@ -4534,7 +4484,6 @@ void SquishPoints(SHAPEINSTR *shapeinstrptr)
|
||||||
Source[1] = point.vy;
|
Source[1] = point.vy;
|
||||||
Source[2] = point.vz;
|
Source[2] = point.vz;
|
||||||
|
|
||||||
// TranslatePoint((int*)&Source,(int*)&Dest,(int*)&ViewMatrix);
|
|
||||||
TranslatePoint(Source, Dest, ViewMatrix);
|
TranslatePoint(Source, Dest, ViewMatrix);
|
||||||
|
|
||||||
f2i(RotatedPts[i].vx,Dest[0]);
|
f2i(RotatedPts[i].vx,Dest[0]);
|
||||||
|
@ -4620,7 +4569,6 @@ void MorphPoints(SHAPEINSTR *shapeinstrptr)
|
||||||
Source[1] = srcPtr->vy+Global_ODB_Ptr->ObWorld.vy;
|
Source[1] = srcPtr->vy+Global_ODB_Ptr->ObWorld.vy;
|
||||||
Source[2] = srcPtr->vz+Global_ODB_Ptr->ObWorld.vz;
|
Source[2] = srcPtr->vz+Global_ODB_Ptr->ObWorld.vz;
|
||||||
|
|
||||||
// TranslatePoint((int*)&Source,(int*)&Dest,(int*)&ViewMatrix);
|
|
||||||
TranslatePoint(Source, Dest, ViewMatrix);
|
TranslatePoint(Source, Dest, ViewMatrix);
|
||||||
|
|
||||||
f2i(destPtr->vx,Dest[0]);
|
f2i(destPtr->vx,Dest[0]);
|
||||||
|
@ -4678,8 +4626,6 @@ void TranslateShapeVertices(SHAPEINSTR *shapeinstrptr)
|
||||||
Source[1] = srcPtr->vy;
|
Source[1] = srcPtr->vy;
|
||||||
Source[2] = srcPtr->vz;
|
Source[2] = srcPtr->vz;
|
||||||
|
|
||||||
// TranslatePoint((int*)&Source,(int*)&Dest,(int*)&ObjectViewMatrix);
|
|
||||||
// TranslatePoint((int*)&Dest,(int*)&Source,(int*)&ViewMatrix);
|
|
||||||
TranslatePoint(Source, Dest, ObjectViewMatrix);
|
TranslatePoint(Source, Dest, ObjectViewMatrix);
|
||||||
TranslatePoint(Dest, Source, ViewMatrix);
|
TranslatePoint(Dest, Source, ViewMatrix);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue