#define E_OUTOFMEMORY MAKE_HRESULT(1, 0x007, 14)
#define E_NOINTERFACE MAKE_HRESULT(1, 0x000, 0x4002)
#define E_POINTER MAKE_HRESULT(1, 0x000, 0x4003)
+#define E_FAIL MAKE_HRESULT(1, 0x000, 0x4005)
#define S_OK ((HRESULT)0)
#define S_FALSE ((HRESULT)1)
#define D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400
#define D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
-
-#ifdef WINAPI
-#undef WINAPI
-#endif /* WINAPI*/
-
-#if defined(__x86_64__) || defined(_M_X64)
-#define WINAPI __attribute__((ms_abi))
-#else /* x86_64 */
-#define WINAPI __attribute__((__stdcall__))
-#endif /* x86_64 */
+/* Windows calling convention */
+#ifndef WINAPI
+ #if defined(__x86_64__) && !defined(__ILP32__)
+ #define WINAPI __attribute__((ms_abi))
+ #elif defined(__i386__)
+ #define WINAPI __attribute__((__stdcall__))
+ #else /* neither amd64 nor i386 */
+ #define WINAPI
+ #endif
+#endif /* WINAPI */
/* Implementation caps */
#define D3DPRESENT_BACK_BUFFERS_MAX 3
#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
+#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
+#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
+#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
/********************************************************
* Bitmasks *
#define D3DPRESENT_DONOTWAIT 0x00000001
#define D3DPRESENT_LINEAR_CONTENT 0x00000002
+#define D3DPRESENT_RATE_DEFAULT 0
#define D3DCREATE_FPU_PRESERVE 0x00000002
#define D3DCREATE_MULTITHREADED 0x00000004
#define D3DSTREAMSOURCE_INDEXEDDATA (1 << 30)
#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
+/* D3DRS_COLORWRITEENABLE */
+#define D3DCOLORWRITEENABLE_RED (1L << 0)
+#define D3DCOLORWRITEENABLE_GREEN (1L << 1)
+#define D3DCOLORWRITEENABLE_BLUE (1L << 2)
+#define D3DCOLORWRITEENABLE_ALPHA (1L << 3)
+
+
/********************************************************
* Function macros *
*******************************************************/
} D3DBUSTYPE;
typedef enum _D3DCMPFUNC {
+ D3DCMP_NEVER_ZERO = 0, //Needed to avoid warnings
D3DCMP_NEVER = 1,
D3DCMP_LESS = 2,
D3DCMP_EQUAL = 3,
} D3DDEVTYPE;
typedef enum _D3DFILLMODE {
+ D3DFILL_SOLID_ZERO = 0,
D3DFILL_POINT = 1,
D3DFILL_WIREFRAME = 2,
D3DFILL_SOLID = 3
D3DFMT_A1 = 118,
D3DFMT_A2B10G10R10_XR_BIAS = 119,
D3DFMT_BINARYBUFFER = 199,
+ D3DFMT_ATI1 = MAKEFOURCC('A', 'T', 'I', '1'),
+ D3DFMT_ATI2 = MAKEFOURCC('A', 'T', 'I', '2'),
+ D3DFMT_ATOC = MAKEFOURCC('A', 'T', 'O', 'C'),
D3DFMT_DF16 = MAKEFOURCC('D', 'F', '1', '6'),
D3DFMT_DF24 = MAKEFOURCC('D', 'F', '2', '4'),
D3DFMT_INTZ = MAKEFOURCC('I', 'N', 'T', 'Z'),
D3DFMT_NULL = MAKEFOURCC('N', 'U', 'L', 'L'),
+ D3DFMT_NVDB = MAKEFOURCC('N', 'V', 'D', 'B'),
D3DFMT_NV11 = MAKEFOURCC('N', 'V', '1', '1'),
D3DFMT_NV12 = MAKEFOURCC('N', 'V', '1', '2'),
+ D3DFMT_RESZ = MAKEFOURCC('R', 'E', 'S', 'Z'),
D3DFMT_Y210 = MAKEFOURCC('Y', '2', '1', '0'),
D3DFMT_Y216 = MAKEFOURCC('Y', '2', '1', '6'),
D3DFMT_Y410 = MAKEFOURCC('Y', '4', '1', '0')