├── _mingw_unicode.h ├── README.md ├── d3d10misc.h ├── d3dx9.h ├── dxerr8.h ├── dxerr9.h ├── dxgicommon.h ├── d3dx9shape.h ├── dxgitype.h ├── d3d10_1shader.h ├── d3dvec.inl ├── dxgidebug.h ├── dxgiformat.h ├── COPYING.MinGW-w64.txt ├── d3d11on12.h ├── dxdiag.h ├── d3dcompiler.h ├── d3dx9xof.h ├── d3d10shader.h ├── d3d11shader.h ├── d3d8caps.h ├── dxfile.h ├── d3drmdef.h ├── d3dcaps.h ├── d3dhal.h ├── d3dx9anim.h └── d3d9caps.h /_mingw_unicode.h: -------------------------------------------------------------------------------- 1 | /** 2 | * This file has no copyright assigned and is placed in the Public Domain. 3 | * This file is part of the mingw-w64 runtime package. 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 | */ 6 | 7 | #if !defined(_INC_CRT_UNICODE_MACROS) 8 | /* _INC_CRT_UNICODE_MACROS defined based on UNICODE flag */ 9 | 10 | #if defined(UNICODE) 11 | # define _INC_CRT_UNICODE_MACROS 1 12 | # define __MINGW_NAME_AW(func) func##W 13 | # define __MINGW_NAME_AW_EXT(func,ext) func##W##ext 14 | # define __MINGW_NAME_UAW(func) func##_W 15 | # define __MINGW_NAME_UAW_EXT(func,ext) func##_W_##ext 16 | # define __MINGW_STRING_AW(str) L##str /* same as TEXT() from winnt.h */ 17 | # define __MINGW_PROCNAMEEXT_AW "W" 18 | #else 19 | # define _INC_CRT_UNICODE_MACROS 2 20 | # define __MINGW_NAME_AW(func) func##A 21 | # define __MINGW_NAME_AW_EXT(func,ext) func##A##ext 22 | # define __MINGW_NAME_UAW(func) func##_A 23 | # define __MINGW_NAME_UAW_EXT(func,ext) func##_A_##ext 24 | # define __MINGW_STRING_AW(str) str /* same as TEXT() from winnt.h */ 25 | # define __MINGW_PROCNAMEEXT_AW "A" 26 | #endif 27 | 28 | #define __MINGW_TYPEDEF_AW(type) \ 29 | typedef __MINGW_NAME_AW(type) type; 30 | #define __MINGW_TYPEDEF_UAW(type) \ 31 | typedef __MINGW_NAME_UAW(type) type; 32 | 33 | #endif /* !defined(_INC_CRT_UNICODE_MACROS) */ 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MinGW DirectX Headers 2 | 3 | These headers are taken directly from MinGW-w64 found at:
4 | https://www.mingw-w64.org/
5 | https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/ 6 | 7 | ## License 8 | 9 | The license for these headers is LGPL v2.1.
10 | However that does not mean that your project is bound by LGPL v2.1 for using these headers:
11 | ``` 12 | DirectX and DDK headers are under GNU LGPLv2.1+ (see the file 13 | COPYING.LGPLv2.1) and copyrighted by various people. Using these 14 | headers doesn't make LGPLv2.1 apply to your code, because these 15 | headers files contain only data structure definitions, short 16 | macros, and short inline functions. Here is the relevant part 17 | from LGPLv2.1 section 5 paragraph 4: 18 | 19 | If such an object file uses only numerical parameters, data 20 | structure layouts and accessors, and small macros and small 21 | inline functions (ten lines or less in length), then the use 22 | of the object file is unrestricted, regardless of whether it 23 | is legally a derivative work. 24 | ``` 25 | 26 | See `COPYING.MinGW-w64.txt` for the full license text. 27 | 28 | It is also worth noting that in the original repository, the license makes reference 29 | to a `COPYING.LGPLv2.1`, however no such file exists in the repository, nor in the Wine repository. 30 | 31 | The license text for LGPL v2.1 can be found here: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html 32 | -------------------------------------------------------------------------------- /d3d10misc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2008 Henri Verbeet for CodeWeavers 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 | */ 18 | 19 | #ifndef __D3D10MISC_H__ 20 | #define __D3D10MISC_H__ 21 | 22 | #include "d3d10.h" 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | typedef enum D3D10_DRIVER_TYPE { 29 | D3D10_DRIVER_TYPE_HARDWARE = 0, 30 | D3D10_DRIVER_TYPE_REFERENCE = 1, 31 | D3D10_DRIVER_TYPE_NULL = 2, 32 | D3D10_DRIVER_TYPE_SOFTWARE = 3, 33 | D3D10_DRIVER_TYPE_WARP = 5, 34 | } D3D10_DRIVER_TYPE; 35 | 36 | HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, 37 | HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device); 38 | 39 | HRESULT WINAPI D3D10CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, 40 | HMODULE swrast, UINT flags, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc, 41 | IDXGISwapChain **swapchain, ID3D10Device **device); 42 | 43 | HRESULT WINAPI D3D10CreateBlob(SIZE_T data_size, ID3D10Blob **blob); 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | 49 | #endif /* __D3D10MISC_H__ */ 50 | -------------------------------------------------------------------------------- /d3dx9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 David Adam 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 | */ 18 | 19 | #ifndef __D3DX9_H__ 20 | #define __D3DX9_H__ 21 | 22 | #include 23 | 24 | #define D3DX_DEFAULT ((UINT)-1) 25 | #define D3DX_DEFAULT_NONPOW2 ((UINT)-2) 26 | #define D3DX_DEFAULT_FLOAT FLT_MAX 27 | #define D3DX_FROM_FILE ((UINT)-3) 28 | #define D3DFMT_FROM_FILE ((D3DFORMAT)-3) 29 | 30 | #include "d3d9.h" 31 | #include "d3dx9math.h" 32 | #include "d3dx9core.h" 33 | #include "d3dx9xof.h" 34 | #include "d3dx9mesh.h" 35 | #include "d3dx9shader.h" 36 | #include "d3dx9effect.h" 37 | #include "d3dx9shape.h" 38 | #include "d3dx9anim.h" 39 | #include "d3dx9tex.h" 40 | 41 | #define _FACDD 0x876 42 | #define MAKE_DDHRESULT(code) MAKE_HRESULT(1, _FACDD, code) 43 | 44 | enum _D3DXERR { 45 | D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900), 46 | D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901), 47 | D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902), 48 | D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903), 49 | D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904), 50 | D3DXERR_INVALIDDATA = MAKE_DDHRESULT(2905), 51 | D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906), 52 | D3DXERR_DUPLICATENAMEDFRAGMENT = MAKE_DDHRESULT(2907), 53 | D3DXERR_CANNOTREMOVELASTITEM = MAKE_DDHRESULT(2908), 54 | }; 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /dxerr8.h: -------------------------------------------------------------------------------- 1 | #include <_mingw_unicode.h> 2 | /* 3 | * Copyright (C) 2004 Robert Reif 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_DXERR8_H 21 | #define __WINE_DXERR8_H 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif /* defined(__cplusplus) */ 26 | 27 | const char* WINAPI DXGetErrorString8A(HRESULT hr); 28 | const WCHAR* WINAPI DXGetErrorString8W(HRESULT hr); 29 | #define DXGetErrorString8 __MINGW_NAME_AW(DXGetErrorString8) 30 | 31 | const char* WINAPI DXGetErrorDescription8A(HRESULT hr); 32 | const WCHAR* WINAPI DXGetErrorDescription8W(HRESULT hr); 33 | #define DXGetErrorDescription8 __MINGW_NAME_AW(DXGetErrorDescription8) 34 | 35 | HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, WINBOOL bPopMsgBox); 36 | HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, WINBOOL bPopMsgBox); 37 | #define DXTrace __MINGW_NAME_AW(DXTrace) 38 | 39 | #if defined(DEBUG) || defined(_DEBUG) 40 | #define DXTRACE_MSG(str) DXTrace(__FILE__, (DWORD)__LINE__, 0, str, FALSE) 41 | #define DXTRACE_ERR(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, TRUE) 42 | #define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, FALSE) 43 | #else 44 | #define DXTRACE_MSG(str) __MSABI_LONG(0) 45 | #define DXTRACE_ERR(str,hr) (hr) 46 | #define DXTRACE_ERR_NOMSGBOX(str,hr) (hr) 47 | #endif 48 | 49 | #ifdef __cplusplus 50 | } /* extern "C" */ 51 | #endif /* defined(__cplusplus) */ 52 | 53 | #endif /* __WINE_DXERR8_H */ 54 | -------------------------------------------------------------------------------- /dxerr9.h: -------------------------------------------------------------------------------- 1 | #include <_mingw_unicode.h> 2 | /* 3 | * Copyright (C) 2004 Robert Reif 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_DXERR9_H 21 | #define __WINE_DXERR9_H 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif /* defined(__cplusplus) */ 26 | 27 | const char* WINAPI DXGetErrorString9A(HRESULT hr); 28 | const WCHAR* WINAPI DXGetErrorString9W(HRESULT hr); 29 | #define DXGetErrorString9 __MINGW_NAME_AW(DXGetErrorString9) 30 | 31 | const char* WINAPI DXGetErrorDescription9A(HRESULT hr); 32 | const WCHAR* WINAPI DXGetErrorDescription9W(HRESULT hr); 33 | #define DXGetErrorDescription9 __MINGW_NAME_AW(DXGetErrorDescription9) 34 | 35 | HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, WINBOOL bPopMsgBox); 36 | HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, WINBOOL bPopMsgBox); 37 | #define DXTrace __MINGW_NAME_AW(DXTrace) 38 | 39 | #if defined(DEBUG) || defined(_DEBUG) 40 | #define DXTRACE_MSG(str) DXTrace(__FILE__, (DWORD)__LINE__, 0, str, FALSE) 41 | #define DXTRACE_ERR(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, TRUE) 42 | #define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, FALSE) 43 | #else 44 | #define DXTRACE_MSG(str) __MSABI_LONG(0) 45 | #define DXTRACE_ERR(str,hr) (hr) 46 | #define DXTRACE_ERR_NOMSGBOX(str,hr) (hr) 47 | #endif 48 | 49 | #ifdef __cplusplus 50 | } /* extern "C" */ 51 | #endif /* defined(__cplusplus) */ 52 | 53 | #endif /* __WINE_DXERR9_H */ 54 | -------------------------------------------------------------------------------- /dxgicommon.h: -------------------------------------------------------------------------------- 1 | /*** Autogenerated by WIDL 7.7 from include/dxgicommon.idl - Do not edit ***/ 2 | 3 | #ifdef _WIN32 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 | #endif 7 | #include 8 | #include 9 | #endif 10 | 11 | #ifndef COM_NO_WINDOWS_H 12 | #include 13 | #include 14 | #endif 15 | 16 | #ifndef __dxgicommon_h__ 17 | #define __dxgicommon_h__ 18 | 19 | /* Forward declarations */ 20 | 21 | /* Headers for imported files */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | #if 0 29 | typedef unsigned int UINT; 30 | #endif 31 | #define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN (0xffffffff) 32 | 33 | #define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN (0xfffffffe) 34 | 35 | typedef enum DXGI_COLOR_SPACE_TYPE { 36 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0x0, 37 | DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 0x1, 38 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 0x2, 39 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 0x3, 40 | DXGI_COLOR_SPACE_RESERVED = 0x4, 41 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 0x5, 42 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 0x6, 43 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 0x7, 44 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 0x8, 45 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 0x9, 46 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 0xa, 47 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 0xb, 48 | DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 0xc, 49 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 0xd, 50 | DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 0xe, 51 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 0xf, 52 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 0x10, 53 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 0x11, 54 | DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 0x12, 55 | DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 0x13, 56 | DXGI_COLOR_SPACE_CUSTOM = 0xffffffff 57 | } DXGI_COLOR_SPACE_TYPE; 58 | typedef struct DXGI_SAMPLE_DESC { 59 | UINT Count; 60 | UINT Quality; 61 | } DXGI_SAMPLE_DESC; 62 | typedef struct DXGI_RATIONAL { 63 | UINT Numerator; 64 | UINT Denominator; 65 | } DXGI_RATIONAL; 66 | /* Begin additional prototypes for all interfaces */ 67 | 68 | 69 | /* End additional prototypes */ 70 | 71 | #ifdef __cplusplus 72 | } 73 | #endif 74 | 75 | #endif /* __dxgicommon_h__ */ 76 | -------------------------------------------------------------------------------- /d3dx9shape.h: -------------------------------------------------------------------------------- 1 | #include <_mingw_unicode.h> 2 | /* 3 | * Copyright 2010 Christian Costa 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #include "d3dx9.h" 21 | 22 | #ifndef __D3DX9SHAPE_H__ 23 | #define __D3DX9SHAPE_H__ 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | HRESULT WINAPI D3DXCreateBox(struct IDirect3DDevice9 *device, float width, float height, 30 | float depth, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency); 31 | HRESULT WINAPI D3DXCreateCylinder(struct IDirect3DDevice9 *device, float radius1, float radius2, 32 | float length, UINT slices, UINT stacks, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency); 33 | HRESULT WINAPI D3DXCreatePolygon(struct IDirect3DDevice9 *device, float length, UINT sides, struct ID3DXMesh **mesh, 34 | ID3DXBuffer **adjacency); 35 | HRESULT WINAPI D3DXCreateSphere(struct IDirect3DDevice9 *device, float radius, UINT slices, 36 | UINT stacks, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency); 37 | HRESULT WINAPI D3DXCreateTeapot(struct IDirect3DDevice9 *device, 38 | struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency); 39 | HRESULT WINAPI D3DXCreateTextA(struct IDirect3DDevice9 *device, HDC hdc, const char *text, float deviation, 40 | float extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics); 41 | HRESULT WINAPI D3DXCreateTextW(struct IDirect3DDevice9 *device, HDC hdc, const WCHAR *text, float deviation, 42 | FLOAT extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics); 43 | HRESULT WINAPI D3DXCreateTorus(struct IDirect3DDevice9 *device, 44 | float innerradius, float outerradius, UINT sides, UINT rings, struct ID3DXMesh **mesh, ID3DXBuffer **adjacency); 45 | #define D3DXCreateText __MINGW_NAME_AW(D3DXCreateText) 46 | 47 | #ifdef __cplusplus 48 | } 49 | #endif 50 | 51 | #endif /* __D3DX9SHAPE_H__ */ 52 | -------------------------------------------------------------------------------- /dxgitype.h: -------------------------------------------------------------------------------- 1 | /*** Autogenerated by WIDL 7.7 from include/dxgitype.idl - Do not edit ***/ 2 | 3 | #ifdef _WIN32 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 | #endif 7 | #include 8 | #include 9 | #endif 10 | 11 | #ifndef COM_NO_WINDOWS_H 12 | #include 13 | #include 14 | #endif 15 | 16 | #ifndef __dxgitype_h__ 17 | #define __dxgitype_h__ 18 | 19 | /* Forward declarations */ 20 | 21 | /* Headers for imported files */ 22 | 23 | #include 24 | #include 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | #if 0 31 | typedef unsigned int UINT; 32 | typedef LONG WINBOOL; 33 | #endif 34 | typedef enum DXGI_MODE_ROTATION { 35 | DXGI_MODE_ROTATION_UNSPECIFIED = 0x0, 36 | DXGI_MODE_ROTATION_IDENTITY = 0x1, 37 | DXGI_MODE_ROTATION_ROTATE90 = 0x2, 38 | DXGI_MODE_ROTATION_ROTATE180 = 0x3, 39 | DXGI_MODE_ROTATION_ROTATE270 = 0x4 40 | } DXGI_MODE_ROTATION; 41 | typedef enum DXGI_MODE_SCANLINE_ORDER { 42 | DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0x0, 43 | DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 0x1, 44 | DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 0x2, 45 | DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 0x3 46 | } DXGI_MODE_SCANLINE_ORDER; 47 | typedef enum DXGI_MODE_SCALING { 48 | DXGI_MODE_SCALING_UNSPECIFIED = 0x0, 49 | DXGI_MODE_SCALING_CENTERED = 0x1, 50 | DXGI_MODE_SCALING_STRETCHED = 0x2 51 | } DXGI_MODE_SCALING; 52 | #ifndef D3DCOLORVALUE_DEFINED 53 | #define D3DCOLORVALUE_DEFINED 54 | typedef struct _D3DCOLORVALUE { 55 | float r; 56 | float g; 57 | float b; 58 | float a; 59 | } D3DCOLORVALUE; 60 | #endif 61 | typedef D3DCOLORVALUE DXGI_RGBA; 62 | typedef struct DXGI_MODE_DESC { 63 | UINT Width; 64 | UINT Height; 65 | DXGI_RATIONAL RefreshRate; 66 | DXGI_FORMAT Format; 67 | DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; 68 | DXGI_MODE_SCALING Scaling; 69 | } DXGI_MODE_DESC; 70 | typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES { 71 | WINBOOL ScaleAndOffsetSupported; 72 | float MaxConvertedValue; 73 | float MinConvertedValue; 74 | UINT NumGammaControlPoints; 75 | float ControlPointPositions[1025]; 76 | } DXGI_GAMMA_CONTROL_CAPABILITIES; 77 | typedef struct DXGI_RGB { 78 | float Red; 79 | float Green; 80 | float Blue; 81 | } DXGI_RGB; 82 | typedef struct DXGI_GAMMA_CONTROL { 83 | DXGI_RGB Scale; 84 | DXGI_RGB Offset; 85 | DXGI_RGB GammaCurve[1025]; 86 | } DXGI_GAMMA_CONTROL; 87 | /* Begin additional prototypes for all interfaces */ 88 | 89 | 90 | /* End additional prototypes */ 91 | 92 | #ifdef __cplusplus 93 | } 94 | #endif 95 | 96 | #endif /* __dxgitype_h__ */ 97 | -------------------------------------------------------------------------------- /d3d10_1shader.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright 2010 Rico Schüller 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __D3D10_1SHADER_H__ 21 | #define __D3D10_1SHADER_H__ 22 | 23 | #include "d3d10shader.h" 24 | 25 | DEFINE_GUID(IID_ID3D10ShaderReflection1, 0xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47); 26 | 27 | #define INTERFACE ID3D10ShaderReflection1 28 | DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown) 29 | { 30 | /* IUnknown methods */ 31 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 32 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 33 | STDMETHOD_(ULONG, Release)(THIS) PURE; 34 | /* ID3D10ShaderReflection1 methods */ 35 | STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE; 36 | STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE; 37 | STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE; 38 | STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE; 39 | STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE; 40 | STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE; 41 | STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE; 42 | STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE; 43 | STDMETHOD(GetMovInstructionCount)(THIS_ UINT *count) PURE; 44 | STDMETHOD(GetMovcInstructionCount)(THIS_ UINT *count) PURE; 45 | STDMETHOD(GetConversionInstructionCount)(THIS_ UINT *count) PURE; 46 | STDMETHOD(GetBitwiseInstructionCount)(THIS_ UINT *count) PURE; 47 | STDMETHOD(GetGSInputPrimitive)(THIS_ D3D10_PRIMITIVE *prim) PURE; 48 | STDMETHOD(IsLevel9Shader)(THIS_ WINBOOL *level9shader) PURE; 49 | STDMETHOD(IsSampleFrequencyShader)(THIS_ WINBOOL *samplefrequency) PURE; 50 | }; 51 | #undef INTERFACE 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /d3dvec.inl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2000 Ove Kaaven 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 | */ 18 | 19 | #ifndef __WINE_D3DVEC_INL 20 | #define __WINE_D3DVEC_INL 21 | 22 | #include 23 | 24 | /*** constructors ***/ 25 | 26 | inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f) 27 | { 28 | x = y = z = f; 29 | } 30 | 31 | inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z) 32 | { 33 | x = _x; y = _y; z = _z; 34 | } 35 | 36 | /*** assignment operators ***/ 37 | 38 | inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v) 39 | { 40 | x += v.x; y += v.y; z += v.z; 41 | return *this; 42 | } 43 | 44 | inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v) 45 | { 46 | x -= v.x; y -= v.y; z -= v.z; 47 | return *this; 48 | } 49 | 50 | inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v) 51 | { 52 | x *= v.x; y *= v.y; z *= v.z; 53 | return *this; 54 | } 55 | 56 | inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v) 57 | { 58 | x /= v.x; y /= v.y; z /= v.z; 59 | return *this; 60 | } 61 | 62 | inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s) 63 | { 64 | x *= s; y *= s; z *= s; 65 | return *this; 66 | } 67 | 68 | inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s) 69 | { 70 | x /= s; y /= s; z /= s; 71 | return *this; 72 | } 73 | 74 | /*** unary operators ***/ 75 | 76 | inline _D3DVECTOR operator + (const _D3DVECTOR& v) 77 | { 78 | return v; 79 | } 80 | 81 | inline _D3DVECTOR operator - (const _D3DVECTOR& v) 82 | { 83 | return _D3DVECTOR(-v.x, -v.y, -v.z); 84 | } 85 | 86 | /*** binary operators ***/ 87 | 88 | inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2) 89 | { 90 | return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z); 91 | } 92 | 93 | inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2) 94 | { 95 | return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z); 96 | } 97 | 98 | inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s) 99 | { 100 | return _D3DVECTOR(v.x*s, v.y*s, v.z*s); 101 | } 102 | 103 | inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v) 104 | { 105 | return _D3DVECTOR(v.x*s, v.y*s, v.z*s); 106 | } 107 | 108 | inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s) 109 | { 110 | return _D3DVECTOR(v.x/s, v.y/s, v.z/s); 111 | } 112 | 113 | inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v) 114 | { 115 | return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */ 116 | } 117 | 118 | inline D3DVALUE Magnitude(const _D3DVECTOR& v) 119 | { 120 | return sqrt(SquareMagnitude(v)); 121 | } 122 | 123 | inline _D3DVECTOR Normalize(const _D3DVECTOR& v) 124 | { 125 | return v / Magnitude(v); 126 | } 127 | 128 | inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2) 129 | { 130 | return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z; 131 | } 132 | 133 | inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2) 134 | { 135 | _D3DVECTOR res; 136 | /* this is a left-handed cross product, right? */ 137 | res.x = v1.y * v2.z - v1.z * v2.y; 138 | res.y = v1.z * v2.x - v1.x * v2.z; 139 | res.z = v1.x * v2.y - v1.y * v2.x; 140 | return res; 141 | } 142 | 143 | #endif 144 | -------------------------------------------------------------------------------- /dxgidebug.h: -------------------------------------------------------------------------------- 1 | /*** Autogenerated by WIDL 7.7 from include/dxgidebug.idl - Do not edit ***/ 2 | 3 | #ifdef _WIN32 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 | #endif 7 | #include 8 | #include 9 | #endif 10 | 11 | #ifndef COM_NO_WINDOWS_H 12 | #include 13 | #include 14 | #endif 15 | 16 | #ifndef __dxgidebug_h__ 17 | #define __dxgidebug_h__ 18 | 19 | /* Forward declarations */ 20 | 21 | #ifndef __IDXGIDebug_FWD_DEFINED__ 22 | #define __IDXGIDebug_FWD_DEFINED__ 23 | typedef interface IDXGIDebug IDXGIDebug; 24 | #ifdef __cplusplus 25 | interface IDXGIDebug; 26 | #endif /* __cplusplus */ 27 | #endif 28 | 29 | /* Headers for imported files */ 30 | 31 | #include 32 | 33 | #ifdef __cplusplus 34 | extern "C" { 35 | #endif 36 | 37 | DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b,0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08); 38 | DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d,0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64); 39 | DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1,0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a); 40 | DEFINE_GUID(DXGI_DEBUG_APP, 0x06cd6e01, 0x4219, 0x4ebd,0x87, 0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62); 41 | typedef enum DXGI_DEBUG_RLO_FLAGS { 42 | DXGI_DEBUG_RLO_SUMMARY = 0x1, 43 | DXGI_DEBUG_RLO_DETAIL = 0x2, 44 | DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x4, 45 | DXGI_DEBUG_RLO_ALL = 0x7 46 | } DXGI_DEBUG_RLO_FLAGS; 47 | /***************************************************************************** 48 | * IDXGIDebug interface 49 | */ 50 | #ifndef __IDXGIDebug_INTERFACE_DEFINED__ 51 | #define __IDXGIDebug_INTERFACE_DEFINED__ 52 | 53 | DEFINE_GUID(IID_IDXGIDebug, 0x119e7452, 0xde9e, 0x40fe, 0x88,0x06, 0x88,0xf9,0x0c,0x12,0xb4,0x41); 54 | #if defined(__cplusplus) && !defined(CINTERFACE) 55 | MIDL_INTERFACE("119e7452-de9e-40fe-8806-88f90c12b441") 56 | IDXGIDebug : public IUnknown 57 | { 58 | virtual HRESULT STDMETHODCALLTYPE ReportLiveObjects( 59 | GUID apiid, 60 | DXGI_DEBUG_RLO_FLAGS flags) = 0; 61 | 62 | }; 63 | #ifdef __CRT_UUID_DECL 64 | __CRT_UUID_DECL(IDXGIDebug, 0x119e7452, 0xde9e, 0x40fe, 0x88,0x06, 0x88,0xf9,0x0c,0x12,0xb4,0x41) 65 | #endif 66 | #else 67 | typedef struct IDXGIDebugVtbl { 68 | BEGIN_INTERFACE 69 | 70 | /*** IUnknown methods ***/ 71 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( 72 | IDXGIDebug *This, 73 | REFIID riid, 74 | void **ppvObject); 75 | 76 | ULONG (STDMETHODCALLTYPE *AddRef)( 77 | IDXGIDebug *This); 78 | 79 | ULONG (STDMETHODCALLTYPE *Release)( 80 | IDXGIDebug *This); 81 | 82 | /*** IDXGIDebug methods ***/ 83 | HRESULT (STDMETHODCALLTYPE *ReportLiveObjects)( 84 | IDXGIDebug *This, 85 | GUID apiid, 86 | DXGI_DEBUG_RLO_FLAGS flags); 87 | 88 | END_INTERFACE 89 | } IDXGIDebugVtbl; 90 | 91 | interface IDXGIDebug { 92 | CONST_VTBL IDXGIDebugVtbl* lpVtbl; 93 | }; 94 | 95 | #ifdef COBJMACROS 96 | #ifndef WIDL_C_INLINE_WRAPPERS 97 | /*** IUnknown methods ***/ 98 | #define IDXGIDebug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 99 | #define IDXGIDebug_AddRef(This) (This)->lpVtbl->AddRef(This) 100 | #define IDXGIDebug_Release(This) (This)->lpVtbl->Release(This) 101 | /*** IDXGIDebug methods ***/ 102 | #define IDXGIDebug_ReportLiveObjects(This,apiid,flags) (This)->lpVtbl->ReportLiveObjects(This,apiid,flags) 103 | #else 104 | /*** IUnknown methods ***/ 105 | static FORCEINLINE HRESULT IDXGIDebug_QueryInterface(IDXGIDebug* This,REFIID riid,void **ppvObject) { 106 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); 107 | } 108 | static FORCEINLINE ULONG IDXGIDebug_AddRef(IDXGIDebug* This) { 109 | return This->lpVtbl->AddRef(This); 110 | } 111 | static FORCEINLINE ULONG IDXGIDebug_Release(IDXGIDebug* This) { 112 | return This->lpVtbl->Release(This); 113 | } 114 | /*** IDXGIDebug methods ***/ 115 | static FORCEINLINE HRESULT IDXGIDebug_ReportLiveObjects(IDXGIDebug* This,GUID apiid,DXGI_DEBUG_RLO_FLAGS flags) { 116 | return This->lpVtbl->ReportLiveObjects(This,apiid,flags); 117 | } 118 | #endif 119 | #endif 120 | 121 | #endif 122 | 123 | 124 | #endif /* __IDXGIDebug_INTERFACE_DEFINED__ */ 125 | 126 | /* Begin additional prototypes for all interfaces */ 127 | 128 | 129 | /* End additional prototypes */ 130 | 131 | #ifdef __cplusplus 132 | } 133 | #endif 134 | 135 | #endif /* __dxgidebug_h__ */ 136 | -------------------------------------------------------------------------------- /dxgiformat.h: -------------------------------------------------------------------------------- 1 | /*** Autogenerated by WIDL 7.7 from include/dxgiformat.idl - Do not edit ***/ 2 | 3 | #ifdef _WIN32 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 | #endif 7 | #include 8 | #include 9 | #endif 10 | 11 | #ifndef COM_NO_WINDOWS_H 12 | #include 13 | #include 14 | #endif 15 | 16 | #ifndef __dxgiformat_h__ 17 | #define __dxgiformat_h__ 18 | 19 | /* Forward declarations */ 20 | 21 | /* Headers for imported files */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C" { 26 | #endif 27 | 28 | #define DXGI_FORMAT_DEFINED (1) 29 | 30 | typedef enum DXGI_FORMAT { 31 | DXGI_FORMAT_UNKNOWN = 0x0, 32 | DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x1, 33 | DXGI_FORMAT_R32G32B32A32_FLOAT = 0x2, 34 | DXGI_FORMAT_R32G32B32A32_UINT = 0x3, 35 | DXGI_FORMAT_R32G32B32A32_SINT = 0x4, 36 | DXGI_FORMAT_R32G32B32_TYPELESS = 0x5, 37 | DXGI_FORMAT_R32G32B32_FLOAT = 0x6, 38 | DXGI_FORMAT_R32G32B32_UINT = 0x7, 39 | DXGI_FORMAT_R32G32B32_SINT = 0x8, 40 | DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x9, 41 | DXGI_FORMAT_R16G16B16A16_FLOAT = 0xa, 42 | DXGI_FORMAT_R16G16B16A16_UNORM = 0xb, 43 | DXGI_FORMAT_R16G16B16A16_UINT = 0xc, 44 | DXGI_FORMAT_R16G16B16A16_SNORM = 0xd, 45 | DXGI_FORMAT_R16G16B16A16_SINT = 0xe, 46 | DXGI_FORMAT_R32G32_TYPELESS = 0xf, 47 | DXGI_FORMAT_R32G32_FLOAT = 0x10, 48 | DXGI_FORMAT_R32G32_UINT = 0x11, 49 | DXGI_FORMAT_R32G32_SINT = 0x12, 50 | DXGI_FORMAT_R32G8X24_TYPELESS = 0x13, 51 | DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14, 52 | DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15, 53 | DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16, 54 | DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17, 55 | DXGI_FORMAT_R10G10B10A2_UNORM = 0x18, 56 | DXGI_FORMAT_R10G10B10A2_UINT = 0x19, 57 | DXGI_FORMAT_R11G11B10_FLOAT = 0x1a, 58 | DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b, 59 | DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c, 60 | DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d, 61 | DXGI_FORMAT_R8G8B8A8_UINT = 0x1e, 62 | DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f, 63 | DXGI_FORMAT_R8G8B8A8_SINT = 0x20, 64 | DXGI_FORMAT_R16G16_TYPELESS = 0x21, 65 | DXGI_FORMAT_R16G16_FLOAT = 0x22, 66 | DXGI_FORMAT_R16G16_UNORM = 0x23, 67 | DXGI_FORMAT_R16G16_UINT = 0x24, 68 | DXGI_FORMAT_R16G16_SNORM = 0x25, 69 | DXGI_FORMAT_R16G16_SINT = 0x26, 70 | DXGI_FORMAT_R32_TYPELESS = 0x27, 71 | DXGI_FORMAT_D32_FLOAT = 0x28, 72 | DXGI_FORMAT_R32_FLOAT = 0x29, 73 | DXGI_FORMAT_R32_UINT = 0x2a, 74 | DXGI_FORMAT_R32_SINT = 0x2b, 75 | DXGI_FORMAT_R24G8_TYPELESS = 0x2c, 76 | DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d, 77 | DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e, 78 | DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f, 79 | DXGI_FORMAT_R8G8_TYPELESS = 0x30, 80 | DXGI_FORMAT_R8G8_UNORM = 0x31, 81 | DXGI_FORMAT_R8G8_UINT = 0x32, 82 | DXGI_FORMAT_R8G8_SNORM = 0x33, 83 | DXGI_FORMAT_R8G8_SINT = 0x34, 84 | DXGI_FORMAT_R16_TYPELESS = 0x35, 85 | DXGI_FORMAT_R16_FLOAT = 0x36, 86 | DXGI_FORMAT_D16_UNORM = 0x37, 87 | DXGI_FORMAT_R16_UNORM = 0x38, 88 | DXGI_FORMAT_R16_UINT = 0x39, 89 | DXGI_FORMAT_R16_SNORM = 0x3a, 90 | DXGI_FORMAT_R16_SINT = 0x3b, 91 | DXGI_FORMAT_R8_TYPELESS = 0x3c, 92 | DXGI_FORMAT_R8_UNORM = 0x3d, 93 | DXGI_FORMAT_R8_UINT = 0x3e, 94 | DXGI_FORMAT_R8_SNORM = 0x3f, 95 | DXGI_FORMAT_R8_SINT = 0x40, 96 | DXGI_FORMAT_A8_UNORM = 0x41, 97 | DXGI_FORMAT_R1_UNORM = 0x42, 98 | DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43, 99 | DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44, 100 | DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45, 101 | DXGI_FORMAT_BC1_TYPELESS = 0x46, 102 | DXGI_FORMAT_BC1_UNORM = 0x47, 103 | DXGI_FORMAT_BC1_UNORM_SRGB = 0x48, 104 | DXGI_FORMAT_BC2_TYPELESS = 0x49, 105 | DXGI_FORMAT_BC2_UNORM = 0x4a, 106 | DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b, 107 | DXGI_FORMAT_BC3_TYPELESS = 0x4c, 108 | DXGI_FORMAT_BC3_UNORM = 0x4d, 109 | DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e, 110 | DXGI_FORMAT_BC4_TYPELESS = 0x4f, 111 | DXGI_FORMAT_BC4_UNORM = 0x50, 112 | DXGI_FORMAT_BC4_SNORM = 0x51, 113 | DXGI_FORMAT_BC5_TYPELESS = 0x52, 114 | DXGI_FORMAT_BC5_UNORM = 0x53, 115 | DXGI_FORMAT_BC5_SNORM = 0x54, 116 | DXGI_FORMAT_B5G6R5_UNORM = 0x55, 117 | DXGI_FORMAT_B5G5R5A1_UNORM = 0x56, 118 | DXGI_FORMAT_B8G8R8A8_UNORM = 0x57, 119 | DXGI_FORMAT_B8G8R8X8_UNORM = 0x58, 120 | DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59, 121 | DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a, 122 | DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b, 123 | DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c, 124 | DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d, 125 | DXGI_FORMAT_BC6H_TYPELESS = 0x5e, 126 | DXGI_FORMAT_BC6H_UF16 = 0x5f, 127 | DXGI_FORMAT_BC6H_SF16 = 0x60, 128 | DXGI_FORMAT_BC7_TYPELESS = 0x61, 129 | DXGI_FORMAT_BC7_UNORM = 0x62, 130 | DXGI_FORMAT_BC7_UNORM_SRGB = 0x63, 131 | DXGI_FORMAT_AYUV = 0x64, 132 | DXGI_FORMAT_Y410 = 0x65, 133 | DXGI_FORMAT_Y416 = 0x66, 134 | DXGI_FORMAT_NV12 = 0x67, 135 | DXGI_FORMAT_P010 = 0x68, 136 | DXGI_FORMAT_P016 = 0x69, 137 | DXGI_FORMAT_420_OPAQUE = 0x6a, 138 | DXGI_FORMAT_YUY2 = 0x6b, 139 | DXGI_FORMAT_Y210 = 0x6c, 140 | DXGI_FORMAT_Y216 = 0x6d, 141 | DXGI_FORMAT_NV11 = 0x6e, 142 | DXGI_FORMAT_AI44 = 0x6f, 143 | DXGI_FORMAT_IA44 = 0x70, 144 | DXGI_FORMAT_P8 = 0x71, 145 | DXGI_FORMAT_A8P8 = 0x72, 146 | DXGI_FORMAT_B4G4R4A4_UNORM = 0x73, 147 | DXGI_FORMAT_P208 = 0x82, 148 | DXGI_FORMAT_V208 = 0x83, 149 | DXGI_FORMAT_V408 = 0x84, 150 | DXGI_FORMAT_FORCE_UINT = 0xffffffff 151 | } DXGI_FORMAT; 152 | /* Begin additional prototypes for all interfaces */ 153 | 154 | 155 | /* End additional prototypes */ 156 | 157 | #ifdef __cplusplus 158 | } 159 | #endif 160 | 161 | #endif /* __dxgiformat_h__ */ 162 | -------------------------------------------------------------------------------- /COPYING.MinGW-w64.txt: -------------------------------------------------------------------------------- 1 | MinGW-w64 licensing 2 | ******************* 3 | 4 | The copyright and license notices have been divided in two files: 5 | The notices in COPYING.MinGW-w64.txt (this file) apply only to 6 | MinGW-w64 itself. These don't apply to the binaries built with 7 | MinGW-w64 unless you specifically tell MinGW-w64 to link against 8 | these parts, for example, by enabling profiling code. 9 | 10 | In addition to the notices in this file, also the notices in 11 | COPYING.MinGW-w64-runtime.txt apply to MinGW-w64. Some (possibly 12 | all) notices in that file may apply also to the binaries built with 13 | this version of MinGW-w64. The idea is that if you create binary 14 | packages of your software with MinGW-w64, you can simply copy 15 | COPYING.MinGW-w64-runtime.txt into your package to fulfill the 16 | license requirements of the MinGW runtime. 17 | 18 | If you think that not all notices apply to your package and want to 19 | remove some of them, note that, for example, the gdtoa files always 20 | get linked in if you use any printf-like function. So usually it is 21 | easiest and safest to just keep all the notices. 22 | 23 | 24 | ==================== 25 | GCC and GNU binutils 26 | ==================== 27 | 28 | Copyright (C) Free Software Foundation 29 | License: GNU GPLv3+ (see the file COPYING.GPLv3) 30 | 31 | 32 | ============== 33 | Profiling code 34 | ============== 35 | 36 | Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. 37 | License: GNU GPLv2+ (see the file COPYING.GPLv2) 38 | 39 | * * * * * * * 40 | 41 | Copyright (c) 1982, 1983, 1986, 1992, 1993 42 | The Regents of the University of California. All rights reserved. 43 | 44 | Redistribution and use in source and binary forms, with or without 45 | modification, are permitted provided that the following conditions 46 | are met: 47 | 1. Redistributions of source code must retain the above copyright 48 | notice, this list of conditions and the following disclaimer. 49 | 2. Redistributions in binary form must reproduce the above copyright 50 | notice, this list of conditions and the following disclaimer in the 51 | documentation and/or other materials provided with the distribution. 52 | 4. Neither the name of the University nor the names of its contributors 53 | may be used to endorse or promote products derived from this software 54 | without specific prior written permission. 55 | 56 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 57 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 58 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 59 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 60 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 61 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 62 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 63 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 64 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 65 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 66 | SUCH DAMAGE. 67 | 68 | 69 | ======================= 70 | DirectX and DDK headers 71 | ======================= 72 | 73 | DirectX and DDK headers are under GNU LGPLv2.1+ (see the file 74 | COPYING.LGPLv2.1) and copyrighted by various people. Using these 75 | headers doesn't make LGPLv2.1 apply to your code, because these 76 | headers files contain only data structure definitions, short 77 | macros, and short inline functions. Here is the relevant part 78 | from LGPLv2.1 section 5 paragraph 4: 79 | 80 | If such an object file uses only numerical parameters, data 81 | structure layouts and accessors, and small macros and small 82 | inline functions (ten lines or less in length), then the use 83 | of the object file is unrestricted, regardless of whether it 84 | is legally a derivative work. 85 | 86 | ==================== 87 | libmangle and gendef 88 | ==================== 89 | 90 | Copyright (c) 2009 mingw-w64 project 91 | 92 | Contributing authors: Kai Tietz, Jonathan Yong 93 | 94 | Permission is hereby granted, free of charge, to any person obtaining a 95 | copy of this software and associated documentation files (the "Software"), 96 | to deal in the Software without restriction, including without limitation 97 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 98 | and/or sell copies of the Software, and to permit persons to whom the 99 | Software is furnished to do so, subject to the following conditions: 100 | 101 | The above copyright notice and this permission notice shall be included in 102 | all copies or substantial portions of the Software. 103 | 104 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 105 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 106 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 107 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 108 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 109 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 110 | DEALINGS IN THE SOFTWARE. 111 | 112 | 113 | ==== 114 | PSEH 115 | ==== 116 | 117 | Copyright (c) 2004-2008 KJK::Hyperion 118 | 119 | Permission is hereby granted, free of charge, to any person obtaining a 120 | copy of this software and associated documentation files (the "Software"), 121 | to deal in the Software without restriction, including without limitation 122 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 123 | and/or sell copies of the Software, and to permit persons to whom the 124 | Software is furnished to do so, subject to the following conditions: 125 | 126 | The above copyright notice and this permission notice shall be included in 127 | all copies or substantial portions of the Software. 128 | 129 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 130 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 131 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 132 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 133 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 134 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 135 | DEALINGS IN THE SOFTWARE. 136 | -------------------------------------------------------------------------------- /d3d11on12.h: -------------------------------------------------------------------------------- 1 | /*** Autogenerated by WIDL 7.7 from include/d3d11on12.idl - Do not edit ***/ 2 | 3 | #ifdef _WIN32 4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 | #endif 7 | #include 8 | #include 9 | #endif 10 | 11 | #ifndef COM_NO_WINDOWS_H 12 | #include 13 | #include 14 | #endif 15 | 16 | #ifndef __d3d11on12_h__ 17 | #define __d3d11on12_h__ 18 | 19 | /* Forward declarations */ 20 | 21 | #ifndef __ID3D11On12Device_FWD_DEFINED__ 22 | #define __ID3D11On12Device_FWD_DEFINED__ 23 | typedef interface ID3D11On12Device ID3D11On12Device; 24 | #ifdef __cplusplus 25 | interface ID3D11On12Device; 26 | #endif /* __cplusplus */ 27 | #endif 28 | 29 | /* Headers for imported files */ 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | #ifdef __cplusplus 37 | extern "C" { 38 | #endif 39 | 40 | typedef struct D3D11_RESOURCE_FLAGS { 41 | UINT BindFlags; 42 | UINT MiscFlags; 43 | UINT CPUAccessFlags; 44 | UINT StructureByteStride; 45 | } D3D11_RESOURCE_FLAGS; 46 | /***************************************************************************** 47 | * ID3D11On12Device interface 48 | */ 49 | #ifndef __ID3D11On12Device_INTERFACE_DEFINED__ 50 | #define __ID3D11On12Device_INTERFACE_DEFINED__ 51 | 52 | DEFINE_GUID(IID_ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04); 53 | #if defined(__cplusplus) && !defined(CINTERFACE) 54 | MIDL_INTERFACE("85611e73-70a9-490e-9614-a9e302777904") 55 | ID3D11On12Device : public IUnknown 56 | { 57 | virtual HRESULT STDMETHODCALLTYPE CreateWrappedResource( 58 | IUnknown *d3d12_resource, 59 | const D3D11_RESOURCE_FLAGS *flags, 60 | D3D12_RESOURCE_STATES input_state, 61 | D3D12_RESOURCE_STATES output_state, 62 | REFIID iid, 63 | void **d3d11_resource) = 0; 64 | 65 | virtual void STDMETHODCALLTYPE ReleaseWrappedResources( 66 | ID3D11Resource *const *resources, 67 | UINT count) = 0; 68 | 69 | virtual void STDMETHODCALLTYPE AcquireWrappedResources( 70 | ID3D11Resource *const *resources, 71 | UINT count) = 0; 72 | 73 | }; 74 | #ifdef __CRT_UUID_DECL 75 | __CRT_UUID_DECL(ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04) 76 | #endif 77 | #else 78 | typedef struct ID3D11On12DeviceVtbl { 79 | BEGIN_INTERFACE 80 | 81 | /*** IUnknown methods ***/ 82 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( 83 | ID3D11On12Device *This, 84 | REFIID riid, 85 | void **ppvObject); 86 | 87 | ULONG (STDMETHODCALLTYPE *AddRef)( 88 | ID3D11On12Device *This); 89 | 90 | ULONG (STDMETHODCALLTYPE *Release)( 91 | ID3D11On12Device *This); 92 | 93 | /*** ID3D11On12Device methods ***/ 94 | HRESULT (STDMETHODCALLTYPE *CreateWrappedResource)( 95 | ID3D11On12Device *This, 96 | IUnknown *d3d12_resource, 97 | const D3D11_RESOURCE_FLAGS *flags, 98 | D3D12_RESOURCE_STATES input_state, 99 | D3D12_RESOURCE_STATES output_state, 100 | REFIID iid, 101 | void **d3d11_resource); 102 | 103 | void (STDMETHODCALLTYPE *ReleaseWrappedResources)( 104 | ID3D11On12Device *This, 105 | ID3D11Resource *const *resources, 106 | UINT count); 107 | 108 | void (STDMETHODCALLTYPE *AcquireWrappedResources)( 109 | ID3D11On12Device *This, 110 | ID3D11Resource *const *resources, 111 | UINT count); 112 | 113 | END_INTERFACE 114 | } ID3D11On12DeviceVtbl; 115 | 116 | interface ID3D11On12Device { 117 | CONST_VTBL ID3D11On12DeviceVtbl* lpVtbl; 118 | }; 119 | 120 | #ifdef COBJMACROS 121 | #ifndef WIDL_C_INLINE_WRAPPERS 122 | /*** IUnknown methods ***/ 123 | #define ID3D11On12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 124 | #define ID3D11On12Device_AddRef(This) (This)->lpVtbl->AddRef(This) 125 | #define ID3D11On12Device_Release(This) (This)->lpVtbl->Release(This) 126 | /*** ID3D11On12Device methods ***/ 127 | #define ID3D11On12Device_CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) (This)->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) 128 | #define ID3D11On12Device_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count) 129 | #define ID3D11On12Device_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count) 130 | #else 131 | /*** IUnknown methods ***/ 132 | static FORCEINLINE HRESULT ID3D11On12Device_QueryInterface(ID3D11On12Device* This,REFIID riid,void **ppvObject) { 133 | return This->lpVtbl->QueryInterface(This,riid,ppvObject); 134 | } 135 | static FORCEINLINE ULONG ID3D11On12Device_AddRef(ID3D11On12Device* This) { 136 | return This->lpVtbl->AddRef(This); 137 | } 138 | static FORCEINLINE ULONG ID3D11On12Device_Release(ID3D11On12Device* This) { 139 | return This->lpVtbl->Release(This); 140 | } 141 | /*** ID3D11On12Device methods ***/ 142 | static FORCEINLINE HRESULT ID3D11On12Device_CreateWrappedResource(ID3D11On12Device* This,IUnknown *d3d12_resource,const D3D11_RESOURCE_FLAGS *flags,D3D12_RESOURCE_STATES input_state,D3D12_RESOURCE_STATES output_state,REFIID iid,void **d3d11_resource) { 143 | return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource); 144 | } 145 | static FORCEINLINE void ID3D11On12Device_ReleaseWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) { 146 | This->lpVtbl->ReleaseWrappedResources(This,resources,count); 147 | } 148 | static FORCEINLINE void ID3D11On12Device_AcquireWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) { 149 | This->lpVtbl->AcquireWrappedResources(This,resources,count); 150 | } 151 | #endif 152 | #endif 153 | 154 | #endif 155 | 156 | 157 | #endif /* __ID3D11On12Device_INTERFACE_DEFINED__ */ 158 | 159 | HRESULT __stdcall D3D11On12CreateDevice(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level); 160 | 161 | typedef HRESULT (__stdcall *PFN_D3D11ON12_CREATE_DEVICE)(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level); 162 | /* Begin additional prototypes for all interfaces */ 163 | 164 | 165 | /* End additional prototypes */ 166 | 167 | #ifdef __cplusplus 168 | } 169 | #endif 170 | 171 | #endif /* __d3d11on12_h__ */ 172 | -------------------------------------------------------------------------------- /dxdiag.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright (C) 2004 Raphael Junqueira 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_DXDIAG_H 21 | #define __WINE_DXDIAG_H 22 | 23 | #include 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif /* defined(__cplusplus) */ 28 | 29 | /***************************************************************************** 30 | * #defines and error codes 31 | */ 32 | #define DXDIAG_DX9_SDK_VERSION 111 33 | 34 | #define _FACDXDIAG 0x007 35 | #define MAKE_DXDIAGHRESULT( code ) MAKE_HRESULT( 1, _FACDXDIAG, code ) 36 | 37 | /* 38 | * DXDiag Errors 39 | */ 40 | #define DXDIAG_E_INSUFFICIENT_BUFFER MAKE_DXDIAGHRESULT(0x007A) 41 | 42 | 43 | /***************************************************************************** 44 | * DXDiag structures Typedefs 45 | */ 46 | typedef struct _DXDIAG_INIT_PARAMS { 47 | DWORD dwSize; 48 | DWORD dwDxDiagHeaderVersion; 49 | WINBOOL bAllowWHQLChecks; 50 | VOID* pReserved; 51 | } DXDIAG_INIT_PARAMS; 52 | 53 | 54 | /***************************************************************************** 55 | * Predeclare the interfaces 56 | */ 57 | /* CLSIDs */ 58 | DEFINE_GUID(CLSID_DxDiagProvider, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7); 59 | 60 | /* IIDs */ 61 | DEFINE_GUID(IID_IDxDiagProvider, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2); 62 | DEFINE_GUID(IID_IDxDiagContainer, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F); 63 | 64 | /* typedef definitions */ 65 | typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER; 66 | typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER; 67 | 68 | /***************************************************************************** 69 | * IDxDiagContainer interface 70 | */ 71 | #ifdef WINE_NO_UNICODE_MACROS 72 | #undef GetProp 73 | #endif 74 | 75 | #define INTERFACE IDxDiagContainer 76 | DECLARE_INTERFACE_(IDxDiagContainer,IUnknown) 77 | { 78 | /*** IUnknown methods ***/ 79 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 80 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 81 | STDMETHOD_(ULONG,Release)(THIS) PURE; 82 | /*** IDxDiagContainer methods ***/ 83 | STDMETHOD(GetNumberOfChildContainers)(THIS_ DWORD* pdwCount) PURE; 84 | STDMETHOD(EnumChildContainerNames)(THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE; 85 | STDMETHOD(GetChildContainer)(THIS_ LPCWSTR pwszContainer, IDxDiagContainer** ppInstance) PURE; 86 | STDMETHOD(GetNumberOfProps)(THIS_ DWORD* pdwCount) PURE; 87 | STDMETHOD(EnumPropNames)(THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE; 88 | STDMETHOD(GetProp)(THIS_ LPCWSTR pwszPropName, VARIANT* pvarProp) PURE; 89 | }; 90 | #undef INTERFACE 91 | 92 | #if !defined(__cplusplus) || defined(CINTERFACE) 93 | /*** IUnknown methods ***/ 94 | #define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 95 | #define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p) 96 | #define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p) 97 | /*** IDxDiagContainer methods ***/ 98 | #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a) 99 | #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c) 100 | #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b) 101 | #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a) 102 | #define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->lpVtbl->EnumPropNames(p,a,b,c) 103 | #define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b) 104 | #else 105 | /*** IUnknown methods ***/ 106 | #define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 107 | #define IDxDiagContainer_AddRef(p) (p)->AddRef() 108 | #define IDxDiagContainer_Release(p) (p)->Release() 109 | /*** IDxDiagContainer methods ***/ 110 | #define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(a) 111 | #define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(a,b,c) 112 | #define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(a,b) 113 | #define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(a) 114 | #define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->EnumPropNames(a,b,c) 115 | #define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(a,b) 116 | #endif 117 | 118 | /***************************************************************************** 119 | * IDxDiagProvider interface 120 | */ 121 | #define INTERFACE IDxDiagProvider 122 | DECLARE_INTERFACE_(IDxDiagProvider,IUnknown) 123 | { 124 | /*** IUnknown methods ***/ 125 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 126 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 127 | STDMETHOD_(ULONG,Release)(THIS) PURE; 128 | /*** IDxDiagProvider methods ***/ 129 | STDMETHOD(Initialize)(THIS_ DXDIAG_INIT_PARAMS* pParams) PURE; 130 | STDMETHOD(GetRootContainer)(THIS_ IDxDiagContainer** ppInstance) PURE; 131 | }; 132 | #undef INTERFACE 133 | 134 | #if !defined(__cplusplus) || defined(CINTERFACE) 135 | /*** IUnknown methods ***/ 136 | #define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 137 | #define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p) 138 | #define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p) 139 | /*** IDxDiagProvider methods ***/ 140 | #define IDxDiagProvider_Initialize(p,a) (p)->lpVtbl->Initialize(p,a) 141 | #define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a) 142 | #else 143 | /*** IUnknown methods ***/ 144 | #define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(a,b) 145 | #define IDxDiagProvider_AddRef(p) (p)->AddRef() 146 | #define IDxDiagProvider_Release(p) (p)->Release() 147 | /*** IDxDiagProvider methods ***/ 148 | #define IDxDiagProvider_Initialize(p,a) (p)->Initialize(a) 149 | #define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(a) 150 | #endif 151 | 152 | #ifdef __cplusplus 153 | } 154 | #endif 155 | 156 | #endif 157 | -------------------------------------------------------------------------------- /d3dcompiler.h: -------------------------------------------------------------------------------- 1 | #include <_mingw_unicode.h> 2 | /* 3 | * Copyright 2010 Matteo Bruni for CodeWeavers 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __D3DCOMPILER_H__ 21 | #define __D3DCOMPILER_H__ 22 | 23 | #include "d3d11shader.h" 24 | #include "d3d12shader.h" 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | #if defined(_MSC_VER) || defined(__MINGW32__) 31 | #define D3DCOMPILER_DLL_W L"d3dcompiler_47.dll" 32 | #else 33 | static const WCHAR D3DCOMPILER_DLL_W[] = {'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0}; 34 | #endif 35 | 36 | #define D3DCOMPILER_DLL_A "d3dcompiler_47.dll" 37 | #define D3DCOMPILER_DLL __MINGW_NAME_AW(D3DCOMPILER_DLL_) 38 | 39 | #ifndef D3D_COMPILER_VERSION 40 | #define D3D_COMPILER_VERSION 47 41 | #endif 42 | 43 | #define D3DCOMPILE_DEBUG 0x00000001 44 | #define D3DCOMPILE_SKIP_VALIDATION 0x00000002 45 | #define D3DCOMPILE_SKIP_OPTIMIZATION 0x00000004 46 | #define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR 0x00000008 47 | #define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR 0x00000010 48 | #define D3DCOMPILE_PARTIAL_PRECISION 0x00000020 49 | #define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT 0x00000040 50 | #define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT 0x00000080 51 | #define D3DCOMPILE_NO_PRESHADER 0x00000100 52 | #define D3DCOMPILE_AVOID_FLOW_CONTROL 0x00000200 53 | #define D3DCOMPILE_PREFER_FLOW_CONTROL 0x00000400 54 | #define D3DCOMPILE_ENABLE_STRICTNESS 0x00000800 55 | #define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY 0x00001000 56 | #define D3DCOMPILE_IEEE_STRICTNESS 0x00002000 57 | #define D3DCOMPILE_OPTIMIZATION_LEVEL0 0x00004000 58 | #define D3DCOMPILE_OPTIMIZATION_LEVEL1 0x00000000 59 | #define D3DCOMPILE_OPTIMIZATION_LEVEL2 0x0000c000 60 | #define D3DCOMPILE_OPTIMIZATION_LEVEL3 0x00008000 61 | #define D3DCOMPILE_RESERVED16 0x00010000 62 | #define D3DCOMPILE_RESERVED17 0x00020000 63 | #define D3DCOMPILE_WARNINGS_ARE_ERRORS 0x00040000 64 | #define D3DCOMPILE_RESOURCES_MAY_ALIAS 0x00080000 65 | #define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES 0x00100000 66 | #define D3DCOMPILE_ALL_RESOURCES_BOUND 0x00200000 67 | #define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE 0x00400000 68 | #define D3DCOMPILE_DEBUG_NAME_FOR_BINARY 0x00800000 69 | 70 | #define D3DCOMPILE_EFFECT_CHILD_EFFECT 0x00000001 71 | #define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS 0x00000002 72 | 73 | #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST 0x00000000 74 | #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 0x00000010 75 | #define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 0x00000020 76 | 77 | #define D3D_DISASM_ENABLE_COLOR_CODE 0x00000001 78 | #define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS 0x00000002 79 | #define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004 80 | #define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE 0x00000008 81 | #define D3D_DISASM_DISABLE_DEBUG_INFO 0x00000010 82 | #define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET 0x00000020 83 | #define D3D_DISASM_INSTRUCTION_ONLY 0x00000040 84 | #define D3D_DISASM_PRINT_HEX_LITERALS 0x00000080 85 | 86 | #define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude *)(UINT_PTR)1) 87 | 88 | HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename, 89 | const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, 90 | const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages); 91 | typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const char *filename, 92 | const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, 93 | const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages); 94 | HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename, 95 | const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, 96 | const char *target, UINT sflags, UINT eflags, UINT secondary_flags, 97 | const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader, 98 | ID3DBlob **error_messages); 99 | 100 | typedef enum D3DCOMPILER_STRIP_FLAGS 101 | { 102 | D3DCOMPILER_STRIP_REFLECTION_DATA = 0x1, 103 | D3DCOMPILER_STRIP_DEBUG_INFO = 0x2, 104 | D3DCOMPILER_STRIP_TEST_BLOBS = 0x4, 105 | D3DCOMPILER_STRIP_PRIVATE_DATA = 0x8, 106 | D3DCOMPILER_STRIP_ROOT_SIGNATURE = 0x10, 107 | D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff 108 | } D3DCOMPILER_STRIP_FLAGS; 109 | 110 | HRESULT WINAPI D3DStripShader(const void *data, SIZE_T data_size, UINT flags, ID3DBlob **blob); 111 | 112 | typedef enum D3D_BLOB_PART 113 | { 114 | D3D_BLOB_INPUT_SIGNATURE_BLOB, 115 | D3D_BLOB_OUTPUT_SIGNATURE_BLOB, 116 | D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB, 117 | D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB, 118 | D3D_BLOB_ALL_SIGNATURE_BLOB, 119 | D3D_BLOB_DEBUG_INFO, 120 | D3D_BLOB_LEGACY_SHADER, 121 | D3D_BLOB_XNA_PREPASS_SHADER, 122 | D3D_BLOB_XNA_SHADER, 123 | D3D_BLOB_PDB, 124 | D3D_BLOB_PRIVATE_DATA, 125 | D3D_BLOB_ROOT_SIGNATURE, 126 | D3D_BLOB_DEBUG_NAME, 127 | D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000, 128 | D3D_BLOB_TEST_COMPILE_DETAILS, 129 | D3D_BLOB_TEST_COMPILE_PERF, 130 | D3D_BLOB_TEST_COMPILE_REPORT 131 | } D3D_BLOB_PART; 132 | 133 | HRESULT WINAPI D3DDisassemble(const void *data, SIZE_T data_size, 134 | UINT flags, const char *comments, ID3DBlob **disassembly); 135 | typedef HRESULT (WINAPI *pD3DDisassemble)(const void *data, SIZE_T data_size, 136 | UINT flags, const char *comments, ID3DBlob **disassembly); 137 | HRESULT WINAPI D3DCompileFromFile(const WCHAR *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *includes, 138 | const char *entrypoint, const char *target, UINT flags1, UINT flags2, ID3DBlob **code, ID3DBlob **errors); 139 | HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob); 140 | HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); 141 | HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); 142 | HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob); 143 | HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **blob); 144 | HRESULT WINAPI D3DReadFileToBlob(const WCHAR *filename, ID3DBlob **contents); 145 | HRESULT WINAPI D3DWriteBlobToFile(ID3DBlob *blob, const WCHAR *filename, WINBOOL overwrite); 146 | HRESULT WINAPI D3DReflect(const void *data, SIZE_T data_size, REFIID riid, void **reflector); 147 | 148 | HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob); 149 | 150 | HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename, 151 | const D3D_SHADER_MACRO *defines, ID3DInclude *include, 152 | ID3DBlob **shader, ID3DBlob **error_messages); 153 | typedef HRESULT (WINAPI *pD3DPreprocess)(const void *data, SIZE_T size, const char *filename, 154 | const D3D_SHADER_MACRO *defines, ID3DInclude *include, 155 | ID3DBlob **shader, ID3DBlob **error_messages); 156 | 157 | HRESULT WINAPI D3DLoadModule(const void *data, SIZE_T size, ID3D11Module **module); 158 | 159 | #ifdef __cplusplus 160 | } 161 | #endif 162 | 163 | #endif 164 | -------------------------------------------------------------------------------- /d3dx9xof.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright 2011 Dylan Smith 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_D3DX9XOF_H 21 | #define __WINE_D3DX9XOF_H 22 | 23 | #include "d3dx9.h" 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | typedef DWORD D3DXF_FILEFORMAT; 30 | #define D3DXF_FILEFORMAT_BINARY 0 31 | #define D3DXF_FILEFORMAT_TEXT 1 32 | #define D3DXF_FILEFORMAT_COMPRESSED 2 33 | 34 | typedef DWORD D3DXF_FILESAVEOPTIONS; 35 | #define D3DXF_FILESAVE_TOFILE 0x00 36 | #define D3DXF_FILESAVE_TOWFILE 0x01 37 | 38 | typedef DWORD D3DXF_FILELOADOPTIONS; 39 | #define D3DXF_FILELOAD_FROMFILE 0x00 40 | #define D3DXF_FILELOAD_FROMWFILE 0x01 41 | #define D3DXF_FILELOAD_FROMRESOURCE 0x02 42 | #define D3DXF_FILELOAD_FROMMEMORY 0x03 43 | 44 | typedef struct _D3DXF_FILELOADRESOURCE 45 | { 46 | HMODULE hModule; 47 | const char *lpName; 48 | const char *lpType; 49 | } D3DXF_FILELOADRESOURCE; 50 | 51 | typedef struct _D3DXF_FILELOADMEMORY 52 | { 53 | const void *lpMemory; 54 | SIZE_T dSize; 55 | } D3DXF_FILELOADMEMORY; 56 | 57 | 58 | #ifndef _NO_COM 59 | DEFINE_GUID(IID_ID3DXFile, 0xcef08cf9, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01); 60 | DEFINE_GUID(IID_ID3DXFileSaveObject, 0xcef08cfa, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01); 61 | DEFINE_GUID(IID_ID3DXFileSaveData, 0xcef08cfb, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01); 62 | DEFINE_GUID(IID_ID3DXFileEnumObject, 0xcef08cfc, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01); 63 | DEFINE_GUID(IID_ID3DXFileData, 0xcef08cfd, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01); 64 | #endif /* _NO_COM */ 65 | 66 | typedef interface ID3DXFile *LPD3DXFILE, **LPLPD3DXFILE; 67 | typedef interface ID3DXFileSaveObject *LPD3DXFILESAVEOBJECT, **LPLPD3DXFILESAVEOBJECT; 68 | typedef interface ID3DXFileSaveData *LPD3DXFILESAVEDATA, **LPLPD3DXFILESAVEDATA; 69 | typedef interface ID3DXFileEnumObject *LPD3DXFILEENUMOBJECT, **LPLPD3DXFILEENUMOBJECT; 70 | typedef interface ID3DXFileData *LPD3DXFILEDATA, **LPLPD3DXFILEDATA; 71 | 72 | STDAPI D3DXFileCreate(struct ID3DXFile **file); 73 | 74 | #define INTERFACE ID3DXFile 75 | DECLARE_INTERFACE_IID_(ID3DXFile,IUnknown,"cef08cf9-7b4f-4429-9624-2a690a933201") 76 | { 77 | /*** IUnknown methods ***/ 78 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 79 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 80 | STDMETHOD_(ULONG,Release)(THIS) PURE; 81 | /*** ID3DXFile methods ***/ 82 | STDMETHOD(CreateEnumObject)(THIS_ const void *src, D3DXF_FILELOADOPTIONS type, 83 | struct ID3DXFileEnumObject **enum_obj) PURE; 84 | STDMETHOD(CreateSaveObject)(THIS_ const void *data, D3DXF_FILESAVEOPTIONS flags, 85 | D3DXF_FILEFORMAT format, struct ID3DXFileSaveObject **save_obj) PURE; 86 | STDMETHOD(RegisterTemplates)(THIS_ const void *data, SIZE_T data_size) PURE; 87 | STDMETHOD(RegisterEnumTemplates)(THIS_ struct ID3DXFileEnumObject *enum_obj) PURE; 88 | }; 89 | #undef INTERFACE 90 | 91 | #define INTERFACE ID3DXFileSaveObject 92 | DECLARE_INTERFACE_IID_(ID3DXFileSaveObject,IUnknown,"cef08cfa-7b4f-4429-9624-2a690a933201") 93 | { 94 | /*** IUnknown methods ***/ 95 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 96 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 97 | STDMETHOD_(ULONG,Release)(THIS) PURE; 98 | /*** ID3DXFileSaveObject methods ***/ 99 | STDMETHOD(GetFile)(THIS_ ID3DXFile **file) PURE; 100 | STDMETHOD(AddDataObject)(THIS_ REFGUID template_guid, const char *name, const GUID *guid, 101 | SIZE_T data_size, const void *data, struct ID3DXFileSaveData **obj) PURE; 102 | STDMETHOD(Save)(THIS) PURE; 103 | }; 104 | #undef INTERFACE 105 | 106 | #define INTERFACE ID3DXFileSaveData 107 | DECLARE_INTERFACE_IID_(ID3DXFileSaveData,IUnknown,"cef08cfb-7b4f-4429-9624-2a690a933201") 108 | { 109 | /*** IUnknown methods ***/ 110 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 111 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 112 | STDMETHOD_(ULONG,Release)(THIS) PURE; 113 | /*** ID3DXFileSaveObject methods ***/ 114 | STDMETHOD(GetSave)(THIS_ ID3DXFileSaveObject **save_obj) PURE; 115 | STDMETHOD(GetName)(THIS_ char *name, SIZE_T *size) PURE; 116 | STDMETHOD(GetId)(THIS_ LPGUID) PURE; 117 | STDMETHOD(GetType)(THIS_ GUID*) PURE; 118 | STDMETHOD(AddDataObject)(THIS_ REFGUID template_guid, const char *name, const GUID *guid, 119 | SIZE_T data_size, const void *data, ID3DXFileSaveData **obj) PURE; 120 | STDMETHOD(AddDataReference)(THIS_ const char *name, const GUID *id) PURE; 121 | }; 122 | #undef INTERFACE 123 | 124 | 125 | #define INTERFACE ID3DXFileEnumObject 126 | DECLARE_INTERFACE_IID_(ID3DXFileEnumObject,IUnknown,"cef08cfc-7b4f-4429-9624-2a690a933201") 127 | { 128 | /*** IUnknown methods ***/ 129 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 130 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 131 | STDMETHOD_(ULONG,Release)(THIS) PURE; 132 | /*** ID3DXFileEnumObject methods ***/ 133 | STDMETHOD(GetFile)(THIS_ ID3DXFile **file) PURE; 134 | STDMETHOD(GetChildren)(THIS_ SIZE_T*) PURE; 135 | STDMETHOD(GetChild)(THIS_ SIZE_T id, struct ID3DXFileData **child) PURE; 136 | STDMETHOD(GetDataObjectById)(THIS_ REFGUID guid, struct ID3DXFileData **obj) PURE; 137 | STDMETHOD(GetDataObjectByName)(THIS_ const char *name, struct ID3DXFileData **obj) PURE; 138 | }; 139 | #undef INTERFACE 140 | 141 | #define INTERFACE ID3DXFileData 142 | DECLARE_INTERFACE_IID_(ID3DXFileData,IUnknown,"cef08cfd-7b4f-4429-9624-2a690a933201") 143 | { 144 | /*** IUnknown methods ***/ 145 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 146 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 147 | STDMETHOD_(ULONG,Release)(THIS) PURE; 148 | /*** ID3DXFileData methods ***/ 149 | STDMETHOD(GetEnum)(THIS_ ID3DXFileEnumObject **enum_obj) PURE; 150 | STDMETHOD(GetName)(THIS_ char *name, SIZE_T *size) PURE; 151 | STDMETHOD(GetId)(THIS_ LPGUID) PURE; 152 | STDMETHOD(Lock)(THIS_ SIZE_T *data_size, const void **data) PURE; 153 | STDMETHOD(Unlock)(THIS) PURE; 154 | STDMETHOD(GetType)(THIS_ GUID*) PURE; 155 | STDMETHOD_(WINBOOL,IsReference)(THIS) PURE; 156 | STDMETHOD(GetChildren)(THIS_ SIZE_T*) PURE; 157 | STDMETHOD(GetChild)(THIS_ SIZE_T id, ID3DXFileData **child) PURE; 158 | }; 159 | #undef INTERFACE 160 | 161 | /* D3DX File errors */ 162 | #define _FACD3DXF 0x876 163 | 164 | #define D3DXFERR_BADOBJECT MAKE_HRESULT(1,_FACD3DXF,900) 165 | #define D3DXFERR_BADVALUE MAKE_HRESULT(1,_FACD3DXF,901) 166 | #define D3DXFERR_BADTYPE MAKE_HRESULT(1,_FACD3DXF,902) 167 | #define D3DXFERR_NOTFOUND MAKE_HRESULT(1,_FACD3DXF,903) 168 | #define D3DXFERR_NOTDONEYET MAKE_HRESULT(1,_FACD3DXF,904) 169 | #define D3DXFERR_FILENOTFOUND MAKE_HRESULT(1,_FACD3DXF,905) 170 | #define D3DXFERR_RESOURCENOTFOUND MAKE_HRESULT(1,_FACD3DXF,906) 171 | #define D3DXFERR_BADRESOURCE MAKE_HRESULT(1,_FACD3DXF,907) 172 | #define D3DXFERR_BADFILETYPE MAKE_HRESULT(1,_FACD3DXF,908) 173 | #define D3DXFERR_BADFILEVERSION MAKE_HRESULT(1,_FACD3DXF,909) 174 | #define D3DXFERR_BADFILEFLOATSIZE MAKE_HRESULT(1,_FACD3DXF,910) 175 | #define D3DXFERR_BADFILE MAKE_HRESULT(1,_FACD3DXF,911) 176 | #define D3DXFERR_PARSEERROR MAKE_HRESULT(1,_FACD3DXF,912) 177 | #define D3DXFERR_BADARRAYSIZE MAKE_HRESULT(1,_FACD3DXF,913) 178 | #define D3DXFERR_BADDATAREFERENCE MAKE_HRESULT(1,_FACD3DXF,914) 179 | #define D3DXFERR_NOMOREOBJECTS MAKE_HRESULT(1,_FACD3DXF,915) 180 | #define D3DXFERR_NOMOREDATA MAKE_HRESULT(1,_FACD3DXF,916) 181 | #define D3DXFERR_BADCACHEFILE MAKE_HRESULT(1,_FACD3DXF,917) 182 | 183 | #ifdef __cplusplus 184 | } 185 | #endif 186 | 187 | #endif /* __WINE_D3DX9XOF_H */ 188 | -------------------------------------------------------------------------------- /d3d10shader.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright 2009 Henri Verbeet for CodeWeavers 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | * 19 | */ 20 | 21 | #ifndef __WINE_D3D10SHADER_H 22 | #define __WINE_D3D10SHADER_H 23 | 24 | #include "d3d10.h" 25 | 26 | #define D3D10_SHADER_DEBUG 0x0001 27 | #define D3D10_SHADER_SKIP_VALIDATION 0x0002 28 | #define D3D10_SHADER_SKIP_OPTIMIZATION 0x0004 29 | #define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR 0x0008 30 | #define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR 0x0010 31 | #define D3D10_SHADER_PARTIAL_PRECISION 0x0020 32 | #define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT 0x0040 33 | #define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT 0x0080 34 | #define D3D10_SHADER_NO_PRESHADER 0x0100 35 | #define D3D10_SHADER_AVOID_FLOW_CONTROL 0x0200 36 | #define D3D10_SHADER_PREFER_FLOW_CONTROL 0x0400 37 | #define D3D10_SHADER_ENABLE_STRICTNESS 0x0800 38 | #define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000 39 | #define D3D10_SHADER_IEEE_STRICTNESS 0x2000 40 | #define D3D10_SHADER_WARNINGS_ARE_ERRORS 0x40000 41 | 42 | #define D3D10_SHADER_OPTIMIZATION_LEVEL0 0x4000 43 | #define D3D10_SHADER_OPTIMIZATION_LEVEL1 0x0000 44 | #define D3D10_SHADER_OPTIMIZATION_LEVEL2 0xC000 45 | #define D3D10_SHADER_OPTIMIZATION_LEVEL3 0x8000 46 | 47 | /* These are defined as version-neutral in d3dcommon.h */ 48 | typedef D3D_SHADER_MACRO D3D10_SHADER_MACRO; 49 | typedef D3D_SHADER_MACRO *LPD3D10_SHADER_MACRO; 50 | 51 | typedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS; 52 | typedef D3D_SHADER_VARIABLE_CLASS *LPD3D10_SHADER_VARIABLE_CLASS; 53 | 54 | typedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE; 55 | typedef D3D_CBUFFER_TYPE *LPD3D10_CBUFFER_TYPE; 56 | 57 | typedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE; 58 | 59 | typedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE; 60 | 61 | typedef D3D_NAME D3D10_NAME; 62 | 63 | typedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE; 64 | typedef D3D_SHADER_INPUT_TYPE *LPD3D10_SHADER_INPUT_TYPE; 65 | 66 | typedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE; 67 | typedef D3D_SHADER_VARIABLE_TYPE *LPD3D10_SHADER_VARIABLE_TYPE; 68 | 69 | typedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE; 70 | typedef ID3DInclude ID3D10Include; 71 | typedef ID3DInclude *LPD3D10INCLUDE; 72 | #define IID_ID3D10Include IID_ID3DInclude 73 | 74 | typedef struct _D3D10_SHADER_INPUT_BIND_DESC 75 | { 76 | const char *Name; 77 | D3D10_SHADER_INPUT_TYPE Type; 78 | UINT BindPoint; 79 | UINT BindCount; 80 | UINT uFlags; 81 | D3D10_RESOURCE_RETURN_TYPE ReturnType; 82 | D3D10_SRV_DIMENSION Dimension; 83 | UINT NumSamples; 84 | } D3D10_SHADER_INPUT_BIND_DESC; 85 | 86 | typedef struct _D3D10_SIGNATURE_PARAMETER_DESC 87 | { 88 | const char *SemanticName; 89 | UINT SemanticIndex; 90 | UINT Register; 91 | D3D10_NAME SystemValueType; 92 | D3D10_REGISTER_COMPONENT_TYPE ComponentType; 93 | BYTE Mask; 94 | BYTE ReadWriteMask; 95 | } D3D10_SIGNATURE_PARAMETER_DESC; 96 | 97 | typedef struct _D3D10_SHADER_DESC 98 | { 99 | UINT Version; 100 | const char *Creator; 101 | UINT Flags; 102 | UINT ConstantBuffers; 103 | UINT BoundResources; 104 | UINT InputParameters; 105 | UINT OutputParameters; 106 | UINT InstructionCount; 107 | UINT TempRegisterCount; 108 | UINT TempArrayCount; 109 | UINT DefCount; 110 | UINT DclCount; 111 | UINT TextureNormalInstructions; 112 | UINT TextureLoadInstructions; 113 | UINT TextureCompInstructions; 114 | UINT TextureBiasInstructions; 115 | UINT TextureGradientInstructions; 116 | UINT FloatInstructionCount; 117 | UINT IntInstructionCount; 118 | UINT UintInstructionCount; 119 | UINT StaticFlowControlCount; 120 | UINT DynamicFlowControlCount; 121 | UINT MacroInstructionCount; 122 | UINT ArrayInstructionCount; 123 | UINT CutInstructionCount; 124 | UINT EmitInstructionCount; 125 | D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology; 126 | UINT GSMaxOutputVertexCount; 127 | } D3D10_SHADER_DESC; 128 | 129 | typedef struct _D3D10_SHADER_BUFFER_DESC 130 | { 131 | const char *Name; 132 | D3D10_CBUFFER_TYPE Type; 133 | UINT Variables; 134 | UINT Size; 135 | UINT uFlags; 136 | } D3D10_SHADER_BUFFER_DESC; 137 | 138 | typedef struct _D3D10_SHADER_VARIABLE_DESC 139 | { 140 | const char *Name; 141 | UINT StartOffset; 142 | UINT Size; 143 | UINT uFlags; 144 | void *DefaultValue; 145 | } D3D10_SHADER_VARIABLE_DESC; 146 | 147 | typedef struct _D3D10_SHADER_TYPE_DESC 148 | { 149 | D3D10_SHADER_VARIABLE_CLASS Class; 150 | D3D10_SHADER_VARIABLE_TYPE Type; 151 | UINT Rows; 152 | UINT Columns; 153 | UINT Elements; 154 | UINT Members; 155 | UINT Offset; 156 | } D3D10_SHADER_TYPE_DESC; 157 | 158 | DEFINE_GUID(IID_ID3D10ShaderReflectionType, 0xc530ad7d, 0x9b16, 0x4395, 0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd); 159 | 160 | #define INTERFACE ID3D10ShaderReflectionType 161 | DECLARE_INTERFACE(ID3D10ShaderReflectionType) 162 | { 163 | STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_TYPE_DESC *desc) PURE; 164 | STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE; 165 | STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE; 166 | STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE; 167 | }; 168 | #undef INTERFACE 169 | 170 | DEFINE_GUID(IID_ID3D10ShaderReflectionVariable, 0x1bf63c95, 0x2650, 0x405d, 0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1); 171 | 172 | #define INTERFACE ID3D10ShaderReflectionVariable 173 | DECLARE_INTERFACE(ID3D10ShaderReflectionVariable) 174 | { 175 | STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_VARIABLE_DESC *desc) PURE; 176 | STDMETHOD_(struct ID3D10ShaderReflectionType *, GetType)(THIS) PURE; 177 | }; 178 | #undef INTERFACE 179 | 180 | DEFINE_GUID(IID_ID3D10ShaderReflectionConstantBuffer, 0x66c66a94, 0xdddd, 0x4b62, 0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0); 181 | 182 | #define INTERFACE ID3D10ShaderReflectionConstantBuffer 183 | DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer) 184 | { 185 | STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_BUFFER_DESC *desc) PURE; 186 | STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE; 187 | STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE; 188 | }; 189 | #undef INTERFACE 190 | 191 | DEFINE_GUID(IID_ID3D10ShaderReflection, 0xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa); 192 | 193 | #define INTERFACE ID3D10ShaderReflection 194 | DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown) 195 | { 196 | /* IUnknown methods */ 197 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 198 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 199 | STDMETHOD_(ULONG, Release)(THIS) PURE; 200 | /* ID3D10ShaderReflection methods */ 201 | STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE; 202 | STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE; 203 | STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE; 204 | STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE; 205 | STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE; 206 | STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE; 207 | }; 208 | #undef INTERFACE 209 | 210 | 211 | #ifdef __cplusplus 212 | extern "C" { 213 | #endif 214 | 215 | HRESULT WINAPI D3D10CompileShader(const char *data, SIZE_T data_size, const char *filename, 216 | const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *entrypoint, 217 | const char *profile, UINT flags, ID3D10Blob **shader, ID3D10Blob **error_messages); 218 | HRESULT WINAPI D3D10DisassembleShader(const void *data, SIZE_T data_size, 219 | WINBOOL color_code, const char *comments, ID3D10Blob **disassembly); 220 | const char * WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device); 221 | const char * WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device); 222 | const char * WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device); 223 | 224 | HRESULT WINAPI D3D10ReflectShader(const void *data, SIZE_T data_size, ID3D10ShaderReflection **reflector); 225 | HRESULT WINAPI D3D10GetInputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob); 226 | HRESULT WINAPI D3D10GetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob); 227 | HRESULT WINAPI D3D10GetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob); 228 | HRESULT WINAPI D3D10GetShaderDebugInfo(const void *data, SIZE_T data_size, ID3D10Blob **blob); 229 | 230 | #ifdef __cplusplus 231 | } 232 | #endif 233 | 234 | #endif /* __WINE_D3D10SHADER_H */ 235 | -------------------------------------------------------------------------------- /d3d11shader.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright 2010 Matteo Bruni for CodeWeavers 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __D3D11SHADER_H__ 21 | #define __D3D11SHADER_H__ 22 | 23 | #include "d3dcommon.h" 24 | 25 | /* If not defined set d3dcompiler_47 by default. */ 26 | #ifndef D3D_COMPILER_VERSION 27 | #define D3D_COMPILER_VERSION 47 28 | #endif 29 | 30 | /* These are defined as version-neutral in d3dcommon.h */ 31 | typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE; 32 | 33 | typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE; 34 | 35 | typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN; 36 | 37 | typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING; 38 | 39 | typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE; 40 | 41 | typedef struct _D3D11_SHADER_DESC 42 | { 43 | UINT Version; 44 | const char *Creator; 45 | UINT Flags; 46 | UINT ConstantBuffers; 47 | UINT BoundResources; 48 | UINT InputParameters; 49 | UINT OutputParameters; 50 | UINT InstructionCount; 51 | UINT TempRegisterCount; 52 | UINT TempArrayCount; 53 | UINT DefCount; 54 | UINT DclCount; 55 | UINT TextureNormalInstructions; 56 | UINT TextureLoadInstructions; 57 | UINT TextureCompInstructions; 58 | UINT TextureBiasInstructions; 59 | UINT TextureGradientInstructions; 60 | UINT FloatInstructionCount; 61 | UINT IntInstructionCount; 62 | UINT UintInstructionCount; 63 | UINT StaticFlowControlCount; 64 | UINT DynamicFlowControlCount; 65 | UINT MacroInstructionCount; 66 | UINT ArrayInstructionCount; 67 | UINT CutInstructionCount; 68 | UINT EmitInstructionCount; 69 | D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; 70 | UINT GSMaxOutputVertexCount; 71 | D3D_PRIMITIVE InputPrimitive; 72 | UINT PatchConstantParameters; 73 | UINT cGSInstanceCount; 74 | UINT cControlPoints; 75 | D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; 76 | D3D_TESSELLATOR_PARTITIONING HSPartitioning; 77 | D3D_TESSELLATOR_DOMAIN TessellatorDomain; 78 | UINT cBarrierInstructions; 79 | UINT cInterlockedInstructions; 80 | UINT cTextureStoreInstructions; 81 | } D3D11_SHADER_DESC; 82 | 83 | typedef struct _D3D11_SHADER_VARIABLE_DESC 84 | { 85 | const char *Name; 86 | UINT StartOffset; 87 | UINT Size; 88 | UINT uFlags; 89 | void *DefaultValue; 90 | UINT StartTexture; 91 | UINT TextureSize; 92 | UINT StartSampler; 93 | UINT SamplerSize; 94 | } D3D11_SHADER_VARIABLE_DESC; 95 | 96 | typedef struct _D3D11_SHADER_TYPE_DESC 97 | { 98 | D3D_SHADER_VARIABLE_CLASS Class; 99 | D3D_SHADER_VARIABLE_TYPE Type; 100 | UINT Rows; 101 | UINT Columns; 102 | UINT Elements; 103 | UINT Members; 104 | UINT Offset; 105 | const char *Name; 106 | } D3D11_SHADER_TYPE_DESC; 107 | 108 | typedef struct _D3D11_SHADER_BUFFER_DESC 109 | { 110 | const char *Name; 111 | D3D_CBUFFER_TYPE Type; 112 | UINT Variables; 113 | UINT Size; 114 | UINT uFlags; 115 | } D3D11_SHADER_BUFFER_DESC; 116 | 117 | typedef struct _D3D11_SHADER_INPUT_BIND_DESC 118 | { 119 | const char *Name; 120 | D3D_SHADER_INPUT_TYPE Type; 121 | UINT BindPoint; 122 | UINT BindCount; 123 | UINT uFlags; 124 | D3D_RESOURCE_RETURN_TYPE ReturnType; 125 | D3D_SRV_DIMENSION Dimension; 126 | UINT NumSamples; 127 | } D3D11_SHADER_INPUT_BIND_DESC; 128 | 129 | typedef struct _D3D11_SIGNATURE_PARAMETER_DESC 130 | { 131 | const char *SemanticName; 132 | UINT SemanticIndex; 133 | UINT Register; 134 | D3D_NAME SystemValueType; 135 | D3D_REGISTER_COMPONENT_TYPE ComponentType; 136 | BYTE Mask; 137 | BYTE ReadWriteMask; 138 | UINT Stream; 139 | #if D3D_COMPILER_VERSION >= 46 140 | D3D_MIN_PRECISION MinPrecision; 141 | #endif 142 | } D3D11_SIGNATURE_PARAMETER_DESC; 143 | 144 | DEFINE_GUID(IID_ID3D11ShaderReflectionType, 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21); 145 | 146 | #define INTERFACE ID3D11ShaderReflectionType 147 | DECLARE_INTERFACE(ID3D11ShaderReflectionType) 148 | { 149 | STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_TYPE_DESC *desc) PURE; 150 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE; 151 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE; 152 | STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE; 153 | STDMETHOD(IsEqual)(THIS_ struct ID3D11ShaderReflectionType *type) PURE; 154 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetSubType)(THIS) PURE; 155 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetBaseClass)(THIS) PURE; 156 | STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE; 157 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetInterfaceByIndex)(THIS_ UINT index) PURE; 158 | STDMETHOD(IsOfType)(THIS_ struct ID3D11ShaderReflectionType *type) PURE; 159 | STDMETHOD(ImplementsInterface)(THIS_ ID3D11ShaderReflectionType *base) PURE; 160 | }; 161 | #undef INTERFACE 162 | 163 | DEFINE_GUID(IID_ID3D11ShaderReflectionVariable, 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c); 164 | 165 | #define INTERFACE ID3D11ShaderReflectionVariable 166 | DECLARE_INTERFACE(ID3D11ShaderReflectionVariable) 167 | { 168 | STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_VARIABLE_DESC *desc) PURE; 169 | STDMETHOD_(struct ID3D11ShaderReflectionType *, GetType)(THIS) PURE; 170 | STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetBuffer)(THIS) PURE; 171 | STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ UINT index) PURE; 172 | }; 173 | #undef INTERFACE 174 | 175 | DEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer, 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8); 176 | 177 | #define INTERFACE ID3D11ShaderReflectionConstantBuffer 178 | DECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer) 179 | { 180 | STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *desc) PURE; 181 | STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE; 182 | STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE; 183 | }; 184 | #undef INTERFACE 185 | 186 | #if D3D_COMPILER_VERSION <= 42 187 | DEFINE_GUID(IID_ID3D11ShaderReflection, 0x17f27486, 0xa342, 0x4d10, 0x88, 0x42, 0xab, 0x08, 0x74, 0xe7, 0xf6, 0x70); 188 | #elif D3D_COMPILER_VERSION == 43 189 | DEFINE_GUID(IID_ID3D11ShaderReflection, 0x0a233719, 0x3960, 0x4578, 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1); 190 | #else 191 | DEFINE_GUID(IID_ID3D11ShaderReflection, 0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84); 192 | #endif 193 | 194 | #define INTERFACE ID3D11ShaderReflection 195 | DECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown) 196 | { 197 | /* IUnknown methods */ 198 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 199 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 200 | STDMETHOD_(ULONG, Release)(THIS) PURE; 201 | /* ID3D11ShaderReflection methods */ 202 | STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_DESC *desc) PURE; 203 | STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE; 204 | STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE; 205 | STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE; 206 | STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE; 207 | STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE; 208 | STDMETHOD(GetPatchConstantParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE; 209 | STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE; 210 | STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE; 211 | STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE; 212 | STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE; 213 | STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE; 214 | STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE; 215 | STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE; 216 | STDMETHOD_(WINBOOL, IsSampleFrequencyShader)(THIS) PURE; 217 | STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE; 218 | STDMETHOD(GetMinFeatureLevel)(THIS_ enum D3D_FEATURE_LEVEL *level) PURE; 219 | STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ UINT *sizex, UINT *sizey, UINT *sizez) PURE; 220 | STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE; 221 | }; 222 | #undef INTERFACE 223 | 224 | DEFINE_GUID(IID_ID3D11ModuleInstance, 0x469e07f7, 0x45a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d); 225 | 226 | #define INTERFACE ID3D11ModuleInstance 227 | DECLARE_INTERFACE_(ID3D11ModuleInstance, IUnknown) 228 | { 229 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 230 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 231 | STDMETHOD_(ULONG, Release)(THIS) PURE; 232 | 233 | /* ID3D11ModuleInstance methods */ 234 | STDMETHOD(BindConstantBuffer)(THIS_ UINT srcslot, UINT dstslot, UINT dstoffset) PURE; 235 | STDMETHOD(BindConstantBufferByName)(THIS_ const char *name, UINT dstslot, UINT dstoffset) PURE; 236 | 237 | STDMETHOD(BindResource)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE; 238 | STDMETHOD(BindResourceByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE; 239 | 240 | STDMETHOD(BindSampler)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE; 241 | STDMETHOD(BindSamplerByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE; 242 | 243 | STDMETHOD(BindUnorderedAccessView)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE; 244 | STDMETHOD(BindUnorderedAccessViewByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE; 245 | 246 | STDMETHOD(BindResourceAsUnorderedAccessView)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE; 247 | STDMETHOD(BindResourceAsUnorderedAccessViewByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE; 248 | }; 249 | #undef INTERFACE 250 | 251 | DEFINE_GUID(IID_ID3D11Module, 0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34); 252 | 253 | #define INTERFACE ID3D11Module 254 | DECLARE_INTERFACE_(ID3D11Module, IUnknown) 255 | { 256 | STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE; 257 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 258 | STDMETHOD_(ULONG, Release)(THIS) PURE; 259 | 260 | /* ID3D11Module methods */ 261 | STDMETHOD(CreateInstance)(THIS_ const char *instnamespace, ID3D11ModuleInstance **moduleinstance) PURE; 262 | }; 263 | #undef INTERFACE 264 | 265 | #endif 266 | -------------------------------------------------------------------------------- /d3d8caps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2002 Jason Edmeades 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 | */ 18 | 19 | #ifndef __WINE_D3D8CAPS_H 20 | #define __WINE_D3D8CAPS_H 21 | 22 | #ifdef __i386__ 23 | #include 24 | #endif 25 | 26 | /* 27 | * Definitions 28 | */ 29 | 30 | #define D3DCAPS_READ_SCANLINE 0x20000 31 | 32 | #define D3DCURSORCAPS_COLOR 1 33 | #define D3DCURSORCAPS_LOWRES 2 34 | 35 | #define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010 36 | #define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020 37 | #define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040 38 | #define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080 39 | #define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100 40 | #define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200 41 | #define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400 42 | #define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800 43 | #define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000 44 | #define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000 45 | #define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000 46 | #define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000 47 | #define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000 48 | #define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000 49 | #define D3DDEVCAPS_HWRASTERIZATION 0x0080000 50 | #define D3DDEVCAPS_PUREDEVICE 0x0100000 51 | #define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000 52 | #define D3DDEVCAPS_RTPATCHES 0x0400000 53 | #define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000 54 | #define D3DDEVCAPS_NPATCHES 0x1000000 55 | 56 | #define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF 57 | #define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000 58 | #define D3DFVFCAPS_PSIZE 0x100000 59 | 60 | #define D3DLINECAPS_TEXTURE 0x01 61 | #define D3DLINECAPS_ZTEST 0x02 62 | #define D3DLINECAPS_BLEND 0x04 63 | #define D3DLINECAPS_ALPHACMP 0x08 64 | #define D3DLINECAPS_FOG 0x10 65 | 66 | #define D3DPBLENDCAPS_ZERO 0x0001 67 | #define D3DPBLENDCAPS_ONE 0x0002 68 | #define D3DPBLENDCAPS_SRCCOLOR 0x0004 69 | #define D3DPBLENDCAPS_INVSRCCOLOR 0x0008 70 | #define D3DPBLENDCAPS_SRCALPHA 0x0010 71 | #define D3DPBLENDCAPS_INVSRCALPHA 0x0020 72 | #define D3DPBLENDCAPS_DESTALPHA 0x0040 73 | #define D3DPBLENDCAPS_INVDESTALPHA 0x0080 74 | #define D3DPBLENDCAPS_DESTCOLOR 0x0100 75 | #define D3DPBLENDCAPS_INVDESTCOLOR 0x0200 76 | #define D3DPBLENDCAPS_SRCALPHASAT 0x0400 77 | #define D3DPBLENDCAPS_BOTHSRCALPHA 0x0800 78 | #define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000 79 | 80 | #define D3DPCMPCAPS_NEVER 0x01 81 | #define D3DPCMPCAPS_LESS 0x02 82 | #define D3DPCMPCAPS_EQUAL 0x04 83 | #define D3DPCMPCAPS_LESSEQUAL 0x08 84 | #define D3DPCMPCAPS_GREATER 0x10 85 | #define D3DPCMPCAPS_NOTEQUAL 0x20 86 | #define D3DPCMPCAPS_GREATEREQUAL 0x40 87 | #define D3DPCMPCAPS_ALWAYS 0x80 88 | 89 | #define D3DPMISCCAPS_MASKZ __MSABI_LONG(0x00000002) 90 | #define D3DPMISCCAPS_LINEPATTERNREP __MSABI_LONG(0x00000004) 91 | #define D3DPMISCCAPS_CULLNONE __MSABI_LONG(0x00000010) 92 | #define D3DPMISCCAPS_CULLCW __MSABI_LONG(0x00000020) 93 | #define D3DPMISCCAPS_CULLCCW __MSABI_LONG(0x00000040) 94 | #define D3DPMISCCAPS_COLORWRITEENABLE __MSABI_LONG(0x00000080) 95 | #define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS __MSABI_LONG(0x00000100) 96 | #define D3DPMISCCAPS_CLIPTLVERTS __MSABI_LONG(0x00000200) 97 | #define D3DPMISCCAPS_TSSARGTEMP __MSABI_LONG(0x00000400) 98 | #define D3DPMISCCAPS_BLENDOP __MSABI_LONG(0x00000800) 99 | #define D3DPMISCCAPS_NULLREFERENCE __MSABI_LONG(0x00001000) 100 | 101 | #define D3DPRASTERCAPS_DITHER 0x00000001 102 | #define D3DPRASTERCAPS_PAT 0x00000008 103 | #define D3DPRASTERCAPS_ZTEST 0x00000010 104 | #define D3DPRASTERCAPS_FOGVERTEX 0x00000080 105 | #define D3DPRASTERCAPS_FOGTABLE 0x00000100 106 | #define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000 107 | #define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000 108 | #define D3DPRASTERCAPS_ZBIAS 0x00004000 109 | #define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000 110 | #define D3DPRASTERCAPS_FOGRANGE 0x00010000 111 | #define D3DPRASTERCAPS_ANISOTROPY 0x00020000 112 | #define D3DPRASTERCAPS_WBUFFER 0x00040000 113 | #define D3DPRASTERCAPS_WFOG 0x00100000 114 | #define D3DPRASTERCAPS_ZFOG 0x00200000 115 | #define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000 116 | #define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000 117 | 118 | #define D3DPRESENT_INTERVAL_DEFAULT 0x00000000 119 | #define D3DPRESENT_INTERVAL_ONE 0x00000001 120 | #define D3DPRESENT_INTERVAL_TWO 0x00000002 121 | #define D3DPRESENT_INTERVAL_THREE 0x00000004 122 | #define D3DPRESENT_INTERVAL_FOUR 0x00000008 123 | #define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000 124 | 125 | #define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008 126 | #define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200 127 | #define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000 128 | #define D3DPSHADECAPS_FOGGOURAUD 0x80000 129 | 130 | #define D3DPTADDRESSCAPS_WRAP 0x01 131 | #define D3DPTADDRESSCAPS_MIRROR 0x02 132 | #define D3DPTADDRESSCAPS_CLAMP 0x04 133 | #define D3DPTADDRESSCAPS_BORDER 0x08 134 | #define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10 135 | #define D3DPTADDRESSCAPS_MIRRORONCE 0x20 136 | 137 | #define D3DPTEXTURECAPS_PERSPECTIVE 0x00001 138 | #define D3DPTEXTURECAPS_POW2 0x00002 139 | #define D3DPTEXTURECAPS_ALPHA 0x00004 140 | #define D3DPTEXTURECAPS_SQUAREONLY 0x00020 141 | #define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00040 142 | #define D3DPTEXTURECAPS_ALPHAPALETTE 0x00080 143 | #define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00100 144 | #define D3DPTEXTURECAPS_PROJECTED 0x00400 145 | #define D3DPTEXTURECAPS_CUBEMAP 0x00800 146 | #define D3DPTEXTURECAPS_VOLUMEMAP 0x02000 147 | #define D3DPTEXTURECAPS_MIPMAP 0x04000 148 | #define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x08000 149 | #define D3DPTEXTURECAPS_MIPCUBEMAP 0x10000 150 | #define D3DPTEXTURECAPS_CUBEMAP_POW2 0x20000 151 | #define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x40000 152 | 153 | #define D3DPTFILTERCAPS_MINFPOINT 0x00000100 154 | #define D3DPTFILTERCAPS_MINFLINEAR 0x00000200 155 | #define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400 156 | #define D3DPTFILTERCAPS_MIPFPOINT 0x00010000 157 | #define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000 158 | #define D3DPTFILTERCAPS_MAGFPOINT 0x01000000 159 | #define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000 160 | #define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000 161 | #define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000 162 | #define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000 163 | 164 | #define D3DSTENCILCAPS_KEEP 0x01 165 | #define D3DSTENCILCAPS_ZERO 0x02 166 | #define D3DSTENCILCAPS_REPLACE 0x04 167 | #define D3DSTENCILCAPS_INCRSAT 0x08 168 | #define D3DSTENCILCAPS_DECRSAT 0x10 169 | #define D3DSTENCILCAPS_INVERT 0x20 170 | #define D3DSTENCILCAPS_INCR 0x40 171 | #define D3DSTENCILCAPS_DECR 0x80 172 | 173 | #define D3DTEXOPCAPS_DISABLE 0x0000001 174 | #define D3DTEXOPCAPS_SELECTARG1 0x0000002 175 | #define D3DTEXOPCAPS_SELECTARG2 0x0000004 176 | #define D3DTEXOPCAPS_MODULATE 0x0000008 177 | #define D3DTEXOPCAPS_MODULATE2X 0x0000010 178 | #define D3DTEXOPCAPS_MODULATE4X 0x0000020 179 | #define D3DTEXOPCAPS_ADD 0x0000040 180 | #define D3DTEXOPCAPS_ADDSIGNED 0x0000080 181 | #define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100 182 | #define D3DTEXOPCAPS_SUBTRACT 0x0000200 183 | #define D3DTEXOPCAPS_ADDSMOOTH 0x0000400 184 | #define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800 185 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000 186 | #define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000 187 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000 188 | #define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000 189 | #define D3DTEXOPCAPS_PREMODULATE 0x0010000 190 | #define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000 191 | #define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000 192 | #define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000 193 | #define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000 194 | #define D3DTEXOPCAPS_BUMPENVMAP 0x0200000 195 | #define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000 196 | #define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000 197 | #define D3DTEXOPCAPS_MULTIPLYADD 0x1000000 198 | #define D3DTEXOPCAPS_LERP 0x2000000 199 | 200 | #define D3DVTXPCAPS_TEXGEN __MSABI_LONG(0x00000001) 201 | #define D3DVTXPCAPS_MATERIALSOURCE7 __MSABI_LONG(0x00000002) 202 | #define D3DVTXPCAPS_DIRECTIONALLIGHTS __MSABI_LONG(0x00000008) 203 | #define D3DVTXPCAPS_POSITIONALLIGHTS __MSABI_LONG(0x00000010) 204 | #define D3DVTXPCAPS_LOCALVIEWER __MSABI_LONG(0x00000020) 205 | #define D3DVTXPCAPS_TWEENING __MSABI_LONG(0x00000040) 206 | #define D3DVTXPCAPS_NO_VSDT_UBYTE4 __MSABI_LONG(0x00000080) 207 | 208 | #define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020 209 | #define D3DCAPS3_RESERVED 0x8000001f 210 | 211 | #define D3DCAPS2_CANCALIBRATEGAMMA 0x0100000 212 | #define D3DCAPS2_CANRENDERWINDOWED 0x0080000 213 | #define D3DCAPS2_CANMANAGERESOURCE 0x10000000 214 | #define D3DCAPS2_DYNAMICTEXTURES 0x20000000 215 | #define D3DCAPS2_FULLSCREENGAMMA 0x0020000 216 | #define D3DCAPS2_NO2DDURING3DSCENE 0x0000002 217 | #define D3DCAPS2_RESERVED 0x2000000 218 | 219 | /* 220 | * The d3dcaps8 structure 221 | */ 222 | typedef struct _D3DCAPS8 { 223 | D3DDEVTYPE DeviceType; 224 | UINT AdapterOrdinal; 225 | 226 | DWORD Caps; 227 | DWORD Caps2; 228 | DWORD Caps3; 229 | DWORD PresentationIntervals; 230 | 231 | DWORD CursorCaps; 232 | 233 | DWORD DevCaps; 234 | 235 | DWORD PrimitiveMiscCaps; 236 | DWORD RasterCaps; 237 | DWORD ZCmpCaps; 238 | DWORD SrcBlendCaps; 239 | DWORD DestBlendCaps; 240 | DWORD AlphaCmpCaps; 241 | DWORD ShadeCaps; 242 | DWORD TextureCaps; 243 | DWORD TextureFilterCaps; 244 | DWORD CubeTextureFilterCaps; 245 | DWORD VolumeTextureFilterCaps; 246 | DWORD TextureAddressCaps; 247 | DWORD VolumeTextureAddressCaps; 248 | 249 | DWORD LineCaps; 250 | 251 | DWORD MaxTextureWidth, MaxTextureHeight; 252 | DWORD MaxVolumeExtent; 253 | 254 | DWORD MaxTextureRepeat; 255 | DWORD MaxTextureAspectRatio; 256 | DWORD MaxAnisotropy; 257 | float MaxVertexW; 258 | 259 | float GuardBandLeft; 260 | float GuardBandTop; 261 | float GuardBandRight; 262 | float GuardBandBottom; 263 | 264 | float ExtentsAdjust; 265 | DWORD StencilCaps; 266 | 267 | DWORD FVFCaps; 268 | DWORD TextureOpCaps; 269 | DWORD MaxTextureBlendStages; 270 | DWORD MaxSimultaneousTextures; 271 | 272 | DWORD VertexProcessingCaps; 273 | DWORD MaxActiveLights; 274 | DWORD MaxUserClipPlanes; 275 | DWORD MaxVertexBlendMatrices; 276 | DWORD MaxVertexBlendMatrixIndex; 277 | 278 | float MaxPointSize; 279 | 280 | DWORD MaxPrimitiveCount; 281 | DWORD MaxVertexIndex; 282 | DWORD MaxStreams; 283 | DWORD MaxStreamStride; 284 | 285 | DWORD VertexShaderVersion; 286 | DWORD MaxVertexShaderConst; 287 | 288 | DWORD PixelShaderVersion; 289 | float MaxPixelShaderValue; 290 | } D3DCAPS8; 291 | 292 | #ifdef __i386__ 293 | #include 294 | #endif 295 | 296 | #endif /* __WINE_D3D8CAPS_H */ 297 | -------------------------------------------------------------------------------- /dxfile.h: -------------------------------------------------------------------------------- 1 | #undef INTERFACE 2 | /* 3 | * Copyright 2004 Christian Costa 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_DXFILE_H 21 | #define __WINE_DXFILE_H 22 | 23 | #include 24 | #include 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif /* defined(__cplusplus) */ 29 | 30 | typedef DWORD DXFILEFORMAT; 31 | 32 | #define DXFILEFORMAT_BINARY 0 33 | #define DXFILEFORMAT_TEXT 1 34 | #define DXFILEFORMAT_COMPRESSED 2 35 | 36 | typedef DWORD DXFILELOADOPTIONS; 37 | 38 | #define DXFILELOAD_FROMFILE __MSABI_LONG(0x00) 39 | #define DXFILELOAD_FROMRESOURCE __MSABI_LONG(0x01) 40 | #define DXFILELOAD_FROMMEMORY __MSABI_LONG(0x02) 41 | #define DXFILELOAD_FROMSTREAM __MSABI_LONG(0x04) 42 | #define DXFILELOAD_FROMURL __MSABI_LONG(0x08) 43 | 44 | typedef struct _DXFILELOADRESOURCE { 45 | HMODULE hModule; 46 | LPCSTR /*LPCTSTR*/ lpName; 47 | LPCSTR /*LPCTSTR*/ lpType; 48 | } DXFILELOADRESOURCE, *LPDXFILELOADRESOURCE; 49 | 50 | typedef struct _DXFILELOADMEMORY { 51 | LPVOID lpMemory; 52 | DWORD dSize; 53 | } DXFILELOADMEMORY, *LPDXFILELOADMEMORY; 54 | 55 | typedef struct IDirectXFile *LPDIRECTXFILE; 56 | typedef struct IDirectXFileEnumObject *LPDIRECTXFILEENUMOBJECT; 57 | typedef struct IDirectXFileSaveObject *LPDIRECTXFILESAVEOBJECT; 58 | typedef struct IDirectXFileObject *LPDIRECTXFILEOBJECT; 59 | typedef struct IDirectXFileData *LPDIRECTXFILEDATA; 60 | typedef struct IDirectXFileDataReference *LPDIRECTXFILEDATAREFERENCE; 61 | typedef struct IDirectXFileBinary *LPDIRECTXFILEBINARY; 62 | 63 | STDAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile); 64 | 65 | #define INTERFACE IDirectXFile 66 | DECLARE_INTERFACE_(IDirectXFile,IUnknown) 67 | { 68 | /*** IUnknown methods ***/ 69 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 70 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 71 | STDMETHOD_(ULONG,Release)(THIS) PURE; 72 | /*** IDirectXFile methods ***/ 73 | STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE; 74 | STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE; 75 | STDMETHOD(RegisterTemplates) (THIS_ LPVOID, DWORD) PURE; 76 | }; 77 | #undef INTERFACE 78 | 79 | #if !defined(__cplusplus) || defined(CINTERFACE) 80 | /*** IUnknown methods ***/ 81 | #define IDirectXFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 82 | #define IDirectXFile_AddRef(p) (p)->lpVtbl->AddRef(p) 83 | #define IDirectXFile_Release(p) (p)->lpVtbl->Release(p) 84 | /*** IDirectXFile methods ***/ 85 | #define IDirectXFile_CreateEnumObject(p,a,b,c) (p)->lpVtbl->CreateEnumObject(p,a,b,c) 86 | #define IDirectXFile_CreateSaveObject(p,a,b,c) (p)->lpVtbl->CreateSaveObject(p,a,b,c) 87 | #define IDirectXFile_RegisterTemplates(p,a,b) (p)->lpVtbl->RegisterTemplates(p,a,b) 88 | #endif 89 | 90 | #define INTERFACE IDirectXFileEnumObject 91 | DECLARE_INTERFACE_(IDirectXFileEnumObject,IUnknown) 92 | { 93 | /*** IUnknown methods ***/ 94 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 95 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 96 | STDMETHOD_(ULONG,Release)(THIS) PURE; 97 | /*** IDirectXFileEnumObject methods ***/ 98 | STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE; 99 | STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE; 100 | STDMETHOD(GetDataObjectByName) (THIS_ LPCSTR, LPDIRECTXFILEDATA *) PURE; 101 | }; 102 | #undef INTERFACE 103 | 104 | #if !defined(__cplusplus) || defined(CINTERFACE) 105 | /*** IUnknown methods ***/ 106 | #define IDirectXFileEnumObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 107 | #define IDirectXFileEnumObject_AddRef(p) (p)->lpVtbl->AddRef(p) 108 | #define IDirectXFileEnumObject_Release(p) (p)->lpVtbl->Release(p) 109 | /*** IDirectXFileEnumObject methods ***/ 110 | #define IDirectXFileEnumObject_GetNextDataObject(p,a) (p)->lpVtbl->GetNextDataObject(p,a) 111 | #define IDirectXFileEnumObject_GetDataObjectById(p,a,b) (p)->lpVtbl->GetDataObjectById(p,a,b) 112 | #define IDirectXFileEnumObject_GetDataObjectByName(p,a,b) (p)->lpVtbl->GetDataObjectByName(p,a,b) 113 | #endif 114 | 115 | #define INTERFACE IDirectXFileSaveObject 116 | DECLARE_INTERFACE_(IDirectXFileSaveObject,IUnknown) 117 | { 118 | /*** IUnknown methods ***/ 119 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 120 | STDMETHOD_(ULONG,AddRef)(THIS) PURE; 121 | STDMETHOD_(ULONG,Release)(THIS) PURE; 122 | /*** IDirectXFileSaveObject methods ***/ 123 | STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE; 124 | STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *, DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE; 125 | STDMETHOD(SaveData) (THIS_ LPDIRECTXFILEDATA) PURE; 126 | }; 127 | #undef INTERFACE 128 | 129 | #if !defined(__cplusplus) || defined(CINTERFACE) 130 | /*** IUnknown methods ***/ 131 | #define IDirectXFileSaveObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 132 | #define IDirectXFileSaveObject_AddRef(p) (p)->lpVtbl->AddRef(p) 133 | #define IDirectXFileSaveObject_Release(p) (p)->lpVtbl->Release(p) 134 | /*** IDirectXFileSaveObject methods ***/ 135 | #define IDirectXFileSaveObject_SaveTemplates(p,a,b) (p)->lpVtbl->SaveTemplates(p,a,b) 136 | #define IDirectXFileSaveObject_CreateDataObject(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDataObject(p,a,b,c,d,e,f) 137 | #define IDirectXFileSaveObject_SaveData(p,a) (p)->lpVtbl->SaveData(p,a) 138 | #endif 139 | 140 | #define IUNKNOWN_METHODS(kind) \ 141 | STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) kind; \ 142 | STDMETHOD_(ULONG,AddRef)(THIS) kind; \ 143 | STDMETHOD_(ULONG,Release)(THIS) kind 144 | 145 | #define IDIRECTXFILEOBJECT_METHODS(kind) \ 146 | STDMETHOD(GetName) (THIS_ LPSTR, LPDWORD) kind; \ 147 | STDMETHOD(GetId) (THIS_ LPGUID) kind 148 | 149 | #define INTERFACE IDirectXFileObject 150 | DECLARE_INTERFACE_(IDirectXFileObject,IUnknown) 151 | { 152 | IUNKNOWN_METHODS(PURE); 153 | IDIRECTXFILEOBJECT_METHODS(PURE); 154 | }; 155 | #undef INTERFACE 156 | 157 | #if !defined(__cplusplus) || defined(CINTERFACE) 158 | /*** IUnknown methods ***/ 159 | #define IDirectXFileObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 160 | #define IDirectXFileObject_AddRef(p) (p)->lpVtbl->AddRef(p) 161 | #define IDirectXFileObject_Release(p) (p)->lpVtbl->Release(p) 162 | /*** IDirectXFileObject methods ***/ 163 | #define IDirectXFileObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b) 164 | #define IDirectXFileObject_GetId(p,a) (p)->lpVtbl->GetId(p,a) 165 | #endif 166 | 167 | #define INTERFACE IDirectXFileData 168 | DECLARE_INTERFACE_(IDirectXFileData,IDirectXFileObject) 169 | { 170 | IUNKNOWN_METHODS(PURE); 171 | IDIRECTXFILEOBJECT_METHODS(PURE); 172 | /*** IDirectXFileData methods ***/ 173 | STDMETHOD(GetData) (THIS_ LPCSTR, DWORD *, void **) PURE; 174 | STDMETHOD(GetType) (THIS_ const GUID **) PURE; 175 | STDMETHOD(GetNextObject) (THIS_ LPDIRECTXFILEOBJECT *) PURE; 176 | STDMETHOD(AddDataObject) (THIS_ LPDIRECTXFILEDATA) PURE; 177 | STDMETHOD(AddDataReference) (THIS_ LPCSTR, const GUID *) PURE; 178 | STDMETHOD(AddBinaryObject) (THIS_ LPCSTR, const GUID *, LPCSTR, LPVOID, DWORD) PURE; 179 | }; 180 | #undef INTERFACE 181 | 182 | #if !defined(__cplusplus) || defined(CINTERFACE) 183 | /*** IUnknown methods ***/ 184 | #define IDirectXFileData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 185 | #define IDirectXFileData_AddRef(p) (p)->lpVtbl->AddRef(p) 186 | #define IDirectXFileData_Release(p) (p)->lpVtbl->Release(p) 187 | /*** IDirectXFileObject methods ***/ 188 | #define IDirectXFileData_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b) 189 | #define IDirectXFileData_GetId(p,a) (p)->lpVtbl->GetId(p,a) 190 | /*** IDirectXFileData methods ***/ 191 | #define IDirectXFileData_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c) 192 | #define IDirectXFileData_GetType(p,a) (p)->lpVtbl->GetType(p,a) 193 | #define IDirectXFileData_GetNextObject(p,a) (p)->lpVtbl->GetNextObject(p,a) 194 | #define IDirectXFileData_AddDataObject(p,a) (p)->lpVtbl->AddDataObject(p,a) 195 | #define IDirectXFileData_AddDataReference(p,a,b) (p)->lpVtbl->AddDataReference(p,a,b) 196 | #define IDirectXFileData_AddBinaryObject(p,a,b,c,d,e) (p)->lpVtbl->AddBinaryObject(p,a,b,c,d,e) 197 | #endif 198 | 199 | #define INTERFACE IDirectXFileDataReference 200 | DECLARE_INTERFACE_(IDirectXFileDataReference,IDirectXFileObject) 201 | { 202 | IUNKNOWN_METHODS(PURE); 203 | IDIRECTXFILEOBJECT_METHODS(PURE); 204 | /*** IDirectXFileDataReference methods ***/ 205 | STDMETHOD(Resolve) (THIS_ LPDIRECTXFILEDATA *) PURE; 206 | }; 207 | #undef INTERFACE 208 | 209 | #if !defined(__cplusplus) || defined(CINTERFACE) 210 | /*** IUnknown methods ***/ 211 | #define IDirectXFileDataReference_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 212 | #define IDirectXFileDataReference_AddRef(p) (p)->lpVtbl->AddRef(p) 213 | #define IDirectXFileDataReference_Release(p) (p)->lpVtbl->Release(p) 214 | /*** IDirectXFileObject methods ***/ 215 | #define IDirectXFileDataReference_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b) 216 | #define IDirectXFileDataReference_GetId(p,a) (p)->lpVtbl->GetId(p,a) 217 | /*** IDirectXFileDataReference methods ***/ 218 | #define IDirectXFileDataReference_Resolve(p,a) (p)->lpVtbl->Resolve(p,a) 219 | #endif 220 | 221 | #define INTERFACE IDirectXFileBinary 222 | DECLARE_INTERFACE_(IDirectXFileBinary,IDirectXFileObject) 223 | { 224 | IUNKNOWN_METHODS(PURE); 225 | IDIRECTXFILEOBJECT_METHODS(PURE); 226 | /*** IDirectXFileBinary methods ***/ 227 | STDMETHOD(GetSize) (THIS_ DWORD *) PURE; 228 | STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE; 229 | STDMETHOD(Read) (THIS_ LPVOID, DWORD, LPDWORD) PURE; 230 | }; 231 | #undef INTERFACE 232 | 233 | #if !defined(__cplusplus) || defined(CINTERFACE) 234 | /*** IUnknown methods ***/ 235 | #define IDirectXFileBinary_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 236 | #define IDirectXFileBinary_AddRef(p) (p)->lpVtbl->AddRef(p) 237 | #define IDirectXFileBinary_Release(p) (p)->lpVtbl->Release(p) 238 | /*** IDirectXFileObject methods ***/ 239 | #define IDirectXFileBinary_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b) 240 | #define IDirectXFileBinary_GetId(p,a) (p)->lpVtbl->GetId(p,a) 241 | /*** IDirectXFileBinary methods ***/ 242 | #define IDirectXFileBinary_GetSize(p,a) (p)->lpVtbl->GetSize(p,a) 243 | #define IDirectXFileBinary_GetMimeType(p,a) (p)->lpVtbl->GetMimeType(p,a) 244 | #define IDirectXFileBinary_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c) 245 | #endif 246 | 247 | /* DirectXFile Object CLSID */ 248 | DEFINE_GUID(CLSID_CDirectXFile, 0x4516ec43, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3); 249 | 250 | /* DirectX File Interface GUIDs */ 251 | DEFINE_GUID(IID_IDirectXFile, 0x3d82ab40, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 252 | DEFINE_GUID(IID_IDirectXFileEnumObject, 0x3d82ab41, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 253 | DEFINE_GUID(IID_IDirectXFileSaveObject, 0x3d82ab42, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 254 | DEFINE_GUID(IID_IDirectXFileObject, 0x3d82ab43, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 255 | DEFINE_GUID(IID_IDirectXFileData, 0x3d82ab44, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 256 | DEFINE_GUID(IID_IDirectXFileDataReference, 0x3d82ab45, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 257 | DEFINE_GUID(IID_IDirectXFileBinary, 0x3d82ab46, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 258 | 259 | /* DirectX File Header template's GUID */ 260 | DEFINE_GUID(TID_DXFILEHeader, 0x3d82ab43, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33); 261 | 262 | /* DirectX File errors */ 263 | #define _FACDD 0x876 264 | #define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code ) 265 | 266 | #define DXFILE_OK 0 267 | 268 | #define DXFILEERR_BADOBJECT MAKE_DDHRESULT(850) 269 | #define DXFILEERR_BADVALUE MAKE_DDHRESULT(851) 270 | #define DXFILEERR_BADTYPE MAKE_DDHRESULT(852) 271 | #define DXFILEERR_BADSTREAMHANDLE MAKE_DDHRESULT(853) 272 | #define DXFILEERR_BADALLOC MAKE_DDHRESULT(854) 273 | #define DXFILEERR_NOTFOUND MAKE_DDHRESULT(855) 274 | #define DXFILEERR_NOTDONEYET MAKE_DDHRESULT(856) 275 | #define DXFILEERR_FILENOTFOUND MAKE_DDHRESULT(857) 276 | #define DXFILEERR_RESOURCENOTFOUND MAKE_DDHRESULT(858) 277 | #define DXFILEERR_URLNOTFOUND MAKE_DDHRESULT(859) 278 | #define DXFILEERR_BADRESOURCE MAKE_DDHRESULT(860) 279 | #define DXFILEERR_BADFILETYPE MAKE_DDHRESULT(861) 280 | #define DXFILEERR_BADFILEVERSION MAKE_DDHRESULT(862) 281 | #define DXFILEERR_BADFILEFLOATSIZE MAKE_DDHRESULT(863) 282 | #define DXFILEERR_BADFILECOMPRESSIONTYPE MAKE_DDHRESULT(864) 283 | #define DXFILEERR_BADFILE MAKE_DDHRESULT(865) 284 | #define DXFILEERR_PARSEERROR MAKE_DDHRESULT(866) 285 | #define DXFILEERR_NOTEMPLATE MAKE_DDHRESULT(867) 286 | #define DXFILEERR_BADARRAYSIZE MAKE_DDHRESULT(868) 287 | #define DXFILEERR_BADDATAREFERENCE MAKE_DDHRESULT(869) 288 | #define DXFILEERR_INTERNALERROR MAKE_DDHRESULT(870) 289 | #define DXFILEERR_NOMOREOBJECTS MAKE_DDHRESULT(871) 290 | #define DXFILEERR_BADINTRINSICS MAKE_DDHRESULT(872) 291 | #define DXFILEERR_NOMORESTREAMHANDLES MAKE_DDHRESULT(873) 292 | #define DXFILEERR_NOMOREDATA MAKE_DDHRESULT(874) 293 | #define DXFILEERR_BADCACHEFILE MAKE_DDHRESULT(875) 294 | #define DXFILEERR_NOINTERNET MAKE_DDHRESULT(876) 295 | 296 | #ifdef __cplusplus 297 | } /* extern "C" */ 298 | #endif /* defined(__cplusplus) */ 299 | 300 | #endif /* __WINE_DXFILE_H */ 301 | -------------------------------------------------------------------------------- /d3drmdef.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2007,2010 Vijay Kiran Kamuju 3 | * Copyright 2007 David ADAM 4 | * Copyright 2010 Christian Costa 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 | */ 20 | 21 | #ifndef __D3DRMDEFS_H__ 22 | #define __D3DRMDEFS_H__ 23 | 24 | #include 25 | #include 26 | 27 | #if defined(__cplusplus) 28 | extern "C" { 29 | #endif 30 | 31 | typedef struct _D3DRMVECTOR4D 32 | { 33 | D3DVALUE x; 34 | D3DVALUE y; 35 | D3DVALUE z; 36 | D3DVALUE w; 37 | } D3DRMVECTOR4D, *LPD3DRMVECTOR4D; 38 | 39 | typedef D3DVALUE D3DRMMATRIX4D[4][4]; 40 | 41 | typedef struct _D3DRMQUATERNION { 42 | D3DVALUE s; 43 | D3DVECTOR v; 44 | } D3DRMQUATERNION, *LPD3DRMQUATERNION; 45 | 46 | typedef struct _D3DRMRAY { 47 | D3DVECTOR dvDir; 48 | D3DVECTOR dvPos; 49 | } D3DRMRAY, *LPD3DRMRAY; 50 | 51 | typedef struct _D3DRMBOX { 52 | D3DVECTOR min; 53 | D3DVECTOR max; 54 | } D3DRMBOX, *LPD3DRMBOX; 55 | 56 | typedef void (*D3DRMWRAPCALLBACK)(D3DVECTOR *vec, int *u, int *v, D3DVECTOR *a, D3DVECTOR *b, void *ctx); 57 | 58 | typedef enum _D3DRMLIGHTTYPE { 59 | D3DRMLIGHT_AMBIENT, 60 | D3DRMLIGHT_POINT, 61 | D3DRMLIGHT_SPOT, 62 | D3DRMLIGHT_DIRECTIONAL, 63 | D3DRMLIGHT_PARALLELPOINT 64 | } D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE; 65 | 66 | typedef enum _D3DRMSHADEMODE { 67 | D3DRMSHADE_FLAT = 0, 68 | D3DRMSHADE_GOURAUD = 1, 69 | D3DRMSHADE_PHONG = 2, 70 | D3DRMSHADE_MASK = 7, 71 | D3DRMSHADE_MAX = 8 72 | } D3DRMSHADEMODE, *LPD3DRMSHADEMODE; 73 | 74 | typedef enum _D3DRMLIGHTMODE { 75 | D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX, 76 | D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX, 77 | D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX, 78 | D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX 79 | } D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE; 80 | 81 | typedef enum _D3DRMFILLMODE { 82 | D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX, 83 | D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX, 84 | D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX, 85 | D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX, 86 | D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX 87 | } D3DRMFILLMODE, *LPD3DRMFILLMODE; 88 | 89 | typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY; 90 | 91 | #define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME) 92 | #define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID) 93 | #define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 94 | #define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 95 | #define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID) 96 | 97 | #define D3DRMRENDERMODE_BLENDEDTRANSPARENCY 1 98 | #define D3DRMRENDERMODE_SORTEDTRANSPARENCY 2 99 | #define D3DRMRENDERMODE_LIGHTINMODELSPACE 8 100 | #define D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR 16 101 | #define D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32 102 | 103 | typedef enum _D3DRMTEXTUREQUALITY { 104 | D3DRMTEXTURE_NEAREST, 105 | D3DRMTEXTURE_LINEAR, 106 | D3DRMTEXTURE_MIPNEAREST, 107 | D3DRMTEXTURE_MIPLINEAR, 108 | D3DRMTEXTURE_LINEARMIPNEAREST, 109 | D3DRMTEXTURE_LINEARMIPLINEAR 110 | } D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY; 111 | 112 | #define D3DRMTEXTURE_FORCERESIDENT 0x00000001 113 | #define D3DRMTEXTURE_STATIC 0x00000002 114 | #define D3DRMTEXTURE_DOWNSAMPLEPOINT 0x00000004 115 | #define D3DRMTEXTURE_DOWNSAMPLEBILINEAR 0x00000008 116 | #define D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH 0x00000010 117 | #define D3DRMTEXTURE_DOWNSAMPLENONE 0x00000020 118 | #define D3DRMTEXTURE_CHANGEDPIXELS 0x00000040 119 | #define D3DRMTEXTURE_CHANGEDPALETTE 0x00000080 120 | #define D3DRMTEXTURE_INVALIDATEONLY 0x00000100 121 | 122 | #define D3DRMSHADOW_TRUEALPHA 0x00000001 123 | 124 | typedef enum _D3DRMCOMBINETYPE { 125 | D3DRMCOMBINE_REPLACE, 126 | D3DRMCOMBINE_BEFORE, 127 | D3DRMCOMBINE_AFTER 128 | } D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE; 129 | 130 | typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL; 131 | 132 | typedef enum _D3DRMPALETTEFLAGS 133 | { 134 | D3DRMPALETTE_FREE, 135 | D3DRMPALETTE_READONLY, 136 | D3DRMPALETTE_RESERVED 137 | } D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS; 138 | 139 | typedef struct _D3DRMPALETTEENTRY { 140 | unsigned char red; 141 | unsigned char green; 142 | unsigned char blue; 143 | unsigned char flags; 144 | } D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY; 145 | 146 | typedef struct _D3DRMIMAGE { 147 | int width; 148 | int height; 149 | int aspectx; 150 | int aspecty; 151 | int depth; 152 | int rgb; 153 | int bytes_per_line; 154 | void* buffer1; 155 | void* buffer2; 156 | ULONG red_mask; 157 | ULONG green_mask; 158 | ULONG blue_mask; 159 | ULONG alpha_mask; 160 | int palette_size; 161 | D3DRMPALETTEENTRY* palette; 162 | } D3DRMIMAGE, *LPD3DRMIMAGE; 163 | 164 | typedef enum _D3DRMWRAPTYPE { 165 | D3DRMWRAP_FLAT, 166 | D3DRMWRAP_CYLINDER, 167 | D3DRMWRAP_SPHERE, 168 | D3DRMWRAP_CHROME, 169 | D3DRMWRAP_SHEET, 170 | D3DRMWRAP_BOX 171 | } D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE; 172 | 173 | #define D3DRMWIREFRAME_CULL 1 174 | #define D3DRMWIREFRAME_HIDDENLINE 2 175 | 176 | typedef enum _D3DRMPROJECTIONTYPE 177 | { 178 | D3DRMPROJECT_PERSPECTIVE, 179 | D3DRMPROJECT_ORTHOGRAPHIC, 180 | D3DRMPROJECT_RIGHTHANDPERSPECTIVE, 181 | D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC 182 | } D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE; 183 | 184 | #define D3DRMOPTIONS_LEFTHANDED 0x00000001 185 | #define D3DRMOPTIONS_RIGHTHANDED 0x00000002 186 | 187 | typedef enum _D3DRMXOFFORMAT { 188 | D3DRMXOF_BINARY, 189 | D3DRMXOF_COMPRESSED, 190 | D3DRMXOF_TEXT 191 | } D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT; 192 | 193 | typedef DWORD D3DRMSAVEOPTIONS; 194 | #define D3DRMXOFSAVE_NORMALS 1 195 | #define D3DRMXOFSAVE_TEXTURECOORDINATES 2 196 | #define D3DRMXOFSAVE_MATERIALS 4 197 | #define D3DRMXOFSAVE_TEXTURENAMES 8 198 | #define D3DRMXOFSAVE_ALL 15 199 | #define D3DRMXOFSAVE_TEMPLATES 16 200 | #define D3DRMXOFSAVE_TEXTURETOPOLOGY 32 201 | 202 | typedef enum _D3DRMCOLORSOURCE { 203 | D3DRMCOLOR_FROMFACE, 204 | D3DRMCOLOR_FROMVERTEX 205 | } D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE; 206 | 207 | typedef enum _D3DRMFRAMECONSTRAINT { 208 | D3DRMCONSTRAIN_Z, 209 | D3DRMCONSTRAIN_Y, 210 | D3DRMCONSTRAIN_X 211 | } D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT; 212 | 213 | typedef enum _D3DRMMATERIALMODE { 214 | D3DRMMATERIAL_FROMMESH, 215 | D3DRMMATERIAL_FROMPARENT, 216 | D3DRMMATERIAL_FROMFRAME 217 | } D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE; 218 | 219 | typedef enum _D3DRMFOGMODE { 220 | D3DRMFOG_LINEAR, 221 | D3DRMFOG_EXPONENTIAL, 222 | D3DRMFOG_EXPONENTIALSQUARED 223 | } D3DRMFOGMODE, *LPD3DRMFOGMODE; 224 | 225 | typedef enum _D3DRMZBUFFERMODE { 226 | D3DRMZBUFFER_FROMPARENT, 227 | D3DRMZBUFFER_ENABLE, 228 | D3DRMZBUFFER_DISABLE 229 | } D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE; 230 | 231 | typedef enum _D3DRMSORTMODE { 232 | D3DRMSORT_FROMPARENT, 233 | D3DRMSORT_NONE, 234 | D3DRMSORT_FRONTTOBACK, 235 | D3DRMSORT_BACKTOFRONT 236 | } D3DRMSORTMODE, *LPD3DRMSORTMODE; 237 | 238 | typedef struct _D3DRMMATERIALOVERRIDE { 239 | DWORD dwSize; 240 | DWORD dwFlags; 241 | D3DCOLORVALUE dcDiffuse; 242 | D3DCOLORVALUE dcAmbient; 243 | D3DCOLORVALUE dcEmissive; 244 | D3DCOLORVALUE dcSpecular; 245 | D3DVALUE dvPower; 246 | IUnknown *lpD3DRMTex; 247 | } D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE; 248 | 249 | #define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY 0x00000001 250 | #define D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY 0x00000002 251 | #define D3DRMMATERIALOVERRIDE_DIFFUSE 0x00000003 252 | #define D3DRMMATERIALOVERRIDE_AMBIENT 0x00000004 253 | #define D3DRMMATERIALOVERRIDE_EMISSIVE 0x00000008 254 | #define D3DRMMATERIALOVERRIDE_SPECULAR 0x00000010 255 | #define D3DRMMATERIALOVERRIDE_POWER 0x00000020 256 | #define D3DRMMATERIALOVERRIDE_TEXTURE 0x00000040 257 | #define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY 0x00000080 258 | #define D3DRMMATERIALOVERRIDE_ALL 0x000000FF 259 | 260 | #define D3DRMFPTF_ALPHA 0x00000001 261 | #define D3DRMFPTF_NOALPHA 0x00000002 262 | #define D3DRMFPTF_PALETTIZED 0x00000004 263 | #define D3DRMFPTF_NOTPALETTIZED 0x00000008 264 | 265 | #define D3DRMSTATECHANGE_UPDATEONLY 0x000000001 266 | #define D3DRMSTATECHANGE_VOLATILE 0x000000002 267 | #define D3DRMSTATECHANGE_NONVOLATILE 0x000000004 268 | #define D3DRMSTATECHANGE_RENDER 0x000000020 269 | #define D3DRMSTATECHANGE_LIGHT 0x000000040 270 | 271 | #define D3DRMDEVICE_NOZBUFFER 0x00000001 272 | 273 | #define D3DRMCALLBACK_PREORDER 0 274 | #define D3DRMCALLBACK_POSTORDER 1 275 | 276 | #define D3DRMRAYPICK_ONLYBOUNDINGBOXES 0x01 277 | #define D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES 0x02 278 | #define D3DRMRAYPICK_INTERPOLATEUV 0x04 279 | #define D3DRMRAYPICK_INTERPOLATECOLOR 0x08 280 | #define D3DRMRAYPICK_INTERPOLATENORMAL 0x10 281 | 282 | #define D3DRMADDFACES_VERTICESONLY 1 283 | 284 | #define D3DRMGENERATENORMALS_PRECOMPACT 1 285 | #define D3DRMGENERATENORMALS_USECREASEANGLE 2 286 | 287 | #define D3DRMMESHBUILDER_DIRECTPARENT 1 288 | #define D3DRMMESHBUILDER_ROOTMESH 2 289 | 290 | #define D3DRMMESHBUILDER_RENDERENABLE 0x00000001 291 | #define D3DRMMESHBUILDER_PICKENABLE 0x00000002 292 | 293 | #define D3DRMADDMESHBUILDER_DONTCOPYAPPDATA 1 294 | #define D3DRMADDMESHBUILDER_FLATTENSUBMESHES 2 295 | #define D3DRMADDMESHBUILDER_NOSUBMESHES 4 296 | 297 | #define D3DRMMESHBUILDERAGE_GEOMETRY 0x00000001 298 | #define D3DRMMESHBUILDERAGE_MATERIALS 0x00000002 299 | #define D3DRMMESHBUILDERAGE_TEXTURES 0x00000004 300 | 301 | #define D3DRMFVF_TYPE 0x00000001 302 | #define D3DRMFVF_NORMAL 0x00000002 303 | #define D3DRMFVF_COLOR 0x00000004 304 | #define D3DRMFVF_TEXTURECOORDS 0x00000008 305 | 306 | #define D3DRMVERTEX_STRIP 0x00000001 307 | #define D3DRMVERTEX_FAN 0x00000002 308 | #define D3DRMVERTEX_LIST 0x00000004 309 | 310 | #define D3DRMCLEAR_TARGET 0x00000001 311 | #define D3DRMCLEAR_ZBUFFER 0x00000002 312 | #define D3DRMCLEAR_DIRTYRECTS 0x00000004 313 | #define D3DRMCLEAR_ALL (D3DRMCLEAR_TARGET | D3DRMCLEAR_ZBUFFER | D3DRMCLEAR_DIRTYRECTS) 314 | 315 | #define D3DRMFOGMETHOD_VERTEX 0x00000001 316 | #define D3DRMFOGMETHOD_TABLE 0x00000002 317 | #define D3DRMFOGMETHOD_ANY 0x00000004 318 | 319 | #define D3DRMFRAME_RENDERENABLE 0x00000001 320 | #define D3DRMFRAME_PICKENABLE 0x00000002 321 | 322 | typedef DWORD D3DRMANIMATIONOPTIONS; 323 | #define D3DRMANIMATION_OPEN 0x00000001 324 | #define D3DRMANIMATION_CLOSED 0x00000002 325 | #define D3DRMANIMATION_LINEARPOSITION 0x00000004 326 | #define D3DRMANIMATION_SPLINEPOSITION 0x00000008 327 | #define D3DRMANIMATION_SCALEANDROTATION 0x00000010 328 | #define D3DRMANIMATION_POSITION 0x00000020 329 | 330 | typedef DWORD D3DRMINTERPOLATIONOPTIONS; 331 | #define D3DRMINTERPOLATION_OPEN 0x0001 332 | #define D3DRMINTERPOLATION_CLOSED 0x0002 333 | #define D3DRMINTERPOLATION_NEAREST 0x0100 334 | #define D3DRMINTERPOLATION_LINEAR 0x0004 335 | #define D3DRMINTERPOLATION_SPLINE 0x0008 336 | #define D3DRMINTERPOLATION_VERTEXCOLOR 0x0040 337 | #define D3DRMINTERPOLATION_SLERPNORMALS 0x0080 338 | 339 | typedef DWORD D3DRMLOADOPTIONS; 340 | 341 | #define D3DRMLOAD_FROMFILE __MSABI_LONG(0x000) 342 | #define D3DRMLOAD_FROMRESOURCE __MSABI_LONG(0x001) 343 | #define D3DRMLOAD_FROMMEMORY __MSABI_LONG(0x002) 344 | #define D3DRMLOAD_FROMSTREAM __MSABI_LONG(0x004) 345 | #define D3DRMLOAD_FROMURL __MSABI_LONG(0x008) 346 | 347 | #define D3DRMLOAD_BYNAME __MSABI_LONG(0x010) 348 | #define D3DRMLOAD_BYPOSITION __MSABI_LONG(0x020) 349 | #define D3DRMLOAD_BYGUID __MSABI_LONG(0x040) 350 | #define D3DRMLOAD_FIRST __MSABI_LONG(0x080) 351 | 352 | #define D3DRMLOAD_INSTANCEBYREFERENCE __MSABI_LONG(0x100) 353 | #define D3DRMLOAD_INSTANCEBYCOPYING __MSABI_LONG(0x200) 354 | 355 | #define D3DRMLOAD_ASYNCHRONOUS __MSABI_LONG(0x400) 356 | 357 | typedef struct _D3DRMLOADRESOURCE 358 | { 359 | HMODULE hModule; 360 | const char *lpName; 361 | const char *lpType; 362 | } D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE; 363 | 364 | typedef struct _D3DRMLOADMEMORY 365 | { 366 | void *lpMemory; 367 | DWORD dSize; 368 | } D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY; 369 | 370 | #define D3DRMPMESHSTATUS_VALID 0x01 371 | #define D3DRMPMESHSTATUS_INTERRUPTED 0x02 372 | #define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04 373 | #define D3DRMPMESHSTATUS_COMPLETE 0x08 374 | #define D3DRMPMESHSTATUS_RENDERABLE 0x10 375 | 376 | #define D3DRMPMESHEVENT_BASEMESH 0x01 377 | #define D3DRMPMESHEVENT_COMPLETE 0x02 378 | 379 | typedef struct _D3DRMPMESHLOADSTATUS { 380 | DWORD dwSize; 381 | DWORD dwPMeshSize; 382 | DWORD dwBaseMeshSize; 383 | DWORD dwBytesLoaded; 384 | DWORD dwVerticesLoaded; 385 | DWORD dwFacesLoaded; 386 | HRESULT dwLoadResult; 387 | DWORD dwFlags; 388 | } D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS; 389 | 390 | typedef enum _D3DRMUSERVISUALREASON { 391 | D3DRMUSERVISUAL_CANSEE, 392 | D3DRMUSERVISUAL_RENDER 393 | } D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON; 394 | 395 | typedef struct _D3DRMANIMATIONKEY 396 | { 397 | DWORD dwSize; 398 | DWORD dwKeyType; 399 | D3DVALUE dvTime; 400 | DWORD dwID; 401 | #if !defined(__cplusplus) || !defined(D3D_OVERLOADS) 402 | union 403 | { 404 | D3DRMQUATERNION dqRotateKey; 405 | D3DVECTOR dvScaleKey; 406 | D3DVECTOR dvPositionKey; 407 | } DUMMYUNIONNAME; 408 | #else 409 | D3DVALUE dvK[4]; 410 | #endif 411 | } D3DRMANIMATIONKEY; 412 | typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY; 413 | 414 | #define D3DRMANIMATION_ROTATEKEY 0x01 415 | #define D3DRMANIMATION_SCALEKEY 0x02 416 | #define D3DRMANIMATION_POSITIONKEY 0x03 417 | 418 | typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING; 419 | static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1; 420 | static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2; 421 | static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4; 422 | 423 | typedef struct _D3DRMVERTEX { 424 | D3DVECTOR position; 425 | D3DVECTOR normal; 426 | D3DVALUE tu; 427 | D3DVALUE tv; 428 | D3DCOLOR color; 429 | } D3DRMVERTEX, *LPD3DRMVERTEX; 430 | 431 | typedef LONG D3DRMGROUPINDEX; 432 | static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1; 433 | 434 | void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q); 435 | 436 | D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta); 437 | D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y); 438 | D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret, 439 | D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha); 440 | 441 | D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 442 | D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 443 | D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y); 444 | D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x); 445 | 446 | #define D3DRMVectorNormalise D3DRMVectorNormalize 447 | 448 | D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x); 449 | D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret); 450 | D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta); 451 | D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal); 452 | D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale); 453 | D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y); 454 | 455 | D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE); 456 | D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE); 457 | D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR); 458 | D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR); 459 | D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR); 460 | D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR); 461 | 462 | #if defined(__cplusplus) 463 | } 464 | #endif 465 | 466 | #endif 467 | -------------------------------------------------------------------------------- /d3dcaps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2000 Peter Hunnisett 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2.1 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the Free Software 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 | */ 18 | 19 | #ifndef __WINE_D3DCAPS_H 20 | #define __WINE_D3DCAPS_H 21 | 22 | #include 23 | 24 | #ifdef __i386__ 25 | #include 26 | #endif 27 | 28 | typedef struct _D3DTRANSFORMCAPS { 29 | DWORD dwSize; 30 | DWORD dwCaps; 31 | } D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS; 32 | 33 | #define D3DTRANSFORMCAPS_CLIP __MSABI_LONG(0x00000001) 34 | 35 | typedef struct _D3DLIGHTINGCAPS { 36 | DWORD dwSize; 37 | DWORD dwCaps; 38 | DWORD dwLightingModel; 39 | DWORD dwNumLights; 40 | } D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS; 41 | 42 | #define D3DLIGHTINGMODEL_RGB 0x00000001 43 | #define D3DLIGHTINGMODEL_MONO 0x00000002 44 | 45 | #define D3DLIGHTCAPS_POINT 0x00000001 46 | #define D3DLIGHTCAPS_SPOT 0x00000002 47 | #define D3DLIGHTCAPS_DIRECTIONAL 0x00000004 48 | #define D3DLIGHTCAPS_PARALLELPOINT 0x00000008 49 | #define D3DLIGHTCAPS_GLSPOT 0x00000010 50 | 51 | typedef struct _D3dPrimCaps { 52 | DWORD dwSize; 53 | DWORD dwMiscCaps; 54 | DWORD dwRasterCaps; 55 | DWORD dwZCmpCaps; 56 | DWORD dwSrcBlendCaps; 57 | DWORD dwDestBlendCaps; 58 | DWORD dwAlphaCmpCaps; 59 | DWORD dwShadeCaps; 60 | DWORD dwTextureCaps; 61 | DWORD dwTextureFilterCaps; 62 | DWORD dwTextureBlendCaps; 63 | DWORD dwTextureAddressCaps; 64 | DWORD dwStippleWidth; 65 | DWORD dwStippleHeight; 66 | } D3DPRIMCAPS, *LPD3DPRIMCAPS; 67 | 68 | #define D3DPMISCCAPS_MASKPLANES 0x00000001 69 | #define D3DPMISCCAPS_MASKZ 0x00000002 70 | #define D3DPMISCCAPS_LINEPATTERNREP 0x00000004 71 | #define D3DPMISCCAPS_CONFORMANT 0x00000008 72 | #define D3DPMISCCAPS_CULLNONE 0x00000010 73 | #define D3DPMISCCAPS_CULLCW 0x00000020 74 | #define D3DPMISCCAPS_CULLCCW 0x00000040 75 | 76 | #define D3DPRASTERCAPS_DITHER 0x00000001 77 | #define D3DPRASTERCAPS_ROP2 0x00000002 78 | #define D3DPRASTERCAPS_XOR 0x00000004 79 | #define D3DPRASTERCAPS_PAT 0x00000008 80 | #define D3DPRASTERCAPS_ZTEST 0x00000010 81 | #define D3DPRASTERCAPS_SUBPIXEL 0x00000020 82 | #define D3DPRASTERCAPS_SUBPIXELX 0x00000040 83 | #define D3DPRASTERCAPS_FOGVERTEX 0x00000080 84 | #define D3DPRASTERCAPS_FOGTABLE 0x00000100 85 | #define D3DPRASTERCAPS_STIPPLE 0x00000200 86 | #define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400 87 | #define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800 88 | #define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000 89 | #define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000 90 | #define D3DPRASTERCAPS_ZBIAS 0x00004000 91 | #define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000 92 | #define D3DPRASTERCAPS_FOGRANGE 0x00010000 93 | #define D3DPRASTERCAPS_ANISOTROPY 0x00020000 94 | #define D3DPRASTERCAPS_WBUFFER 0x00040000 95 | #define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000 96 | #define D3DPRASTERCAPS_WFOG 0x00100000 97 | #define D3DPRASTERCAPS_ZFOG 0x00200000 98 | 99 | #define D3DPCMPCAPS_NEVER 0x00000001 100 | #define D3DPCMPCAPS_LESS 0x00000002 101 | #define D3DPCMPCAPS_EQUAL 0x00000004 102 | #define D3DPCMPCAPS_LESSEQUAL 0x00000008 103 | #define D3DPCMPCAPS_GREATER 0x00000010 104 | #define D3DPCMPCAPS_NOTEQUAL 0x00000020 105 | #define D3DPCMPCAPS_GREATEREQUAL 0x00000040 106 | #define D3DPCMPCAPS_ALWAYS 0x00000080 107 | 108 | #define D3DPBLENDCAPS_ZERO 0x00000001 109 | #define D3DPBLENDCAPS_ONE 0x00000002 110 | #define D3DPBLENDCAPS_SRCCOLOR 0x00000004 111 | #define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008 112 | #define D3DPBLENDCAPS_SRCALPHA 0x00000010 113 | #define D3DPBLENDCAPS_INVSRCALPHA 0x00000020 114 | #define D3DPBLENDCAPS_DESTALPHA 0x00000040 115 | #define D3DPBLENDCAPS_INVDESTALPHA 0x00000080 116 | #define D3DPBLENDCAPS_DESTCOLOR 0x00000100 117 | #define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200 118 | #define D3DPBLENDCAPS_SRCALPHASAT 0x00000400 119 | #define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800 120 | #define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000 121 | 122 | #define D3DPSHADECAPS_COLORFLATMONO 0x00000001 123 | #define D3DPSHADECAPS_COLORFLATRGB 0x00000002 124 | #define D3DPSHADECAPS_COLORGOURAUDMONO 0x00000004 125 | #define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008 126 | #define D3DPSHADECAPS_COLORPHONGMONO 0x00000010 127 | #define D3DPSHADECAPS_COLORPHONGRGB 0x00000020 128 | 129 | #define D3DPSHADECAPS_SPECULARFLATMONO 0x00000040 130 | #define D3DPSHADECAPS_SPECULARFLATRGB 0x00000080 131 | #define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100 132 | #define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200 133 | #define D3DPSHADECAPS_SPECULARPHONGMONO 0x00000400 134 | #define D3DPSHADECAPS_SPECULARPHONGRGB 0x00000800 135 | 136 | #define D3DPSHADECAPS_ALPHAFLATBLEND 0x00001000 137 | #define D3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000 138 | #define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000 139 | #define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000 140 | #define D3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000 141 | #define D3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000 142 | 143 | #define D3DPSHADECAPS_FOGFLAT 0x00040000 144 | #define D3DPSHADECAPS_FOGGOURAUD 0x00080000 145 | #define D3DPSHADECAPS_FOGPHONG 0x00100000 146 | 147 | #define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001 148 | #define D3DPTEXTURECAPS_POW2 0x00000002 149 | #define D3DPTEXTURECAPS_ALPHA 0x00000004 150 | #define D3DPTEXTURECAPS_TRANSPARENCY 0x00000008 151 | #define D3DPTEXTURECAPS_BORDER 0x00000010 152 | #define D3DPTEXTURECAPS_SQUAREONLY 0x00000020 153 | #define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040 154 | #define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080 155 | #define D3DPTEXTURECAPS_NONPOW2CONDITIONAL __MSABI_LONG(0x00000100) 156 | /* yes actually 0x00000200 is unused - or at least unreleased */ 157 | #define D3DPTEXTURECAPS_PROJECTED 0x00000400 158 | #define D3DPTEXTURECAPS_CUBEMAP 0x00000800 159 | #define D3DPTEXTURECAPS_COLORKEYBLEND 0x00001000 160 | 161 | #define D3DPTFILTERCAPS_NEAREST 0x00000001 162 | #define D3DPTFILTERCAPS_LINEAR 0x00000002 163 | #define D3DPTFILTERCAPS_MIPNEAREST 0x00000004 164 | #define D3DPTFILTERCAPS_MIPLINEAR 0x00000008 165 | #define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010 166 | #define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020 167 | /* yes - missing numbers */ 168 | #define D3DPTFILTERCAPS_MINFPOINT 0x00000100 169 | #define D3DPTFILTERCAPS_MINFLINEAR 0x00000200 170 | #define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400 171 | /* yes - missing numbers */ 172 | #define D3DPTFILTERCAPS_MIPFPOINT 0x00010000 173 | #define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000 174 | /* yes - missing numbers */ 175 | #define D3DPTFILTERCAPS_MAGFPOINT 0x01000000 176 | #define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000 177 | #define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000 178 | #define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000 179 | #define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000 180 | 181 | #define D3DPTBLENDCAPS_DECAL 0x00000001 182 | #define D3DPTBLENDCAPS_MODULATE 0x00000002 183 | #define D3DPTBLENDCAPS_DECALALPHA 0x00000004 184 | #define D3DPTBLENDCAPS_MODULATEALPHA 0x00000008 185 | #define D3DPTBLENDCAPS_DECALMASK 0x00000010 186 | #define D3DPTBLENDCAPS_MODULATEMASK 0x00000020 187 | #define D3DPTBLENDCAPS_COPY 0x00000040 188 | #define D3DPTBLENDCAPS_ADD 0x00000080 189 | 190 | #define D3DPTADDRESSCAPS_WRAP 0x00000001 191 | #define D3DPTADDRESSCAPS_MIRROR 0x00000002 192 | #define D3DPTADDRESSCAPS_CLAMP 0x00000004 193 | #define D3DPTADDRESSCAPS_BORDER 0x00000008 194 | #define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010 195 | 196 | 197 | typedef struct _D3DDeviceDesc { 198 | DWORD dwSize; 199 | DWORD dwFlags; 200 | D3DCOLORMODEL dcmColorModel; 201 | DWORD dwDevCaps; 202 | D3DTRANSFORMCAPS dtcTransformCaps; 203 | WINBOOL bClipping; 204 | D3DLIGHTINGCAPS dlcLightingCaps; 205 | D3DPRIMCAPS dpcLineCaps; 206 | D3DPRIMCAPS dpcTriCaps; 207 | DWORD dwDeviceRenderBitDepth; 208 | DWORD dwDeviceZBufferBitDepth; 209 | DWORD dwMaxBufferSize; 210 | DWORD dwMaxVertexCount; 211 | 212 | DWORD dwMinTextureWidth,dwMinTextureHeight; 213 | DWORD dwMaxTextureWidth,dwMaxTextureHeight; 214 | DWORD dwMinStippleWidth,dwMaxStippleWidth; 215 | DWORD dwMinStippleHeight,dwMaxStippleHeight; 216 | 217 | DWORD dwMaxTextureRepeat; 218 | DWORD dwMaxTextureAspectRatio; 219 | DWORD dwMaxAnisotropy; 220 | 221 | D3DVALUE dvGuardBandLeft; 222 | D3DVALUE dvGuardBandTop; 223 | D3DVALUE dvGuardBandRight; 224 | D3DVALUE dvGuardBandBottom; 225 | 226 | D3DVALUE dvExtentsAdjust; 227 | DWORD dwStencilCaps; 228 | 229 | DWORD dwFVFCaps; 230 | DWORD dwTextureOpCaps; 231 | WORD wMaxTextureBlendStages; 232 | WORD wMaxSimultaneousTextures; 233 | } D3DDEVICEDESC,*LPD3DDEVICEDESC; 234 | #define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC)) 235 | 236 | typedef struct _D3DDeviceDesc7 { 237 | DWORD dwDevCaps; 238 | D3DPRIMCAPS dpcLineCaps; 239 | D3DPRIMCAPS dpcTriCaps; 240 | DWORD dwDeviceRenderBitDepth; 241 | DWORD dwDeviceZBufferBitDepth; 242 | 243 | DWORD dwMinTextureWidth, dwMinTextureHeight; 244 | DWORD dwMaxTextureWidth, dwMaxTextureHeight; 245 | 246 | DWORD dwMaxTextureRepeat; 247 | DWORD dwMaxTextureAspectRatio; 248 | DWORD dwMaxAnisotropy; 249 | 250 | D3DVALUE dvGuardBandLeft; 251 | D3DVALUE dvGuardBandTop; 252 | D3DVALUE dvGuardBandRight; 253 | D3DVALUE dvGuardBandBottom; 254 | 255 | D3DVALUE dvExtentsAdjust; 256 | DWORD dwStencilCaps; 257 | DWORD dwFVFCaps; 258 | DWORD dwTextureOpCaps; 259 | WORD wMaxTextureBlendStages; 260 | WORD wMaxSimultaneousTextures; 261 | 262 | DWORD dwMaxActiveLights; 263 | D3DVALUE dvMaxVertexW; 264 | GUID deviceGUID; 265 | 266 | WORD wMaxUserClipPlanes; 267 | WORD wMaxVertexBlendMatrices; 268 | 269 | DWORD dwVertexProcessingCaps; 270 | 271 | DWORD dwReserved1; 272 | DWORD dwReserved2; 273 | DWORD dwReserved3; 274 | DWORD dwReserved4; 275 | } D3DDEVICEDESC7, *LPD3DDEVICEDESC7; 276 | #define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7)) 277 | 278 | #define D3DDD_COLORMODEL 0x00000001 279 | #define D3DDD_DEVCAPS 0x00000002 280 | #define D3DDD_TRANSFORMCAPS 0x00000004 281 | #define D3DDD_LIGHTINGCAPS 0x00000008 282 | #define D3DDD_BCLIPPING 0x00000010 283 | #define D3DDD_LINECAPS 0x00000020 284 | #define D3DDD_TRICAPS 0x00000040 285 | #define D3DDD_DEVICERENDERBITDEPTH 0x00000080 286 | #define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100 287 | #define D3DDD_MAXBUFFERSIZE 0x00000200 288 | #define D3DDD_MAXVERTEXCOUNT 0x00000400 289 | 290 | #define D3DDEVCAPS_FLOATTLVERTEX 0x00000001 291 | #define D3DDEVCAPS_SORTINCREASINGZ 0x00000002 292 | #define D3DDEVCAPS_SORTDECREASINGZ 0X00000004 293 | #define D3DDEVCAPS_SORTEXACT 0x00000008 294 | #define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010 295 | #define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020 296 | #define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040 297 | #define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080 298 | #define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100 299 | #define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200 300 | #define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400 301 | #define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800 302 | #define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000 303 | #define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000 304 | #define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000 305 | #define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000 306 | #define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000 307 | #define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000 308 | #define D3DDEVCAPS_HWRASTERIZATION 0x00080000 309 | 310 | #define D3DSTENCILCAPS_KEEP 0x00000001 311 | #define D3DSTENCILCAPS_ZERO 0x00000002 312 | #define D3DSTENCILCAPS_REPLACE 0x00000004 313 | #define D3DSTENCILCAPS_INCRSAT 0x00000008 314 | #define D3DSTENCILCAPS_DECRSAT 0x00000010 315 | #define D3DSTENCILCAPS_INVERT 0x00000020 316 | #define D3DSTENCILCAPS_INCR 0x00000040 317 | #define D3DSTENCILCAPS_DECR 0x00000080 318 | 319 | #define D3DTEXOPCAPS_DISABLE 0x00000001 320 | #define D3DTEXOPCAPS_SELECTARG1 0x00000002 321 | #define D3DTEXOPCAPS_SELECTARG2 0x00000004 322 | #define D3DTEXOPCAPS_MODULATE 0x00000008 323 | #define D3DTEXOPCAPS_MODULATE2X 0x00000010 324 | #define D3DTEXOPCAPS_MODULATE4X 0x00000020 325 | #define D3DTEXOPCAPS_ADD 0x00000040 326 | #define D3DTEXOPCAPS_ADDSIGNED 0x00000080 327 | #define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100 328 | #define D3DTEXOPCAPS_SUBTRACT 0x00000200 329 | #define D3DTEXOPCAPS_ADDSMOOTH 0x00000400 330 | #define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800 331 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000 332 | #define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000 333 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000 334 | #define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000 335 | #define D3DTEXOPCAPS_PREMODULATE 0x00010000 336 | #define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000 337 | #define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000 338 | #define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000 339 | #define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000 340 | #define D3DTEXOPCAPS_BUMPENVMAP 0x00200000 341 | #define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000 342 | #define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000 343 | 344 | #define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF 345 | #define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000 346 | 347 | #define D3DVTXPCAPS_TEXGEN 0x00000001 348 | #define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002 349 | #define D3DVTXPCAPS_VERTEXFOG 0x00000004 350 | #define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008 351 | #define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010 352 | #define D3DVTXPCAPS_LOCALVIEWER 0x00000020 353 | 354 | typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK)(GUID *guid, char *description, char *name, 355 | D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc, void *ctx); 356 | typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK7)(char *description, char *name, D3DDEVICEDESC7 *desc, void *ctx); 357 | 358 | #define D3DFDS_COLORMODEL 0x00000001 359 | #define D3DFDS_GUID 0x00000002 360 | #define D3DFDS_HARDWARE 0x00000004 361 | #define D3DFDS_TRIANGLES 0x00000008 362 | #define D3DFDS_LINES 0x00000010 363 | #define D3DFDS_MISCCAPS 0x00000020 364 | #define D3DFDS_RASTERCAPS 0x00000040 365 | #define D3DFDS_ZCMPCAPS 0x00000080 366 | #define D3DFDS_ALPHACMPCAPS 0x00000100 367 | #define D3DFDS_SRCBLENDCAPS 0x00000200 368 | #define D3DFDS_DSTBLENDCAPS 0x00000400 369 | #define D3DFDS_SHADECAPS 0x00000800 370 | #define D3DFDS_TEXTURECAPS 0x00001000 371 | #define D3DFDS_TEXTUREFILTERCAPS 0x00002000 372 | #define D3DFDS_TEXTUREBLENDCAPS 0x00004000 373 | #define D3DFDS_TEXTUREADDRESSCAPS 0x00008000 374 | 375 | typedef struct _D3DFINDDEVICESEARCH { 376 | DWORD dwSize; 377 | DWORD dwFlags; 378 | WINBOOL bHardware; 379 | D3DCOLORMODEL dcmColorModel; 380 | GUID guid; 381 | DWORD dwCaps; 382 | D3DPRIMCAPS dpcPrimCaps; 383 | } D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH; 384 | 385 | typedef struct _D3DFINDDEVICERESULT { 386 | DWORD dwSize; 387 | GUID guid; 388 | D3DDEVICEDESC ddHwDesc; 389 | D3DDEVICEDESC ddSwDesc; 390 | } D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT; 391 | 392 | typedef struct _D3DExecuteBufferDesc { 393 | DWORD dwSize; 394 | DWORD dwFlags; 395 | DWORD dwCaps; 396 | DWORD dwBufferSize; 397 | void *lpData; 398 | } D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC; 399 | 400 | #define D3DDEB_BUFSIZE 0x00000001 401 | #define D3DDEB_CAPS 0x00000002 402 | #define D3DDEB_LPDATA 0x00000004 403 | 404 | #define D3DDEBCAPS_SYSTEMMEMORY 0x00000001 405 | #define D3DDEBCAPS_VIDEOMEMORY 0x00000002 406 | #define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */ 407 | 408 | typedef struct _D3DDEVINFO_TEXTUREMANAGER { 409 | WINBOOL bThrashing; 410 | DWORD dwApproxBytesDownloaded; 411 | DWORD dwNumEvicts; 412 | DWORD dwNumVidCreates; 413 | DWORD dwNumTexturesUsed; 414 | DWORD dwNumUsedTexInVid; 415 | DWORD dwWorkingSet; 416 | DWORD dwWorkingSetBytes; 417 | DWORD dwTotalManaged; 418 | DWORD dwTotalBytes; 419 | DWORD dwLastPri; 420 | } D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER; 421 | 422 | typedef struct _D3DDEVINFO_TEXTURING { 423 | DWORD dwNumLoads; 424 | DWORD dwApproxBytesLoaded; 425 | DWORD dwNumPreLoads; 426 | DWORD dwNumSet; 427 | DWORD dwNumCreates; 428 | DWORD dwNumDestroys; 429 | DWORD dwNumSetPriorities; 430 | DWORD dwNumSetLODs; 431 | DWORD dwNumLocks; 432 | DWORD dwNumGetDCs; 433 | } D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING; 434 | 435 | #ifdef __i386__ 436 | #include 437 | #endif 438 | 439 | #endif 440 | -------------------------------------------------------------------------------- /d3dhal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Direct3D driver interface 3 | * (DirectX 7 version) 4 | * 5 | * Copyright (C) 2001 Ove Kaaven 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2.1 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with this library; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 20 | */ 21 | 22 | #ifndef __WINE_D3DHAL_H 23 | #define __WINE_D3DHAL_H 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | #include 30 | 31 | /***************************************************************************** 32 | * device info structures 33 | */ 34 | typedef struct _D3DDeviceDesc_V1 { 35 | DWORD dwSize; 36 | DWORD dwFlags; 37 | D3DCOLORMODEL dcmColorModel; 38 | DWORD dwDevCaps; 39 | D3DTRANSFORMCAPS dtcTransformCaps; 40 | WINBOOL bClipping; 41 | D3DLIGHTINGCAPS dlcLightingCaps; 42 | D3DPRIMCAPS dpcLineCaps; 43 | D3DPRIMCAPS dpcTriCaps; 44 | DWORD dwDeviceRenderBitDepth; 45 | DWORD dwDeviceZBufferBitDepth; 46 | DWORD dwMaxBufferSize; 47 | DWORD dwMaxVertexCount; 48 | } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1; 49 | 50 | typedef struct _D3DDeviceDesc_V2 51 | { 52 | DWORD dwSize; 53 | DWORD dwFlags; 54 | D3DCOLORMODEL dcmColorModel; 55 | DWORD dwDevCaps; 56 | D3DTRANSFORMCAPS dtcTransformCaps; 57 | WINBOOL bClipping; 58 | D3DLIGHTINGCAPS dlcLightingCaps; 59 | D3DPRIMCAPS dpcLineCaps; 60 | D3DPRIMCAPS dpcTriCaps; 61 | DWORD dwDeviceRenderBitDepth; 62 | DWORD dwDeviceZBufferBitDepth; 63 | DWORD dwMaxBufferSize; 64 | DWORD dwMaxVertexCount; 65 | 66 | /* DirectX 5 */ 67 | DWORD dwMinTextureWidth; 68 | DWORD dwMinTextureHeight; 69 | DWORD dwMaxTextureWidth; 70 | DWORD dwMaxTextureHeight; 71 | DWORD dwMinStippleWidth; 72 | DWORD dwMaxStippleWidth; 73 | DWORD dwMinStippleHeight; 74 | DWORD dwMaxStippleHeight; 75 | } D3DDEVICEDESC_V2, *LPD3DDEVICEDESC_V2; 76 | 77 | typedef struct _D3DDeviceDesc_V3 78 | { 79 | DWORD dwSize; 80 | DWORD dwFlags; 81 | D3DCOLORMODEL dcmColorModel; 82 | DWORD dwDevCaps; 83 | D3DTRANSFORMCAPS dtcTransformCaps; 84 | WINBOOL bClipping; 85 | D3DLIGHTINGCAPS dlcLightingCaps; 86 | D3DPRIMCAPS dpcLineCaps; 87 | D3DPRIMCAPS dpcTriCaps; 88 | DWORD dwDeviceRenderBitDepth; 89 | DWORD dwDeviceZBufferBitDepth; 90 | DWORD dwMaxBufferSize; 91 | DWORD dwMaxVertexCount; 92 | 93 | /* DirectX 5 */ 94 | DWORD dwMinTextureWidth; 95 | DWORD dwMinTextureHeight; 96 | DWORD dwMaxTextureWidth; 97 | DWORD dwMaxTextureHeight; 98 | DWORD dwMinStippleWidth; 99 | DWORD dwMaxStippleWidth; 100 | DWORD dwMinStippleHeight; 101 | DWORD dwMaxStippleHeight; 102 | 103 | /* DirectX 6 */ 104 | DWORD dwMaxTextureRepeat; 105 | DWORD dwMaxTextureAspectRatio; 106 | DWORD dwMaxAnisotropy; 107 | D3DVALUE dvGuardBandLeft; 108 | D3DVALUE dvGuardBandTop; 109 | D3DVALUE dvGuardBandRight; 110 | D3DVALUE dvGuardBandBottom; 111 | D3DVALUE dvExtentsAdjust; 112 | DWORD dwStencilCaps; 113 | DWORD dwFVFCaps; 114 | DWORD dwTextureOpCaps; 115 | WORD wMaxTextureBlendStages; 116 | WORD wMaxSimultaneousTextures; 117 | } D3DDEVICEDESC_V3, *LPD3DDEVICEDESC_V3; 118 | 119 | typedef struct _D3DHAL_GLOBALDRIVERDATA { 120 | DWORD dwSize; 121 | D3DDEVICEDESC_V1 hwCaps; 122 | DWORD dwNumVertices; 123 | DWORD dwNumClipVertices; 124 | DWORD dwNumTextureFormats; 125 | LPDDSURFACEDESC lpTextureFormats; 126 | } D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA; 127 | 128 | typedef struct _D3DHAL_D3DEXTENDEDCAPS { 129 | DWORD dwSize; 130 | /* DirectX 5 */ 131 | DWORD dwMinTextureWidth, dwMaxTextureWidth; 132 | DWORD dwMinTextureHeight, dwMaxTextureHeight; 133 | DWORD dwMinStippleWidth, dwMaxStippleWidth; 134 | DWORD dwMinStippleHeight, dwMaxStippleHeight; 135 | /* DirectX 6 */ 136 | DWORD dwMaxTextureRepeat; 137 | DWORD dwMaxTextureAspectRatio; 138 | DWORD dwMaxAnisotropy; 139 | D3DVALUE dvGuardBandLeft; 140 | D3DVALUE dvGuardBandTop; 141 | D3DVALUE dvGuardBandRight; 142 | D3DVALUE dvGuardBandBottom; 143 | D3DVALUE dvExtentsAdjust; 144 | DWORD dwStencilCaps; 145 | DWORD dwFVFCaps; 146 | DWORD dwTextureOpCaps; 147 | WORD wMaxTextureBlendStages; 148 | WORD wMaxSimultaneousTextures; 149 | /* DirectX 7 */ 150 | DWORD dwMaxActiveLights; 151 | D3DVALUE dvMaxVertexW; 152 | WORD wMaxUserClipPlanes; 153 | WORD wMaxVertexBlendMatrices; 154 | DWORD dwVertexProcessingCaps; 155 | DWORD dwReserved1; 156 | DWORD dwReserved2; 157 | DWORD dwReserved3; 158 | DWORD dwReserved4; 159 | } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS; 160 | 161 | /***************************************************************************** 162 | * d3d->driver callbacks 163 | */ 164 | typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA; 165 | typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA; 166 | typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA; 167 | typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA; 168 | typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA; 169 | typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA; 170 | typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA; 171 | typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA; 172 | typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA; 173 | typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA; 174 | typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA; 175 | 176 | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA); 177 | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA); 178 | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA); 179 | typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA); 180 | typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA); 181 | typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA); 182 | typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA); 183 | typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA); 184 | typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA); 185 | typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA); 186 | typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA); 187 | 188 | typedef struct _D3DHAL_CALLBACKS { 189 | DWORD dwSize; 190 | LPD3DHAL_CONTEXTCREATECB ContextCreate; 191 | LPD3DHAL_CONTEXTDESTROYCB ContextDestroy; 192 | LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll; 193 | LPD3DHAL_SCENECAPTURECB SceneCapture; 194 | LPVOID lpReserved10; 195 | LPVOID lpReserved11; 196 | LPD3DHAL_RENDERSTATECB RenderState; 197 | LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive; 198 | DWORD dwReserved; 199 | LPD3DHAL_TEXTURECREATECB TextureCreate; 200 | LPD3DHAL_TEXTUREDESTROYCB TextureDestroy; 201 | LPD3DHAL_TEXTURESWAPCB TextureSwap; 202 | LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf; 203 | /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if 204 | * all these reserved fields were available? we may never know */ 205 | LPVOID lpReserved12; 206 | LPVOID lpReserved13; 207 | LPVOID lpReserved14; 208 | LPVOID lpReserved15; 209 | LPVOID lpReserved16; 210 | LPVOID lpReserved17; 211 | LPVOID lpReserved18; 212 | LPVOID lpReserved19; 213 | LPVOID lpReserved20; 214 | LPVOID lpReserved21; 215 | LPD3DHAL_GETSTATECB GetState; 216 | DWORD dwReserved0; 217 | DWORD dwReserved1; 218 | DWORD dwReserved2; 219 | DWORD dwReserved3; 220 | DWORD dwReserved4; 221 | DWORD dwReserved5; 222 | DWORD dwReserved6; 223 | DWORD dwReserved7; 224 | DWORD dwReserved8; 225 | DWORD dwReserved9; 226 | } D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS; 227 | 228 | typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA; 229 | typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA; 230 | typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA; 231 | typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; 232 | typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA; 233 | 234 | typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA); 235 | typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA); 236 | typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA); 237 | typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA); 238 | typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA); 239 | 240 | typedef struct _D3DHAL_CALLBACKS2 { 241 | DWORD dwSize; 242 | DWORD dwFlags; 243 | LPD3DHAL_SETRENDERTARGETCB SetRenderTarget; 244 | LPD3DHAL_CLEARCB Clear; 245 | LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive; 246 | LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive; 247 | LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives; 248 | } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2; 249 | 250 | typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA; 251 | typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; 252 | typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA; 253 | 254 | typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA); 255 | typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); 256 | typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA); 257 | 258 | typedef struct _D3DHAL_CALLBACKS3 { 259 | DWORD dwSize; 260 | DWORD dwFlags; 261 | LPD3DHAL_CLEAR2CB Clear2; 262 | LPVOID lpvReserved; 263 | LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState; 264 | LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2; 265 | } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3; 266 | 267 | /***************************************************************************** 268 | * parameter structures 269 | */ 270 | typedef struct _D3DHAL_CONTEXTCREATEDATA { 271 | union { 272 | LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */ 273 | LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */ 274 | } DUMMYUNIONNAME1; 275 | union { 276 | LPDIRECTDRAWSURFACE lpDDS; 277 | LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */ 278 | } DUMMYUNIONNAME2; 279 | union { 280 | LPDIRECTDRAWSURFACE lpDDSZ; 281 | LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */ 282 | } DUMMYUNIONNAME3; 283 | union { 284 | DWORD dwPID; 285 | ULONG_PTR dwrstates; 286 | } DUMMYUNIONNAME4; 287 | ULONG_PTR dwhContext; 288 | HRESULT ddrval; 289 | } D3DHAL_CONTEXTCREATEDATA; 290 | 291 | typedef struct _D3DHAL_CONTEXTDESTROYDATA { 292 | ULONG_PTR dwhContext; 293 | HRESULT ddrval; 294 | } D3DHAL_CONTEXTDESTROYDATA; 295 | 296 | typedef struct _D3DHAL_CONTEXTDESTROYALLDATA { 297 | DWORD dwPID; 298 | HRESULT ddrval; 299 | } D3DHAL_CONTEXTDESTROYALLDATA; 300 | 301 | typedef struct _D3DHAL_SCENECAPTUREDATA { 302 | ULONG_PTR dwhContext; 303 | DWORD dwFlag; 304 | HRESULT ddrval; 305 | } D3DHAL_SCENECAPTUREDATA; 306 | 307 | #define D3DHAL_SCENE_CAPTURE_START 0x00000000 308 | #define D3DHAL_SCENE_CAPTURE_END 0x00000001 309 | 310 | typedef struct _D3DHAL_SETRENDERTARGETDATA { 311 | ULONG_PTR dwhContext; 312 | union { 313 | LPDIRECTDRAWSURFACE lpDDS; 314 | LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; 315 | } DUMMYUNIONNAME1; 316 | union { 317 | LPDIRECTDRAWSURFACE lpDDSZ; 318 | LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; 319 | } DUMMYUNIONNAME2; 320 | HRESULT ddrval; 321 | } D3DHAL_SETRENDERTARGETDATA; 322 | 323 | typedef struct _D3DHAL_DRAWPRIMITIVES2DATA { 324 | ULONG_PTR dwhContext; 325 | DWORD dwFlags; 326 | DWORD dwVertexType; 327 | LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands; 328 | DWORD dwCommandOffset; 329 | DWORD dwCommandLength; 330 | union { 331 | LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex; 332 | LPVOID lpVertices; 333 | } DUMMYUNIONNAME1; 334 | DWORD dwVertexOffset; 335 | DWORD dwVertexLength; 336 | DWORD dwReqVertexBufSize; 337 | DWORD dwReqCommandBufSize; 338 | LPDWORD lpdwRStates; 339 | union { 340 | DWORD dwVertexSize; 341 | HRESULT ddrval; 342 | } DUMMYUNIONNAME2; 343 | DWORD dwErrorOffset; 344 | } D3DHAL_DRAWPRIMITIVES2DATA; 345 | 346 | #define D3DHALDP2_USERMEMVERTICES 0x00000001 347 | #define D3DHALDP2_EXECUTEBUFFER 0x00000002 348 | #define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004 349 | #define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008 350 | #define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010 351 | #define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020 352 | #define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040 353 | #define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080 354 | 355 | /***************************************************************************** 356 | * DrawPrimitives2 command structures 357 | */ 358 | typedef struct _D3DHAL_DP2COMMAND { 359 | BYTE bCommand; 360 | BYTE bReserved; 361 | union { 362 | WORD wPrimitiveCount; 363 | WORD wStateCount; 364 | } DUMMYUNIONNAME; 365 | } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND; 366 | 367 | typedef enum _D3DHAL_DP2OPERATION { 368 | D3DDP2OP_POINTS = 1, 369 | D3DDP2OP_INDEXEDLINELIST = 2, 370 | D3DDP2OP_INDEXEDTRIANGLELIST = 3, 371 | D3DDP2OP_RENDERSTATE = 8, 372 | D3DDP2OP_LINELIST = 15, 373 | D3DDP2OP_LINESTRIP = 16, 374 | D3DDP2OP_INDEXEDLINESTRIP = 17, 375 | D3DDP2OP_TRIANGLELIST = 18, 376 | D3DDP2OP_TRIANGLESTRIP = 19, 377 | D3DDP2OP_INDEXEDTRIANGLESTRIP = 20, 378 | D3DDP2OP_TRIANGLEFAN = 21, 379 | D3DDP2OP_INDEXEDTRIANGLEFAN = 22, 380 | D3DDP2OP_TRIANGLEFAN_IMM = 23, 381 | D3DDP2OP_LINELIST_IMM = 24, 382 | D3DDP2OP_TEXTURESTAGESTATE = 25, 383 | D3DDP2OP_INDEXEDTRIANGLELIST2 = 26, 384 | D3DDP2OP_INDEXEDLINELIST2 = 27, 385 | D3DDP2OP_VIEWPORTINFO = 28, 386 | D3DDP2OP_WINFO = 29, 387 | /* pre-DirectX 7 interfaces */ 388 | D3DDP2OP_SETPALETTE = 30, 389 | D3DDP2OP_UPDATEPALETTE = 31, 390 | /* DirectX 7 interfaces */ 391 | D3DDP2OP_ZRANGE = 32, 392 | D3DDP2OP_SETMATERIAL = 33, 393 | D3DDP2OP_SETLIGHT = 34, 394 | D3DDP2OP_CREATELIGHT = 35, 395 | D3DDP2OP_SETTRANSFORM = 36, 396 | D3DDP2OP_TEXBLT = 38, 397 | D3DDP2OP_STATESET = 39, 398 | D3DDP2OP_SETPRIORITY = 40, 399 | /* all interfaces */ 400 | D3DDP2OP_SETRENDERTARGET = 41, 401 | D3DDP2OP_CLEAR = 42, 402 | /* DirectX 7 interfaces */ 403 | D3DDP2OP_SETTEXLOD = 43, 404 | D3DPP2OP_SETCLIPPLANE = 44 405 | } D3DHAL_DP2OPERATION; 406 | 407 | /* point primitives */ 408 | 409 | typedef struct _D3DHAL_POINTS { 410 | WORD wCount; 411 | WORD wVStart; 412 | } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS; 413 | 414 | /* line primitives */ 415 | 416 | typedef struct _D3DHAL_DP2STARTVERTEX { 417 | WORD wVStart; 418 | } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX; 419 | 420 | typedef struct _D3DHAL_DP2LINELIST { 421 | WORD wVStart; 422 | } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST; 423 | 424 | typedef struct _D3DHAL_DP2INDEXEDLINELIST { 425 | WORD wV1; 426 | WORD wV2; 427 | } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST; 428 | 429 | typedef struct _D3DHAL_DP2LINESTRIP { 430 | WORD wVStart; 431 | } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP; 432 | 433 | typedef struct _D3DHAL_DP2INDEXEDLINESTRIP { 434 | WORD wV[2]; 435 | } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP; 436 | 437 | /* triangle primitives */ 438 | 439 | typedef struct _D3DHAL_DP2TRIANGLELIST { 440 | WORD wVStart; 441 | } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST; 442 | 443 | typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST { 444 | WORD wV1; 445 | WORD wV2; 446 | WORD wV3; 447 | WORD wFlags; 448 | } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST; 449 | 450 | typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 { 451 | WORD wV1; 452 | WORD wV2; 453 | WORD wV3; 454 | } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2; 455 | 456 | typedef struct _D3DHAL_DP2TRIANGLESTRIP { 457 | WORD wVStart; 458 | } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP; 459 | 460 | typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP { 461 | WORD wV[3]; 462 | } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP; 463 | 464 | typedef struct _D3DHAL_DP2TRIANGLEFAN { 465 | WORD wVStart; 466 | } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN; 467 | 468 | typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN { 469 | WORD wV[3]; 470 | } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN; 471 | 472 | typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM { 473 | DWORD dwEdgeFlags; 474 | } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM; 475 | 476 | /* render states */ 477 | typedef struct _D3DHAL_DP2RENDERSTATE { 478 | D3DRENDERSTATETYPE RenderState; 479 | union { 480 | D3DVALUE dvState; 481 | DWORD dwState; 482 | } DUMMYUNIONNAME; 483 | } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE; 484 | 485 | typedef struct _D3DHAL_DP2TEXTURESTAGESTATE { 486 | WORD wStage; 487 | WORD TSState; 488 | DWORD dwValue; 489 | } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE; 490 | 491 | #define D3DTSS_TEXTUREMAP 0 492 | 493 | typedef struct _D3DHAL_DP2VIEWPORTINFO { 494 | DWORD dwX; 495 | DWORD dwY; 496 | DWORD dwWidth; 497 | DWORD dwHeight; 498 | } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO; 499 | 500 | typedef struct _D3DHAL_DP2WINFO { 501 | D3DVALUE dwWNear; 502 | D3DVALUE dwWFar; 503 | } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO; 504 | 505 | typedef struct _D3DHAL_DP2SETPALETTE { 506 | DWORD dwPaletteHandle; 507 | DWORD dwPaletteFlags; 508 | DWORD dwSurfaceHandle; 509 | } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE; 510 | 511 | typedef struct _D3DHAL_DP2UPDATEPALETTE { 512 | DWORD dwPaletteHandle; 513 | WORD wStartIndex; 514 | WORD wNumEntries; 515 | } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE; 516 | 517 | typedef struct _D3DHAL_DP2ZRANGE { 518 | D3DVALUE dvMinZ; 519 | D3DVALUE dvMaxZ; 520 | } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE; 521 | 522 | typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL; 523 | 524 | typedef struct _D3DHAL_DP2SETLIGHT { 525 | DWORD dwIndex; 526 | DWORD dwDataType; 527 | } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT; 528 | 529 | #define D3DHAL_SETLIGHT_ENABLE 0 530 | #define D3DHAL_SETLIGHT_DISABLE 1 531 | #define D3DHAL_SETLIGHT_DATA 2 532 | 533 | typedef struct _D3DHAL_DP2CREATELIGHT { 534 | DWORD dwIndex; 535 | } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT; 536 | 537 | typedef struct _D3DHAL_DP2SETTRANSFORM { 538 | D3DTRANSFORMSTATETYPE xfrmType; 539 | D3DMATRIX matrix; 540 | } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM; 541 | 542 | typedef struct _D3DHAL_DP2TEXBLT { 543 | DWORD dwDDDestSurface; 544 | DWORD dwDDSrcSurface; 545 | POINT pDest; 546 | RECTL rSrc; 547 | DWORD dwFlags; 548 | } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT; 549 | 550 | typedef struct _D3DHAL_DP2STATESET { 551 | DWORD dwOperation; 552 | DWORD dwParam; 553 | D3DSTATEBLOCKTYPE sbType; 554 | } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET; 555 | 556 | #define D3DHAL_STATESETBEGIN 0 557 | #define D3DHAL_STATESETEND 1 558 | #define D3DHAL_STATESETDELETE 2 559 | #define D3DHAL_STATESETEXECUTE 3 560 | #define D3DHAL_STATESETCAPTURE 4 561 | 562 | typedef struct _D3DHAL_DP2SETPRIORITY { 563 | DWORD dwDDSurface; 564 | DWORD dwPriority; 565 | } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY; 566 | 567 | typedef struct _D3DHAL_DP2SETRENDERTARGET { 568 | DWORD hRenderTarget; 569 | DWORD hZBuffer; 570 | } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET; 571 | 572 | typedef struct _D3DHAL_DP2CLEAR { 573 | DWORD dwFlags; 574 | DWORD dwFillColor; 575 | D3DVALUE dvFillDepth; 576 | DWORD dwFillStencil; 577 | RECT Rects[1]; 578 | } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR; 579 | 580 | typedef struct _D3DHAL_DP2SETTEXLOD { 581 | DWORD dwDDSurface; 582 | DWORD dwLOD; 583 | } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD; 584 | 585 | #ifdef __cplusplus 586 | } /* extern "C" */ 587 | #endif 588 | 589 | #endif /* __WINE_D3DHAL_H */ 590 | -------------------------------------------------------------------------------- /d3dx9anim.h: -------------------------------------------------------------------------------- 1 | #include <_mingw_unicode.h> 2 | #undef INTERFACE 3 | /* 4 | * Copyright 2011 Dylan Smith 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 | */ 20 | 21 | #ifndef __WINE_D3DX9ANIM_H 22 | #define __WINE_D3DX9ANIM_H 23 | 24 | DEFINE_GUID(IID_ID3DXAnimationSet, 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9); 25 | DEFINE_GUID(IID_ID3DXKeyframedAnimationSet, 0xfa4e8e3a, 0x9786, 0x407d, 0x8b, 0x4c, 0x59, 0x95, 0x89, 0x37, 0x64, 0xaf); 26 | DEFINE_GUID(IID_ID3DXCompressedAnimationSet, 0x6cc2480d, 0x3808, 0x4739, 0x9f, 0x88, 0xde, 0x49, 0xfa, 0xcd, 0x8d, 0x4c); 27 | DEFINE_GUID(IID_ID3DXAnimationController, 0xac8948ec, 0xf86d, 0x43e2, 0x96, 0xde, 0x31, 0xfc, 0x35, 0xf9, 0x6d, 0x9e); 28 | 29 | typedef enum _D3DXMESHDATATYPE 30 | { 31 | D3DXMESHTYPE_MESH = 1, 32 | D3DXMESHTYPE_PMESH = 2, 33 | D3DXMESHTYPE_PATCHMESH = 3, 34 | D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff, 35 | } D3DXMESHDATATYPE; 36 | 37 | typedef enum _D3DXCALLBACK_SEARCH_FLAGS 38 | { 39 | D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 0x00000001, 40 | D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 0x00000002, 41 | D3DXCALLBACK_SEARCH_FORCE_DWORD = 0x7fffffff, 42 | } D3DXCALLBACK_SEARCH_FLAGS; 43 | 44 | typedef enum _D3DXPLAYBACK_TYPE 45 | { 46 | D3DXPLAY_LOOP = 0, 47 | D3DXPLAY_ONCE = 1, 48 | D3DXPLAY_PINGPONG = 2, 49 | D3DXPLAY_FORCE_DWORD = 0x7fffffff, 50 | } D3DXPLAYBACK_TYPE; 51 | 52 | typedef enum _D3DXCOMPRESSION_FLAGS 53 | { 54 | D3DXCOMPRESSION_DEFAULT = 0x00000000, 55 | D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff, 56 | } D3DXCOMPRESSION_FLAGS; 57 | 58 | typedef enum _D3DXPRIORITY_TYPE 59 | { 60 | D3DXPRIORITY_LOW = 0, 61 | D3DXPRIORITY_HIGH = 1, 62 | D3DXPRIORITY_FORCE_DWORD = 0x7fffffff, 63 | } D3DXPRIORITY_TYPE; 64 | 65 | typedef enum _D3DXEVENT_TYPE 66 | { 67 | D3DXEVENT_TRACKSPEED = 0, 68 | D3DXEVENT_TRACKWEIGHT = 1, 69 | D3DXEVENT_TRACKPOSITION = 2, 70 | D3DXEVENT_TRACKENABLE = 3, 71 | D3DXEVENT_PRIORITYBLEND = 4, 72 | D3DXEVENT_FORCE_DWORD = 0x7fffffff, 73 | } D3DXEVENT_TYPE; 74 | 75 | typedef enum _D3DXTRANSITION_TYPE 76 | { 77 | D3DXTRANSITION_LINEAR = 0, 78 | D3DXTRANSITION_EASEINEASEOUT = 1, 79 | D3DXTRANSITION_FORCE_DWORD = 0x7fffffff, 80 | } D3DXTRANSITION_TYPE; 81 | 82 | 83 | typedef struct _D3DXMESHDATA 84 | { 85 | D3DXMESHDATATYPE Type; 86 | 87 | union 88 | { 89 | ID3DXMesh *pMesh; 90 | ID3DXPMesh *pPMesh; 91 | ID3DXPatchMesh *pPatchMesh; 92 | } DUMMYUNIONNAME; 93 | } D3DXMESHDATA, *LPD3DXMESHDATA; 94 | 95 | typedef struct _D3DXMESHCONTAINER 96 | { 97 | char *Name; 98 | D3DXMESHDATA MeshData; 99 | LPD3DXMATERIAL pMaterials; 100 | LPD3DXEFFECTINSTANCE pEffects; 101 | DWORD NumMaterials; 102 | DWORD *pAdjacency; 103 | ID3DXSkinInfo *pSkinInfo; 104 | struct _D3DXMESHCONTAINER *pNextMeshContainer; 105 | } D3DXMESHCONTAINER, *LPD3DXMESHCONTAINER; 106 | 107 | typedef struct _D3DXFRAME 108 | { 109 | char *Name; 110 | D3DXMATRIX TransformationMatrix; 111 | LPD3DXMESHCONTAINER pMeshContainer; 112 | struct _D3DXFRAME *pFrameSibling; 113 | struct _D3DXFRAME *pFrameFirstChild; 114 | } D3DXFRAME, *LPD3DXFRAME; 115 | 116 | typedef struct _D3DXKEY_VECTOR3 117 | { 118 | FLOAT Time; 119 | D3DXVECTOR3 Value; 120 | } D3DXKEY_VECTOR3, *LPD3DXKEY_VECTOR3; 121 | 122 | typedef struct _D3DXKEY_QUATERNION 123 | { 124 | FLOAT Time; 125 | D3DXQUATERNION Value; 126 | } D3DXKEY_QUATERNION, *LPD3DXKEY_QUATERNION; 127 | 128 | typedef struct _D3DXKEY_CALLBACK 129 | { 130 | float Time; 131 | void *pCallbackData; 132 | } D3DXKEY_CALLBACK, *LPD3DXKEY_CALLBACK; 133 | 134 | typedef struct _D3DXTRACK_DESC 135 | { 136 | D3DXPRIORITY_TYPE Priority; 137 | FLOAT Weight; 138 | FLOAT Speed; 139 | DOUBLE Position; 140 | WINBOOL Enable; 141 | } D3DXTRACK_DESC, *LPD3DXTRACK_DESC; 142 | 143 | typedef struct _D3DXEVENT_DESC 144 | { 145 | D3DXEVENT_TYPE Type; 146 | UINT Track; 147 | DOUBLE StartTime; 148 | DOUBLE Duration; 149 | D3DXTRANSITION_TYPE Transition; 150 | union 151 | { 152 | FLOAT Weight; 153 | FLOAT Speed; 154 | DOUBLE Position; 155 | WINBOOL Enable; 156 | } DUMMYUNIONNAME; 157 | } D3DXEVENT_DESC, *LPD3DXEVENT_DESC; 158 | 159 | typedef DWORD D3DXEVENTHANDLE, *LPD3DXEVENTHANDLE; 160 | 161 | typedef interface ID3DXAllocateHierarchy *LPD3DXALLOCATEHIERARCHY; 162 | typedef interface ID3DXLoadUserData *LPD3DXLOADUSERDATA; 163 | typedef interface ID3DXSaveUserData *LPD3DXSAVEUSERDATA; 164 | typedef interface ID3DXAnimationSet *LPD3DXANIMATIONSET; 165 | typedef interface ID3DXKeyframedAnimationSet *LPD3DXKEYFRAMEDANIMATIONSET; 166 | typedef interface ID3DXCompressedAnimationSet *LPD3DXCOMPRESSEDANIMATIONSET; 167 | typedef interface ID3DXAnimationCallbackHandler *LPD3DXANIMATIONCALLBACKHANDLER; 168 | typedef interface ID3DXAnimationController *LPD3DXANIMATIONCONTROLLER; 169 | 170 | #undef INTERFACE 171 | 172 | #define INTERFACE ID3DXAllocateHierarchy 173 | DECLARE_INTERFACE(ID3DXAllocateHierarchy) 174 | { 175 | STDMETHOD(CreateFrame)(THIS_ const char *name, D3DXFRAME **new_frame) PURE; 176 | STDMETHOD(CreateMeshContainer)(THIS_ const char *name, const D3DXMESHDATA *mesh_data, 177 | const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, 178 | DWORD num_materials, const DWORD *adjacency, ID3DXSkinInfo *skin_info, 179 | D3DXMESHCONTAINER **new_mesh_container) PURE; 180 | STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME frame) PURE; 181 | STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER mesh_container) PURE; 182 | }; 183 | #undef INTERFACE 184 | 185 | #define INTERFACE ID3DXLoadUserData 186 | DECLARE_INTERFACE(ID3DXLoadUserData) 187 | { 188 | STDMETHOD(LoadTopLevelData)(ID3DXFileData *child_data) PURE; 189 | STDMETHOD(LoadFrameChildData)(D3DXFRAME *frame, ID3DXFileData *child_data) PURE; 190 | STDMETHOD(LoadMeshChildData)(D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE; 191 | }; 192 | #undef INTERFACE 193 | 194 | #define INTERFACE ID3DXSaveUserData 195 | DECLARE_INTERFACE(ID3DXSaveUserData) 196 | { 197 | STDMETHOD(AddFrameChildData)(const D3DXFRAME *frame, 198 | ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *frame_data) PURE; 199 | STDMETHOD(AddMeshChildData)(const D3DXMESHCONTAINER *mesh_container, 200 | ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *mesh_data) PURE; 201 | STDMETHOD(AddTopLevelDataObjectsPre)(ID3DXFileSaveObject *save_obj) PURE; 202 | STDMETHOD(AddTopLevelDataObjectsPost)(ID3DXFileSaveObject *save_obj) PURE; 203 | STDMETHOD(RegisterTemplates)(ID3DXFile *file) PURE; 204 | STDMETHOD(SaveTemplates)(ID3DXFileSaveObject *save_obj) PURE; 205 | }; 206 | #undef INTERFACE 207 | 208 | #define INTERFACE ID3DXAnimationSet 209 | DECLARE_INTERFACE_(ID3DXAnimationSet, IUnknown) 210 | { 211 | /*** IUnknown methods ***/ 212 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 213 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 214 | STDMETHOD_(ULONG, Release)(THIS) PURE; 215 | /*** ID3DXAnimationSet methods ***/ 216 | STDMETHOD_(const char *, GetName)(THIS) PURE; 217 | STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE; 218 | STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE; 219 | STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE; 220 | STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE; 221 | STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE; 222 | STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale, 223 | D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE; 224 | STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position, 225 | void **callback_data) PURE; 226 | }; 227 | #undef INTERFACE 228 | 229 | #define INTERFACE ID3DXKeyframedAnimationSet 230 | DECLARE_INTERFACE_(ID3DXKeyframedAnimationSet, ID3DXAnimationSet) 231 | { 232 | /*** IUnknown methods ***/ 233 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 234 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 235 | STDMETHOD_(ULONG, Release)(THIS) PURE; 236 | /*** ID3DXAnimationSet methods ***/ 237 | STDMETHOD_(const char *, GetName)(THIS) PURE; 238 | STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE; 239 | STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE; 240 | STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE; 241 | STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE; 242 | STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE; 243 | STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale, 244 | D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE; 245 | STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position, 246 | void **callback_data) PURE; 247 | /*** ID3DXKeyframedAnimationSet methods ***/ 248 | STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE; 249 | STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE; 250 | STDMETHOD_(UINT, GetNumScaleKeys)(THIS_ UINT animation) PURE; 251 | STDMETHOD(GetScaleKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 scale_keys) PURE; 252 | STDMETHOD(GetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE; 253 | STDMETHOD(SetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE; 254 | STDMETHOD_(UINT, GetNumRotationKeys)(THIS_ UINT animation) PURE; 255 | STDMETHOD(GetRotationKeys)(THIS_ UINT animation, LPD3DXKEY_QUATERNION rotation_keys) PURE; 256 | STDMETHOD(GetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE; 257 | STDMETHOD(SetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE; 258 | STDMETHOD_(UINT, GetNumTranslationKeys)(THIS_ UINT animation) PURE; 259 | STDMETHOD(GetTranslationKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 translation_keys) PURE; 260 | STDMETHOD(GetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE; 261 | STDMETHOD(SetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE; 262 | STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE; 263 | STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE; 264 | STDMETHOD(GetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE; 265 | STDMETHOD(SetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE; 266 | STDMETHOD(UnregisterScaleKey)(THIS_ UINT animation, UINT key) PURE; 267 | STDMETHOD(UnregisterRotationKey)(THIS_ UINT animation, UINT key) PURE; 268 | STDMETHOD(UnregisterTranslationKey)(THIS_ UINT animation, UINT key) PURE; 269 | STDMETHOD(RegisterAnimationSRTKeys)(THIS_ const char *name, UINT num_scale_keys, 270 | UINT num_rotation_keys, UINT num_translation_keys, const D3DXKEY_VECTOR3 *scale_keys, 271 | const D3DXKEY_QUATERNION *rotation_keys, const D3DXKEY_VECTOR3 *translation_keys, 272 | DWORD *animation_index) PURE; 273 | STDMETHOD(Compress)(THIS_ DWORD flags, float lossiness, D3DXFRAME *hierarchy, 274 | ID3DXBuffer **compressed_data) PURE; 275 | STDMETHOD(UnregisterAnimation)(THIS_ UINT index) PURE; 276 | }; 277 | #undef INTERFACE 278 | 279 | #define INTERFACE ID3DXCompressedAnimationSet 280 | DECLARE_INTERFACE_(ID3DXCompressedAnimationSet, ID3DXAnimationSet) 281 | { 282 | /*** IUnknown methods ***/ 283 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 284 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 285 | STDMETHOD_(ULONG, Release)(THIS) PURE; 286 | /*** ID3DXAnimationSet methods ***/ 287 | STDMETHOD_(const char *, GetName)(THIS) PURE; 288 | STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE; 289 | STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE; 290 | STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE; 291 | STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE; 292 | STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE; 293 | STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale, 294 | D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE; 295 | STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position, 296 | void **callback_data) PURE; 297 | /*** ID3DXCompressedAnimationSet methods ***/ 298 | STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE; 299 | STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE; 300 | STDMETHOD(GetCompressedData)(THIS_ ID3DXBuffer **compressed_data) PURE; 301 | STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE; 302 | STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE; 303 | }; 304 | #undef INTERFACE 305 | 306 | #define INTERFACE ID3DXAnimationCallbackHandler 307 | DECLARE_INTERFACE(ID3DXAnimationCallbackHandler) 308 | { 309 | STDMETHOD(HandleCallback)(THIS_ UINT track, void *callback_data) PURE; 310 | }; 311 | #undef INTERFACE 312 | 313 | #define INTERFACE ID3DXAnimationController 314 | DECLARE_INTERFACE_(ID3DXAnimationController, IUnknown) 315 | { 316 | /*** IUnknown methods ***/ 317 | STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; 318 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; 319 | STDMETHOD_(ULONG, Release)(THIS) PURE; 320 | /*** ID3DXAnimationController methods ***/ 321 | STDMETHOD_(UINT, GetMaxNumAnimationOutputs)(THIS) PURE; 322 | STDMETHOD_(UINT, GetMaxNumAnimationSets)(THIS) PURE; 323 | STDMETHOD_(UINT, GetMaxNumTracks)(THIS) PURE; 324 | STDMETHOD_(UINT, GetMaxNumEvents)(THIS) PURE; 325 | STDMETHOD(RegisterAnimationOutput)(THIS_ const char *name, D3DXMATRIX *matrix, 326 | D3DXVECTOR3 *scale, D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE; 327 | STDMETHOD(RegisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE; 328 | STDMETHOD(UnregisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE; 329 | STDMETHOD_(UINT, GetNumAnimationSets)(THIS) PURE; 330 | STDMETHOD(GetAnimationSet)(THIS_ UINT index, ID3DXAnimationSet **anim_set) PURE; 331 | STDMETHOD(GetAnimationSetByName)(THIS_ const char *name, ID3DXAnimationSet **anim_set) PURE; 332 | STDMETHOD(AdvanceTime)(THIS_ double time_delta, ID3DXAnimationCallbackHandler *callback_handler) PURE; 333 | STDMETHOD(ResetTime)(THIS) PURE; 334 | STDMETHOD_(double, GetTime)(THIS) PURE; 335 | STDMETHOD(SetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet *anim_set) PURE; 336 | STDMETHOD(GetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet **anim_set) PURE; 337 | STDMETHOD(SetTrackPriority)(THIS_ UINT track, D3DXPRIORITY_TYPE priority) PURE; 338 | STDMETHOD(SetTrackSpeed)(THIS_ UINT track, float speed) PURE; 339 | STDMETHOD(SetTrackWeight)(THIS_ UINT track, float weight) PURE; 340 | STDMETHOD(SetTrackPosition)(THIS_ UINT track, double position) PURE; 341 | STDMETHOD(SetTrackEnable)(THIS_ UINT track, WINBOOL enable) PURE; 342 | STDMETHOD(SetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE; 343 | STDMETHOD(GetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE; 344 | STDMETHOD(SetPriorityBlend)(THIS_ float blend_weight) PURE; 345 | STDMETHOD_(float, GetPriorityBlend)(THIS) PURE; 346 | STDMETHOD_(D3DXEVENTHANDLE, KeyTrackSpeed)(THIS_ UINT track, float new_speed, 347 | double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE; 348 | STDMETHOD_(D3DXEVENTHANDLE, KeyTrackWeight)(THIS_ UINT track, float new_weight, 349 | double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE; 350 | STDMETHOD_(D3DXEVENTHANDLE, KeyTrackPosition)(THIS_ UINT track, double new_position, double start_time) PURE; 351 | STDMETHOD_(D3DXEVENTHANDLE, KeyTrackEnable)(THIS_ UINT track, WINBOOL new_enable, double start_time) PURE; 352 | STDMETHOD_(D3DXEVENTHANDLE, KeyPriorityBlend)(THIS_ float new_blend_weight, 353 | double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE; 354 | STDMETHOD(UnkeyEvent)(THIS_ D3DXEVENTHANDLE event) PURE; 355 | STDMETHOD(UnkeyAllTrackEvents)(THIS_ UINT track) PURE; 356 | STDMETHOD(UnkeyAllPriorityBlends)(THIS) PURE; 357 | STDMETHOD_(D3DXEVENTHANDLE, GetCurrentTrackEvent)(THIS_ UINT track, D3DXEVENT_TYPE event_type) PURE; 358 | STDMETHOD_(D3DXEVENTHANDLE, GetCurrentPriorityBlend)(THIS) PURE; 359 | STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingTrackEvent)(THIS_ UINT track, D3DXEVENTHANDLE event) PURE; 360 | STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingPriorityBlend)(THIS_ D3DXEVENTHANDLE event) PURE; 361 | STDMETHOD(ValidateEvent)(THIS_ D3DXEVENTHANDLE event) PURE; 362 | STDMETHOD(GetEventDesc)(THIS_ D3DXEVENTHANDLE event, D3DXEVENT_DESC *desc) PURE; 363 | STDMETHOD(CloneAnimationController)(THIS_ UINT max_num_anim_outputs, UINT max_num_anim_sets, 364 | UINT max_num_tracks, UINT max_num_events, ID3DXAnimationController **anim_controller) PURE; 365 | }; 366 | #undef INTERFACE 367 | 368 | #ifdef __cplusplus 369 | extern "C" { 370 | #endif 371 | 372 | HRESULT WINAPI D3DXLoadMeshHierarchyFromXA(const char *filename, DWORD flags, struct IDirect3DDevice9 *device, 373 | struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader, 374 | D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller); 375 | HRESULT WINAPI D3DXLoadMeshHierarchyFromXW(const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device, 376 | struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader, 377 | D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller); 378 | #define D3DXLoadMeshHierarchyFromX __MINGW_NAME_AW(D3DXLoadMeshHierarchyFromX) 379 | HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(const void *data, DWORD data_size, DWORD flags, 380 | struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc, 381 | struct ID3DXLoadUserData *user_data_loader, D3DXFRAME **frame_hierarchy, 382 | struct ID3DXAnimationController **animation_controller); 383 | HRESULT WINAPI D3DXSaveMeshHierarchyToFileA(const char *filename, DWORD format, 384 | const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller, 385 | ID3DXSaveUserData *user_data_saver); 386 | HRESULT WINAPI D3DXSaveMeshHierarchyToFileW(const WCHAR *filename, DWORD format, 387 | const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller, 388 | ID3DXSaveUserData *user_data_saver); 389 | #define D3DXSaveMeshHierarchyToFile __MINGW_NAME_AW(D3DXSaveMeshHierarchyToFile) 390 | HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame_root, ID3DXAllocateHierarchy *alloc); 391 | HRESULT WINAPI D3DXFrameAppendChild(D3DXFRAME *parent, const D3DXFRAME *child); 392 | D3DXFRAME * WINAPI D3DXFrameFind(const D3DXFRAME *root, const char *name); 393 | HRESULT WINAPI D3DXFrameRegisterNamedMatrices(D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller); 394 | UINT WINAPI D3DXFrameNumNamedMatrices(const D3DXFRAME *frame_root); 395 | HRESULT WINAPI D3DXFrameCalculateBoundingSphere(const D3DXFRAME *frame_root, D3DXVECTOR3 *center, 396 | FLOAT *radius); 397 | HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_per_second, 398 | D3DXPLAYBACK_TYPE playback_type, UINT animation_count, UINT callback_key_count, 399 | const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set); 400 | HRESULT WINAPI D3DXCreateCompressedAnimationSet(const char *name, double ticks_per_second, 401 | D3DXPLAYBACK_TYPE playback_type, ID3DXBuffer *compressed_data, UINT callback_key_count, 402 | const D3DXKEY_CALLBACK *callback_keys, ID3DXCompressedAnimationSet **animation_set); 403 | HRESULT WINAPI D3DXCreateAnimationController(UINT max_animation_output_count, UINT max_animation_set_count, 404 | UINT max_track_count, UINT max_event_count, ID3DXAnimationController **animation_controller); 405 | 406 | #ifdef __cplusplus 407 | } 408 | #endif 409 | 410 | #endif /* __WINE_D3DX9ANIM_H */ 411 | -------------------------------------------------------------------------------- /d3d9caps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2002-2003 Jason Edmeades 3 | * Raphael Junqueira 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 | */ 19 | 20 | #ifndef __WINE_D3D9CAPS_H 21 | #define __WINE_D3D9CAPS_H 22 | 23 | #ifdef __i386__ 24 | #include 25 | #endif 26 | 27 | /* 28 | * Definitions 29 | */ 30 | #define D3DCAPS_OVERLAY __MSABI_LONG(0x00000800) 31 | #define D3DCAPS_READ_SCANLINE __MSABI_LONG(0x00020000) 32 | 33 | #define D3DCURSORCAPS_COLOR 1 34 | #define D3DCURSORCAPS_LOWRES 2 35 | 36 | 37 | #define D3DDEVCAPS2_STREAMOFFSET __MSABI_LONG(0x00000001) 38 | #define D3DDEVCAPS2_DMAPNPATCH __MSABI_LONG(0x00000002) 39 | #define D3DDEVCAPS2_ADAPTIVETESSRTPATCH __MSABI_LONG(0x00000004) 40 | #define D3DDEVCAPS2_ADAPTIVETESSNPATCH __MSABI_LONG(0x00000008) 41 | #define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES __MSABI_LONG(0x00000010) 42 | #define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH __MSABI_LONG(0x00000020) 43 | #define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET __MSABI_LONG(0x00000040) 44 | 45 | #define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010 46 | #define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020 47 | #define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040 48 | #define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080 49 | #define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100 50 | #define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200 51 | #define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400 52 | #define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800 53 | #define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000 54 | #define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000 55 | #define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000 56 | #define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000 57 | #define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000 58 | #define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000 59 | #define D3DDEVCAPS_HWRASTERIZATION 0x0080000 60 | #define D3DDEVCAPS_PUREDEVICE 0x0100000 61 | #define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000 62 | #define D3DDEVCAPS_RTPATCHES 0x0400000 63 | #define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000 64 | #define D3DDEVCAPS_NPATCHES 0x1000000 65 | 66 | #define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF 67 | #define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000 68 | #define D3DFVFCAPS_PSIZE 0x100000 69 | 70 | #define D3DLINECAPS_TEXTURE 0x01 71 | #define D3DLINECAPS_ZTEST 0x02 72 | #define D3DLINECAPS_BLEND 0x04 73 | #define D3DLINECAPS_ALPHACMP 0x08 74 | #define D3DLINECAPS_FOG 0x10 75 | #define D3DLINECAPS_ANTIALIAS 0x20 76 | 77 | #define D3DPBLENDCAPS_ZERO __MSABI_LONG(0x00000001) 78 | #define D3DPBLENDCAPS_ONE __MSABI_LONG(0x00000002) 79 | #define D3DPBLENDCAPS_SRCCOLOR __MSABI_LONG(0x00000004) 80 | #define D3DPBLENDCAPS_INVSRCCOLOR __MSABI_LONG(0x00000008) 81 | #define D3DPBLENDCAPS_SRCALPHA __MSABI_LONG(0x00000010) 82 | #define D3DPBLENDCAPS_INVSRCALPHA __MSABI_LONG(0x00000020) 83 | #define D3DPBLENDCAPS_DESTALPHA __MSABI_LONG(0x00000040) 84 | #define D3DPBLENDCAPS_INVDESTALPHA __MSABI_LONG(0x00000080) 85 | #define D3DPBLENDCAPS_DESTCOLOR __MSABI_LONG(0x00000100) 86 | #define D3DPBLENDCAPS_INVDESTCOLOR __MSABI_LONG(0x00000200) 87 | #define D3DPBLENDCAPS_SRCALPHASAT __MSABI_LONG(0x00000400) 88 | #define D3DPBLENDCAPS_BOTHSRCALPHA __MSABI_LONG(0x00000800) 89 | #define D3DPBLENDCAPS_BOTHINVSRCALPHA __MSABI_LONG(0x00001000) 90 | #define D3DPBLENDCAPS_BLENDFACTOR __MSABI_LONG(0x00002000) 91 | #ifndef D3D_DISABLE_9EX 92 | #define D3DPBLENDCAPS_SRCCOLOR2 __MSABI_LONG(0x00004000) 93 | #define D3DPBLENDCAPS_INVSRCCOLOR2 __MSABI_LONG(0x00008000) 94 | #endif 95 | 96 | #define D3DPCMPCAPS_NEVER 0x01 97 | #define D3DPCMPCAPS_LESS 0x02 98 | #define D3DPCMPCAPS_EQUAL 0x04 99 | #define D3DPCMPCAPS_LESSEQUAL 0x08 100 | #define D3DPCMPCAPS_GREATER 0x10 101 | #define D3DPCMPCAPS_NOTEQUAL 0x20 102 | #define D3DPCMPCAPS_GREATEREQUAL 0x40 103 | #define D3DPCMPCAPS_ALWAYS 0x80 104 | 105 | #define D3DPMISCCAPS_MASKZ __MSABI_LONG(0x00000002) 106 | #define D3DPMISCCAPS_LINEPATTERNREP __MSABI_LONG(0x00000004) 107 | #define D3DPMISCCAPS_CULLNONE __MSABI_LONG(0x00000010) 108 | #define D3DPMISCCAPS_CULLCW __MSABI_LONG(0x00000020) 109 | #define D3DPMISCCAPS_CULLCCW __MSABI_LONG(0x00000040) 110 | #define D3DPMISCCAPS_COLORWRITEENABLE __MSABI_LONG(0x00000080) 111 | #define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS __MSABI_LONG(0x00000100) 112 | #define D3DPMISCCAPS_CLIPTLVERTS __MSABI_LONG(0x00000200) 113 | #define D3DPMISCCAPS_TSSARGTEMP __MSABI_LONG(0x00000400) 114 | #define D3DPMISCCAPS_BLENDOP __MSABI_LONG(0x00000800) 115 | #define D3DPMISCCAPS_NULLREFERENCE __MSABI_LONG(0x00001000) 116 | #define D3DPMISCCAPS_INDEPENDENTWRITEMASKS __MSABI_LONG(0x00004000) 117 | #define D3DPMISCCAPS_PERSTAGECONSTANT __MSABI_LONG(0x00008000) 118 | #define D3DPMISCCAPS_FOGANDSPECULARALPHA __MSABI_LONG(0x00010000) 119 | #define D3DPMISCCAPS_SEPARATEALPHABLEND __MSABI_LONG(0x00020000) 120 | #define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS __MSABI_LONG(0x00040000) 121 | #define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING __MSABI_LONG(0x00080000) 122 | #define D3DPMISCCAPS_FOGVERTEXCLAMPED __MSABI_LONG(0x00100000) 123 | #ifndef D3D_DISABLE_9EX 124 | #define D3DPMISCCAPS_POSTBLENDSRGBCONVERT __MSABI_LONG(0x00200000) 125 | #endif 126 | 127 | #define D3DPRASTERCAPS_DITHER __MSABI_LONG(0x00000001) 128 | #define D3DPRASTERCAPS_ZTEST __MSABI_LONG(0x00000010) 129 | #define D3DPRASTERCAPS_FOGVERTEX __MSABI_LONG(0x00000080) 130 | #define D3DPRASTERCAPS_FOGTABLE __MSABI_LONG(0x00000100) 131 | #define D3DPRASTERCAPS_MIPMAPLODBIAS __MSABI_LONG(0x00002000) 132 | #define D3DPRASTERCAPS_ZBUFFERLESSHSR __MSABI_LONG(0x00008000) 133 | #define D3DPRASTERCAPS_FOGRANGE __MSABI_LONG(0x00010000) 134 | #define D3DPRASTERCAPS_ANISOTROPY __MSABI_LONG(0x00020000) 135 | #define D3DPRASTERCAPS_WBUFFER __MSABI_LONG(0x00040000) 136 | #define D3DPRASTERCAPS_WFOG __MSABI_LONG(0x00100000) 137 | #define D3DPRASTERCAPS_ZFOG __MSABI_LONG(0x00200000) 138 | #define D3DPRASTERCAPS_COLORPERSPECTIVE __MSABI_LONG(0x00400000) 139 | #define D3DPRASTERCAPS_SCISSORTEST __MSABI_LONG(0x01000000) 140 | #define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS __MSABI_LONG(0x02000000) 141 | #define D3DPRASTERCAPS_DEPTHBIAS __MSABI_LONG(0x04000000) 142 | #define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE __MSABI_LONG(0x08000000) 143 | 144 | #define D3DPRESENT_INTERVAL_DEFAULT 0x00000000 145 | #define D3DPRESENT_INTERVAL_ONE 0x00000001 146 | #define D3DPRESENT_INTERVAL_TWO 0x00000002 147 | #define D3DPRESENT_INTERVAL_THREE 0x00000004 148 | #define D3DPRESENT_INTERVAL_FOUR 0x00000008 149 | #define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000 150 | 151 | #define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008 152 | #define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200 153 | #define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000 154 | #define D3DPSHADECAPS_FOGGOURAUD 0x80000 155 | 156 | #define D3DPTADDRESSCAPS_WRAP 0x01 157 | #define D3DPTADDRESSCAPS_MIRROR 0x02 158 | #define D3DPTADDRESSCAPS_CLAMP 0x04 159 | #define D3DPTADDRESSCAPS_BORDER 0x08 160 | #define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10 161 | #define D3DPTADDRESSCAPS_MIRRORONCE 0x20 162 | 163 | #define D3DPTEXTURECAPS_PERSPECTIVE __MSABI_LONG(0x00000001) 164 | #define D3DPTEXTURECAPS_POW2 __MSABI_LONG(0x00000002) 165 | #define D3DPTEXTURECAPS_ALPHA __MSABI_LONG(0x00000004) 166 | #define D3DPTEXTURECAPS_SQUAREONLY __MSABI_LONG(0x00000020) 167 | #define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE __MSABI_LONG(0x00000040) 168 | #define D3DPTEXTURECAPS_ALPHAPALETTE __MSABI_LONG(0x00000080) 169 | #define D3DPTEXTURECAPS_NONPOW2CONDITIONAL __MSABI_LONG(0x00000100) 170 | #define D3DPTEXTURECAPS_PROJECTED __MSABI_LONG(0x00000400) 171 | #define D3DPTEXTURECAPS_CUBEMAP __MSABI_LONG(0x00000800) 172 | #define D3DPTEXTURECAPS_VOLUMEMAP __MSABI_LONG(0x00002000) 173 | #define D3DPTEXTURECAPS_MIPMAP __MSABI_LONG(0x00004000) 174 | #define D3DPTEXTURECAPS_MIPVOLUMEMAP __MSABI_LONG(0x00008000) 175 | #define D3DPTEXTURECAPS_MIPCUBEMAP __MSABI_LONG(0x00010000) 176 | #define D3DPTEXTURECAPS_CUBEMAP_POW2 __MSABI_LONG(0x00020000) 177 | #define D3DPTEXTURECAPS_VOLUMEMAP_POW2 __MSABI_LONG(0x00040000) 178 | #define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV __MSABI_LONG(0x00200000) 179 | 180 | #define D3DPTFILTERCAPS_MINFPOINT __MSABI_LONG(0x00000100) 181 | #define D3DPTFILTERCAPS_MINFLINEAR __MSABI_LONG(0x00000200) 182 | #define D3DPTFILTERCAPS_MINFANISOTROPIC __MSABI_LONG(0x00000400) 183 | #define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD __MSABI_LONG(0x00000800) 184 | #define D3DPTFILTERCAPS_MINFGAUSSIANQUAD __MSABI_LONG(0x00001000) 185 | #define D3DPTFILTERCAPS_MIPFPOINT __MSABI_LONG(0x00010000) 186 | #define D3DPTFILTERCAPS_MIPFLINEAR __MSABI_LONG(0x00020000) 187 | #ifndef D3D_DISABLE_9EX 188 | #define D3DPTFILTERCAPS_CONVOLUTIONMONO __MSABI_LONG(0x00040000) 189 | #endif 190 | #define D3DPTFILTERCAPS_MAGFPOINT __MSABI_LONG(0x01000000) 191 | #define D3DPTFILTERCAPS_MAGFLINEAR __MSABI_LONG(0x02000000) 192 | #define D3DPTFILTERCAPS_MAGFANISOTROPIC __MSABI_LONG(0x04000000) 193 | #define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD __MSABI_LONG(0x08000000) 194 | #define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD __MSABI_LONG(0x10000000) 195 | 196 | #define D3DSTENCILCAPS_KEEP 0x01 197 | #define D3DSTENCILCAPS_ZERO 0x02 198 | #define D3DSTENCILCAPS_REPLACE 0x04 199 | #define D3DSTENCILCAPS_INCRSAT 0x08 200 | #define D3DSTENCILCAPS_DECRSAT 0x10 201 | #define D3DSTENCILCAPS_INVERT 0x20 202 | #define D3DSTENCILCAPS_INCR 0x40 203 | #define D3DSTENCILCAPS_DECR 0x80 204 | #define D3DSTENCILCAPS_TWOSIDED 0x100 205 | 206 | #define D3DTEXOPCAPS_DISABLE 0x0000001 207 | #define D3DTEXOPCAPS_SELECTARG1 0x0000002 208 | #define D3DTEXOPCAPS_SELECTARG2 0x0000004 209 | #define D3DTEXOPCAPS_MODULATE 0x0000008 210 | #define D3DTEXOPCAPS_MODULATE2X 0x0000010 211 | #define D3DTEXOPCAPS_MODULATE4X 0x0000020 212 | #define D3DTEXOPCAPS_ADD 0x0000040 213 | #define D3DTEXOPCAPS_ADDSIGNED 0x0000080 214 | #define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100 215 | #define D3DTEXOPCAPS_SUBTRACT 0x0000200 216 | #define D3DTEXOPCAPS_ADDSMOOTH 0x0000400 217 | #define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800 218 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000 219 | #define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000 220 | #define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000 221 | #define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000 222 | #define D3DTEXOPCAPS_PREMODULATE 0x0010000 223 | #define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000 224 | #define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000 225 | #define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000 226 | #define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000 227 | #define D3DTEXOPCAPS_BUMPENVMAP 0x0200000 228 | #define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000 229 | #define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000 230 | #define D3DTEXOPCAPS_MULTIPLYADD 0x1000000 231 | #define D3DTEXOPCAPS_LERP 0x2000000 232 | 233 | #define D3DVTXPCAPS_TEXGEN __MSABI_LONG(0x00000001) 234 | #define D3DVTXPCAPS_MATERIALSOURCE7 __MSABI_LONG(0x00000002) 235 | #define D3DVTXPCAPS_DIRECTIONALLIGHTS __MSABI_LONG(0x00000008) 236 | #define D3DVTXPCAPS_POSITIONALLIGHTS __MSABI_LONG(0x00000010) 237 | #define D3DVTXPCAPS_LOCALVIEWER __MSABI_LONG(0x00000020) 238 | #define D3DVTXPCAPS_TWEENING __MSABI_LONG(0x00000040) 239 | #define D3DVTXPCAPS_TEXGEN_SPHEREMAP __MSABI_LONG(0x00000100) 240 | #define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER __MSABI_LONG(0x00000200) 241 | 242 | #define D3DDTCAPS_UBYTE4 __MSABI_LONG(0x00000001) 243 | #define D3DDTCAPS_UBYTE4N __MSABI_LONG(0x00000002) 244 | #define D3DDTCAPS_SHORT2N __MSABI_LONG(0x00000004) 245 | #define D3DDTCAPS_SHORT4N __MSABI_LONG(0x00000008) 246 | #define D3DDTCAPS_USHORT2N __MSABI_LONG(0x00000010) 247 | #define D3DDTCAPS_USHORT4N __MSABI_LONG(0x00000020) 248 | #define D3DDTCAPS_UDEC3 __MSABI_LONG(0x00000040) 249 | #define D3DDTCAPS_DEC3N __MSABI_LONG(0x00000080) 250 | #define D3DDTCAPS_FLOAT16_2 __MSABI_LONG(0x00000100) 251 | #define D3DDTCAPS_FLOAT16_4 __MSABI_LONG(0x00000200) 252 | 253 | #define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD __MSABI_LONG(0x00000020) 254 | #define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION __MSABI_LONG(0x00000080) 255 | #define D3DCAPS3_COPY_TO_VIDMEM __MSABI_LONG(0x00000100) 256 | #define D3DCAPS3_COPY_TO_SYSTEMMEM __MSABI_LONG(0x00000200) 257 | #define D3DCAPS3_DXVAHD __MSABI_LONG(0x00000400) 258 | #define D3DCAPS3_DXVAHD_LIMITED __MSABI_LONG(0x00000800) 259 | #define D3DCAPS3_RESERVED __MSABI_LONG(0x8000001F) 260 | 261 | #define D3DCAPS2_FULLSCREENGAMMA __MSABI_LONG(0x00020000) 262 | #define D3DCAPS2_CANCALIBRATEGAMMA __MSABI_LONG(0x00100000) 263 | #define D3DCAPS2_RESERVED __MSABI_LONG(0x02000000) 264 | #define D3DCAPS2_CANMANAGERESOURCE __MSABI_LONG(0x10000000) 265 | #define D3DCAPS2_DYNAMICTEXTURES __MSABI_LONG(0x20000000) 266 | #define D3DCAPS2_CANAUTOGENMIPMAP __MSABI_LONG(0x40000000) 267 | #ifndef D3D_DISABLE_9EX 268 | #define D3DCAPS2_CANSHARERESOURCE __MSABI_LONG(0x80000000) 269 | #endif 270 | 271 | #define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24 272 | #define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0 273 | #define D3DVS20_MAX_NUMTEMPS 32 274 | #define D3DVS20_MIN_NUMTEMPS 12 275 | #define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4 276 | #define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1 277 | 278 | #define D3DVS20CAPS_PREDICATION (1 << 0) 279 | 280 | #define D3DPS20CAPS_ARBITRARYSWIZZLE (1 << 0) 281 | #define D3DPS20CAPS_GRADIENTINSTRUCTIONS (1 << 1) 282 | #define D3DPS20CAPS_PREDICATION (1 << 2) 283 | #define D3DPS20CAPS_NODEPENDENTREADLIMIT (1 << 3) 284 | #define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (1 << 4) 285 | 286 | #define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24 287 | #define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0 288 | #define D3DPS20_MAX_NUMTEMPS 32 289 | #define D3DPS20_MIN_NUMTEMPS 12 290 | #define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4 291 | #define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0 292 | #define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512 293 | #define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96 294 | 295 | #define D3DMIN30SHADERINSTRUCTIONS 512 296 | #define D3DMAX30SHADERINSTRUCTIONS 32768 297 | 298 | 299 | typedef struct _D3DVSHADERCAPS2_0 { 300 | DWORD Caps; 301 | INT DynamicFlowControlDepth; 302 | INT NumTemps; 303 | INT StaticFlowControlDepth; 304 | } D3DVSHADERCAPS2_0; 305 | 306 | typedef struct _D3DPSHADERCAPS2_0 { 307 | DWORD Caps; 308 | INT DynamicFlowControlDepth; 309 | INT NumTemps; 310 | INT StaticFlowControlDepth; 311 | INT NumInstructionSlots; 312 | } D3DPSHADERCAPS2_0; 313 | 314 | /* 315 | * The d3dcaps9 structure 316 | */ 317 | typedef struct _D3DCAPS9 { 318 | D3DDEVTYPE DeviceType; 319 | UINT AdapterOrdinal; 320 | 321 | DWORD Caps; 322 | DWORD Caps2; 323 | DWORD Caps3; 324 | DWORD PresentationIntervals; 325 | 326 | DWORD CursorCaps; 327 | 328 | DWORD DevCaps; 329 | 330 | DWORD PrimitiveMiscCaps; 331 | DWORD RasterCaps; 332 | DWORD ZCmpCaps; 333 | DWORD SrcBlendCaps; 334 | DWORD DestBlendCaps; 335 | DWORD AlphaCmpCaps; 336 | DWORD ShadeCaps; 337 | DWORD TextureCaps; 338 | DWORD TextureFilterCaps; 339 | DWORD CubeTextureFilterCaps; 340 | DWORD VolumeTextureFilterCaps; 341 | DWORD TextureAddressCaps; 342 | DWORD VolumeTextureAddressCaps; 343 | 344 | DWORD LineCaps; 345 | 346 | DWORD MaxTextureWidth, MaxTextureHeight; 347 | DWORD MaxVolumeExtent; 348 | 349 | DWORD MaxTextureRepeat; 350 | DWORD MaxTextureAspectRatio; 351 | DWORD MaxAnisotropy; 352 | float MaxVertexW; 353 | 354 | float GuardBandLeft; 355 | float GuardBandTop; 356 | float GuardBandRight; 357 | float GuardBandBottom; 358 | 359 | float ExtentsAdjust; 360 | DWORD StencilCaps; 361 | 362 | DWORD FVFCaps; 363 | DWORD TextureOpCaps; 364 | DWORD MaxTextureBlendStages; 365 | DWORD MaxSimultaneousTextures; 366 | 367 | DWORD VertexProcessingCaps; 368 | DWORD MaxActiveLights; 369 | DWORD MaxUserClipPlanes; 370 | DWORD MaxVertexBlendMatrices; 371 | DWORD MaxVertexBlendMatrixIndex; 372 | 373 | float MaxPointSize; 374 | 375 | DWORD MaxPrimitiveCount; 376 | DWORD MaxVertexIndex; 377 | DWORD MaxStreams; 378 | DWORD MaxStreamStride; 379 | 380 | DWORD VertexShaderVersion; 381 | DWORD MaxVertexShaderConst; 382 | 383 | DWORD PixelShaderVersion; 384 | float PixelShader1xMaxValue; 385 | 386 | /* DX 9 */ 387 | DWORD DevCaps2; 388 | 389 | float MaxNpatchTessellationLevel; 390 | DWORD Reserved5; 391 | 392 | UINT MasterAdapterOrdinal; 393 | UINT AdapterOrdinalInGroup; 394 | UINT NumberOfAdaptersInGroup; 395 | DWORD DeclTypes; 396 | DWORD NumSimultaneousRTs; 397 | DWORD StretchRectFilterCaps; 398 | D3DVSHADERCAPS2_0 VS20Caps; 399 | D3DPSHADERCAPS2_0 PS20Caps; 400 | DWORD VertexTextureFilterCaps; 401 | DWORD MaxVShaderInstructionsExecuted; 402 | DWORD MaxPShaderInstructionsExecuted; 403 | DWORD MaxVertexShader30InstructionSlots; 404 | DWORD MaxPixelShader30InstructionSlots; 405 | 406 | } D3DCAPS9; 407 | 408 | #ifndef D3D_DISABLE_9EX 409 | 410 | #define D3DOVERLAYCAPS_FULLRANGERGB 0x00000001 411 | #define D3DOVERLAYCAPS_LIMITEDRANGERGB 0x00000002 412 | #define D3DOVERLAYCAPS_YCbCr_BT601 0x00000004 413 | #define D3DOVERLAYCAPS_YCbCr_BT709 0x00000008 414 | #define D3DOVERLAYCAPS_YCbCr_BT601_xvYCC 0x00000010 415 | #define D3DOVERLAYCAPS_YCbCr_BT709_xvYCC 0x00000020 416 | #define D3DOVERLAYCAPS_STRETCHX 0x00000040 417 | #define D3DOVERLAYCAPS_STRETCHY 0x00000080 418 | 419 | typedef struct _D3DOVERLAYCAPS { 420 | UINT Caps; 421 | UINT MaxOverlayDisplayWidth; 422 | UINT MaxOverlayDisplayHeight; 423 | } D3DOVERLAYCAPS; 424 | 425 | #define D3DCPCAPS_SOFTWARE 0x00000001 426 | #define D3DCPCAPS_HARDWARE 0x00000002 427 | #define D3DCPCAPS_PROTECTIONALWAYSON 0x00000004 428 | #define D3DCPCAPS_PARTIALDECRYPTION 0x00000008 429 | #define D3DCPCAPS_CONTENTKEY 0x00000010 430 | #define D3DCPCAPS_FRESHENSESSIONKEY 0x00000020 431 | #define D3DCPCAPS_ENCRYPTEDREADBACK 0x00000040 432 | #define D3DCPCAPS_ENCRYPTEDREADBACKKEY 0x00000080 433 | #define D3DCPCAPS_SEQUENTIAL_CTR_IV 0x00000100 434 | #define D3DCPCAPS_ENCRYPTSLICEDATAONLY 0x00000200 435 | 436 | typedef struct _D3DCONTENTPROTECTIONCAPS { 437 | DWORD Caps; 438 | GUID KeyExchangeType; 439 | UINT BufferAlignmentStart; 440 | UINT BlockAlignmentSize; 441 | ULONGLONG ProtectedMemorySize; 442 | } D3DCONTENTPROTECTIONCAPS; 443 | 444 | DEFINE_GUID(D3DCRYPTOTYPE_AES128_CTR, 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f); 445 | DEFINE_GUID(D3DCRYPTOTYPE_PROPRIETARY, 0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x8, 0x69, 0x91, 0x7b, 0xd, 0xe8); 446 | DEFINE_GUID(D3DKEYEXCHANGE_RSAES_OAEP, 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20); 447 | DEFINE_GUID(D3DKEYEXCHANGE_DXVA, 0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b); 448 | 449 | #endif 450 | 451 | #ifdef __i386__ 452 | #include 453 | #endif 454 | 455 | #endif 456 | --------------------------------------------------------------------------------