Converted TranslatePoint to C.
This commit is contained in:
parent
877a2f9b7c
commit
d0484e7829
3 changed files with 16 additions and 11 deletions
|
@ -4396,7 +4396,7 @@ extern void TranslationSetup(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#ifndef LINUX
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
void TranslatePoint(int *source, int *dest, int *matrix);
|
void TranslatePoint(int *source, int *dest, int *matrix);
|
||||||
#pragma aux TranslatePoint = \
|
#pragma aux TranslatePoint = \
|
||||||
|
@ -4496,6 +4496,13 @@ void TranslatePoint(int *source, int *dest, int *matrix)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
#else /* LINUX */
|
||||||
|
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[1] = matrix[ 4] * source[0] + matrix[ 5] * source[1] + matrix[ 6] * source[2] + matrix[ 7];
|
||||||
|
dest[2] = matrix[ 8] * source[0] + matrix[ 9] * source[1] + matrix[10] * source[2] + matrix[11];
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void TranslatePointIntoViewspace(VECTORCH *pointPtr)
|
void TranslatePointIntoViewspace(VECTORCH *pointPtr)
|
||||||
|
|
|
@ -94,8 +94,6 @@ extern int FindHeatSourcesInHModel(DISPLAYBLOCK *dispPtr);
|
||||||
|
|
||||||
extern void TranslationSetup(void);
|
extern void TranslationSetup(void);
|
||||||
extern void TranslatePointIntoViewspace(VECTORCH *pointPtr);
|
extern void TranslatePointIntoViewspace(VECTORCH *pointPtr);
|
||||||
void TranslatePoint(float *source, float *dest, float *matrix);
|
|
||||||
|
|
||||||
|
|
||||||
extern void CheckRenderStatesForModule(MODULE *modulePtr);
|
extern void CheckRenderStatesForModule(MODULE *modulePtr);
|
||||||
|
|
||||||
|
|
|
@ -209,22 +209,22 @@ int CMP_LL(LONGLONGCH *a, LONGLONGCH *b)
|
||||||
llgs:
|
llgs:
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
#if 0
|
#if 1
|
||||||
int retval;
|
int retval;
|
||||||
/* TODO */
|
|
||||||
__asm__("movl 0(%%ebx), %%eax \n\t"
|
__asm__("movl 0(%%ebx), %%eax \n\t"
|
||||||
"movl 4(%%ebx), %%edx \n\t"
|
"movl 4(%%ebx), %%edx \n\t"
|
||||||
"subl 0(%%ecx), %%eax \n\t"
|
"subl 0(%%ecx), %%eax \n\t"
|
||||||
"sbbl 4(%%ecx), %%edx \n\t"
|
"sbbl 4(%%ecx), %%edx \n\t"
|
||||||
"xorl %%ebx, %%ebx \n\t"
|
"xorl %%ebx, %%ebx \n\t"
|
||||||
"andl %%edx, %%edx \n\t"
|
"andl %%edx, %%edx \n\t"
|
||||||
"jne 0 \n\t" /* llnz */
|
"jne 0f \n\t" /* llnz */
|
||||||
"andl %%eax, %%eax \n\t"
|
"andl %%eax, %%eax \n\t"
|
||||||
"je 1 \n" /* llgs */
|
"je 1f \n" /* llgs */
|
||||||
"0: \n\t" /* llnz */
|
"0: \n\t" /* llnz */
|
||||||
"movl $1, %%ebx \n\t"
|
"movl $1, %%ebx \n\t"
|
||||||
"andl %%edx, %%edx \n\t"
|
"andl %%edx, %%edx \n\t"
|
||||||
"jge 1 \n\t" /* llgs */
|
"jge 1f \n\t" /* llgs */
|
||||||
"negl %%ebx \n"
|
"negl %%ebx \n"
|
||||||
"1: \n\t" /* llgs */
|
"1: \n\t" /* llgs */
|
||||||
: "=b" (retval)
|
: "=b" (retval)
|
||||||
|
@ -628,10 +628,9 @@ __asm__ volatile
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // SBF - converted to C in kshape.c
|
||||||
void TranslatePoint(float *source, float *dest, float *matrix)
|
void TranslatePoint(float *source, float *dest, float *matrix)
|
||||||
{
|
{
|
||||||
// fprintf(stderr, "TranslatePoint(%f, %f, %f)\n");
|
|
||||||
|
|
||||||
/* TODO - implement the inline assembly here? */
|
/* TODO - implement the inline assembly here? */
|
||||||
/* Moved it to a separate file because I can't figure out the damn syntax! */
|
/* Moved it to a separate file because I can't figure out the damn syntax! */
|
||||||
/* This is currently not inlined for testing */
|
/* This is currently not inlined for testing */
|
||||||
|
@ -640,3 +639,4 @@ __asm__("call TranslatePoint_Asm \n\t"
|
||||||
: "S" (source), "b" (dest), "D" (matrix)
|
: "S" (source), "b" (dest), "D" (matrix)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue