Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
/*
=======================================================================================
Name : DLLCaps.h
Author : vincent lhullier Date :23/09/98
Description : Constant for DLL capabilities
=======================================================================================
*/
#ifndef __DLLCAPS_H__
#define __DLLCAPS_H__
/*
=======================================================================================
Constant for Caps1
=======================================================================================
*/
#ifdef __cplusplus
extern "C"
{
#endif
/*
=======================================================================================
Constants
=======================================================================================
*/
#define GLICAPS_DRV_C_ulIsHardware 0x00000001
#define GLICAPS_DRV_C_ulCanUseAGP 0x00000002
#define GLICAPS_DRV_C_ulCanUseSystemMemory 0x00000004
#define GLICAPS_DRV_C_ulCanBeWindowed 0x00000008
#define GLICAPS_DRV_C_ulSupportAlphaTest 0x00000010
#define GLICAPS_DRV_C_ulReadjustViewport 0x00000020
#define GLICAPS_TEX_C_ulSupport8P 0x00000001
#define GLICAPS_TEX_C_ulSupportNonSquare 0x00000002
#define GLICAPS_TEX_C_ulSupportMipmap 0x00000004
#define GLICAPS_TEX_C_ulSupportMirror 0x00000008
/*
* constant for request to DLL
*/
#define GLIDLL_Request_ReloadTexture 1
/*
=======================================================================================
Structures
=======================================================================================
*/
typedef struct tdstGliCaps_
{
unsigned long ulSize;
unsigned long ulDriverCaps;
unsigned long ulTextureCaps;
unsigned long ulSurfaceCaps;
unsigned long ulMemoryCaps;
unsigned long ulTextureMaxSize;
unsigned long ulTotalTextureMemory;
unsigned long ulTotalVideoMemory;
unsigned long ulTotalAGPMemory;
unsigned char ucPrimarySurfacePixelFormat;
float fRefreshRate;
} tdstGliCaps;
/*
=======================================================================================
Globals
=======================================================================================
*/
extern tdstGliCaps GLI_g_stCaps;
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*__DLLCAPS_H__*/

View File

@@ -0,0 +1,148 @@
/*
=======================================================================================
Name : DLLInter.h
Author : vincent lhullier Date :14/09/98
Description : initialize Specific driver DLL
=======================================================================================
*/
#ifndef __DLLINTER_H__
#define __DLLINTER_H__
#include "GLD.h"
#include "PvObj_st.h"
/*
=======================================================================================
DLL Function prototypes
=======================================================================================
*/
/* General */
extern long (*GLI_DRV_lSendDataToDll)(char *, void *);
/* DOMATxxx.C */
extern void (* GLI_DRV_vDoOpaqueTextureSelection)( GLI_tdstInternalGlobalValuesFor3dEngine * );
extern void (* GLI_DRV_vWrite16bBitmapToBackBuffer) ( void *,long ,long ,long ,long, long, long );
extern void (* GLI_DRV_vAddBlackPolygon)( long , long , long , long );
extern void (* GLI_DRV_vNoBlackPolygon)( void );
extern void (* GLI_DRV_vComputeFogEffect)(GLI_tdstInternalGlobalValuesFor3dEngine *);
extern BOOL (* GLI_DRV_bBeginScene)(void);
extern BOOL (* GLI_DRV_bEndScene)(void);
/* ACCES_XXXX.C */
extern void (* GLI_DRV_vSendSpriteToClip)(GLI_tdstAligned2DVector *,MTH_tdxReal ,GLI_tdstInternalGlobalValuesFor3dEngine *);
extern void (* GLI_DRV_vSendSpriteToClipWithUV)( GLI_tdstAligned2DVector *, MTH_tdxReal *, MTH_tdxReal , GLI_tdstInternalGlobalValuesFor3dEngine *);
/* ACCES_ALL.C */
extern void (* GLI_DRV_vSendSingleLineToClip)( GLD_tdstViewportAttributes *, GLI_tdstAligned3DVector *, GLI_tdstAligned2DVector *, GLI_tdstAligned3DVector *, GLI_tdstAligned2DVector *, GLI_tdstInternalGlobalValuesFor3dEngine *, long , GEO_tdstColor *);
/* HDWTex_xxx.C */
extern void (* GLI_DRV_vDownLoadTextures)(long, long, BOOL);
extern void (* GLI_DRV_vUnLoadTextures)(void);
extern long (* GLI_DRV_lGetTextureSize)( GLI_tdstTexture *);
/* init_XXX.c */
extern void (* GLI_DRV_vFlipDevice)(long );
extern void (* GLI_DRV_vFlipDeviceWithSyncro)(void);
extern void (* GLI_DRV_vClearDevice)(BOOL, BOOL , unsigned long );
extern void (* GLI_DRV_xInitDriver) ( HWND, BOOL, long, long, long );
extern void (* GLI_DRV_vCloseDriver) (void);
extern void (* GLI_DRV_vClearZBufferRegion)(long ,long ,long ,long );
//extern long (* GLI_DRV_fn_lEnumerateDisplayMode)(void);
extern long (* GLI_DRV_fnl_EnumModes)(char *, char *);
extern HRESULT (* GLI_DRV_hChangeMode)( BOOL, long, long, long );
extern BOOL (* GLI_DRV_bLockDevice)( void **, long *);
extern BOOL (* GLI_DRV_bUnlockDevice)( void );
extern BOOL (* GLI_DRV_bPrepareForGliWindowed)(HWND);
extern void (* GLI_DRV_vPrepareForGliFullScreen)(HWND);
extern void (* GLI_DRV_vActivateGli)(HWND, BOOL);
extern void (* GLI_DRV_vReadaptDisplay)(void);
extern BOOL (* GLI_DRV_bWindowedModeIsOptimized)( void );
extern void (* GLI_DRV_vOptimizedWindowedMode)( void );
extern void (* GLI_DRV_vNonOptimizedWindowedMode)( void );
extern void (* GLI_DRV_vSetMainWindowForRender)(HWND);
extern void (* GLI_DRV_vRecomputeViewportToMaximizeDisplay)(int);
/* ClipTriangles */
extern void (* GLI_DRV_xClearViewingList)( void );
extern void (* GLI_DRV_xSendListToViewport)( GLD_tdstViewportAttributes * );
extern void (* GLI_DRV_vSetZClip)(float ,GLI_tdstInternalGlobalValuesFor3dEngine *);
extern void (* GLI_DRV_vSetClipWindow)(float ,float ,float ,float ,GLI_tdstInternalGlobalValuesFor3dEngine *);
extern void (* GLI_DRV_xSendElementTIToClip_TRIANGLES)( GEO_tdstElementIndexedTriangles *, GLI_tdstInternalGlobalValuesFor3dEngine *p_stGlobaleMT);
extern void (* GLI_DRV_xSendSingleTriangleToClip_TRIANGLES)( GLI_tdstAligned2DVector *a3_st2DVertex, ACP_tdst2DUVValues *a3_stUV, GLI_tdstInternalGlobalValuesFor3dEngine *p_stGlobaleMT);
/* misc request (see request type n dllcaps.h file) */
extern long (* GLI_DRV_lRequest)( long, long, long );
extern void GLI_fn_vDrawMirror(BOOL);
#ifndef RETAIL
extern void (*GLI_DRV_vGetStats)(unsigned long *, unsigned long *);
#else
#define GLI_DRV_vGetStats( a, b)
#endif
extern void (*GLI_DRV_vWaitRetrace)(void);
/*
=======================================================================================
Structures
=======================================================================================
*/
typedef struct GLI_tdst_DllInfos_
{
HINSTANCE h_Module;
char sz_Name[64];
char sz_Desc[256];
char sz_Version[16];
unsigned long ul_Code;
char sz_FileName[ _MAX_PATH ];
char sz_DriverName[ 32 ];
char sz_DeviceName[ 32 ];
long l_InitWidth;
long l_InitHeight;
long l_InitFullScreen;
long l_InitBpp;
long l_RealWidth;
long l_RealHeight;
float f_WidthRatio;
float f_HeightRatio;
} GLI_tdst_DllInfos;
/*
=======================================================================================
globals
=======================================================================================
*/
extern GLI_tdst_DllInfos GLI_gst_DllInfo;
/*
=======================================================================================
Functions
=======================================================================================
*/
long GLI_fnl_InitDll( void );
long GLI_fn_lCloseGliDriver( void );
void GLI_fnv_SetDllFileName( char *_sz_Name );
void GLI_fnv_SetDllName( char *_sz_Name );
void GLI_fnv_SetDriverName( char *_sz_Name );
void GLI_fnv_SetDeviceName( char *_sz_Name );
void GLI_fnv_SetMode( long _l_FullScreen, long _l_Width, long _l_Height, long _l_Bpp );
void GLI_fnv_SetModeByString( char *_sz_Line );
#endif /* __DLLINTER_H__ */

View File

@@ -0,0 +1,113 @@
/*
=======================================================================================
Name : DispMode.h
Author : vincent lhullier Date :04/09/98
Description : Manage the different display mode available
=======================================================================================
*/
#ifndef __DISPMODE_H__
#define __DISPMODE_H__
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include <stdio.h>
#include "GLI_util.h"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#ifdef __cplusplus
extern "C"
{
#endif
/*
=======================================================================================
Structure
=======================================================================================
*/
/*
* to store display mode
*/
typedef struct GLI_tdstDisplayMode_
{
long lFullScreen;
long lWidth;
long lHeight;
long lBpp;
} GLI_tdstDisplayMode;
/*
=======================================================================================
Constants
=======================================================================================
*/
#define GLI_C_lMaxDisplayMode 32
/*
=======================================================================================
Globals
=======================================================================================
*/
extern GLI_tdstDisplayMode GLI_gs_a_stDisplayMode[ GLI_C_lMaxDisplayMode ];
extern long GLI_gs_lNumberOfDisplayModes;
extern long GLI_gs_lCurrentDisplayMode;
extern long GLI_gs_lRequestedDisplayMode;
/*
=======================================================================================
Access function
=======================================================================================
*/
/*
* for display mode
*/
long GLI_fn_lIsFullScreenMode( void );
long GLI_fn_lDisplayModeWidth( void );
long GLI_fn_lDisplayModeHeight( void );
long GLI_fn_lDisplayModeBPP( void );
long GLI_fn_lGetDisplayMode( void );
long GLI_fn_lAddDisplayMode( long _lFullScreen, long _lWidth, long _lHeight, long _lBpp );
long GLI_fn_lGetNumberOfDisplayModes( void );
long GLI_fn_lGetCurrentDisplayMode( void );
long GLI_fn_lGetDisplayModeParameters( long _lDisplayMode, long *_p_lWidth, long *_p_lHeight );
long GLI_fn_lGetDisplayModeDescription( long _lDisplayMode, char *_szDesc );
void GLI_fn_lRequestNewDisplayMode( long _lDisplayMode );
long GLI_fn_lChangeDisplayMode( void );
/*
=======================================================================================
Function
=======================================================================================
*/
/*
* choose / select
*/
long GLI_fn_lSelectDisplayModeByIndex( long _lIndex );
long GLI_fn_lSelectDisplayModeByDimension( long _lWidth, long _lHeight, long _lBpp );
/*
* init
*/
void GLI_fn_vLoadDisplayMode( void );
/*
*
*/
void GLI_fn_vSetBrightness( long _lValue );
long GLI_fn_lGetBrightness();
#ifdef __cplusplus
}
#endif
#endif /*__DISPMODE_H__*/

View File

@@ -0,0 +1,53 @@
/* File: DrawFlags.h*/
/* Author: Steve McCalla*/
/* Date: 9 Sept 1998*/
/* these flags tell us which functions are called.*/
/* This allows us to find the common sets of functions and group them, saving thousands of*/
/* function calls and helping out our poor little 8k DCache on the Pentium.*/
/* When you want to find out which functions are called, just print the flag out */
/* to the error.log before calling the first func. Attention: ca va ramer quand tu le fais!*/
/**/
#ifndef DRAW_FLAGS_H
#define DRAW_FLAGS_H
#define Flag_GLI_vSetSpecular (1<<0)
#define Flag_GLI_vComputeXYZ (1<<1)
#define Flag_GLI_FastZCull (1<<3)
#define Flag_GLI_FastMirrorCulling (1<<4)
#define Flag_GLI_bCullingXYALL (1<<5)
#define Flag_GLI_bCullingXMin (1<<6)
#define Flag_GLI_bCullingXMax (1<<7)
#define Flag_GLI_bCullingXMax_XMin (1<<8)
#define Flag_GLI_bCullingYMin (1<<9)
#define Flag_GLI_bCullingYMax (1<<10)
#define Flag_GLI_bCullingYMax_YMin (1<<11)
#define Flag_GLI_FastWaterCLipping (1<<12)
#define Flag_GLI_FastMirrorCLipping (1<<13)
#define Flag_GLI_vZClipping (1<<14)
#define Flag_GLI_TestBackfaceClockwise (1<<15)
#define Flag_GLI_TestBackfaceCounterClockwize (1<<16)
#define Flag_GLI_XMaxCLipping (1<<17)
#define Flag_GLI_XMinCLipping (1<<18)
#define Flag_GLI_YMinCLipping (1<<20)
#define Flag_GLI_YMaxCLipping (1<<21)
#define Flag_GLI_vComputeMirrorUVW (1<<23)
#define Flag_GLI_vComputeMovingUVW (1<<24)
#define Flag_GLI_vComputeNormalUVW (1<<25)
#define Flag_GLI_vZSortTriangle (1<<26)
#define Flag_GLI_vDrawWiredTriangle (1<<27)
#define Flag_GLI_vDrawTriangle (1<<28)
#define Flag_GLI_vCorrect3DFXBug1 (1<<29)
/* These values were determined experimentally - they may change as the maps change*/
#define MaskBigFunc1 (Flag_GLI_vSetSpecular|Flag_GLI_vComputeXYZ|Flag_GLI_TestBackfaceClockwise|Flag_GLI_vComputeNormalUVW|Flag_GLI_vDrawTriangle|Flag_GLI_vCorrect3DFXBug1)
/* this variable is defined in ClipTriangles.c*/
extern unsigned long ulFuncMask;
#endif /*DRAW_FLAGS_H*/

View File

@@ -0,0 +1,44 @@
/*
=======================================================================================
Name : GLI_Menu.h
Author : vincent lhullier Date :10/03/99
Description : function to display gli menu
=======================================================================================
=======================================================================================
!!!! Warning : In retail version this file define only empty symbols !!!!
=======================================================================================
=======================================================================================
*/
#if defined(RETAIL) || defined(PRESS_DEMO)
#define GLI_fnv_ManageMenu()
#define GLI_fn_vAddDisplayedVisualMaterial( _hVisualMaterial )
#define GLI_M_vAddDisplayedVisualMaterialForSprite( p_stEltSprite )
#define GLI_M_vAddDisplayedVisualMaterialForEltIndexedTriangle( p_stEltIndexedTriangle )
#else
void GLI_fnv_ManageMenu( void );
void GLI_fn_vAddDisplayedVisualMaterial( ACP_tdxHandleOfMaterial _hVisualMaterial );
#define GLI_M_vAddDisplayedVisualMaterialForSprite( p_stEltSprite ) \
{ \
if( p_stEltSprite -> d_stListOfSprites[lSpriteIndex].hSprite -> d_hMaterial[0] \
&& p_stEltSprite -> d_stListOfSprites[lSpriteIndex].hSprite -> d_hMaterial[0] -> hVisualMaterial ) \
{ \
GLI_fn_vAddDisplayedVisualMaterial( p_stEltSprite -> d_stListOfSprites[lSpriteIndex].hSprite -> d_hMaterial[0] -> hVisualMaterial ); \
} \
}
#define GLI_M_vAddDisplayedVisualMaterialForEltIndexedTriangle( p_stEltIndexedTriangle ) \
{ \
if( p_stEltIndexedTriangle -> hMaterial \
&& p_stEltIndexedTriangle -> hMaterial -> hVisualMaterial ) \
{ \
GLI_fn_vAddDisplayedVisualMaterial( p_stEltIndexedTriangle -> hMaterial -> hVisualMaterial ); \
} \
}
#endif /* RETAIL */

View File

@@ -0,0 +1,19 @@
/*
=======================================================================================
Name : GLI_UTIL.h
Author : vincent lhullier Date :03/09/98
Description : Utility for GLI
=======================================================================================
*/
#ifndef __GLI_UTIL_H__
#define __GLI_UTIL_H__
/*
=======================================================================================
Function
=======================================================================================
*/
DLGTEMPLATE *fn_p_stPrepareDialogBox_LB( char *szTitle );
#endif /*__GLI_UTIL_H__*/

View File

@@ -0,0 +1,78 @@
/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Name : GliBench.h Author : vincent lhullier Date :12/10/98 Description : Bench Data
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#ifndef __GLIBENCH_H__
#define __GLIBENCH_H__
/* BENCH ACTIVE */
#ifdef GLI_BENCH
/*
---------------------------------------------------------------------------------------------------
Structure
---------------------------------------------------------------------------------------------------
*/
typedef struct tdstGliBench_
{
long lNumberOfElementsSended;
long lNumberOfObjectsSended;
long lNumberOfPolygonsSended;
long lNumberOfLinesSended;
long lNumberOfPolygonsBackfaces;
long lNumberOfPolygonsZculled;
long lNumberOfPolygonsZClipped;
long lNumberOfPolygonsXYCulled;
long lNumberOfPolygonsXYClipped;
long lNumberOfPolygonsXYUnClipped;
long lRateInPolygons;
long lRateInPixels;
long lPolycounter;
long lPolyTransparentcounter;
long lPolyOpaquecounter;
/* Light */
long lNumberOfHotSpotLightedVertices;
long lNumberOfSpecularLightedVertices;
long lNumberOfParallelLightedVertices;
/* triangle surface */
long lTrianglePerSurface[ 1024 ];
} tdstGliBench;
/*
===================================================================================================
Macros to be used by m<>ain appli (not by DLL)
===================================================================================================
*/
#define GLI_M_vBenchInc(a) GLI_g_stBench.##a++;
#define GLI_M_vBenchAdd(a, b) GLI_g_stBench.##a += b;
#define GLI_M_vBenchReset() memset(&GLI_g_stBench, 0, sizeof(tdstGliBench));
/*
===================================================================================================
Macros to be used by DLL
===================================================================================================
*/
#define GLI_MDRV_M_vBenchInc(a) GLI_MDRV_g_p_stBench->##a++;
#define GLI_MDRV_M_vBenchAdd(a, b) GLI_MDRV_g_p_stBench->##a += b;
/* Globals */
extern tdstGliBench GLI_g_stBench;
extern tdstGliBench *GLI_MDRV_g_p_stBench;
/* BENCH NOT ACTIVE */
#else /* GLI_BENCH */
#define GLI_M_vBenchInc(a)
#define GLI_M_vBenchAdd(a, b)
#define GLI_M_vBenchReset()
#define GLI_MDRV_M_vBenchInc(a)
#define GLI_MDRV_M_vBenchAdd(a, b)
#endif
#endif /* __GLIBENCH_H */

View File

@@ -0,0 +1,36 @@
/*
=======================================================================================
Name : GLIText.h
Author : vincent lhullier Date :12/10/98
Description : function to display text on screen
=======================================================================================
=======================================================================================
!!!! Warning : In retail version this file is empty !!!!
=======================================================================================
=======================================================================================
*/
#ifndef __GLITEXT_H__
#define __GLITEXT_H__
#ifndef RETAIL
void GLITEXT_fnv_Init( void );
void GLITEXT_fnv_Close( void );
void GLI_vDisplayPolices(unsigned char *d_ucFileName, long lX, long lY);
void GLITEXT_fnv_SetProportionalMode( long _l_Mode );
long GLITEXT_fnl_GetProportionalMode( void );
#else
#define GLITEXT_fnv_Init()
#define GLITEXT_fnv_Close()
#define GLI_vDisplayPolices(a,b,c)
#define GLITEXT_fnv_SetProportionalMode( a )
#define GLITEXT_fnl_GetProportionalMode( b ) 0
#endif
#endif /*__GLITEXT_H__*/

View File

@@ -0,0 +1,43 @@
#ifndef GLI_ST_H
#define GLI_ST_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef EXTERN_GLI
#undef EXTERN_GLI
#endif
#ifdef MAIN_GLI
#define EXTERN_GLI
#else
#define EXTERN_GLI extern
#endif
#ifdef U64
#define NO_ASSEMBLY_IN_GLI /* Julien Merceron */
#else
#define NO_ASSEMBLY_IN_GLI
#endif
#ifdef NO_ASSEMBLY_IN_GLI
#define ASM_CAST
#else
#define ASM_CAST (long)
#pragma message("Compile l'assembleur dans GLI..")
#endif
#include "Acp_Base.h"
#include "cpa_std.h"
#ifdef VISUAL
#define GLI_INTERNAL_FAST_CALLING_CONV __fastcall
#else
#define GLI_INTERNAL_FAST_CALLING_CONV
#endif
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif

View File

@@ -0,0 +1,59 @@
#ifndef LIGHT_ST_H
#define LIGHT_ST_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "GEO.h"
/* For DLL using these function :*/
#include "cpa_expt.h"
#include "POS.h"
typedef struct GLI_tdstZBufferForLight_
{
long lSizeX;
long lSizeY;
/* Projection x = X * coefX / Z . y = Y * CoefY / Z;*/
float fCoefX;
float fCoefY;
float *p_stZBufferMap;
float *p_stMiddleZBufferMap;
} GLI_tdstZBufferForLight;
typedef struct GLI_tdstLight_
{
long b_lOnOff ;
long bThisLightIsZBuffered;
long lTypeOfLight ;
MTH_tdxReal xFar,xNear;
/* for hotspot.*/
MTH_tdxReal xLittleAlpha,xBigAlpha;
MTH_tdxReal xLittleTangent,xBigTangent;
POS_tdstCompletePosition stMatrix ;
GLI_tdstZBufferForLight stZBuffer;
GEO_tdstColor stColor ;
unsigned char bValid;
unsigned char ucObjectLighted;
unsigned char bIsPainting;
unsigned char ucIsAlpha; /* 0: Normal (RGB&A) 1: A Only 2: RGB Only */
MTH3D_tdstVector xInter_Min_Pos;
MTH3D_tdstVector xExter_Min_Pos;
MTH3D_tdstVector xInter_Max_Pos;
MTH3D_tdstVector xExter_Max_Pos;
MTH3D_tdstVector xCenterBox;
MTH_tdxReal xRadius;
MTH_tdxReal xIntensity_Min;
MTH_tdxReal xIntensity_Max;
GEO_tdstColor stBackgroundColor;
}
GLI_tdstLight;
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* LIGHT_H*/

View File

@@ -0,0 +1,22 @@
#ifndef __MATBENCH_H__
#define __MATBENCH_H__
/*#define BENCH_MATERIAL*/
#ifdef BENCH_MATERIAL
#include "mater_st.h"
void MATBENCH_fn_vAddMaterialRef( GLI_tdstMaterial *_pst_Material );
void MATBENCH_fn_vDeleteMaterialRef( GLI_tdstMaterial *_pst_Material );
void MATBENCH_fn_vWriteMaterialInfoInFile( char *_szTitle );
#else
#define MATBENCH_fn_vAddMaterialRef(a)
#define MATBENCH_fn_vDeleteMaterialRef(a)
#define MATBENCH_fn_vWriteMaterialInfoInFile(a);
#endif
#endif /*__MATBENCH_H__*/

View File

@@ -0,0 +1,142 @@
/*
=======================================================================================
Name : Mater_st.h
Description : structure for material
=======================================================================================
*/
#ifndef GLI_MATERIAL_ST_H
#define GLI_MATERIAL_ST_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "GEO.h"
#include "textu_st.h"
/*
=======================================================================================
Multi texture material structure
=======================================================================================
*/
#ifdef MULTI_TEXTURE
#define C_MTMF_cUVStaticTransEnable 0x01
#define C_MTMF_cUVDynamicTransEnable 0x02
#define C_MTMF_cUVStaticMatEnable 0x04
#define C_MTMF_cUVDynamicMatEnable 0x08
#define C_MTMF_cIsNotLastTexture 0x10
#define C_MTMCO_cDisable 0
#define C_MTMCO_cSpecular 1
#define C_MTMCO_cDiffuse 2
#define C_MTMCO_cConstant 3
#define C_MTMCO_cSpecularAlpha 4
#define C_MTMCO_cDiffuseAlpha 5
#define C_MTMCO_cConstantAlpha 6
#define C_MTMCO_cSpecularColor 7
#define C_MTMCO_cDiffuseColor 8
#define C_MTMCO_cConstantColor 9
#define C_MTMOP_cMul 0
#define C_MTMOP_cAdd 1
#define C_MTMOP_cCopy 2
#define C_MTMOP_cAlphaTrans 3
#define C_MTMOP_cAlphaPremult 4
#define C_MTMOP_cMul2X 5
#define C_MTMOP_cInvert 6
#define C_MTMOP_cAddSmooth 7
#define C_MTMUV_cNoSource 0
#define C_MTMUV_cObject1 1
#define C_MTMUV_cObject2 2
#define C_MTMUV_cChrome 3
#define C_MTMUV_cScreen 4
#define C_MTMUV_cCartoon 5
#define C_MTMUV_cSolarPhong 6
typedef struct
{
float stMat[2][2];
float stTrans[2];
} GLI_tdstUVTransformation;
typedef struct
{
GLI_tdstTexture *pst_Texture;
char c_Operator;
char c_ColorOperator;
char c_UVSource;
char c_Flags;
GLI_tdstUVTransformation st_UVStaticPos;
GLI_tdstUVTransformation st_UVDynamicPos;
} GLI_tdstMultiTextureMaterial;
#endif /*MULTI_TEXTURE*/
/*
=======================================================================================
Standard structure
=======================================================================================
*/
/*
* Animated texture node
*/
typedef struct GLI_tdstAnimatedTextureNode_
{
GLI_tdstTexture *p_stTexture;
MTH_tdxReal xDisplayTime;
struct GLI_tdstAnimatedTextureNode_ *p_stNextDisplayNode;
} GLI_tdstAnimatedTextureNode;
/*
* Material structure
*/
typedef struct GLI_tdstMaterial_
{
unsigned long xMaterialType;
GEO_tdstColor stAmbient;
GEO_tdstColor stDiffuse;
GEO_tdstColor stSpecular;
GEO_tdstColor stColor;
long lSpecularExponent;
GLI_tdstTexture *p_stTexture;
/*
* scrolling material
*/
float fAddU;
float fAddV;
float fConstantAddU;
float fConstantAddV;
long lIncrementIsEnable;
/*
* for Animated textures.
*/
unsigned long lActualRefreshNumber;
GLI_tdstAnimatedTextureNode *p_stFistAnimatedTExtureNode;
GLI_tdstAnimatedTextureNode *p_stActualAnimatedTExtureNode;
long lNumberOfDisplayNode;
MTH_tdxReal xActualDisplayTimeSinceStartOfLastTexture;
ACP_tdxBool xIsLocked;
#ifdef MULTI_TEXTURE
GLI_tdstMultiTextureMaterial a_stMultiMaterial[8];
#endif /*MULTI_TEXTURE*/
} GLI_tdstMaterial ;
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* GLI_MATERIAL_H*/

View File

@@ -0,0 +1,19 @@
/*
=======================================================================================
Name : PrCoVert.h
Author : Date :24/07/98
Description : function prototype for vertex serail colorisation
=======================================================================================
Modification -> Author : Date :
Description :
=======================================================================================
*/
#ifndef __PRCOVERT_H__
#define __PRCOVERT_H__
void GLI_vSerialComputeVertexColorIndexedAlpha(GLI_tdstInternalGlobalValuesFor3dEngine *p_stGP, ACP_tdxIndex xNumber,ACP_tdxIndex *p_ListOfIndexes);
void GLI_vSerialComputeVertexColorIndexedNoAlpha(GLI_tdstInternalGlobalValuesFor3dEngine *p_stGP, ACP_tdxIndex xNumber,ACP_tdxIndex *p_ListOfIndexes);
void GLI_vSerialComputeVertexColor2(GLI_tdstInternalGlobalValuesFor3dEngine *p_stGP, ACP_tdxIndex xNumber);
#endif

View File

@@ -0,0 +1,53 @@
#ifndef PRIVATEOBJECTH
#define PRIVATEOBJECTH
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* For DLL using these function :*/
#include "cpa_expt.h"
/*#ifdef USE_EXECUTE_BUFFER
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vResetAnExecuteBuffer(GLI_tdstExecuteBuffer *p_stExecuteBuffer);
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vAddOneTriangleToAnExecuteBuffer(GLI_tdstExecuteBuffer *p_stExecuteBuffer,GLI_tdstScreenVertex *p_FirstPoint,long lLenght);
GLI_tdstScreenVertex * GLI_INTERNAL_FAST_CALLING_CONV
GLI_vGetNewScreenVerticesOfExecuteBuffer(GLI_tdstExecuteBuffer *p_stExecuteBuffer,long lNbVertices);
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vFreeScreenVerticesOfExecuteBuffer(GLI_tdstExecuteBuffer *p_stExecuteBuffer,long lNbVertices);
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vAddOneMaterialToAnExecuteBuffer(GLI_tdstExecuteBuffer *p_stExecuteBuffer,ACP_tdxHandleOfMaterial hMaterial,long lDrawMask);
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vDrawAnExecuteBuffer(GLD_tdstViewportAttributes *p_stVpt ,
GLI_tdstExecuteBuffer *p_stExecuteBuffer);
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vInitExecutesBuffers();
void GLI_INTERNAL_FAST_CALLING_CONV
GLI_vEndExecuteBufferDraw();
#endif*/
/**********************************************************************************************/
/* Name: GLI_vInitModuleObject 1.0*/
/* Goal: Creates threads, reserve memory for all, init buffers...*/
/* Code: Philippe Vimont */
/* OPTIMMIZED : */
/**********************************************************************************************/
void
GLI_vInitModuleObject();
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* PRIVATEOBJECTH*/

View File

@@ -0,0 +1,155 @@
#ifndef PRIVATEOBJECTST
#define PRIVATEOBJECTST
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* For DLL using these function :*/
#include "cpa_expt.h"
#include "cpa_expt.h"
#include "textu_st.h"
#include "GLD.h"
#include "light.h"
typedef struct GLI_tdstAligned3DVector_
{
MTH_tdxReal xX,xY,xZ;
MTH_tdxReal ALIGN;
} GLI_tdstAligned3DVector;
typedef struct GLI_tdstAligned2DVector_
{
float xX ;
float xY ;
float xOoZ ;
unsigned long ulPackedColor;
} GLI_tdstAligned2DVector;
/* ------------------------- ZLISTE ----------------------------*/
typedef struct GLI_tdstOneNodeOfZListe_
{
void *p_ThreePoints;
GLI_tdstTexture *p_TextureOfTheTriangle;
struct GLI_tdstOneNodeOfZListe_ *p_NextNode;
unsigned long lCurrentDrawMask;
tdstFogParams *p_stFogParams;
ACP_tdxHandleOfMaterial p_stMaterial;
} GLI_tdstOneNodeOfZListe;
#define GLI_MaxZEntryPO2 12 /* == 4096 entries * n tables */
#define GLI_MaxZListeTrianglesPO2 11
#define GLI_NumberOfZListes 1
typedef struct GLI_tdstZListe_
{
long lMinValue[GLI_NumberOfZListes];
long lMaxValue[GLI_NumberOfZListes];
GLI_tdstOneNodeOfZListe *aDEF_p_tdstTableOfZentryNearestOfWaterPlane[GLI_NumberOfZListes<<GLI_MaxZEntryPO2];
GLI_tdstOneNodeOfZListe *p_stCurrentZNode;
GLI_tdstOneNodeOfZListe aDEF_tdstZListeNodes[1<<GLI_MaxZListeTrianglesPO2];
long lPointCounters;
void *p_CurrentPoint;
void *p_TableOfPoints;
} GLI_tdstZListe;
/* ----------------------- END ZLISTE --------------------------*/
#define GLI_C_ClipMaskXMin 0x00000001
#define GLI_C_ClipMaskXMax 0x00000002
#define GLI_C_ClipMaskYMin 0x00000004
#define GLI_C_ClipMaskYMax 0x00000008
#define GLI_C_CutMaskXMin 0x00000010
#define GLI_C_CutMaskXMax 0x00000020
#define GLI_C_CutMaskYMin 0x00000040
#define GLI_C_CutMaskYMax 0x00000080
#define GLI_C_ClipMaskZ 0x00000100
#define GLI_C_ClipMaskWater 0x00000200
#define GLI_C_IsCameraInBoundingVolume 0x00000400
#define GLI_C_IsObjectMatrixAlreadyInverted 0x00000800
#define GLI_C_AtLeastOneNegativeColorWasDetected 0x00001000
#define GLI_C_TrianglesMustBeSorted 0x00008000
#define GLI_C_ClipMaskAllDirection (GLI_C_ClipMaskXMin | GLI_C_ClipMaskXMax | GLI_C_ClipMaskYMin | GLI_C_ClipMaskYMax | GLI_C_ClipMaskZ)
typedef struct GLI_tdstInternalGlobalValuesFor3dEngine_
{
GLD_tdstViewportAttributes *p_stVpt ;
GEO_tdstGeometricObject *p_stObj ;
long lDrawModeMask;
long lHierachDrawMask;
long lCurrentDrawMask;
long GLD_RenderingCounter;
long lClippingModeMask;
MTH3D_tdstVector stCenterOfCurrentBoundingSphere;
MTH_tdxReal stRadiusOfCurrentBoundingSphere;
/* BIG TABLES*/
GLI_tdstAligned3DVector GLI_TurnedScaledDisplecedPoint [C_lMaxVertexPerObject] ;
GLI_tdstAligned2DVector GLI_ScreenPoint [C_lMaxVertexPerObject] ;
MTH_tdxReal GLI_aDEF_xWaterPlaneDepth [(C_lMaxVertexPerObject>>1)-8] ;
GEO_tdstColor GLI_aDEF_stColorsRLID [C_lMaxVertexPerObject] ;
GEO_tdstColor GLI_aDEF_stColorsRLIS [C_lMaxVertexPerObject] ;
GEO_tdstColor GLI_aDEF_stColorsRLIA;
ACP_tdst2DUVValues GLI_aDEF_stEnvUV [C_lMaxVertexPerObject] ; /*used for environment UV (chromed)*/
GEO_tdstColor GLI_stColorsAdd;
GEO_tdstColor GLI_stColorsMul;
POS_tdstCompletePosition *gs_st_CameraMatrix;
POS_tdstCompletePosition *gs_st_CurrentMatrix;
POS_tdstCompletePosition gs_st_CurrentMatrixInverted;
POS_tdstCompletePosition gs_st_CurrentMatrixMultiplyedWithCameraMatrix;
float fZClipping;
float fWClipping;
float fXMinClipping;
float fXMaxClipping;
float fYMinClipping;
float fYMaxClipping;
GLI_tdstTexture *p_stCurrentTexture;
ACP_tdxHandleOfMaterial hCurrentMaterial;
struct GLI_tdstCamera_ *p_stCurrentCamera;
MTH_tdxReal xWaterPlaneDistance;
GLI_tdstAligned3DVector stWaterPlanNormale;
unsigned long ulColorInitForSprite;
unsigned long ulSpecularColorForSprite;
float fMulU;
float fMulV;
GLI_tdstZListe *p_TheZListe;
unsigned long ulCurrentZTable;
/*For fog*/
tdstFogParams *p_stActiveFog;
tdstFogParams *p_stLastComputedFog;
long xFogIsOn;
long xTextureDontAcceptFog;
/*For mirror*/
long lAMirrorIsDetected;
BOOL bDrawMirrorSymetric;
long lDisplayMenuIsDetected;
/*For alpha*/
float xGlobalAlpha;
} GLI_tdstInternalGlobalValuesFor3dEngine;
/* This must be a power of two.*/
void GLI_vSerialComputeVerticesPositions(GLI_tdstInternalGlobalValuesFor3dEngine *p_stGlobalsParrameters,long xStart,long xNumber);
void GLI_vSerialComputeVertexColor(GLI_tdstInternalGlobalValuesFor3dEngine *p_stGlobalsParrameters,long xStart,long xNumber,void *p_VertexScreen);
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* PRIVATEOBJECTST*/

View File

@@ -0,0 +1,43 @@
/*
=======================================================================================
Name : TexArray.h
Author : Gliglou corporation
Description : manage array of texture data
=======================================================================================
*/
#ifndef __TEXARRAY_H__
#define __TEXARRAY_H__
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include "texture.h"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*
=======================================================================================
Globals
=======================================================================================
*/
/*
* array of texture / texture state
*/
extern GLI_tdstTexture *gs_aDEFTableOfTextureAlreadyRead [ GLI_C_lNBMaxOfTextures ];
extern long gs_aDEFTableOfTextureMemoryChannels[ GLI_C_lNBMaxOfTextures ];
extern unsigned long GLI_g_ulNumberOfLoadedTexture;
/*
=======================================================================================
Functions
=======================================================================================
*/
void GLI_fn_vUnallocTextureInChannel( unsigned char _ucChannel );
void GLI_fn_vUnallocAllTextures( void );
long GLI_lComputeTexturesSize( void );
long GLI_lGetBigestSizeOfTexture( void );
void GLI_vUnCompressExistantTexture(void);
GLI_tdstTexture *TEX_fnpst_DoesTextureExist( char *_szFileName );
void TEX_fnv_MakeItExisting( GLI_tdstTexture *_pst_TextureCreated );
#endif /*__TEXARRAY_H__*/

View File

@@ -0,0 +1,47 @@
#ifndef __TEXBENCH_H__
#define __TEXBENCH_H__
/*#define BENCH_TEXTURE*/
#ifdef BENCH_TEXTURE
#include "textu_st.h"
#define TEXBENCH_C_cComputedSize 0
#define TEXBENCH_C_cRealSize 1
#define TEXBENCH_C_cBeginUnload 0
#define TEXBENCH_C_cEndUnload 1
#define TEXBENCH_C_cBeginUncompress 2
#define TEXBENCH_C_cEndUncompress 3
#define TEXBENCH_C_cBeginCompression 4
#define TEXBENCH_C_cEndcompression 5
#define TEXBENCH_C_cBeginComputeLod 6
#define TEXBENCH_C_cEndComputeLod 7
#define TEXBENCH_C_cBeginDownload 8
#define TEXBENCH_C_cEndDownload 9
#define TEXBENCH_C_cBeginDownload1 10
#define TEXBENCH_C_cEndDownload1 11
#define TEXBENCH_C_cBeginDownload2 12
#define TEXBENCH_C_cEndDownload2 13
#define TEXBENCH_C_cBeginDownload3 14
#define TEXBENCH_C_cEndDownload3 15
void TEXBENCH_fn_vInitTextureSize( void );
void TEXBENCH_fn_vSetTextureSizeWithIndex( long _lTextureIndex, char _cSizeType, long _lSize );
void TEXBENCH_fn_vSetTextureSize( GLI_tdstTexture *_p_stTexture, char _cSizeType, long _lSize );
void TEXBENCH_fn_vWriteSizeInFile( void );
void TEXBENCH_fn_vSetTime( char _cFor );
#else
#define TEXBENCH_fn_vInitTextureSize()
#define TEXBENCH_fn_vSetTextureSizeWithIndex( a, b, c)
#define TEXBENCH_fn_vSetTextureSize( a, b, c )
#define TEXBENCH_fn_vWriteSizeInFile()
#define TEXBENCH_fn_vSetTime( a )
#endif
#endif /*__TEXBENCH_H__*/

View File

@@ -0,0 +1,19 @@
/*
=======================================================================================
Name : TexArray.h
Author : Gliglou corporation
Description : texture compression
=======================================================================================
*/
#ifndef __TEXCOMPRESS_H__
#define __TEXCOMPRESS_H__
/*
=======================================================================================
FUNCTIONS
=======================================================================================
*/
long TEX_lComputeCompression( void );
#endif /*__TEXCOMPRESS_H__*/

View File

@@ -0,0 +1,31 @@
/*
=======================================================================================
Name : TexName.h
Author : GLIGLOU corporation
Description : Fonction for texture name analysis / storage
=======================================================================================
*/
#ifndef __TEXNAME_H__
#define __TEXNAME_H__
#include "texture.h"
#ifdef __cplusplus
extern "C"
{
#endif
/*
* Analyse name of texture
*/
long GLI_fn_lAnalyseTextureName( char *_szFileName, long *_p_lTextureCaps, unsigned char *_p_ucCyclingMode );
void TEX_fnv_FixTextureName(char *_pszOut, char *_pszIn);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,54 @@
/*
=======================================================================================
Name : TexProcedural.c
Author : vincent lhullier Date :01/02/99
Description : function for procedural texture
=======================================================================================
*/
#ifdef PROCEDURAL_TEXTURE
#ifndef __TEX_PROCEDURAL_H__
#define __TEX_PROCEDURAL_H__
#include "textu_st.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
=======================================================================================
Structure
=======================================================================================
*/
/*
typedef struct
{
long lFlags;
GLI_tdstTexture *pst_Texture;
} TEX_tdstProceduralData;
*/
long TEXPRO_fnl_InitProceduralTexture( GLI_tdstTexture *_pst_Texture, long _l_Type, long _l_Width, long _l_Height, long _l_RefreshRate );
long TEXPRO_fnl_InitProceduralTextureWithName( GLI_tdstTexture *_pst_Texture, char *_sz_ProcName, long _l_Width, long _l_Height, long _l_RefreshRate );
void TEXPRO_fnv_RefreshProceduralTexture( GLI_tdstTexture *_pst_Texture, long _l_ActualRefreshNumber );
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /*__TEX_PROCEDURAL_H__*/
#else /*PROCEDURAL_TEXTURE*/
#define TEXPRO_fnl_InitProceduralTexture(a,b,c,d,e)
#define TEXPRO_fnl_InitProceduralTextureWithName(a,b,c,d,e)
#define TEXPRO_fnv_RefreshProceduralTexture(a,b)
#endif /*PROCEDURAL_TEXTURE*/

View File

@@ -0,0 +1,81 @@
/*
=======================================================================================
Name : Textu_st.h
Description : Device indepent Texture structure
=======================================================================================
*/
#ifndef GLI_TEXTURE_ST_H
#define GLI_TEXTURE_ST_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* Texture structure
*/
typedef struct GLI_tdstTexture_
{
long bIsAvailable;
long lTextureQuality;
/* texture data */
void *p_vBitMap;
void *p_vColorTable;
/* Parameter specific for card. */
void *p_stSpecParam;
/* texture capabilies */
long lTextureCaps;
/* texture size (after compression) */
unsigned short lHeight;
unsigned short lWidth;
/* Real size (before compreesion). */
unsigned short lRealHeight;
unsigned short lRealWidth;
/* data for scrolling texture */
float fAddU;
float fAddV;
long lIncrementIsEnable;
/* chromakey data */
unsigned long lChromakeyColorRGBA;
/* MipMapping */
long lNumberOfLod;
unsigned long lCompressionCounter;
unsigned long lTypeOfCompression;
unsigned long lTypeOfMipMapping;
//struct GLI_tdstTexture_ *p_NextLodOfTexture;
//struct GLI_tdstTexture_ *p_PrevLodOfTexture;
struct GLI_tdstTexture_ *p_TextureOfSubstitution;
unsigned char ucBilinearMode;
unsigned char ucCylingMode;
char a255_cFileName[ 128 ];
//char *szName;
#ifdef PROCEDURAL_TEXTURE
long l_Type;
void *pv_Bitmap2;
long l_RefreshRate;
long l_RefreshCounter;
long l_RenderingCounter;
#endif
} GLI_tdstTexture;
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* GLI_TEXTURE_H*/

View File

@@ -0,0 +1,28 @@
#ifndef VISUALSET_ST_H
#define VISUALSET_ST_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct GEO_tdstVisualSet_
{
MTH_tdxReal xLastDistance ; /*/hysteresys. Works with only one viewport.*/
ACP_tdxIndex xNbLodDefinitions;
MTH_tdxReal *d_xThresholdsTable;
struct GEO_tdstGeometricObject_ **d_p_stLodDefinitions;
/*ANNECY JMD 17/02/98{*/
ACP_tdxHandleToRadiosity *d_hRLI ; /* array of RLI use by perso */
long lNumberOfRLI ; /* number of RLI in the array */
/*END ANNECY JMD }*/
}
GEO_tdstVisualSet ;
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif

View File

@@ -0,0 +1,94 @@
#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*/

View File

@@ -0,0 +1,34 @@
#ifndef GLI_LISTE_H
#define GLI_LISTE_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* For DLL using these function :*/
#include "cpa_expt.h"
typedef struct GLI_tdst_Z_List_
{
unsigned char *g_d_ucFreeDisplayRooms ;
long g_lFreeDisplayRoomsCounter ;
long g_lFreeDisplayRoomsCounterMax ;
long g_lDisplayCounterMin ;
long g_lDisplayCounterMax ;
struct GLI_tdstElementInList_ *g_d_pstFreeElements ;
struct GLI_tdstElementInList_ *g_aDEF_pstViewingList[C_lMaxIndexInViewingList] ;
}
GLI_tdst_Z_List;
#define GLI_C_lFirstZIndexForDraw C_lMaxIndexInViewingList-1
EXTERN_GLI GLI_tdst_Z_List GLI_g_a2_stZ_List[1];
EXTERN_GLI GLI_tdst_Z_List *GLI_gp_CurrentZ_ListForBuild;
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* GLI_LISTE_H*/