1 #ifndef NV_CORE_H 2 #error "Do not include this file directly." 3 #endif 4 5 // Function linkage 6 #define DLL_IMPORT __declspec(dllimport) 7 #define DLL_EXPORT __declspec(dllexport) 8 #define DLL_EXPORT_CLASS DLL_EXPORT 9 10 // Function calling modes 11 #define NV_CDECL __cdecl 12 #define NV_STDCALL __stdcall 13 #define NV_FASTCALL __fastcall 14 #define NV_FORCEINLINE __forceinline 15 #define NV_DEPRECATED 16 17 #define NV_PURE 18 #define NV_CONST 19 20 // Set standard function names. 21 #define snprintf _snprintf 22 #if _MSC_VER < 1500 23 # define vsnprintf _vsnprintf 24 #endif 25 #define vsscanf _vsscanf 26 #define chdir _chdir 27 #define getcwd _getcwd 28 29 #define va_copy(a, b) a = b 30 31 #if !defined restrict 32 #define restrict 33 #endif 34 35 // Ignore gcc attributes. 36 #define __attribute__(X) 37 38 #if !defined __FUNC__ 39 #define __FUNC__ __FUNCTION__ 40 #endif 41 42 43 // Type definitions 44 typedef unsigned char uint8; 45 typedef signed char int8; 46 47 typedef unsigned short uint16; 48 typedef signed short int16; 49 50 typedef unsigned int uint32; 51 typedef signed int int32; 52 53 typedef unsigned __int64 uint64; 54 typedef signed __int64 int64; 55 56 // Aliases 57 typedef uint32 uint; 58 59 60 // Unwanted VC++ warnings to disable. 61 /* 62 #pragma warning(disable : 4244) // conversion to float, possible loss of data 63 #pragma warning(disable : 4245) // conversion from 'enum ' to 'unsigned long', signed/unsigned mismatch 64 #pragma warning(disable : 4100) // unreferenced formal parameter 65 #pragma warning(disable : 4514) // unreferenced inline function has been removed 66 #pragma warning(disable : 4710) // inline function not expanded 67 #pragma warning(disable : 4127) // Conditional expression is constant 68 #pragma warning(disable : 4305) // truncation from 'const double' to 'float' 69 #pragma warning(disable : 4505) // unreferenced local function has been removed 70 71 #pragma warning(disable : 4702) // unreachable code in inline expanded function 72 #pragma warning(disable : 4711) // function selected for automatic inlining 73 #pragma warning(disable : 4725) // Pentium fdiv bug 74 75 #pragma warning(disable : 4786) // Identifier was truncated and cannot be debugged. 76 77 #pragma warning(disable : 4675) // resolved overload was found by argument-dependent lookup 78 */ 79