reman3/Rayman_X/cpa/tempgrp/GliGlou/MultiDRV/Inc/linear.h

95 lines
3.3 KiB
C

#ifndef LINEAR_H
#define LINEAR_H
#ifdef __cplusplus
extern "C" {
#endif
/* For DLL using these function :*/
#include "cpa_expt.h"
#include "vertex.h"
extern CPA_EXPORT void GLI_xSerialLinearOp( long lNbOfVertex , MTH3D_tdstVector *p_stSource , struct GLI_tdstAligned3DVector_ *p_stDest , POS_tdstCompletePosition *p_stMatrix) ;
extern CPA_EXPORT void GLI_xSerialDotProductAligned ( long lNbOfVertex, struct GLI_tdstAligned3DVector_ *p_stSource , float *p_stDest , MTH3D_tdstVector *p_stMultiplicator, long lIncrement) ;
/**********************************************************************************************/
/* Name: GLI_xSerialDotProduct*/
/* Goal: Compute (input 3d vector table)(a 3d Vector) -> (Dest scalar table)*/
/* Code: Philippe Vimont / 1.0*/
/**********************************************************************************************/
/* C function*/
#ifdef NO_ASSEMBLY_IN_GLI
extern CPA_EXPORT void GLI_xSerialDotProduct ( long lNbOfVertex, MTH3D_tdstVector *p_stSource , float *p_stDest, MTH3D_tdstVector *p_stMultiplicator, long lIncrement);
#else /*NO_ASSEMBLY_IN_GLI*/
#define GLI_xSerialDotProduct _GLI_xSerialDotProduct
CALLING_ASM_5_0(GLI_xSerialDotProduct, ecx, esi, edi, eax ,ebx );
#ifdef WATCOM
#pragma aux _GLI_xSerialDotProduct parm [ecx] [esi] [edi] [eax] [ebx] [edx]\
modify [ecx esi edi eax ebx edx];
#endif
/**********************************************************************************************/
/* Name: GLI_xSerialTouch*/
/* Goal: Read for cache (test)*/
/* Code: Philippe Vimont / 1.0*/
/* OPTIMMIZED : Assembly (serial.msm)*/
/**********************************************************************************************/
#define GLI_xSerialTouch _GLI_xSerialTouch
CALLING_ASM_2_0(GLI_xSerialTouch, ecx, edi);
#ifdef WATCOM
#pragma aux _GLI_xSerialTouch parm [ecx] [edi] \
modify [ecx edi];
#endif
/**********************************************************************************************/
/* Name: GLI_xSerialMula9MatrixVertex_*/
/* Goal: Read for cache (test)*/
/* Code: Philippe Vimont / 1.0*/
/* OPTIMMIZED : Assembly (serial.msm)*/
/**********************************************************************************************/
#define GLI_xSerialMula9MatrixVertex _GLI_xSerialMula9MatrixVertex
CALLING_ASM_5_0(GLI_xSerialMula9MatrixVertex, ecx, esi, edi, edx, eax );
#ifdef WATCOM
#pragma aux _GLI_xSerialMula9MatrixVertex parm [ecx] [esi] [edi] [edx] [eax] \
modify [ecx esi edi eax ebx edx];
#endif
/**********************************************************************************************/
/* Name: GLI_xSerialAddVertex */
/* Goal: Compute (Dest 3d vector table) + (a 3d Vector) -> (Dest 3d vector table)*/
/* Code: Philippe Vimont / 1.0*/
/* OPTIMMIZED : Assembly (serial.msm)*/
/**********************************************************************************************/
#define GLI_xSerialAdd3DVertex _GLI_xSerialAdd3DVertex
CALLING_ASM_3_0(GLI_xSerialAdd3DVertex, ecx, edi, eax );
#ifdef WATCOM
#pragma aux _GLI_xSerialAdd3DVertex parm [ecx] [edi] [eax] modify [ecx edi eax];
#endif /* WATCOM */
#endif /* NO_ASSEMBLY_IN_GLI */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#ifdef __cplusplus
}; /* extern"c"*/
#endif
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#endif /* LINEAR_H*/