diff --git a/desmume/src/render3D.h b/desmume/src/render3D.h index 9d385ae75..b2d6a2470 100644 --- a/desmume/src/render3D.h +++ b/desmume/src/render3D.h @@ -21,7 +21,11 @@ #ifndef GPU_3D #define GPU_3D -#define C_DECL __cdecl +#ifdef _MSC_VER +#define CALL_CONVENTION __cdecl +#else +#define CALL_CONVENTION +#endif /* enum DRIVER_3D @@ -33,53 +37,53 @@ enum DRIVER_3D typedef struct GPU3DInterface { - char (C_DECL* NDS_3D_Init) (void); - void (C_DECL* NDS_3D_ViewPort) (unsigned long v); - void (C_DECL* NDS_3D_ClearColor) (unsigned long v); - void (C_DECL* NDS_3D_FogColor) (unsigned long v); - void (C_DECL* NDS_3D_FogOffset) (unsigned long v); - void (C_DECL* NDS_3D_ClearDepth) (unsigned long v); - void (C_DECL* NDS_3D_MatrixMode) (unsigned long v); - void (C_DECL* NDS_3D_LoadIdentity) (void); - void (C_DECL* NDS_3D_LoadMatrix4x4) (signed long v); - void (C_DECL* NDS_3D_LoadMatrix4x3) (signed long v); - void (C_DECL* NDS_3D_StoreMatrix) (unsigned long v); - void (C_DECL* NDS_3D_RestoreMatrix) (unsigned long v); - void (C_DECL* NDS_3D_PushMatrix) (void); - void (C_DECL* NDS_3D_PopMatrix) (signed long i); - void (C_DECL* NDS_3D_Translate) (signed long v); - void (C_DECL* NDS_3D_Scale) (signed long v); - void (C_DECL* NDS_3D_MultMatrix3x3) (signed long v); - void (C_DECL* NDS_3D_MultMatrix4x3) (signed long v); - void (C_DECL* NDS_3D_MultMatrix4x4) (signed long v); - void (C_DECL* NDS_3D_Begin) (unsigned long v); - void (C_DECL* NDS_3D_End) (void); - void (C_DECL* NDS_3D_Color3b) (unsigned long v); - void (C_DECL* NDS_3D_Vertex16b) (unsigned int v); - void (C_DECL* NDS_3D_Vertex10b) (unsigned long v); - void (C_DECL* NDS_3D_Vertex3_cord) (unsigned int one, unsigned int two, unsigned int v); - void (C_DECL* NDS_3D_Vertex_rel) (unsigned long v); - void (C_DECL* NDS_3D_SwapScreen) (unsigned int screen); - int (C_DECL* NDS_3D_GetNumPolys) (void); // THIS IS A HACK :D - int (C_DECL* NDS_3D_GetNumVertex) (void); - void (C_DECL* NDS_3D_Flush) (unsigned long v); - void (C_DECL* NDS_3D_PolygonAttrib) (unsigned long val); - void (C_DECL* NDS_3D_Material0) (unsigned long val); - void (C_DECL* NDS_3D_Material1) (unsigned long val); - void (C_DECL* NDS_3D_Shininess) (unsigned long val); - void (C_DECL* NDS_3D_TexImage) (unsigned long val); - void (C_DECL* NDS_3D_TexPalette) (unsigned long val); - void (C_DECL* NDS_3D_TexCoord) (unsigned long val); - void (C_DECL* NDS_3D_LightDirection) (unsigned long v); - void (C_DECL* NDS_3D_LightColor) (unsigned long v); - void (C_DECL* NDS_3D_AlphaFunc) (unsigned long v); - void (C_DECL* NDS_3D_Control) (unsigned long v); - void (C_DECL* NDS_3D_Normal) (unsigned long v); - void (C_DECL* NDS_3D_CallList) (unsigned long v); + char (CALL_CONVENTION* NDS_3D_Init) (void); + void (CALL_CONVENTION* NDS_3D_ViewPort) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_ClearColor) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_FogColor) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_FogOffset) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_ClearDepth) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_MatrixMode) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_LoadIdentity) (void); + void (CALL_CONVENTION* NDS_3D_LoadMatrix4x4) (signed long v); + void (CALL_CONVENTION* NDS_3D_LoadMatrix4x3) (signed long v); + void (CALL_CONVENTION* NDS_3D_StoreMatrix) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_RestoreMatrix) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_PushMatrix) (void); + void (CALL_CONVENTION* NDS_3D_PopMatrix) (signed long i); + void (CALL_CONVENTION* NDS_3D_Translate) (signed long v); + void (CALL_CONVENTION* NDS_3D_Scale) (signed long v); + void (CALL_CONVENTION* NDS_3D_MultMatrix3x3) (signed long v); + void (CALL_CONVENTION* NDS_3D_MultMatrix4x3) (signed long v); + void (CALL_CONVENTION* NDS_3D_MultMatrix4x4) (signed long v); + void (CALL_CONVENTION* NDS_3D_Begin) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_End) (void); + void (CALL_CONVENTION* NDS_3D_Color3b) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_Vertex16b) (unsigned int v); + void (CALL_CONVENTION* NDS_3D_Vertex10b) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_Vertex3_cord) (unsigned int one, unsigned int two, unsigned int v); + void (CALL_CONVENTION* NDS_3D_Vertex_rel) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_SwapScreen) (unsigned int screen); + int (CALL_CONVENTION* NDS_3D_GetNumPolys) (void); // THIS IS A HACK :D + int (CALL_CONVENTION* NDS_3D_GetNumVertex) (void); + void (CALL_CONVENTION* NDS_3D_Flush) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_PolygonAttrib) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_Material0) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_Material1) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_Shininess) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_TexImage) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_TexPalette) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_TexCoord) (unsigned long val); + void (CALL_CONVENTION* NDS_3D_LightDirection) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_LightColor) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_AlphaFunc) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_Control) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_Normal) (unsigned long v); + void (CALL_CONVENTION* NDS_3D_CallList) (unsigned long v); - long (C_DECL* NDS_3D_GetClipMatrix) (unsigned int index); - long (C_DECL* NDS_3D_GetDirectionalMatrix) (unsigned int index); - void (C_DECL* NDS_3D_GetLine) (int line, unsigned short * DST); + long (CALL_CONVENTION* NDS_3D_GetClipMatrix) (unsigned int index); + long (CALL_CONVENTION* NDS_3D_GetDirectionalMatrix) (unsigned int index); + void (CALL_CONVENTION* NDS_3D_GetLine) (int line, unsigned short * DST); } GPU3DInterface; // gpu 3D core list, per port @@ -94,4 +98,4 @@ extern GPU3DInterface *gpu3D; void NDS_3D_SetDriver (int core3DIndex); -#endif \ No newline at end of file +#endif