Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Joshua-Ashton/mingw-directx-headers.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Ashton <joshua@froggi.es>2022-08-21 20:18:48 +0300
committerJoshua Ashton <joshua@froggi.es>2022-08-21 20:24:44 +0300
commit9ae01457f3f52b90fcdb472fc8ad86a0c89c15e5 (patch)
tree4c76cc315dccacc5500b6650ce8d3e9f33112eaa
Mirror as of 6eb571448c696782f06f36de394950fca4402c68
-rw-r--r--COPYING.MinGW-w64.txt135
-rw-r--r--README.md31
-rw-r--r--d3d.h1569
-rw-r--r--d3d10.h5789
-rw-r--r--d3d10_1.h1442
-rw-r--r--d3d10_1shader.h53
-rw-r--r--d3d10effect.h860
-rw-r--r--d3d10misc.h49
-rw-r--r--d3d10sdklayers.h1303
-rw-r--r--d3d10shader.h234
-rw-r--r--d3d11.h10992
-rw-r--r--d3d11_1.h4230
-rw-r--r--d3d11_2.h2249
-rw-r--r--d3d11_3.h5238
-rw-r--r--d3d11_4.h2596
-rw-r--r--d3d11on12.h171
-rw-r--r--d3d11sdklayers.h1968
-rw-r--r--d3d11shader.h265
-rw-r--r--d3d12.h7794
-rw-r--r--d3d12sdklayers.h1586
-rw-r--r--d3d12shader.h1137
-rw-r--r--d3d8.h1154
-rw-r--r--d3d8caps.h296
-rw-r--r--d3d8types.h1220
-rw-r--r--d3d9.h2229
-rw-r--r--d3d9caps.h455
-rw-r--r--d3d9types.h1638
-rw-r--r--d3dcaps.h439
-rw-r--r--d3dcommon.h936
-rw-r--r--d3dcompiler.h163
-rw-r--r--d3dhal.h589
-rw-r--r--d3drm.h525
-rw-r--r--d3drmdef.h466
-rw-r--r--d3drmobj.h4703
-rw-r--r--d3dtypes.h1370
-rw-r--r--d3dvec.inl143
-rw-r--r--d3dx9.h56
-rw-r--r--d3dx9anim.h410
-rw-r--r--d3dx9core.h507
-rw-r--r--d3dx9effect.h447
-rw-r--r--d3dx9math.h476
-rw-r--r--d3dx9math.inl1298
-rw-r--r--d3dx9mesh.h1060
-rw-r--r--d3dx9shader.h465
-rw-r--r--d3dx9shape.h51
-rw-r--r--d3dx9tex.h352
-rw-r--r--d3dx9xof.h187
-rw-r--r--dxdiag.h156
-rw-r--r--dxerr8.h53
-rw-r--r--dxerr9.h53
-rw-r--r--dxfile.h300
-rw-r--r--dxgi.h2683
-rw-r--r--dxgi1_2.h2204
-rw-r--r--dxgi1_3.h1954
-rw-r--r--dxgi1_4.h1356
-rw-r--r--dxgi1_5.h1407
-rw-r--r--dxgi1_6.h1382
-rw-r--r--dxgicommon.h75
-rw-r--r--dxgidebug.h135
-rw-r--r--dxgiformat.h161
-rw-r--r--dxgitype.h96
-rw-r--r--dxtmpl.h882
-rw-r--r--dxva.h923
-rw-r--r--dxva2api.h1589
-rw-r--r--dxvahd.h750
65 files changed, 87485 insertions, 0 deletions
diff --git a/COPYING.MinGW-w64.txt b/COPYING.MinGW-w64.txt
new file mode 100644
index 0000000..decbf46
--- /dev/null
+++ b/COPYING.MinGW-w64.txt
@@ -0,0 +1,135 @@
+MinGW-w64 licensing
+*******************
+
+The copyright and license notices have been divided in two files:
+The notices in COPYING.MinGW-w64.txt (this file) apply only to
+MinGW-w64 itself. These don't apply to the binaries built with
+MinGW-w64 unless you specifically tell MinGW-w64 to link against
+these parts, for example, by enabling profiling code.
+
+In addition to the notices in this file, also the notices in
+COPYING.MinGW-w64-runtime.txt apply to MinGW-w64. Some (possibly
+all) notices in that file may apply also to the binaries built with
+this version of MinGW-w64. The idea is that if you create binary
+packages of your software with MinGW-w64, you can simply copy
+COPYING.MinGW-w64-runtime.txt into your package to fulfill the
+license requirements of the MinGW runtime.
+
+If you think that not all notices apply to your package and want to
+remove some of them, note that, for example, the gdtoa files always
+get linked in if you use any printf-like function. So usually it is
+easiest and safest to just keep all the notices.
+
+
+====================
+GCC and GNU binutils
+====================
+
+Copyright (C) Free Software Foundation
+License: GNU GPLv3+ (see the file COPYING.GPLv3)
+
+
+==============
+Profiling code
+==============
+
+Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+License: GNU GPLv2+ (see the file COPYING.GPLv2)
+
+ * * * * * * *
+
+Copyright (c) 1982, 1983, 1986, 1992, 1993
+ The Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+=======================
+DirectX and DDK headers
+=======================
+
+DirectX and DDK headers are under GNU LGPLv2.1+ (see the file
+COPYING.LGPLv2.1) and copyrighted by various people. Using these
+headers doesn't make LGPLv2.1 apply to your code, because these
+headers files contain only data structure definitions, short
+macros, and short inline functions. Here is the relevant part
+from LGPLv2.1 section 5 paragraph 4:
+
+ If such an object file uses only numerical parameters, data
+ structure layouts and accessors, and small macros and small
+ inline functions (ten lines or less in length), then the use
+ of the object file is unrestricted, regardless of whether it
+ is legally a derivative work.
+
+====================
+libmangle and gendef
+====================
+
+Copyright (c) 2009 mingw-w64 project
+
+Contributing authors: Kai Tietz, Jonathan Yong
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+====
+PSEH
+====
+
+Copyright (c) 2004-2008 KJK::Hyperion
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a89a02d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,31 @@
+# MinGW DirectX Headers
+
+These headers are taken directly from MinGW-w64 found at:</br>
+https://www.mingw-w64.org/</br>
+https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/
+
+## License
+
+The license for these headers is LGPL v2.1.</br>
+However that does not mean that your project is bound by LGPL v2.1 for using these headers:</br>
+```
+DirectX and DDK headers are under GNU LGPLv2.1+ (see the file
+COPYING.LGPLv2.1) and copyrighted by various people. Using these
+headers doesn't make LGPLv2.1 apply to your code, because these
+headers files contain only data structure definitions, short
+macros, and short inline functions. Here is the relevant part
+from LGPLv2.1 section 5 paragraph 4:
+
+ If such an object file uses only numerical parameters, data
+ structure layouts and accessors, and small macros and small
+ inline functions (ten lines or less in length), then the use
+ of the object file is unrestricted, regardless of whether it
+ is legally a derivative work.
+```
+
+See `COPYING.MinGW-w64.txt` for the full license text.
+
+It is also worth noting that in the original repository, the license makes reference
+to a `COPYING.LGPLv2.1`, however no such file exists in the repository, nor in the Wine repository.
+
+The license text for LGPL v2.1 can be found here: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
diff --git a/d3d.h b/d3d.h
new file mode 100644
index 0000000..7430952
--- /dev/null
+++ b/d3d.h
@@ -0,0 +1,1569 @@
+#undef INTERFACE
+/*
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D_H
+#define __WINE_D3D_H
+
+#include <stdlib.h>
+
+#define COM_NO_WINDOWS_H
+#include <objbase.h>
+#include <d3dtypes.h> /* must precede d3dcaps.h */
+#include <d3dcaps.h>
+
+/*****************************************************************************
+ * Predeclare the interfaces
+ */
+DEFINE_GUID(IID_IDirect3D, 0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
+DEFINE_GUID(IID_IDirect3D2, 0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a);
+DEFINE_GUID(IID_IDirect3D3, 0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e);
+DEFINE_GUID(IID_IDirect3D7, 0xf5049e77,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
+
+DEFINE_GUID(IID_IDirect3DRampDevice, 0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
+DEFINE_GUID(IID_IDirect3DRGBDevice, 0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
+DEFINE_GUID(IID_IDirect3DHALDevice, 0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
+DEFINE_GUID(IID_IDirect3DMMXDevice, 0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DRefDevice, 0x50936643,0x13e9,0x11d1,0x89,0xaa,0x00,0xa0,0xc9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DTnLHalDevice, 0xf5049e78,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
+DEFINE_GUID(IID_IDirect3DNullDevice, 0x8767df22,0xbacc,0x11d1,0x89,0x69,0x00,0xa0,0xc9,0x06,0x29,0xa8);
+
+DEFINE_GUID(IID_IDirect3DDevice, 0x64108800,0x957d,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DDevice2, 0x93281501,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DDevice3, 0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
+DEFINE_GUID(IID_IDirect3DDevice7, 0xf5049e79,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
+
+DEFINE_GUID(IID_IDirect3DTexture, 0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56);
+DEFINE_GUID(IID_IDirect3DTexture2, 0x93281502,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
+
+DEFINE_GUID(IID_IDirect3DLight, 0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
+
+DEFINE_GUID(IID_IDirect3DMaterial, 0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
+DEFINE_GUID(IID_IDirect3DMaterial2, 0x93281503,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DMaterial3, 0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x00,0x60,0x08,0x52,0xb3,0x12);
+
+DEFINE_GUID(IID_IDirect3DExecuteBuffer, 0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
+
+DEFINE_GUID(IID_IDirect3DViewport, 0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E);
+DEFINE_GUID(IID_IDirect3DViewport2, 0x93281500,0x8CF8,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29);
+DEFINE_GUID(IID_IDirect3DViewport3, 0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x00,0xc0,0x4f,0xd7,0xb1,0x74);
+
+DEFINE_GUID(IID_IDirect3DVertexBuffer, 0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x00,0xa0,0xc9,0x03,0x67,0xf8);
+DEFINE_GUID(IID_IDirect3DVertexBuffer7, 0xf5049e7d,0x4861,0x11d2,0xa4,0x07,0x00,0xa0,0xc9,0x06,0x29,0xa8);
+
+
+typedef struct IDirect3D *LPDIRECT3D;
+typedef struct IDirect3D2 *LPDIRECT3D2;
+typedef struct IDirect3D3 *LPDIRECT3D3;
+typedef struct IDirect3D7 *LPDIRECT3D7;
+
+typedef struct IDirect3DLight *LPDIRECT3DLIGHT;
+
+typedef struct IDirect3DDevice *LPDIRECT3DDEVICE;
+typedef struct IDirect3DDevice2 *LPDIRECT3DDEVICE2;
+typedef struct IDirect3DDevice3 *LPDIRECT3DDEVICE3;
+typedef struct IDirect3DDevice7 *LPDIRECT3DDEVICE7;
+
+typedef struct IDirect3DViewport *LPDIRECT3DVIEWPORT;
+typedef struct IDirect3DViewport2 *LPDIRECT3DVIEWPORT2;
+typedef struct IDirect3DViewport3 *LPDIRECT3DVIEWPORT3;
+
+typedef struct IDirect3DMaterial *LPDIRECT3DMATERIAL;
+typedef struct IDirect3DMaterial2 *LPDIRECT3DMATERIAL2;
+typedef struct IDirect3DMaterial3 *LPDIRECT3DMATERIAL3;
+
+typedef struct IDirect3DTexture *LPDIRECT3DTEXTURE;
+typedef struct IDirect3DTexture2 *LPDIRECT3DTEXTURE2;
+
+typedef struct IDirect3DExecuteBuffer *LPDIRECT3DEXECUTEBUFFER;
+
+typedef struct IDirect3DVertexBuffer *LPDIRECT3DVERTEXBUFFER;
+typedef struct IDirect3DVertexBuffer7 *LPDIRECT3DVERTEXBUFFER7;
+
+/* ********************************************************************
+ Error Codes
+ ******************************************************************** */
+#define D3D_OK DD_OK
+#define D3DERR_BADMAJORVERSION MAKE_DDHRESULT(700)
+#define D3DERR_BADMINORVERSION MAKE_DDHRESULT(701)
+#define D3DERR_INVALID_DEVICE MAKE_DDHRESULT(705)
+#define D3DERR_INITFAILED MAKE_DDHRESULT(706)
+#define D3DERR_DEVICEAGGREGATED MAKE_DDHRESULT(707)
+#define D3DERR_EXECUTE_CREATE_FAILED MAKE_DDHRESULT(710)
+#define D3DERR_EXECUTE_DESTROY_FAILED MAKE_DDHRESULT(711)
+#define D3DERR_EXECUTE_LOCK_FAILED MAKE_DDHRESULT(712)
+#define D3DERR_EXECUTE_UNLOCK_FAILED MAKE_DDHRESULT(713)
+#define D3DERR_EXECUTE_LOCKED MAKE_DDHRESULT(714)
+#define D3DERR_EXECUTE_NOT_LOCKED MAKE_DDHRESULT(715)
+#define D3DERR_EXECUTE_FAILED MAKE_DDHRESULT(716)
+#define D3DERR_EXECUTE_CLIPPED_FAILED MAKE_DDHRESULT(717)
+#define D3DERR_TEXTURE_NO_SUPPORT MAKE_DDHRESULT(720)
+#define D3DERR_TEXTURE_CREATE_FAILED MAKE_DDHRESULT(721)
+#define D3DERR_TEXTURE_DESTROY_FAILED MAKE_DDHRESULT(722)
+#define D3DERR_TEXTURE_LOCK_FAILED MAKE_DDHRESULT(723)
+#define D3DERR_TEXTURE_UNLOCK_FAILED MAKE_DDHRESULT(724)
+#define D3DERR_TEXTURE_LOAD_FAILED MAKE_DDHRESULT(725)
+#define D3DERR_TEXTURE_SWAP_FAILED MAKE_DDHRESULT(726)
+#define D3DERR_TEXTURE_LOCKED MAKE_DDHRESULT(727)
+#define D3DERR_TEXTURE_NOT_LOCKED MAKE_DDHRESULT(728)
+#define D3DERR_TEXTURE_GETSURF_FAILED MAKE_DDHRESULT(729)
+#define D3DERR_MATRIX_CREATE_FAILED MAKE_DDHRESULT(730)
+#define D3DERR_MATRIX_DESTROY_FAILED MAKE_DDHRESULT(731)
+#define D3DERR_MATRIX_SETDATA_FAILED MAKE_DDHRESULT(732)
+#define D3DERR_MATRIX_GETDATA_FAILED MAKE_DDHRESULT(733)
+#define D3DERR_SETVIEWPORTDATA_FAILED MAKE_DDHRESULT(734)
+#define D3DERR_INVALIDCURRENTVIEWPORT MAKE_DDHRESULT(735)
+#define D3DERR_INVALIDPRIMITIVETYPE MAKE_DDHRESULT(736)
+#define D3DERR_INVALIDVERTEXTYPE MAKE_DDHRESULT(737)
+#define D3DERR_TEXTURE_BADSIZE MAKE_DDHRESULT(738)
+#define D3DERR_INVALIDRAMPTEXTURE MAKE_DDHRESULT(739)
+#define D3DERR_MATERIAL_CREATE_FAILED MAKE_DDHRESULT(740)
+#define D3DERR_MATERIAL_DESTROY_FAILED MAKE_DDHRESULT(741)
+#define D3DERR_MATERIAL_SETDATA_FAILED MAKE_DDHRESULT(742)
+#define D3DERR_MATERIAL_GETDATA_FAILED MAKE_DDHRESULT(743)
+#define D3DERR_INVALIDPALETTE MAKE_DDHRESULT(744)
+#define D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY MAKE_DDHRESULT(745)
+#define D3DERR_ZBUFF_NEEDS_VIDEOMEMORY MAKE_DDHRESULT(746)
+#define D3DERR_SURFACENOTINVIDMEM MAKE_DDHRESULT(747)
+#define D3DERR_LIGHT_SET_FAILED MAKE_DDHRESULT(750)
+#define D3DERR_LIGHTHASVIEWPORT MAKE_DDHRESULT(751)
+#define D3DERR_LIGHTNOTINTHISVIEWPORT MAKE_DDHRESULT(752)
+#define D3DERR_SCENE_IN_SCENE MAKE_DDHRESULT(760)
+#define D3DERR_SCENE_NOT_IN_SCENE MAKE_DDHRESULT(761)
+#define D3DERR_SCENE_BEGIN_FAILED MAKE_DDHRESULT(762)
+#define D3DERR_SCENE_END_FAILED MAKE_DDHRESULT(763)
+#define D3DERR_INBEGIN MAKE_DDHRESULT(770)
+#define D3DERR_NOTINBEGIN MAKE_DDHRESULT(771)
+#define D3DERR_NOVIEWPORTS MAKE_DDHRESULT(772)
+#define D3DERR_VIEWPORTDATANOTSET MAKE_DDHRESULT(773)
+#define D3DERR_VIEWPORTHASNODEVICE MAKE_DDHRESULT(774)
+#define D3DERR_NOCURRENTVIEWPORT MAKE_DDHRESULT(775)
+#define D3DERR_INVALIDVERTEXFORMAT MAKE_DDHRESULT(2048)
+#define D3DERR_COLORKEYATTACHED MAKE_DDHRESULT(2050)
+#define D3DERR_VERTEXBUFFEROPTIMIZED MAKE_DDHRESULT(2060)
+#define D3DERR_VBUF_CREATE_FAILED MAKE_DDHRESULT(2061)
+#define D3DERR_VERTEXBUFFERLOCKED MAKE_DDHRESULT(2062)
+#define D3DERR_VERTEXBUFFERUNLOCKFAILED MAKE_DDHRESULT(2063)
+#define D3DERR_ZBUFFER_NOTPRESENT MAKE_DDHRESULT(2070)
+#define D3DERR_STENCILBUFFER_NOTPRESENT MAKE_DDHRESULT(2071)
+
+#define D3DERR_WRONGTEXTUREFORMAT MAKE_DDHRESULT(2072)
+#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_DDHRESULT(2073)
+#define D3DERR_UNSUPPORTEDCOLORARG MAKE_DDHRESULT(2074)
+#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_DDHRESULT(2075)
+#define D3DERR_UNSUPPORTEDALPHAARG MAKE_DDHRESULT(2076)
+#define D3DERR_TOOMANYOPERATIONS MAKE_DDHRESULT(2077)
+#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_DDHRESULT(2078)
+#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_DDHRESULT(2079)
+#define D3DERR_CONFLICTINGRENDERSTATE MAKE_DDHRESULT(2081)
+#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_DDHRESULT(2082)
+#define D3DERR_TOOMANYPRIMITIVES MAKE_DDHRESULT(2083)
+#define D3DERR_INVALIDMATRIX MAKE_DDHRESULT(2084)
+#define D3DERR_TOOMANYVERTICES MAKE_DDHRESULT(2085)
+#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_DDHRESULT(2086)
+
+#define D3DERR_INVALIDSTATEBLOCK MAKE_DDHRESULT(2100)
+#define D3DERR_INBEGINSTATEBLOCK MAKE_DDHRESULT(2101)
+#define D3DERR_NOTINBEGINSTATEBLOCK MAKE_DDHRESULT(2102)
+
+/* ********************************************************************
+ Enums
+ ******************************************************************** */
+#define D3DNEXT_NEXT __MSABI_LONG(0x01)
+#define D3DNEXT_HEAD __MSABI_LONG(0x02)
+#define D3DNEXT_TAIL __MSABI_LONG(0x04)
+
+#define D3DDP_WAIT __MSABI_LONG(0x00000001)
+#define D3DDP_OUTOFORDER __MSABI_LONG(0x00000002)
+#define D3DDP_DONOTCLIP __MSABI_LONG(0x00000004)
+#define D3DDP_DONOTUPDATEEXTENTS __MSABI_LONG(0x00000008)
+#define D3DDP_DONOTLIGHT __MSABI_LONG(0x00000010)
+
+/* ********************************************************************
+ Types and structures
+ ******************************************************************** */
+typedef DWORD D3DVIEWPORTHANDLE, *LPD3DVIEWPORTHANDLE;
+
+
+/*****************************************************************************
+ * IDirect3D interface
+ */
+#undef INTERFACE
+#define INTERFACE IDirect3D
+DECLARE_INTERFACE_(IDirect3D,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D methods ***/
+ STDMETHOD(Initialize)(THIS_ REFIID riid) PURE;
+ STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial **material, IUnknown *outer) PURE;
+ STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport **viewport, IUnknown *outer) PURE;
+ STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D methods ***/
+#define IDirect3D_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3D_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b)
+#define IDirect3D_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b)
+#define IDirect3D_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3D_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
+#define IDirect3D_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D_AddRef(p) (p)->AddRef()
+#define IDirect3D_Release(p) (p)->Release()
+/*** IDirect3D methods ***/
+#define IDirect3D_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3D_EnumDevices(p,a,b) (p)->EnumDevices(a,b)
+#define IDirect3D_CreateLight(p,a,b) (p)->CreateLight(a,b)
+#define IDirect3D_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3D_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
+#define IDirect3D_FindDevice(p,a,b) (p)->FindDevice(a,b)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3D2 interface
+ */
+#define INTERFACE IDirect3D2
+DECLARE_INTERFACE_(IDirect3D2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D2 methods ***/
+ STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial2 **material, IUnknown *outer) PURE;
+ STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport2 **viewport, IUnknown *outer) PURE;
+ STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE;
+ STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface *surface,
+ struct IDirect3DDevice2 **device) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D2 methods ***/
+#define IDirect3D2_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b)
+#define IDirect3D2_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b)
+#define IDirect3D2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3D2_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
+#define IDirect3D2_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b)
+#define IDirect3D2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D2_AddRef(p) (p)->AddRef()
+#define IDirect3D2_Release(p) (p)->Release()
+/*** IDirect3D2 methods ***/
+#define IDirect3D2_EnumDevices(p,a,b) (p)->EnumDevices(a,b)
+#define IDirect3D2_CreateLight(p,a,b) (p)->CreateLight(a,b)
+#define IDirect3D2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3D2_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
+#define IDirect3D2_FindDevice(p,a,b) (p)->FindDevice(a,b)
+#define IDirect3D2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3D3 interface
+ */
+#define INTERFACE IDirect3D3
+DECLARE_INTERFACE_(IDirect3D3,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D3 methods ***/
+ STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(CreateLight)(THIS_ struct IDirect3DLight **light, IUnknown *outer) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ struct IDirect3DMaterial3 **material, IUnknown *outer) PURE;
+ STDMETHOD(CreateViewport)(THIS_ struct IDirect3DViewport3 **viewport, IUnknown *outer) PURE;
+ STDMETHOD(FindDevice)(THIS_ D3DFINDDEVICESEARCH *search, D3DFINDDEVICERESULT *result) PURE;
+ STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface4 *surface,
+ struct IDirect3DDevice3 **device, IUnknown *outer) PURE;
+ STDMETHOD(CreateVertexBuffer)(THIS_ D3DVERTEXBUFFERDESC *desc, struct IDirect3DVertexBuffer **buffer,
+ DWORD flags, IUnknown *outer) PURE;
+ STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID device_iid, LPD3DENUMPIXELFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(EvictManagedTextures)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D3 methods ***/
+#define IDirect3D3_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b)
+#define IDirect3D3_CreateLight(p,a,b) (p)->lpVtbl->CreateLight(p,a,b)
+#define IDirect3D3_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3D3_CreateViewport(p,a,b) (p)->lpVtbl->CreateViewport(p,a,b)
+#define IDirect3D3_FindDevice(p,a,b) (p)->lpVtbl->FindDevice(p,a,b)
+#define IDirect3D3_CreateDevice(p,a,b,c,d) (p)->lpVtbl->CreateDevice(p,a,b,c,d)
+#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d)
+#define IDirect3D3_EnumZBufferFormats(p,a,b,c) (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
+#define IDirect3D3_EvictManagedTextures(p) (p)->lpVtbl->EvictManagedTextures(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D3_AddRef(p) (p)->AddRef()
+#define IDirect3D3_Release(p) (p)->Release()
+/*** IDirect3D3 methods ***/
+#define IDirect3D3_EnumDevices(p,a,b) (p)->EnumDevices(a,b)
+#define IDirect3D3_CreateLight(p,a,b) (p)->CreateLight(a,b)
+#define IDirect3D3_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3D3_CreateViewport(p,a,b) (p)->CreateViewport(a,b)
+#define IDirect3D3_FindDevice(p,a,b) (p)->FindDevice(a,b)
+#define IDirect3D3_CreateDevice(p,a,b,c,d) (p)->CreateDevice(a,b,c,d)
+#define IDirect3D3_CreateVertexBuffer(p,a,b,c,d) (p)->CreateVertexBuffer(a,b,c,d)
+#define IDirect3D3_EnumZBufferFormats(p,a,b,c) (p)->EnumZBufferFormats(a,b,c)
+#define IDirect3D3_EvictManagedTextures(p) (p)->EvictManagedTextures()
+#endif
+
+/*****************************************************************************
+ * IDirect3D7 interface
+ */
+#define INTERFACE IDirect3D7
+DECLARE_INTERFACE_(IDirect3D7,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D7 methods ***/
+ STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK7 cb, void *ctx) PURE;
+ STDMETHOD(CreateDevice)(THIS_ REFCLSID rclsid, IDirectDrawSurface7 *surface,
+ struct IDirect3DDevice7 **device) PURE;
+ STDMETHOD(CreateVertexBuffer)(THIS_ D3DVERTEXBUFFERDESC *desc,
+ struct IDirect3DVertexBuffer7 **buffer, DWORD flags) PURE;
+ STDMETHOD(EnumZBufferFormats)(THIS_ REFCLSID device_iid, LPD3DENUMPIXELFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(EvictManagedTextures)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D7_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D7_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D3 methods ***/
+#define IDirect3D7_EnumDevices(p,a,b) (p)->lpVtbl->EnumDevices(p,a,b)
+#define IDirect3D7_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirect3D7_CreateVertexBuffer(p,a,b,c) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c)
+#define IDirect3D7_EnumZBufferFormats(p,a,b,c) (p)->lpVtbl->EnumZBufferFormats(p,a,b,c)
+#define IDirect3D7_EvictManagedTextures(p) (p)->lpVtbl->EvictManagedTextures(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D7_AddRef(p) (p)->AddRef()
+#define IDirect3D7_Release(p) (p)->Release()
+/*** IDirect3D3 methods ***/
+#define IDirect3D7_EnumDevices(p,a,b) (p)->EnumDevices(a,b)
+#define IDirect3D7_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
+#define IDirect3D7_CreateVertexBuffer(p,a,b,c) (p)->CreateVertexBuffer(a,b,c)
+#define IDirect3D7_EnumZBufferFormats(p,a,b,c) (p)->EnumZBufferFormats(a,b,c)
+#define IDirect3D7_EvictManagedTextures(p) (p)->EvictManagedTextures()
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DLight interface
+ */
+#define INTERFACE IDirect3DLight
+DECLARE_INTERFACE_(IDirect3DLight,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DLight methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE;
+ STDMETHOD(SetLight)(THIS_ D3DLIGHT *data) PURE;
+ STDMETHOD(GetLight)(THIS_ D3DLIGHT *data) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DLight_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DLight_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DLight methods ***/
+#define IDirect3DLight_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3DLight_SetLight(p,a) (p)->lpVtbl->SetLight(p,a)
+#define IDirect3DLight_GetLight(p,a) (p)->lpVtbl->GetLight(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DLight_AddRef(p) (p)->AddRef()
+#define IDirect3DLight_Release(p) (p)->Release()
+/*** IDirect3DLight methods ***/
+#define IDirect3DLight_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3DLight_SetLight(p,a) (p)->SetLight(a)
+#define IDirect3DLight_GetLight(p,a) (p)->GetLight(a)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DMaterial interface
+ */
+#define INTERFACE IDirect3DMaterial
+DECLARE_INTERFACE_(IDirect3DMaterial,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DMaterial methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE;
+ STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice *device, D3DMATERIALHANDLE *handle) PURE;
+ STDMETHOD(Reserve)(THIS) PURE;
+ STDMETHOD(Unreserve)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DMaterial_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DMaterial_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DMaterial methods ***/
+#define IDirect3DMaterial_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3DMaterial_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DMaterial_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DMaterial_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
+#define IDirect3DMaterial_Reserve(p) (p)->lpVtbl->Reserve(p)
+#define IDirect3DMaterial_Unreserve(p) (p)->lpVtbl->Unreserve(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DMaterial_AddRef(p) (p)->AddRef()
+#define IDirect3DMaterial_Release(p) (p)->Release()
+/*** IDirect3DMaterial methods ***/
+#define IDirect3DMaterial_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3DMaterial_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DMaterial_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DMaterial_GetHandle(p,a,b) (p)->GetHandle(a,b)
+#define IDirect3DMaterial_Reserve(p) (p)->Reserve()
+#define IDirect3DMaterial_Unreserve(p) (p)->Unreserve()
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DMaterial2 interface
+ */
+#define INTERFACE IDirect3DMaterial2
+DECLARE_INTERFACE_(IDirect3DMaterial2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DMaterial2 methods ***/
+ STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice2 *device, D3DMATERIALHANDLE *handle) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DMaterial2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DMaterial2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DMaterial2 methods ***/
+#define IDirect3DMaterial2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DMaterial2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DMaterial2_AddRef(p) (p)->AddRef()
+#define IDirect3DMaterial2_Release(p) (p)->Release()
+/*** IDirect3DMaterial2 methods ***/
+#define IDirect3DMaterial2_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DMaterial2_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DMaterial2_GetHandle(p,a,b) (p)->GetHandle(a,b)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DMaterial3 interface
+ */
+#define INTERFACE IDirect3DMaterial3
+DECLARE_INTERFACE_(IDirect3DMaterial3,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DMaterial3 methods ***/
+ STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL *data) PURE;
+ STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice3 *device, D3DMATERIALHANDLE *handle) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DMaterial3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DMaterial3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DMaterial3 methods ***/
+#define IDirect3DMaterial3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DMaterial3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DMaterial3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DMaterial3_AddRef(p) (p)->AddRef()
+#define IDirect3DMaterial3_Release(p) (p)->Release()
+/*** IDirect3DMaterial3 methods ***/
+#define IDirect3DMaterial3_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DMaterial3_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DMaterial3_GetHandle(p,a,b) (p)->GetHandle(a,b)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DTexture interface
+ */
+#define INTERFACE IDirect3DTexture
+DECLARE_INTERFACE_(IDirect3DTexture,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DTexture methods ***/
+ STDMETHOD(Initialize)(THIS_ struct IDirect3DDevice *device, IDirectDrawSurface *surface) PURE;
+ STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice *device, D3DTEXTUREHANDLE *handle) PURE;
+ STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
+ STDMETHOD(Load)(THIS_ IDirect3DTexture *texture) PURE;
+ STDMETHOD(Unload)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DTexture_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DTexture_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DTexture methods ***/
+#define IDirect3DTexture_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
+#define IDirect3DTexture_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
+#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
+#define IDirect3DTexture_Load(p,a) (p)->lpVtbl->Load(p,a)
+#define IDirect3DTexture_Unload(p) (p)->lpVtbl->Unload(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DTexture_AddRef(p) (p)->AddRef()
+#define IDirect3DTexture_Release(p) (p)->Release()
+/*** IDirect3DTexture methods ***/
+#define IDirect3DTexture_Initialize(p,a,b) (p)->Initialize(a,b)
+#define IDirect3DTexture_GetHandle(p,a,b) (p)->GetHandle(a,b)
+#define IDirect3DTexture_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
+#define IDirect3DTexture_Load(p,a) (p)->Load(a)
+#define IDirect3DTexture_Unload(p) (p)->Unload()
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DTexture2 interface
+ */
+#define INTERFACE IDirect3DTexture2
+DECLARE_INTERFACE_(IDirect3DTexture2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DTexture2 methods ***/
+ STDMETHOD(GetHandle)(THIS_ struct IDirect3DDevice2 *device, D3DTEXTUREHANDLE *handle) PURE;
+ STDMETHOD(PaletteChanged)(THIS_ DWORD dwStart, DWORD dwCount) PURE;
+ STDMETHOD(Load)(THIS_ IDirect3DTexture2 *texture) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DTexture2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DTexture2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DTexture2 methods ***/
+#define IDirect3DTexture2_GetHandle(p,a,b) (p)->lpVtbl->GetHandle(p,a,b)
+#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->lpVtbl->PaletteChanged(p,a,b)
+#define IDirect3DTexture2_Load(p,a) (p)->lpVtbl->Load(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DTexture2_AddRef(p) (p)->AddRef()
+#define IDirect3DTexture2_Release(p) (p)->Release()
+/*** IDirect3DTexture2 methods ***/
+#define IDirect3DTexture2_GetHandle(p,a,b) (p)->GetHandle(a,b)
+#define IDirect3DTexture2_PaletteChanged(p,a,b) (p)->PaletteChanged(a,b)
+#define IDirect3DTexture2_Load(p,a) (p)->Load(a)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DViewport interface
+ */
+#define INTERFACE IDirect3DViewport
+DECLARE_INTERFACE_(IDirect3DViewport,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DViewport methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE;
+ STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE;
+ STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
+ STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE;
+ STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE;
+ STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DViewport_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DViewport_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DViewport methods ***/
+#define IDirect3DViewport_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3DViewport_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DViewport_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
+#define IDirect3DViewport_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b)
+#define IDirect3DViewport_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a)
+#define IDirect3DViewport_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b)
+#define IDirect3DViewport_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a)
+#define IDirect3DViewport_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b)
+#define IDirect3DViewport_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c)
+#define IDirect3DViewport_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DViewport_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DViewport_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DViewport_AddRef(p) (p)->AddRef()
+#define IDirect3DViewport_Release(p) (p)->Release()
+/*** IDirect3DViewport methods ***/
+#define IDirect3DViewport_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3DViewport_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DViewport_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DViewport_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
+#define IDirect3DViewport_LightElements(p,a,b) (p)->LightElements(a,b)
+#define IDirect3DViewport_SetBackground(p,a) (p)->SetBackground(a)
+#define IDirect3DViewport_GetBackground(p,a,b) (p)->GetBackground(a,b)
+#define IDirect3DViewport_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a)
+#define IDirect3DViewport_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b)
+#define IDirect3DViewport_Clear(p,a,b,c) (p)->Clear(a,b,c)
+#define IDirect3DViewport_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DViewport_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DViewport_NextLight(p,a,b,c) (p)->NextLight(a,b,c)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DViewport2 interface
+ */
+#define INTERFACE IDirect3DViewport2
+DECLARE_INTERFACE_(IDirect3DViewport2,IDirect3DViewport)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DViewport methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE;
+ STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE;
+ STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
+ STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE;
+ STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE;
+ STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE;
+ /*** IDirect3DViewport2 methods ***/
+ STDMETHOD(GetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE;
+ STDMETHOD(SetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DViewport2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DViewport2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3Viewport methods ***/
+#define IDirect3DViewport2_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3DViewport2_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DViewport2_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
+#define IDirect3DViewport2_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b)
+#define IDirect3DViewport2_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a)
+#define IDirect3DViewport2_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b)
+#define IDirect3DViewport2_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a)
+#define IDirect3DViewport2_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b)
+#define IDirect3DViewport2_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c)
+#define IDirect3DViewport2_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DViewport2_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DViewport2_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c)
+/*** IDirect3DViewport2 methods ***/
+#define IDirect3DViewport2_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
+#define IDirect3DViewport2_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DViewport2_AddRef(p) (p)->AddRef()
+#define IDirect3DViewport2_Release(p) (p)->Release()
+/*** IDirect3Viewport methods ***/
+#define IDirect3DViewport2_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3DViewport2_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DViewport2_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DViewport2_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
+#define IDirect3DViewport2_LightElements(p,a,b) (p)->LightElements(a,b)
+#define IDirect3DViewport2_SetBackground(p,a) (p)->SetBackground(a)
+#define IDirect3DViewport2_GetBackground(p,a,b) (p)->GetBackground(a,b)
+#define IDirect3DViewport2_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a)
+#define IDirect3DViewport2_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b)
+#define IDirect3DViewport2_Clear(p,a,b,c) (p)->Clear(a,b,c)
+#define IDirect3DViewport2_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DViewport2_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DViewport2_NextLight(p,a,b,c) (p)->NextLight(a,b,c)
+/*** IDirect3DViewport2 methods ***/
+#define IDirect3DViewport2_GetViewport2(p,a) (p)->GetViewport2(a)
+#define IDirect3DViewport2_SetViewport2(p,a) (p)->SetViewport2(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DViewport3 interface
+ */
+#define INTERFACE IDirect3DViewport3
+DECLARE_INTERFACE_(IDirect3DViewport3,IDirect3DViewport2)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DViewport methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT *data) PURE;
+ STDMETHOD(TransformVertices)(THIS_ DWORD vertex_count, D3DTRANSFORMDATA *data, DWORD flags, DWORD *offscreen) PURE;
+ STDMETHOD(LightElements)(THIS_ DWORD element_count, D3DLIGHTDATA *data) PURE;
+ STDMETHOD(SetBackground)(THIS_ D3DMATERIALHANDLE hMat) PURE;
+ STDMETHOD(GetBackground)(THIS_ D3DMATERIALHANDLE *material, WINBOOL *valid) PURE;
+ STDMETHOD(SetBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(GetBackgroundDepth)(THIS_ IDirectDrawSurface **surface, WINBOOL *valid) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags) PURE;
+ STDMETHOD(AddLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(DeleteLight)(THIS_ IDirect3DLight *light) PURE;
+ STDMETHOD(NextLight)(THIS_ IDirect3DLight *ref, IDirect3DLight **light, DWORD flags) PURE;
+ /*** IDirect3DViewport2 methods ***/
+ STDMETHOD(GetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE;
+ STDMETHOD(SetViewport2)(THIS_ D3DVIEWPORT2 *data) PURE;
+ /*** IDirect3DViewport3 methods ***/
+ STDMETHOD(SetBackgroundDepth2)(THIS_ IDirectDrawSurface4 *surface) PURE;
+ STDMETHOD(GetBackgroundDepth2)(THIS_ IDirectDrawSurface4 **surface, WINBOOL *valid) PURE;
+ STDMETHOD(Clear2)(THIS_ DWORD count, D3DRECT *rects, DWORD flags, DWORD color, D3DVALUE z, DWORD stencil) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DViewport3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DViewport3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3Viewport methods ***/
+#define IDirect3DViewport3_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDirect3DViewport3_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DViewport3_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->lpVtbl->TransformVertices(p,a,b,c,d)
+#define IDirect3DViewport3_LightElements(p,a,b) (p)->lpVtbl->LightElements(p,a,b)
+#define IDirect3DViewport3_SetBackground(p,a) (p)->lpVtbl->SetBackground(p,a)
+#define IDirect3DViewport3_GetBackground(p,a,b) (p)->lpVtbl->GetBackground(p,a,b)
+#define IDirect3DViewport3_SetBackgroundDepth(p,a) (p)->lpVtbl->SetBackgroundDepth(p,a)
+#define IDirect3DViewport3_GetBackgroundDepth(p,a,b) (p)->lpVtbl->GetBackgroundDepth(p,a,b)
+#define IDirect3DViewport3_Clear(p,a,b,c) (p)->lpVtbl->Clear(p,a,b,c)
+#define IDirect3DViewport3_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DViewport3_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DViewport3_NextLight(p,a,b,c) (p)->lpVtbl->NextLight(p,a,b,c)
+/*** IDirect3DViewport2 methods ***/
+#define IDirect3DViewport3_GetViewport2(p,a) (p)->lpVtbl->GetViewport2(p,a)
+#define IDirect3DViewport3_SetViewport2(p,a) (p)->lpVtbl->SetViewport2(p,a)
+/*** IDirect3DViewport3 methods ***/
+#define IDirect3DViewport3_SetBackgroundDepth2(p,a) (p)->lpVtbl->SetBackgroundDepth2(p,a)
+#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->lpVtbl->GetBackgroundDepth2(p,a,b)
+#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f) (p)->lpVtbl->Clear2(p,a,b,c,d,e,f)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DViewport3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DViewport3_AddRef(p) (p)->AddRef()
+#define IDirect3DViewport3_Release(p) (p)->Release()
+/*** IDirect3Viewport methods ***/
+#define IDirect3DViewport3_Initialize(p,a) (p)->Initialize(a)
+#define IDirect3DViewport3_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DViewport3_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DViewport3_TransformVertices(p,a,b,c,d) (p)->TransformVertices(a,b,c,d)
+#define IDirect3DViewport3_LightElements(p,a,b) (p)->LightElements(a,b)
+#define IDirect3DViewport3_SetBackground(p,a) (p)->SetBackground(a)
+#define IDirect3DViewport3_GetBackground(p,a,b) (p)->GetBackground(a,b)
+#define IDirect3DViewport3_SetBackgroundDepth(p,a) (p)->SetBackgroundDepth(a)
+#define IDirect3DViewport3_GetBackgroundDepth(p,a,b) (p)->GetBackgroundDepth(a,b)
+#define IDirect3DViewport3_Clear(p,a,b,c) (p)->Clear(a,b,c)
+#define IDirect3DViewport3_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DViewport3_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DViewport3_NextLight(p,a,b,c) (p)->NextLight(a,b,c)
+/*** IDirect3DViewport2 methods ***/
+#define IDirect3DViewport3_GetViewport2(p,a) (p)->GetViewport2(a)
+#define IDirect3DViewport3_SetViewport2(p,a) (p)->SetViewport2(a)
+/*** IDirect3DViewport3 methods ***/
+#define IDirect3DViewport3_SetBackgroundDepth2(p,a) (p)->SetBackgroundDepth2(a)
+#define IDirect3DViewport3_GetBackgroundDepth2(p,a,b) (p)->GetBackgroundDepth2(a,b)
+#define IDirect3DViewport3_Clear2(p,a,b,c,d,e,f) (p)->Clear2(a,b,c,d,e,f)
+#endif
+
+
+
+/*****************************************************************************
+ * IDirect3DExecuteBuffer interface
+ */
+#define INTERFACE IDirect3DExecuteBuffer
+DECLARE_INTERFACE_(IDirect3DExecuteBuffer,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DExecuteBuffer methods ***/
+ STDMETHOD(Initialize)(THIS_ struct IDirect3DDevice *device, D3DEXECUTEBUFFERDESC *desc) PURE;
+ STDMETHOD(Lock)(THIS_ D3DEXECUTEBUFFERDESC *desc) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(SetExecuteData)(THIS_ D3DEXECUTEDATA *data) PURE;
+ STDMETHOD(GetExecuteData)(THIS_ D3DEXECUTEDATA *data) PURE;
+ STDMETHOD(Validate)(THIS_ DWORD *offset, LPD3DVALIDATECALLBACK cb, void *ctx, DWORD reserved) PURE;
+ STDMETHOD(Optimize)(THIS_ DWORD dwDummy) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DExecuteBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DExecuteBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DExecuteBuffer methods ***/
+#define IDirect3DExecuteBuffer_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
+#define IDirect3DExecuteBuffer_Lock(p,a) (p)->lpVtbl->Lock(p,a)
+#define IDirect3DExecuteBuffer_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->lpVtbl->SetExecuteData(p,a)
+#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->lpVtbl->GetExecuteData(p,a)
+#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->lpVtbl->Validate(p,a,b,c,d)
+#define IDirect3DExecuteBuffer_Optimize(p,a) (p)->lpVtbl->Optimize(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DExecuteBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DExecuteBuffer_AddRef(p) (p)->AddRef()
+#define IDirect3DExecuteBuffer_Release(p) (p)->Release()
+/*** IDirect3DExecuteBuffer methods ***/
+#define IDirect3DExecuteBuffer_Initialize(p,a,b) (p)->Initialize(a,b)
+#define IDirect3DExecuteBuffer_Lock(p,a) (p)->Lock(a)
+#define IDirect3DExecuteBuffer_Unlock(p) (p)->Unlock()
+#define IDirect3DExecuteBuffer_SetExecuteData(p,a) (p)->SetExecuteData(a)
+#define IDirect3DExecuteBuffer_GetExecuteData(p,a) (p)->GetExecuteData(a)
+#define IDirect3DExecuteBuffer_Validate(p,a,b,c,d) (p)->Validate(a,b,c,d)
+#define IDirect3DExecuteBuffer_Optimize(p,a) (p)->Optimize(a)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DDevice interface
+ */
+#define INTERFACE IDirect3DDevice
+DECLARE_INTERFACE_(IDirect3DDevice,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice methods ***/
+ STDMETHOD(Initialize)(THIS_ IDirect3D *d3d, GUID *guid, D3DDEVICEDESC *desc) PURE;
+ STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE;
+ STDMETHOD(SwapTextureHandles)(THIS_ IDirect3DTexture *tex1, IDirect3DTexture *tex2) PURE;
+ STDMETHOD(CreateExecuteBuffer)(THIS_ D3DEXECUTEBUFFERDESC *desc,
+ IDirect3DExecuteBuffer **buffer, IUnknown *outer) PURE;
+ STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE;
+ STDMETHOD(Execute)(THIS_ IDirect3DExecuteBuffer *buffer, IDirect3DViewport *viewport,
+ DWORD flags) PURE;
+ STDMETHOD(AddViewport)(THIS_ IDirect3DViewport *viewport) PURE;
+ STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport *viewport) PURE;
+ STDMETHOD(NextViewport)(THIS_ IDirect3DViewport *ref,
+ IDirect3DViewport **viewport, DWORD flags) PURE;
+ STDMETHOD(Pick)(THIS_ IDirect3DExecuteBuffer *buffer, IDirect3DViewport *viewport,
+ DWORD flags, D3DRECT *rect) PURE;
+ STDMETHOD(GetPickRecords)(THIS_ DWORD *count, D3DPICKRECORD *records) PURE;
+ STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(CreateMatrix)(THIS_ D3DMATRIXHANDLE *matrix) PURE;
+ STDMETHOD(SetMatrix)(THIS_ D3DMATRIXHANDLE handle, D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrix)(THIS_ D3DMATRIXHANDLE handle, D3DMATRIX *matrix) PURE;
+ STDMETHOD(DeleteMatrix)(THIS_ D3DMATRIXHANDLE D3DMatHandle) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D **d3d) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice methods ***/
+#define IDirect3DDevice_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
+#define IDirect3DDevice_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
+#define IDirect3DDevice_SwapTextureHandles(p,a,b) (p)->lpVtbl->SwapTextureHandles(p,a,b)
+#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->lpVtbl->CreateExecuteBuffer(p,a,b,c)
+#define IDirect3DDevice_GetStats(p,a) (p)->lpVtbl->GetStats(p,a)
+#define IDirect3DDevice_Execute(p,a,b,c) (p)->lpVtbl->Execute(p,a,b,c)
+#define IDirect3DDevice_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a)
+#define IDirect3DDevice_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a)
+#define IDirect3DDevice_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c)
+#define IDirect3DDevice_Pick(p,a,b,c,d) (p)->lpVtbl->Pick(p,a,b,c,d)
+#define IDirect3DDevice_GetPickRecords(p,a,b) (p)->lpVtbl->GetPickRecords(p,a,b)
+#define IDirect3DDevice_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b)
+#define IDirect3DDevice_CreateMatrix(p,a) (p)->lpVtbl->CreateMatrix(p,a)
+#define IDirect3DDevice_SetMatrix(p,a,b) (p)->lpVtbl->SetMatrix(p,a,b)
+#define IDirect3DDevice_GetMatrix(p,a,b) (p)->lpVtbl->GetMatrix(p,a,b)
+#define IDirect3DDevice_DeleteMatrix(p,a) (p)->lpVtbl->DeleteMatrix(p,a)
+#define IDirect3DDevice_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice_Release(p) (p)->Release()
+/*** IDirect3DDevice methods ***/
+#define IDirect3DDevice_Initialize(p,a,b,c) (p)->Initialize(a,b,c)
+#define IDirect3DDevice_GetCaps(p,a,b) (p)->GetCaps(a,b)
+#define IDirect3DDevice_SwapTextureHandles(p,a,b) (p)->SwapTextureHandles(a,b)
+#define IDirect3DDevice_CreateExecuteBuffer(p,a,b,c) (p)->CreateExecuteBuffer(a,b,c)
+#define IDirect3DDevice_GetStats(p,a) (p)->GetStats(a)
+#define IDirect3DDevice_Execute(p,a,b,c) (p)->Execute(a,b,c)
+#define IDirect3DDevice_AddViewport(p,a) (p)->AddViewport(a)
+#define IDirect3DDevice_DeleteViewport(p,a) (p)->DeleteViewport(a)
+#define IDirect3DDevice_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c)
+#define IDirect3DDevice_Pick(p,a,b,c,d) (p)->Pick(a,b,c,d)
+#define IDirect3DDevice_GetPickRecords(p,a,b) (p)->GetPickRecords(a,b)
+#define IDirect3DDevice_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b)
+#define IDirect3DDevice_CreateMatrix(p,a) (p)->CreateMatrix(a)
+#define IDirect3DDevice_SetMatrix(p,a,b) (p)->SetMatrix(a,b)
+#define IDirect3DDevice_GetMatrix(p,a,b) (p)->GetMatrix(a,b)
+#define IDirect3DDevice_DeleteMatrix(p,a) (p)->DeleteMatrix(a)
+#define IDirect3DDevice_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#endif
+
+
+/*****************************************************************************
+ * IDirect3DDevice2 interface
+ */
+#define INTERFACE IDirect3DDevice2
+DECLARE_INTERFACE_(IDirect3DDevice2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice2 methods ***/
+ STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE;
+ STDMETHOD(SwapTextureHandles)(THIS_ IDirect3DTexture2 *tex1, IDirect3DTexture2 *tex2) PURE;
+ STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE;
+ STDMETHOD(AddViewport)(THIS_ IDirect3DViewport2 *viewport) PURE;
+ STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport2 *viewport) PURE;
+ STDMETHOD(NextViewport)(THIS_ IDirect3DViewport2 *ref,
+ IDirect3DViewport2 **viewport, DWORD flags) PURE;
+ STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMTEXTUREFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D2 **d3d) PURE;
+ /*** DrawPrimitive API ***/
+ STDMETHOD(SetCurrentViewport)(THIS_ IDirect3DViewport2 *viewport) PURE;
+ STDMETHOD(GetCurrentViewport)(THIS_ IDirect3DViewport2 **viewport) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface *surface, DWORD flags) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface **surface) PURE;
+ STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dpt,D3DVERTEXTYPE dwVertexTypeDesc,DWORD dwFlags) PURE;
+ STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE primitive_type, D3DVERTEXTYPE vertex_type,
+ void *vertices, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(Vertex)(THIS_ void *vertex) PURE;
+ STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
+ STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
+ STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
+ STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, D3DVERTEXTYPE vertex_type,
+ void *vertices, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, D3DVERTEXTYPE vertex_type,
+ void *vertices, DWORD vertex_count, WORD *indices, DWORD index_count, DWORD flags) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice2 methods ***/
+#define IDirect3DDevice2_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
+#define IDirect3DDevice2_SwapTextureHandles(p,a,b) (p)->lpVtbl->SwapTextureHandles(p,a,b)
+#define IDirect3DDevice2_GetStats(p,a) (p)->lpVtbl->GetStats(p,a)
+#define IDirect3DDevice2_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a)
+#define IDirect3DDevice2_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a)
+#define IDirect3DDevice2_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c)
+#define IDirect3DDevice2_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b)
+#define IDirect3DDevice2_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice2_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice2_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice2_SetCurrentViewport(p,a) (p)->lpVtbl->SetCurrentViewport(p,a)
+#define IDirect3DDevice2_GetCurrentViewport(p,a) (p)->lpVtbl->GetCurrentViewport(p,a)
+#define IDirect3DDevice2_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice2_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
+#define IDirect3DDevice2_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c)
+#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e) (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
+#define IDirect3DDevice2_Vertex(p,a) (p)->lpVtbl->Vertex(p,a)
+#define IDirect3DDevice2_Index(p,a) (p)->lpVtbl->Index(p,a)
+#define IDirect3DDevice2_End(p,a) (p)->lpVtbl->End(p,a)
+#define IDirect3DDevice2_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice2_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice2_GetLightState(p,a,b) (p)->lpVtbl->GetLightState(p,a,b)
+#define IDirect3DDevice2_SetLightState(p,a,b) (p)->lpVtbl->SetLightState(p,a,b)
+#define IDirect3DDevice2_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice2_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice2_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
+#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice2_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice2_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice2_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice2_Release(p) (p)->Release()
+/*** IDirect3DDevice2 methods ***/
+#define IDirect3DDevice2_GetCaps(p,a,b) (p)->GetCaps(a,b)
+#define IDirect3DDevice2_SwapTextureHandles(p,a,b) (p)->SwapTextureHandles(a,b)
+#define IDirect3DDevice2_GetStats(p,a) (p)->GetStats(a)
+#define IDirect3DDevice2_AddViewport(p,a) (p)->AddViewport(a)
+#define IDirect3DDevice2_DeleteViewport(p,a) (p)->DeleteViewport(a)
+#define IDirect3DDevice2_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c)
+#define IDirect3DDevice2_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b)
+#define IDirect3DDevice2_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice2_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice2_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice2_SetCurrentViewport(p,a) (p)->SetCurrentViewport(a)
+#define IDirect3DDevice2_GetCurrentViewport(p,a) (p)->GetCurrentViewport(a)
+#define IDirect3DDevice2_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice2_GetRenderTarget(p,a) (p)->GetRenderTarget(a)
+#define IDirect3DDevice2_Begin(p,a,b,c) (p)->Begin(a,b,c)
+#define IDirect3DDevice2_BeginIndexed(p,a,b,c,d,e) (p)->BeginIndexed(a,b,c,d,e)
+#define IDirect3DDevice2_Vertex(p,a) (p)->Vertex(a)
+#define IDirect3DDevice2_Index(p,a) (p)->Index(a)
+#define IDirect3DDevice2_End(p,a) (p)->End(a)
+#define IDirect3DDevice2_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice2_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice2_GetLightState(p,a,b) (p)->GetLightState(a,b)
+#define IDirect3DDevice2_SetLightState(p,a,b) (p)->SetLightState(a,b)
+#define IDirect3DDevice2_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice2_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice2_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice2_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e)
+#define IDirect3DDevice2_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
+#define IDirect3DDevice2_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice2_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DDevice3 interface
+ */
+#define INTERFACE IDirect3DDevice3
+DECLARE_INTERFACE_(IDirect3DDevice3,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice3 methods ***/
+ STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc) PURE;
+ STDMETHOD(GetStats)(THIS_ D3DSTATS *stats) PURE;
+ STDMETHOD(AddViewport)(THIS_ IDirect3DViewport3 *viewport) PURE;
+ STDMETHOD(DeleteViewport)(THIS_ IDirect3DViewport3 *viewport) PURE;
+ STDMETHOD(NextViewport)(THIS_ IDirect3DViewport3 *ref,
+ IDirect3DViewport3 **viewport, DWORD flags) PURE;
+ STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D3 **d3d) PURE;
+ /*** DrawPrimitive API ***/
+ STDMETHOD(SetCurrentViewport)(THIS_ IDirect3DViewport3 *viewport) PURE;
+ STDMETHOD(GetCurrentViewport)(THIS_ IDirect3DViewport3 **viewport) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface4 *surface, DWORD flags) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface4 **surface) PURE;
+ STDMETHOD(Begin)(THIS_ D3DPRIMITIVETYPE d3dptPrimitiveType,DWORD dwVertexTypeDesc, DWORD dwFlags) PURE;
+ STDMETHOD(BeginIndexed)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ void *vertices, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(Vertex)(THIS_ void *vertex) PURE;
+ STDMETHOD(Index)(THIS_ WORD wVertexIndex) PURE;
+ STDMETHOD(End)(THIS_ DWORD dwFlags) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
+ STDMETHOD(GetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState) PURE;
+ STDMETHOD(SetLightState)(THIS_ D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD vertex_type,
+ void *vertices, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ void *vertices, DWORD vertex_count, WORD *indices, DWORD index_count, DWORD flags) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+ STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, WORD *indices, DWORD index_count,
+ DWORD flags) PURE;
+ STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer *vb,
+ DWORD start_vertex, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer *vb,
+ WORD *indices, DWORD index_count, DWORD flags) PURE;
+ STDMETHOD(ComputeSphereVisibility)(THIS_ D3DVECTOR *centers, D3DVALUE *radii, DWORD sphere_count,
+ DWORD flags, DWORD *ret) PURE;
+ STDMETHOD(GetTexture)(THIS_ DWORD stage, IDirect3DTexture2 **texture) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD stage, IDirect3DTexture2 *texture) PURE;
+ STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
+ STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice3 methods ***/
+#define IDirect3DDevice3_GetCaps(p,a,b) (p)->lpVtbl->GetCaps(p,a,b)
+#define IDirect3DDevice3_GetStats(p,a) (p)->lpVtbl->GetStats(p,a)
+#define IDirect3DDevice3_AddViewport(p,a) (p)->lpVtbl->AddViewport(p,a)
+#define IDirect3DDevice3_DeleteViewport(p,a) (p)->lpVtbl->DeleteViewport(p,a)
+#define IDirect3DDevice3_NextViewport(p,a,b,c) (p)->lpVtbl->NextViewport(p,a,b,c)
+#define IDirect3DDevice3_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b)
+#define IDirect3DDevice3_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice3_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice3_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice3_SetCurrentViewport(p,a) (p)->lpVtbl->SetCurrentViewport(p,a)
+#define IDirect3DDevice3_GetCurrentViewport(p,a) (p)->lpVtbl->GetCurrentViewport(p,a)
+#define IDirect3DDevice3_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice3_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
+#define IDirect3DDevice3_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c)
+#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e) (p)->lpVtbl->BeginIndexed(p,a,b,c,d,e)
+#define IDirect3DDevice3_Vertex(p,a) (p)->lpVtbl->Vertex(p,a)
+#define IDirect3DDevice3_Index(p,a) (p)->lpVtbl->Index(p,a)
+#define IDirect3DDevice3_End(p,a) (p)->lpVtbl->End(p,a)
+#define IDirect3DDevice3_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice3_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice3_GetLightState(p,a,b) (p)->lpVtbl->GetLightState(p,a,b)
+#define IDirect3DDevice3_SetLightState(p,a,b) (p)->lpVtbl->SetLightState(p,a,b)
+#define IDirect3DDevice3_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice3_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice3_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice3_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice3_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e)
+#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e) (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
+#define IDirect3DDevice3_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice3_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice3_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice3_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice3_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice3_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice3_Release(p) (p)->Release()
+/*** IDirect3DDevice3 methods ***/
+#define IDirect3DDevice3_GetCaps(p,a,b) (p)->GetCaps(a,b)
+#define IDirect3DDevice3_GetStats(p,a) (p)->GetStats(a)
+#define IDirect3DDevice3_AddViewport(p,a) (p)->AddViewport(a)
+#define IDirect3DDevice3_DeleteViewport(p,a) (p)->DeleteViewport(a)
+#define IDirect3DDevice3_NextViewport(p,a,b,c) (p)->NextViewport(a,b,c)
+#define IDirect3DDevice3_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b)
+#define IDirect3DDevice3_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice3_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice3_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice3_SetCurrentViewport(p,a) (p)->SetCurrentViewport(a)
+#define IDirect3DDevice3_GetCurrentViewport(p,a) (p)->GetCurrentViewport(a)
+#define IDirect3DDevice3_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice3_GetRenderTarget(p,a) (p)->GetRenderTarget(a)
+#define IDirect3DDevice3_Begin(p,a,b,c) (p)->Begin(a,b,c)
+#define IDirect3DDevice3_BeginIndexed(p,a,b,c,d,e) (p)->BeginIndexed(a,b,c,d,e)
+#define IDirect3DDevice3_Vertex(p,a) (p)->Vertex(a)
+#define IDirect3DDevice3_Index(p,a) (p)->Index(a)
+#define IDirect3DDevice3_End(p,a) (p)->End(a)
+#define IDirect3DDevice3_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice3_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice3_GetLightState(p,a,b) (p)->GetLightState(a,b)
+#define IDirect3DDevice3_SetLightState(p,a,b) (p)->SetLightState(a,b)
+#define IDirect3DDevice3_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice3_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice3_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice3_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
+#define IDirect3DDevice3_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice3_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#define IDirect3DDevice3_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->DrawPrimitiveStrided(a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
+#define IDirect3DDevice3_DrawPrimitiveVB(p,a,b,c,d,e) (p)->DrawPrimitiveVB(a,b,c,d,e)
+#define IDirect3DDevice3_DrawIndexedPrimitiveVB(p,a,b,c,d,e) (p)->DrawIndexedPrimitiveVB(a,b,c,d,e)
+#define IDirect3DDevice3_ComputeSphereVisibility(p,a,b,c,d,e) (p)->ComputeSphereVisibility(a,b,c,d,e)
+#define IDirect3DDevice3_GetTexture(p,a,b) (p)->GetTexture(a,b)
+#define IDirect3DDevice3_SetTexture(p,a,b) (p)->SetTexture(a,b)
+#define IDirect3DDevice3_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
+#define IDirect3DDevice3_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
+#define IDirect3DDevice3_ValidateDevice(p,a) (p)->ValidateDevice(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DDevice7 interface
+ */
+#define INTERFACE IDirect3DDevice7
+DECLARE_INTERFACE_(IDirect3DDevice7,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice7 methods ***/
+ STDMETHOD(GetCaps)(THIS_ D3DDEVICEDESC7 *desc) PURE;
+ STDMETHOD(EnumTextureFormats)(THIS_ LPD3DENUMPIXELFORMATSCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D7 **d3d) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ IDirectDrawSurface7 *surface, DWORD flags) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ IDirectDrawSurface7 **surface) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD count, D3DRECT *rects, DWORD flags, D3DCOLOR color, D3DVALUE z, DWORD stencil) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(SetViewport)(THIS_ D3DVIEWPORT7 *data) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT7 *data) PURE;
+ STDMETHOD(SetMaterial)(THIS_ D3DMATERIAL7 *data) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL7 *data) PURE;
+ STDMETHOD(SetLight)(THIS_ DWORD idx, D3DLIGHT7 *data) PURE;
+ STDMETHOD(GetLight)(THIS_ DWORD idx, D3DLIGHT7 *data) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, DWORD dwRenderState) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState) PURE;
+ STDMETHOD(BeginStateBlock)(THIS) PURE;
+ STDMETHOD(EndStateBlock)(THIS_ LPDWORD lpdwBlockHandle) PURE;
+ STDMETHOD(PreLoad)(THIS_ IDirectDrawSurface7 *surface) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ void *vertices, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ void *vertices, DWORD vertex_count, WORD *indices, DWORD index_count, DWORD flags) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS *clip_status) PURE;
+ STDMETHOD(DrawPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitiveStrided)(THIS_ D3DPRIMITIVETYPE primitive_type, DWORD fvf,
+ D3DDRAWPRIMITIVESTRIDEDDATA *strided_data, DWORD vertex_count, WORD *indices, DWORD index_count,
+ DWORD flags) PURE;
+ STDMETHOD(DrawPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer7 *vb,
+ DWORD start_vertex, DWORD vertex_count, DWORD flags) PURE;
+ STDMETHOD(DrawIndexedPrimitiveVB)(THIS_ D3DPRIMITIVETYPE primitive_type, struct IDirect3DVertexBuffer7 *vb,
+ DWORD start_vertex, DWORD vertex_count, WORD *indices, DWORD index_count, DWORD flags) PURE;
+ STDMETHOD(ComputeSphereVisibility)(THIS_ D3DVECTOR *centers, D3DVALUE *radii, DWORD sphere_count,
+ DWORD flags, DWORD *ret) PURE;
+ STDMETHOD(GetTexture)(THIS_ DWORD stage, IDirectDrawSurface7 **surface) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD stage, IDirectDrawSurface7 *surface) PURE;
+ STDMETHOD(GetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,LPDWORD lpdwState) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD dwStage,D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,DWORD dwState) PURE;
+ STDMETHOD(ValidateDevice)(THIS_ LPDWORD lpdwPasses) PURE;
+ STDMETHOD(ApplyStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
+ STDMETHOD(CaptureStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
+ STDMETHOD(DeleteStateBlock)(THIS_ DWORD dwBlockHandle) PURE;
+ STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE d3dsbType,LPDWORD lpdwBlockHandle) PURE;
+ STDMETHOD(Load)(THIS_ IDirectDrawSurface7 *dst_surface, POINT *dst_point,
+ IDirectDrawSurface7 *src_surface, RECT *src_rect, DWORD flags) PURE;
+ STDMETHOD(LightEnable)(THIS_ DWORD dwLightIndex,WINBOOL bEnable) PURE;
+ STDMETHOD(GetLightEnable)(THIS_ DWORD dwLightIndex,WINBOOL *pbEnable) PURE;
+ STDMETHOD(SetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
+ STDMETHOD(GetClipPlane)(THIS_ DWORD dwIndex,D3DVALUE *pPlaneEquation) PURE;
+ STDMETHOD(GetInfo)(THIS_ DWORD info_id, void *info, DWORD info_size) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice7_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice7_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice7 methods ***/
+#define IDirect3DDevice7_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
+#define IDirect3DDevice7_EnumTextureFormats(p,a,b) (p)->lpVtbl->EnumTextureFormats(p,a,b)
+#define IDirect3DDevice7_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice7_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice7_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice7_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice7_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
+#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
+#define IDirect3DDevice7_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice7_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice7_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DDevice7_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice7_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DDevice7_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DDevice7_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DDevice7_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DDevice7_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
+#define IDirect3DDevice7_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice7_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice7_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
+#define IDirect3DDevice7_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
+#define IDirect3DDevice7_PreLoad(p,a) (p)->lpVtbl->PreLoad(p,a)
+#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitive(p,a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice7_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice7_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveStrided(p,a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e) (p)->lpVtbl->DrawPrimitiveVB(p,a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g) (p)->lpVtbl->DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e) (p)->lpVtbl->ComputeSphereVisibility(p,a,b,c,d,e)
+#define IDirect3DDevice7_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice7_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice7_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice7_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice7_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#define IDirect3DDevice7_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a)
+#define IDirect3DDevice7_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a)
+#define IDirect3DDevice7_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a)
+#define IDirect3DDevice7_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
+#define IDirect3DDevice7_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DDevice7_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
+#define IDirect3DDevice7_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
+#define IDirect3DDevice7_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
+#define IDirect3DDevice7_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
+#define IDirect3DDevice7_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice7_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice7_Release(p) (p)->Release()
+/*** IDirect3DDevice7 methods ***/
+#define IDirect3DDevice7_GetCaps(p,a) (p)->GetCaps(a)
+#define IDirect3DDevice7_EnumTextureFormats(p,a,b) (p)->EnumTextureFormats(a,b)
+#define IDirect3DDevice7_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice7_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice7_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice7_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice7_GetRenderTarget(p,a) (p)->GetRenderTarget(a)
+#define IDirect3DDevice7_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
+#define IDirect3DDevice7_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice7_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice7_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DDevice7_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice7_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DDevice7_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DDevice7_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DDevice7_SetLight(p,a,b) (p)->SetLight(a,b)
+#define IDirect3DDevice7_GetLight(p,a,b) (p)->GetLight(a,b)
+#define IDirect3DDevice7_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice7_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice7_BeginStateBlock(p) (p)->BeginStateBlock()
+#define IDirect3DDevice7_EndStateBlock(p,a) (p)->EndStateBlock(a)
+#define IDirect3DDevice7_PreLoad(p,a) (p)->PreLoad(a)
+#define IDirect3DDevice7_DrawPrimitive(p,a,b,c,d,e) (p)->DrawPrimitive(a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitive(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitive(a,b,c,d,e,f,g)
+#define IDirect3DDevice7_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice7_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#define IDirect3DDevice7_DrawPrimitiveStrided(p,a,b,c,d,e) (p)->DrawPrimitiveStrided(a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitiveStrided(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveStrided(a,b,c,d,e,f,g)
+#define IDirect3DDevice7_DrawPrimitiveVB(p,a,b,c,d,e) (p)->DrawPrimitiveVB(a,b,c,d,e)
+#define IDirect3DDevice7_DrawIndexedPrimitiveVB(p,a,b,c,d,e,f,g) (p)->DrawIndexedPrimitiveVB(a,b,c,d,e,f,g)
+#define IDirect3DDevice7_ComputeSphereVisibility(p,a,b,c,d,e) (p)->ComputeSphereVisibility(a,b,c,d,e)
+#define IDirect3DDevice7_GetTexture(p,a,b) (p)->GetTexture(a,b)
+#define IDirect3DDevice7_SetTexture(p,a,b) (p)->SetTexture(a,b)
+#define IDirect3DDevice7_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
+#define IDirect3DDevice7_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
+#define IDirect3DDevice7_ValidateDevice(p,a) (p)->ValidateDevice(a)
+#define IDirect3DDevice7_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a)
+#define IDirect3DDevice7_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a)
+#define IDirect3DDevice7_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a)
+#define IDirect3DDevice7_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
+#define IDirect3DDevice7_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DDevice7_LightEnable(p,a,b) (p)->LightEnable(a,b)
+#define IDirect3DDevice7_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
+#define IDirect3DDevice7_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
+#define IDirect3DDevice7_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
+#define IDirect3DDevice7_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c)
+#endif
+
+
+
+/*****************************************************************************
+ * IDirect3DVertexBuffer interface
+ */
+#define INTERFACE IDirect3DVertexBuffer
+DECLARE_INTERFACE_(IDirect3DVertexBuffer,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVertexBuffer methods ***/
+ STDMETHOD(Lock)(THIS_ DWORD flags, void **data, DWORD *data_size) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(ProcessVertices)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count,
+ IDirect3DVertexBuffer *src_buffer, DWORD src_idx,
+ IDirect3DDevice3 *device, DWORD flags) PURE;
+ STDMETHOD(GetVertexBufferDesc)(THIS_ D3DVERTEXBUFFERDESC *desc) PURE;
+ STDMETHOD(Optimize)(THIS_ IDirect3DDevice3 *device, DWORD flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexBuffer methods ***/
+#define IDirect3DVertexBuffer_Lock(p,a,b,c) (p)->lpVtbl->Lock(p,a,b,c)
+#define IDirect3DVertexBuffer_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
+#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a) (p)->lpVtbl->GetVertexBufferDesc(p,a)
+#define IDirect3DVertexBuffer_Optimize(p,a,b) (p)->lpVtbl->Optimize(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexBuffer_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexBuffer_Release(p) (p)->Release()
+/*** IDirect3DVertexBuffer methods ***/
+#define IDirect3DVertexBuffer_Lock(p,a,b,c) (p)->Lock(a,b,c)
+#define IDirect3DVertexBuffer_Unlock(p) (p)->Unlock()
+#define IDirect3DVertexBuffer_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g)
+#define IDirect3DVertexBuffer_GetVertexBufferDesc(p,a) (p)->GetVertexBufferDesc(a)
+#define IDirect3DVertexBuffer_Optimize(p,a,b) (p)->Optimize(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVertexBuffer7 interface
+ */
+#define INTERFACE IDirect3DVertexBuffer7
+DECLARE_INTERFACE_(IDirect3DVertexBuffer7,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVertexBuffer7 methods ***/
+ STDMETHOD(Lock)(THIS_ DWORD flags, void **data, DWORD *data_size) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(ProcessVertices)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count,
+ IDirect3DVertexBuffer7 *src_buffer, DWORD src_idx,
+ IDirect3DDevice7 *device, DWORD flags) PURE;
+ STDMETHOD(GetVertexBufferDesc)(THIS_ D3DVERTEXBUFFERDESC *desc) PURE;
+ STDMETHOD(Optimize)(THIS_ IDirect3DDevice7 *device, DWORD flags) PURE;
+ STDMETHOD(ProcessVerticesStrided)(THIS_ DWORD vertex_op, DWORD dst_idx, DWORD count,
+ D3DDRAWPRIMITIVESTRIDEDDATA *data, DWORD fvf, IDirect3DDevice7 *device, DWORD flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexBuffer7_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexBuffer7_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexBuffer7 methods ***/
+#define IDirect3DVertexBuffer7_Lock(p,a,b,c) (p)->lpVtbl->Lock(p,a,b,c)
+#define IDirect3DVertexBuffer7_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f,g)
+#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a) (p)->lpVtbl->GetVertexBufferDesc(p,a)
+#define IDirect3DVertexBuffer7_Optimize(p,a,b) (p)->lpVtbl->Optimize(p,a,b)
+#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->lpVtbl->ProcessVerticesStrided(p,a,b,c,d,e,f,g)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer7_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexBuffer7_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexBuffer7_Release(p) (p)->Release()
+/*** IDirect3DVertexBuffer7 methods ***/
+#define IDirect3DVertexBuffer7_Lock(p,a,b,c) (p)->Lock(a,b,c)
+#define IDirect3DVertexBuffer7_Unlock(p) (p)->Unlock()
+#define IDirect3DVertexBuffer7_ProcessVertices(p,a,b,c,d,e,f,g) (p)->ProcessVertices(a,b,c,d,e,f,g)
+#define IDirect3DVertexBuffer7_GetVertexBufferDesc(p,a) (p)->GetVertexBufferDesc(a)
+#define IDirect3DVertexBuffer7_Optimize(p,a,b) (p)->Optimize(a,b)
+#define IDirect3DVertexBuffer7_ProcessVerticesStrided(p,a,b,c,d,e,f,g) (p)->ProcessVerticesStrided(a,b,c,d,e,f,g)
+#endif
+
+#endif /* __WINE_D3D_H */
diff --git a/d3d10.h b/d3d10.h
new file mode 100644
index 0000000..70a78b9
--- /dev/null
+++ b/d3d10.h
@@ -0,0 +1,5789 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d10.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d10_h__
+#define __d3d10_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D10DeviceChild_FWD_DEFINED__
+#define __ID3D10DeviceChild_FWD_DEFINED__
+typedef interface ID3D10DeviceChild ID3D10DeviceChild;
+#ifdef __cplusplus
+interface ID3D10DeviceChild;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Resource_FWD_DEFINED__
+#define __ID3D10Resource_FWD_DEFINED__
+typedef interface ID3D10Resource ID3D10Resource;
+#ifdef __cplusplus
+interface ID3D10Resource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Buffer_FWD_DEFINED__
+#define __ID3D10Buffer_FWD_DEFINED__
+typedef interface ID3D10Buffer ID3D10Buffer;
+#ifdef __cplusplus
+interface ID3D10Buffer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Texture1D_FWD_DEFINED__
+#define __ID3D10Texture1D_FWD_DEFINED__
+typedef interface ID3D10Texture1D ID3D10Texture1D;
+#ifdef __cplusplus
+interface ID3D10Texture1D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Texture2D_FWD_DEFINED__
+#define __ID3D10Texture2D_FWD_DEFINED__
+typedef interface ID3D10Texture2D ID3D10Texture2D;
+#ifdef __cplusplus
+interface ID3D10Texture2D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Texture3D_FWD_DEFINED__
+#define __ID3D10Texture3D_FWD_DEFINED__
+typedef interface ID3D10Texture3D ID3D10Texture3D;
+#ifdef __cplusplus
+interface ID3D10Texture3D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10View_FWD_DEFINED__
+#define __ID3D10View_FWD_DEFINED__
+typedef interface ID3D10View ID3D10View;
+#ifdef __cplusplus
+interface ID3D10View;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10DepthStencilView_FWD_DEFINED__
+#define __ID3D10DepthStencilView_FWD_DEFINED__
+typedef interface ID3D10DepthStencilView ID3D10DepthStencilView;
+#ifdef __cplusplus
+interface ID3D10DepthStencilView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10RenderTargetView_FWD_DEFINED__
+#define __ID3D10RenderTargetView_FWD_DEFINED__
+typedef interface ID3D10RenderTargetView ID3D10RenderTargetView;
+#ifdef __cplusplus
+interface ID3D10RenderTargetView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__
+#define __ID3D10ShaderResourceView_FWD_DEFINED__
+typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView;
+#ifdef __cplusplus
+interface ID3D10ShaderResourceView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10BlendState_FWD_DEFINED__
+#define __ID3D10BlendState_FWD_DEFINED__
+typedef interface ID3D10BlendState ID3D10BlendState;
+#ifdef __cplusplus
+interface ID3D10BlendState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10DepthStencilState_FWD_DEFINED__
+#define __ID3D10DepthStencilState_FWD_DEFINED__
+typedef interface ID3D10DepthStencilState ID3D10DepthStencilState;
+#ifdef __cplusplus
+interface ID3D10DepthStencilState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10GeometryShader_FWD_DEFINED__
+#define __ID3D10GeometryShader_FWD_DEFINED__
+typedef interface ID3D10GeometryShader ID3D10GeometryShader;
+#ifdef __cplusplus
+interface ID3D10GeometryShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10InputLayout_FWD_DEFINED__
+#define __ID3D10InputLayout_FWD_DEFINED__
+typedef interface ID3D10InputLayout ID3D10InputLayout;
+#ifdef __cplusplus
+interface ID3D10InputLayout;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10PixelShader_FWD_DEFINED__
+#define __ID3D10PixelShader_FWD_DEFINED__
+typedef interface ID3D10PixelShader ID3D10PixelShader;
+#ifdef __cplusplus
+interface ID3D10PixelShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10RasterizerState_FWD_DEFINED__
+#define __ID3D10RasterizerState_FWD_DEFINED__
+typedef interface ID3D10RasterizerState ID3D10RasterizerState;
+#ifdef __cplusplus
+interface ID3D10RasterizerState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10SamplerState_FWD_DEFINED__
+#define __ID3D10SamplerState_FWD_DEFINED__
+typedef interface ID3D10SamplerState ID3D10SamplerState;
+#ifdef __cplusplus
+interface ID3D10SamplerState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10VertexShader_FWD_DEFINED__
+#define __ID3D10VertexShader_FWD_DEFINED__
+typedef interface ID3D10VertexShader ID3D10VertexShader;
+#ifdef __cplusplus
+interface ID3D10VertexShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Asynchronous_FWD_DEFINED__
+#define __ID3D10Asynchronous_FWD_DEFINED__
+typedef interface ID3D10Asynchronous ID3D10Asynchronous;
+#ifdef __cplusplus
+interface ID3D10Asynchronous;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Counter_FWD_DEFINED__
+#define __ID3D10Counter_FWD_DEFINED__
+typedef interface ID3D10Counter ID3D10Counter;
+#ifdef __cplusplus
+interface ID3D10Counter;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Query_FWD_DEFINED__
+#define __ID3D10Query_FWD_DEFINED__
+typedef interface ID3D10Query ID3D10Query;
+#ifdef __cplusplus
+interface ID3D10Query;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Predicate_FWD_DEFINED__
+#define __ID3D10Predicate_FWD_DEFINED__
+typedef interface ID3D10Predicate ID3D10Predicate;
+#ifdef __cplusplus
+interface ID3D10Predicate;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Device_FWD_DEFINED__
+#define __ID3D10Device_FWD_DEFINED__
+typedef interface ID3D10Device ID3D10Device;
+#ifdef __cplusplus
+interface ID3D10Device;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Multithread_FWD_DEFINED__
+#define __ID3D10Multithread_FWD_DEFINED__
+typedef interface ID3D10Multithread ID3D10Multithread;
+#ifdef __cplusplus
+interface ID3D10Multithread;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi.h>
+#include <d3dcommon.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _D3D10_CONSTANTS
+#define _D3D10_CONSTANTS
+#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA (1.00000000000000)
+
+#define D3D10_DEFAULT_BLEND_FACTOR_BLUE (1.00000000000000)
+
+#define D3D10_DEFAULT_BLEND_FACTOR_GREEN (1.00000000000000)
+
+#define D3D10_DEFAULT_BLEND_FACTOR_RED (1.00000000000000)
+
+#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT (0.00000000000000)
+
+#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.00000000000000)
+
+#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP (0.00000000000000)
+
+#define D3D10_DEFAULT_MAX_ANISOTROPY (16.0000000000000)
+
+#define D3D10_DEFAULT_MIP_LOD_BIAS (0.00000000000000)
+
+#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH (0.00000000000000)
+
+#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH (0.00000000000000)
+
+#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.600000000000000)
+
+#define D3D10_FLOAT32_MAX (3.40282346600000e+38)
+
+#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.600000000000000)
+
+#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR (2.40000000000000)
+
+#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR (1.00000000000000)
+
+#define D3D10_FLOAT_TO_SRGB_OFFSET (0.0550000000000000)
+
+#define D3D10_FLOAT_TO_SRGB_SCALE_1 (12.9200000000000)
+
+#define D3D10_FLOAT_TO_SRGB_SCALE_2 (1.05500000000000)
+
+#define D3D10_FLOAT_TO_SRGB_THRESHOLD (0.00313080000000000)
+
+#define D3D10_FTOI_INSTRUCTION_MAX_INPUT (2147483647.99900)
+
+#define D3D10_FTOI_INSTRUCTION_MIN_INPUT (-2147483648.99900)
+
+#define D3D10_FTOU_INSTRUCTION_MAX_INPUT (4294967295.99900)
+
+#define D3D10_FTOU_INSTRUCTION_MIN_INPUT (0.00000000000000)
+
+#define D3D10_LINEAR_GAMMA (1.00000000000000)
+
+#define D3D10_MAX_BORDER_COLOR_COMPONENT (1.00000000000000)
+
+#define D3D10_MAX_DEPTH (1.00000000000000)
+
+#define D3D10_MAX_POSITION_VALUE (3.40282346600000e+34)
+
+#define D3D10_MIN_BORDER_COLOR_COMPONENT (0.00000000000000)
+
+#define D3D10_MIN_DEPTH (0.00000000000000)
+
+#define D3D10_MIP_LOD_BIAS_MAX (15.9900000000000)
+
+#define D3D10_MIP_LOD_BIAS_MIN (-16.0000000000000)
+
+#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.500000000000000)
+
+#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH (1.40000000000000)
+
+#define D3D10_SRGB_GAMMA (2.20000000000000)
+
+#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 (12.9200000000000)
+
+#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 (1.05500000000000)
+
+#define D3D10_SRGB_TO_FLOAT_EXPONENT (2.40000000000000)
+
+#define D3D10_SRGB_TO_FLOAT_OFFSET (0.0550000000000000)
+
+#define D3D10_SRGB_TO_FLOAT_THRESHOLD (0.0404500000000000)
+
+#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.500000000000000)
+
+#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.00000000000000)
+
+#define D3D_SPEC_VERSION (1.05000500000000)
+
+#define D3D10_16BIT_INDEX_STRIP_CUT_VALUE (0xffff)
+
+#define D3D10_32BIT_INDEX_STRIP_CUT_VALUE (0xffffffff)
+
+#define D3D10_8BIT_INDEX_STRIP_CUT_VALUE (0xff)
+
+#define D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT (9)
+
+#define D3D10_CLIP_OR_CULL_DISTANCE_COUNT (8)
+
+#define D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT (2)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
+
+#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
+
+#define D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
+
+#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
+
+#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
+
+#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
+
+#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
+
+#define D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
+
+#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
+
+#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
+
+#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
+
+#define D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
+
+#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
+
+#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
+
+#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
+
+#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
+
+#define D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
+
+#define D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
+
+#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
+
+#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
+
+#define D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
+
+#define D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
+
+#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
+
+#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
+
+#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
+
+#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
+
+#define D3D10_DEFAULT_DEPTH_BIAS (0)
+
+#define D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
+
+#define D3D10_DEFAULT_SAMPLE_MASK (0xffffffff)
+
+#define D3D10_DEFAULT_SCISSOR_ENDX (0)
+
+#define D3D10_DEFAULT_SCISSOR_ENDY (0)
+
+#define D3D10_DEFAULT_SCISSOR_STARTX (0)
+
+#define D3D10_DEFAULT_SCISSOR_STARTY (0)
+
+#define D3D10_DEFAULT_STENCIL_READ_MASK (0xff)
+
+#define D3D10_DEFAULT_STENCIL_REFERENCE (0)
+
+#define D3D10_DEFAULT_STENCIL_WRITE_MASK (0xff)
+
+#define D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
+
+#define D3D10_DEFAULT_VIEWPORT_HEIGHT (0)
+
+#define D3D10_DEFAULT_VIEWPORT_TOPLEFTX (0)
+
+#define D3D10_DEFAULT_VIEWPORT_TOPLEFTY (0)
+
+#define D3D10_DEFAULT_VIEWPORT_WIDTH (0)
+
+#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS (1)
+
+#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT (1)
+
+#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST (2)
+
+#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS (1)
+
+#define D3D10_GS_INPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_GS_INPUT_REGISTER_COUNT (16)
+
+#define D3D10_GS_INPUT_REGISTER_READS_PER_INST (2)
+
+#define D3D10_GS_INPUT_REGISTER_READ_PORTS (1)
+
+#define D3D10_GS_INPUT_REGISTER_VERTICES (6)
+
+#define D3D10_GS_OUTPUT_ELEMENTS (32)
+
+#define D3D10_GS_OUTPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_GS_OUTPUT_REGISTER_COUNT (32)
+
+#define D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0)
+
+#define D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0)
+
+#define D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0)
+
+#define D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
+
+#define D3D10_IA_INSTANCE_ID_BIT_COUNT (32)
+
+#define D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT (32)
+
+#define D3D10_IA_PRIMITIVE_ID_BIT_COUNT (32)
+
+#define D3D10_IA_VERTEX_ID_BIT_COUNT (32)
+
+#define D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (16)
+
+#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (64)
+
+#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (16)
+
+#define D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT (0xffffffff)
+
+#define D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER (0xffffffff)
+
+#define D3D10_MAX_MAXANISOTROPY (16)
+
+#define D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
+
+#define D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP (17)
+
+#define D3D10_MIN_MAXANISOTROPY (0)
+
+#define D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT (6)
+
+#define D3D10_MIP_LOD_RANGE_BIT_COUNT (8)
+
+#define D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT (0)
+
+#define D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT (13)
+
+#define D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT (15)
+
+#define D3D10_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
+
+#define D3D10_PS_FRONTFACING_FALSE_VALUE (0)
+
+#define D3D10_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
+
+#define D3D10_PS_INPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_PS_INPUT_REGISTER_COUNT (32)
+
+#define D3D10_PS_INPUT_REGISTER_READS_PER_INST (2)
+
+#define D3D10_PS_INPUT_REGISTER_READ_PORTS (1)
+
+#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
+
+#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
+
+#define D3D10_PS_OUTPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_PS_OUTPUT_REGISTER_COUNT (8)
+
+#define D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT (4096)
+
+#define D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
+
+#define D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT (4096)
+
+#define D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
+
+#define D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
+
+#define D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (8192)
+
+#define D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
+
+#define D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D10_REQ_MAXANISOTROPY (16)
+
+#define D3D10_REQ_MIP_LEVELS (14)
+
+#define D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
+
+#define D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT (4096)
+
+#define D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (8192)
+
+#define D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES (128)
+
+#define D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP (20)
+
+#define D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT (4096)
+
+#define D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (512)
+
+#define D3D10_REQ_TEXTURE1D_U_DIMENSION (8192)
+
+#define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (512)
+
+#define D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192)
+
+#define D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
+
+#define D3D10_REQ_TEXTURECUBE_DIMENSION (8192)
+
+#define D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
+
+#define D3D10_SHADER_MAJOR_VERSION (4)
+
+#define D3D10_SHADER_MINOR_VERSION (0)
+
+#define D3D10_SHIFT_INSTRUCTION_PAD_VALUE (0)
+
+#define D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
+
+#define D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
+
+#define D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
+
+#define D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (256)
+
+#define D3D10_SO_BUFFER_SLOT_COUNT (4)
+
+#define D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
+
+#define D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER (1)
+
+#define D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT (64)
+
+#define D3D10_STANDARD_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
+
+#define D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
+
+#define D3D10_STANDARD_PIXEL_COMPONENT_COUNT (128)
+
+#define D3D10_STANDARD_PIXEL_ELEMENT_COUNT (32)
+
+#define D3D10_STANDARD_VECTOR_SIZE (4)
+
+#define D3D10_STANDARD_VERTEX_ELEMENT_COUNT (16)
+
+#define D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
+
+#define D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
+
+#define D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT (6)
+
+#define D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT (18)
+
+#define D3D10_UNBOUND_MEMORY_ACCESS_RESULT (0)
+
+#define D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
+
+#define D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
+
+#define D3D10_VIEWPORT_BOUNDS_MAX (16383)
+
+#define D3D10_VIEWPORT_BOUNDS_MIN (-16384)
+
+#define D3D10_VS_INPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_VS_INPUT_REGISTER_COUNT (16)
+
+#define D3D10_VS_INPUT_REGISTER_READS_PER_INST (2)
+
+#define D3D10_VS_INPUT_REGISTER_READ_PORTS (1)
+
+#define D3D10_VS_OUTPUT_REGISTER_COMPONENTS (4)
+
+#define D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_VS_OUTPUT_REGISTER_COUNT (16)
+
+#define D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT (10)
+
+#define D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (25)
+
+#define D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP (25)
+
+#define D3D_MAJOR_VERSION (10)
+
+#define D3D_MINOR_VERSION (0)
+
+#define D3D_SPEC_DATE_DAY (8)
+
+#define D3D_SPEC_DATE_MONTH (8)
+
+#define D3D_SPEC_DATE_YEAR (2006)
+
+#endif
+#define D3D10_APPEND_ALIGNED_ELEMENT (0xffffffff)
+
+#define _FACD3D10 (0x879)
+
+#define _FACD3D10DEBUG (_FACD3D10 + 1)
+
+#define D3D10_FILTER_TYPE_MASK (0x3)
+
+#define D3D10_SDK_VERSION (29)
+
+#define MAKE_D3D10_HRESULT(code) MAKE_HRESULT( 1, _FACD3D10, code)
+#define MAKE_D3D10_STATUS(code) MAKE_HRESULT( 0, _FACD3D10, code)
+#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS MAKE_D3D10_HRESULT(1)
+#define D3D10_ERROR_FILE_NOT_FOUND MAKE_D3D10_HRESULT(2)
+typedef enum D3D10_BLEND {
+ D3D10_BLEND_ZERO = 1,
+ D3D10_BLEND_ONE = 2,
+ D3D10_BLEND_SRC_COLOR = 3,
+ D3D10_BLEND_INV_SRC_COLOR = 4,
+ D3D10_BLEND_SRC_ALPHA = 5,
+ D3D10_BLEND_INV_SRC_ALPHA = 6,
+ D3D10_BLEND_DEST_ALPHA = 7,
+ D3D10_BLEND_INV_DEST_ALPHA = 8,
+ D3D10_BLEND_DEST_COLOR = 9,
+ D3D10_BLEND_INV_DEST_COLOR = 10,
+ D3D10_BLEND_SRC_ALPHA_SAT = 11,
+ D3D10_BLEND_BLEND_FACTOR = 14,
+ D3D10_BLEND_INV_BLEND_FACTOR = 15,
+ D3D10_BLEND_SRC1_COLOR = 16,
+ D3D10_BLEND_INV_SRC1_COLOR = 17,
+ D3D10_BLEND_SRC1_ALPHA = 18,
+ D3D10_BLEND_INV_SRC1_ALPHA = 19
+} D3D10_BLEND;
+typedef enum D3D10_BLEND_OP {
+ D3D10_BLEND_OP_ADD = 1,
+ D3D10_BLEND_OP_SUBTRACT = 2,
+ D3D10_BLEND_OP_REV_SUBTRACT = 3,
+ D3D10_BLEND_OP_MIN = 4,
+ D3D10_BLEND_OP_MAX = 5
+} D3D10_BLEND_OP;
+typedef struct D3D10_BLEND_DESC {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL BlendEnable[8];
+ D3D10_BLEND SrcBlend;
+ D3D10_BLEND DestBlend;
+ D3D10_BLEND_OP BlendOp;
+ D3D10_BLEND SrcBlendAlpha;
+ D3D10_BLEND DestBlendAlpha;
+ D3D10_BLEND_OP BlendOpAlpha;
+ UINT8 RenderTargetWriteMask[8];
+} D3D10_BLEND_DESC;
+typedef enum D3D10_DEPTH_WRITE_MASK {
+ D3D10_DEPTH_WRITE_MASK_ZERO = 0,
+ D3D10_DEPTH_WRITE_MASK_ALL = 1
+} D3D10_DEPTH_WRITE_MASK;
+typedef enum D3D10_COMPARISON_FUNC {
+ D3D10_COMPARISON_NEVER = 1,
+ D3D10_COMPARISON_LESS = 2,
+ D3D10_COMPARISON_EQUAL = 3,
+ D3D10_COMPARISON_LESS_EQUAL = 4,
+ D3D10_COMPARISON_GREATER = 5,
+ D3D10_COMPARISON_NOT_EQUAL = 6,
+ D3D10_COMPARISON_GREATER_EQUAL = 7,
+ D3D10_COMPARISON_ALWAYS = 8
+} D3D10_COMPARISON_FUNC;
+typedef enum D3D10_STENCIL_OP {
+ D3D10_STENCIL_OP_KEEP = 1,
+ D3D10_STENCIL_OP_ZERO = 2,
+ D3D10_STENCIL_OP_REPLACE = 3,
+ D3D10_STENCIL_OP_INCR_SAT = 4,
+ D3D10_STENCIL_OP_DECR_SAT = 5,
+ D3D10_STENCIL_OP_INVERT = 6,
+ D3D10_STENCIL_OP_INCR = 7,
+ D3D10_STENCIL_OP_DECR = 8
+} D3D10_STENCIL_OP;
+typedef struct D3D10_DEPTH_STENCILOP_DESC {
+ D3D10_STENCIL_OP StencilFailOp;
+ D3D10_STENCIL_OP StencilDepthFailOp;
+ D3D10_STENCIL_OP StencilPassOp;
+ D3D10_COMPARISON_FUNC StencilFunc;
+} D3D10_DEPTH_STENCILOP_DESC;
+typedef struct D3D10_DEPTH_STENCIL_DESC {
+ WINBOOL DepthEnable;
+ D3D10_DEPTH_WRITE_MASK DepthWriteMask;
+ D3D10_COMPARISON_FUNC DepthFunc;
+ WINBOOL StencilEnable;
+ UINT8 StencilReadMask;
+ UINT8 StencilWriteMask;
+ D3D10_DEPTH_STENCILOP_DESC FrontFace;
+ D3D10_DEPTH_STENCILOP_DESC BackFace;
+} D3D10_DEPTH_STENCIL_DESC;
+typedef enum D3D10_FILL_MODE {
+ D3D10_FILL_WIREFRAME = 2,
+ D3D10_FILL_SOLID = 3
+} D3D10_FILL_MODE;
+typedef enum D3D10_CULL_MODE {
+ D3D10_CULL_NONE = 1,
+ D3D10_CULL_FRONT = 2,
+ D3D10_CULL_BACK = 3
+} D3D10_CULL_MODE;
+typedef struct D3D10_RASTERIZER_DESC {
+ D3D10_FILL_MODE FillMode;
+ D3D10_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL ScissorEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+} D3D10_RASTERIZER_DESC;
+typedef enum D3D10_FILTER {
+ D3D10_FILTER_MIN_MAG_MIP_POINT = 0,
+ D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
+ D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
+ D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
+ D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
+ D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
+ D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
+ D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
+ D3D10_FILTER_ANISOTROPIC = 0x55,
+ D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
+ D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
+ D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
+ D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
+ D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
+ D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
+ D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
+ D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
+ D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
+ D3D10_FILTER_TEXT_1BIT = 0x80000000
+} D3D10_FILTER;
+typedef enum D3D10_TEXTURE_ADDRESS_MODE {
+ D3D10_TEXTURE_ADDRESS_WRAP = 1,
+ D3D10_TEXTURE_ADDRESS_MIRROR = 2,
+ D3D10_TEXTURE_ADDRESS_CLAMP = 3,
+ D3D10_TEXTURE_ADDRESS_BORDER = 4,
+ D3D10_TEXTURE_ADDRESS_MIRROR_ONCE = 5
+} D3D10_TEXTURE_ADDRESS_MODE;
+typedef struct D3D10_SAMPLER_DESC {
+ D3D10_FILTER Filter;
+ D3D10_TEXTURE_ADDRESS_MODE AddressU;
+ D3D10_TEXTURE_ADDRESS_MODE AddressV;
+ D3D10_TEXTURE_ADDRESS_MODE AddressW;
+ FLOAT MipLODBias;
+ UINT MaxAnisotropy;
+ D3D10_COMPARISON_FUNC ComparisonFunc;
+ FLOAT BorderColor[4];
+ FLOAT MinLOD;
+ FLOAT MaxLOD;
+} D3D10_SAMPLER_DESC;
+typedef enum D3D10_COUNTER {
+ D3D10_COUNTER_GPU_IDLE = 0,
+ D3D10_COUNTER_VERTEX_PROCESSING = 1,
+ D3D10_COUNTER_GEOMETRY_PROCESSING = 2,
+ D3D10_COUNTER_PIXEL_PROCESSING = 3,
+ D3D10_COUNTER_OTHER_GPU_PROCESSING = 4,
+ D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = 5,
+ D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = 6,
+ D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = 7,
+ D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = 8,
+ D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = 9,
+ D3D10_COUNTER_VS_MEMORY_LIMITED = 10,
+ D3D10_COUNTER_VS_COMPUTATION_LIMITED = 11,
+ D3D10_COUNTER_GS_MEMORY_LIMITED = 12,
+ D3D10_COUNTER_GS_COMPUTATION_LIMITED = 13,
+ D3D10_COUNTER_PS_MEMORY_LIMITED = 14,
+ D3D10_COUNTER_PS_COMPUTATION_LIMITED = 15,
+ D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = 16,
+ D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = 17,
+ D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
+} D3D10_COUNTER;
+typedef struct D3D10_COUNTER_DESC {
+ D3D10_COUNTER Counter;
+ UINT MiscFlags;
+} D3D10_COUNTER_DESC;
+typedef enum D3D10_COUNTER_TYPE {
+ D3D10_COUNTER_TYPE_FLOAT32 = 0,
+ D3D10_COUNTER_TYPE_UINT16 = 1,
+ D3D10_COUNTER_TYPE_UINT32 = 2,
+ D3D10_COUNTER_TYPE_UINT64 = 3
+} D3D10_COUNTER_TYPE;
+typedef struct D3D10_COUNTER_INFO {
+ D3D10_COUNTER LastDeviceDependentCounter;
+ UINT NumSimultaneousCounters;
+ UINT8 NumDetectableParallelUnits;
+} D3D10_COUNTER_INFO;
+typedef enum D3D10_RESOURCE_DIMENSION {
+ D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
+ D3D10_RESOURCE_DIMENSION_BUFFER = 1,
+ D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2,
+ D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3,
+ D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4
+} D3D10_RESOURCE_DIMENSION;
+typedef enum D3D10_USAGE {
+ D3D10_USAGE_DEFAULT = 0,
+ D3D10_USAGE_IMMUTABLE = 1,
+ D3D10_USAGE_DYNAMIC = 2,
+ D3D10_USAGE_STAGING = 3
+} D3D10_USAGE;
+typedef enum D3D10_BIND_FLAG {
+ D3D10_BIND_VERTEX_BUFFER = 0x1,
+ D3D10_BIND_INDEX_BUFFER = 0x2,
+ D3D10_BIND_CONSTANT_BUFFER = 0x4,
+ D3D10_BIND_SHADER_RESOURCE = 0x8,
+ D3D10_BIND_STREAM_OUTPUT = 0x10,
+ D3D10_BIND_RENDER_TARGET = 0x20,
+ D3D10_BIND_DEPTH_STENCIL = 0x40
+} D3D10_BIND_FLAG;
+typedef struct D3D10_BUFFER_DESC {
+ UINT ByteWidth;
+ D3D10_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D10_BUFFER_DESC;
+#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)
+struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC {
+ CD3D10_BUFFER_DESC() {}
+ explicit CD3D10_BUFFER_DESC(const D3D10_BUFFER_DESC &o) : D3D10_BUFFER_DESC(o) {}
+ explicit CD3D10_BUFFER_DESC(UINT byteWidth, UINT bindFlags, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT miscFlags = 0 ) {
+ ByteWidth = byteWidth;
+ Usage = usage;
+ BindFlags = bindFlags;
+ CPUAccessFlags = cpuaccessFlags;
+ MiscFlags = miscFlags;
+ }
+ ~CD3D10_BUFFER_DESC() {}
+ operator const D3D10_BUFFER_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef enum D3D10_MAP {
+ D3D10_MAP_READ = 1,
+ D3D10_MAP_WRITE = 2,
+ D3D10_MAP_READ_WRITE = 3,
+ D3D10_MAP_WRITE_DISCARD = 4,
+ D3D10_MAP_WRITE_NO_OVERWRITE = 5
+} D3D10_MAP;
+typedef struct D3D10_TEXTURE1D_DESC {
+ UINT Width;
+ UINT MipLevels;
+ UINT ArraySize;
+ DXGI_FORMAT Format;
+ D3D10_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D10_TEXTURE1D_DESC;
+#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)
+struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC {
+ CD3D10_TEXTURE1D_DESC() {}
+ explicit CD3D10_TEXTURE1D_DESC(const D3D10_TEXTURE1D_DESC &o) : D3D10_TEXTURE1D_DESC(o) {}
+ explicit CD3D10_TEXTURE1D_DESC(DXGI_FORMAT format, UINT width, UINT arraySize = 1, UINT mipLevels = 0,
+ UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0,
+ UINT miscFlags = 0) {
+ Width = width;
+ MipLevels = mipLevels;
+ ArraySize = arraySize;
+ Format = format;
+ Usage = usage;
+ BindFlags = bindFlags;
+ CPUAccessFlags = cpuaccessFlags;
+ MiscFlags = miscFlags;
+ }
+ ~CD3D10_TEXTURE1D_DESC() {}
+ operator const D3D10_TEXTURE1D_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef struct D3D10_TEXTURE2D_DESC {
+ UINT Width;
+ UINT Height;
+ UINT MipLevels;
+ UINT ArraySize;
+ DXGI_FORMAT Format;
+ DXGI_SAMPLE_DESC SampleDesc;
+ D3D10_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D10_TEXTURE2D_DESC;
+#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)
+struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC {
+ CD3D10_TEXTURE2D_DESC() {}
+ explicit CD3D10_TEXTURE2D_DESC(const D3D10_TEXTURE2D_DESC &o) : D3D10_TEXTURE2D_DESC(o) {}
+ explicit CD3D10_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height,
+ UINT arraySize = 1,
+ UINT mipLevels = 0,
+ UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
+ D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
+ UINT cpuaccessFlags = 0,
+ UINT sampleCount = 1,
+ UINT sampleQuality = 0,
+ UINT miscFlags = 0) {
+ Width = width;
+ Height = height;
+ MipLevels = mipLevels;
+ ArraySize = arraySize;
+ Format = format;
+ SampleDesc.Count = sampleCount;
+ SampleDesc.Quality = sampleQuality;
+ Usage = usage;
+ BindFlags = bindFlags;
+ CPUAccessFlags = cpuaccessFlags;
+ MiscFlags = miscFlags;
+ }
+ ~CD3D10_TEXTURE2D_DESC() {}
+ operator const D3D10_TEXTURE2D_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef struct D3D10_TEXTURE3D_DESC {
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT MipLevels;
+ DXGI_FORMAT Format;
+ D3D10_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D10_TEXTURE3D_DESC;
+typedef enum D3D10_DSV_DIMENSION {
+ D3D10_DSV_DIMENSION_UNKNOWN = 0,
+ D3D10_DSV_DIMENSION_TEXTURE1D = 1,
+ D3D10_DSV_DIMENSION_TEXTURE1DARRAY = 2,
+ D3D10_DSV_DIMENSION_TEXTURE2D = 3,
+ D3D10_DSV_DIMENSION_TEXTURE2DARRAY = 4,
+ D3D10_DSV_DIMENSION_TEXTURE2DMS = 5,
+ D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
+} D3D10_DSV_DIMENSION;
+typedef struct D3D10_TEX1D_DSV {
+ UINT MipSlice;
+} D3D10_TEX1D_DSV;
+typedef struct D3D10_TEX1D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX1D_ARRAY_DSV;
+typedef struct D3D10_TEX2D_DSV {
+ UINT MipSlice;
+} D3D10_TEX2D_DSV;
+typedef struct D3D10_TEX2D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2D_ARRAY_DSV;
+typedef struct D3D10_TEX2DMS_DSV {
+ UINT UnusedField_NothingToDefine;
+} D3D10_TEX2DMS_DSV;
+typedef struct D3D10_TEX2DMS_ARRAY_DSV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2DMS_ARRAY_DSV;
+typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D10_DSV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D10_TEX1D_DSV Texture1D;
+ D3D10_TEX1D_ARRAY_DSV Texture1DArray;
+ D3D10_TEX2D_DSV Texture2D;
+ D3D10_TEX2D_ARRAY_DSV Texture2DArray;
+ D3D10_TEX2DMS_DSV Texture2DMS;
+ D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D10_DEPTH_STENCIL_VIEW_DESC;
+typedef enum D3D10_RTV_DIMENSION {
+ D3D10_RTV_DIMENSION_UNKNOWN = 0,
+ D3D10_RTV_DIMENSION_BUFFER = 1,
+ D3D10_RTV_DIMENSION_TEXTURE1D = 2,
+ D3D10_RTV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D10_RTV_DIMENSION_TEXTURE2D = 4,
+ D3D10_RTV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D10_RTV_DIMENSION_TEXTURE2DMS = 6,
+ D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D10_RTV_DIMENSION_TEXTURE3D = 8
+} D3D10_RTV_DIMENSION;
+typedef struct D3D10_BUFFER_RTV {
+ __C89_NAMELESS union {
+ UINT FirstElement;
+ UINT ElementOffset;
+ } __C89_NAMELESSUNIONNAME1;
+ __C89_NAMELESS union {
+ UINT NumElements;
+ UINT ElementWidth;
+ } __C89_NAMELESSUNIONNAME2;
+} D3D10_BUFFER_RTV;
+typedef struct D3D10_TEX1D_RTV {
+ UINT MipSlice;
+} D3D10_TEX1D_RTV;
+typedef struct D3D10_TEX1D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX1D_ARRAY_RTV;
+typedef struct D3D10_TEX2D_RTV {
+ UINT MipSlice;
+} D3D10_TEX2D_RTV;
+typedef struct D3D10_TEX2D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2D_ARRAY_RTV;
+typedef struct D3D10_TEX2DMS_RTV {
+ UINT UnusedField_NothingToDefine;
+} D3D10_TEX2DMS_RTV;
+typedef struct D3D10_TEX2DMS_ARRAY_RTV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2DMS_ARRAY_RTV;
+typedef struct D3D10_TEX3D_RTV {
+ UINT MipSlice;
+ UINT FirstWSlice;
+ UINT WSize;
+} D3D10_TEX3D_RTV;
+typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D10_RTV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D10_BUFFER_RTV Buffer;
+ D3D10_TEX1D_RTV Texture1D;
+ D3D10_TEX1D_ARRAY_RTV Texture1DArray;
+ D3D10_TEX2D_RTV Texture2D;
+ D3D10_TEX2D_ARRAY_RTV Texture2DArray;
+ D3D10_TEX2DMS_RTV Texture2DMS;
+ D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
+ D3D10_TEX3D_RTV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D10_RENDER_TARGET_VIEW_DESC;
+typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
+typedef struct D3D10_BUFFER_SRV {
+ __C89_NAMELESS union {
+ UINT FirstElement;
+ UINT ElementOffset;
+ } __C89_NAMELESSUNIONNAME1;
+ __C89_NAMELESS union {
+ UINT NumElements;
+ UINT ElementWidth;
+ } __C89_NAMELESSUNIONNAME2;
+} D3D10_BUFFER_SRV;
+typedef struct D3D10_TEX1D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D10_TEX1D_SRV;
+typedef struct D3D10_TEX1D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX1D_ARRAY_SRV;
+typedef struct D3D10_TEX2D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D10_TEX2D_SRV;
+typedef struct D3D10_TEX2D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2D_ARRAY_SRV;
+typedef struct D3D10_TEX2DMS_SRV {
+ UINT UnusedField_NothingToDefine;
+} D3D10_TEX2DMS_SRV;
+typedef struct D3D10_TEX2DMS_ARRAY_SRV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D10_TEX2DMS_ARRAY_SRV;
+typedef struct D3D10_TEX3D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D10_TEX3D_SRV;
+typedef struct D3D10_TEXCUBE_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D10_TEXCUBE_SRV;
+typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D10_SRV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D10_BUFFER_SRV Buffer;
+ D3D10_TEX1D_SRV Texture1D;
+ D3D10_TEX1D_ARRAY_SRV Texture1DArray;
+ D3D10_TEX2D_SRV Texture2D;
+ D3D10_TEX2D_ARRAY_SRV Texture2DArray;
+ D3D10_TEX2DMS_SRV Texture2DMS;
+ D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
+ D3D10_TEX3D_SRV Texture3D;
+ D3D10_TEXCUBE_SRV TextureCube;
+ } __C89_NAMELESSUNIONNAME;
+} D3D10_SHADER_RESOURCE_VIEW_DESC;
+typedef struct D3D10_BOX {
+ UINT left;
+ UINT top;
+ UINT front;
+ UINT right;
+ UINT bottom;
+ UINT back;
+} D3D10_BOX;
+typedef struct D3D10_SUBRESOURCE_DATA {
+ const void *pSysMem;
+ UINT SysMemPitch;
+ UINT SysMemSlicePitch;
+} D3D10_SUBRESOURCE_DATA;
+typedef struct D3D10_SO_DECLARATION_ENTRY {
+ const char *SemanticName;
+ UINT SemanticIndex;
+ BYTE StartComponent;
+ BYTE ComponentCount;
+ BYTE OutputSlot;
+} D3D10_SO_DECLARATION_ENTRY;
+typedef enum D3D10_INPUT_CLASSIFICATION {
+ D3D10_INPUT_PER_VERTEX_DATA = 0,
+ D3D10_INPUT_PER_INSTANCE_DATA = 1
+} D3D10_INPUT_CLASSIFICATION;
+typedef struct D3D10_INPUT_ELEMENT_DESC {
+ const char *SemanticName;
+ UINT SemanticIndex;
+ DXGI_FORMAT Format;
+ UINT InputSlot;
+ UINT AlignedByteOffset;
+ D3D10_INPUT_CLASSIFICATION InputSlotClass;
+ UINT InstanceDataStepRate;
+} D3D10_INPUT_ELEMENT_DESC;
+typedef enum D3D10_QUERY {
+ D3D10_QUERY_EVENT = 0,
+ D3D10_QUERY_OCCLUSION = 1,
+ D3D10_QUERY_TIMESTAMP = 2,
+ D3D10_QUERY_TIMESTAMP_DISJOINT = 3,
+ D3D10_QUERY_PIPELINE_STATISTICS = 4,
+ D3D10_QUERY_OCCLUSION_PREDICATE = 5,
+ D3D10_QUERY_SO_STATISTICS = 6,
+ D3D10_QUERY_SO_OVERFLOW_PREDICATE = 7
+} D3D10_QUERY;
+typedef struct D3D10_QUERY_DESC {
+ D3D10_QUERY Query;
+ UINT MiscFlags;
+} D3D10_QUERY_DESC;
+typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
+typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
+typedef RECT D3D10_RECT;
+typedef struct D3D10_VIEWPORT {
+ INT TopLeftX;
+ INT TopLeftY;
+ UINT Width;
+ UINT Height;
+ FLOAT MinDepth;
+ FLOAT MaxDepth;
+} D3D10_VIEWPORT;
+typedef struct D3D10_MAPPED_TEXTURE2D {
+ void *pData;
+ UINT RowPitch;
+} D3D10_MAPPED_TEXTURE2D;
+typedef struct D3D10_MAPPED_TEXTURE3D {
+ void *pData;
+ UINT RowPitch;
+ UINT DepthPitch;
+} D3D10_MAPPED_TEXTURE3D;
+typedef enum D3D10_CPU_ACCESS_FLAG {
+ D3D10_CPU_ACCESS_WRITE = 0x10000,
+ D3D10_CPU_ACCESS_READ = 0x20000
+} D3D10_CPU_ACCESS_FLAG;
+typedef enum D3D10_RESOURCE_MISC_FLAG {
+ D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
+ D3D10_RESOURCE_MISC_SHARED = 0x2,
+ D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4,
+ D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x10,
+ D3D10_RESOURCE_MISC_GDI_COMPATIBLE = 0x20
+} D3D10_RESOURCE_MISC_FLAG;
+typedef enum D3D10_MAP_FLAG {
+ D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000
+} D3D10_MAP_FLAG;
+typedef enum D3D10_RAISE_FLAG {
+ D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1
+} D3D10_RAISE_FLAG;
+typedef enum D3D10_CLEAR_FLAG {
+ D3D10_CLEAR_DEPTH = 0x1,
+ D3D10_CLEAR_STENCIL = 0x2
+} D3D10_CLEAR_FLAG;
+typedef enum D3D10_COLOR_WRITE_ENABLE {
+ D3D10_COLOR_WRITE_ENABLE_RED = 0x1,
+ D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
+ D3D10_COLOR_WRITE_ENABLE_BLUE = 0x4,
+ D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
+ D3D10_COLOR_WRITE_ENABLE_ALL = ((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA
+} D3D10_COLOR_WRITE_ENABLE;
+typedef enum D3D10_FORMAT_SUPPORT {
+ D3D10_FORMAT_SUPPORT_BUFFER = 0x1,
+ D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
+ D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
+ D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x8,
+ D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x10,
+ D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x20,
+ D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x40,
+ D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
+ D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
+ D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
+ D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
+ D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
+ D3D10_FORMAT_SUPPORT_MIP = 0x1000,
+ D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
+ D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
+ D3D10_FORMAT_SUPPORT_BLENDABLE = 0x8000,
+ D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
+ D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
+ D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
+ D3D10_FORMAT_SUPPORT_DISPLAY = 0x80000,
+ D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
+ D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
+ D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
+ D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
+ D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000
+} D3D10_FORMAT_SUPPORT;
+typedef enum D3D10_TEXTURECUBE_FACE {
+ D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0,
+ D3D10_TEXTURECUBE_FACE_NEGATIVE_X = 1,
+ D3D10_TEXTURECUBE_FACE_POSITIVE_Y = 2,
+ D3D10_TEXTURECUBE_FACE_NEGATIVE_Y = 3,
+ D3D10_TEXTURECUBE_FACE_POSITIVE_Z = 4,
+ D3D10_TEXTURECUBE_FACE_NEGATIVE_Z = 5
+} D3D10_TEXTURECUBE_FACE;
+typedef enum D3D10_ASYNC_GETDATA_FLAG {
+ D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1
+} D3D10_ASYNC_GETDATA_FLAG;
+typedef enum D3D10_FILTER_TYPE {
+ D3D10_FILTER_TYPE_POINT = 0,
+ D3D10_FILTER_TYPE_LINEAR = 1
+} D3D10_FILTER_TYPE;
+typedef enum D3D10_QUERY_MISC_FLAG {
+ D3D10_QUERY_MISC_PREDICATEHINT = 0x1
+} D3D10_QUERY_MISC_FLAG;
+typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
+ UINT64 Frequency;
+ WINBOOL Disjoint;
+} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
+typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
+ UINT64 IAVertices;
+ UINT64 IAPrimitives;
+ UINT64 VSInvocations;
+ UINT64 GSInvocations;
+ UINT64 GSPrimitives;
+ UINT64 CInvocations;
+ UINT64 CPrimitives;
+ UINT64 PSInvocations;
+} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
+typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
+ UINT64 NumPrimitivesWritten;
+ UINT64 PrimitivesStorageNeeded;
+} D3D10_QUERY_DATA_SO_STATISTICS;
+typedef enum D3D10_CREATE_DEVICE_FLAG {
+ D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1,
+ D3D10_CREATE_DEVICE_DEBUG = 0x2,
+ D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
+ D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
+ D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP = 0x10,
+ D3D10_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
+ D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
+ D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200,
+ D3D10_CREATE_DEVICE_DEBUGGABLE = 0x400
+} D3D10_CREATE_DEVICE_FLAG;
+#ifndef __ID3D10Device_FWD_DEFINED__
+#define __ID3D10Device_FWD_DEFINED__
+typedef interface ID3D10Device ID3D10Device;
+#ifdef __cplusplus
+interface ID3D10Device;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ID3D10DeviceChild interface
+ */
+#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__
+#define __ID3D10DeviceChild_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10DeviceChild, 0x9b7e4c00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c00-342c-4106-a19f-4f2704f689f0")
+ID3D10DeviceChild : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE GetDevice(
+ ID3D10Device **ppDevice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *pData) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10DeviceChild, 0x9b7e4c00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10DeviceChildVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10DeviceChild *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10DeviceChild *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10DeviceChild *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10DeviceChild *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10DeviceChild *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10DeviceChild *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10DeviceChild *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D10DeviceChildVtbl;
+
+interface ID3D10DeviceChild {
+ CONST_VTBL ID3D10DeviceChildVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10DeviceChild_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10DeviceChild_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10DeviceChild_QueryInterface(ID3D10DeviceChild* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10DeviceChild_AddRef(ID3D10DeviceChild* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10DeviceChild_Release(ID3D10DeviceChild* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10DeviceChild_GetDevice(ID3D10DeviceChild* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10DeviceChild_GetPrivateData(ID3D10DeviceChild* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DeviceChild_SetPrivateData(ID3D10DeviceChild* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DeviceChild_SetPrivateDataInterface(ID3D10DeviceChild* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Resource interface
+ */
+#ifndef __ID3D10Resource_INTERFACE_DEFINED__
+#define __ID3D10Resource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Resource, 0x9b7e4c01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c01-342c-4106-a19f-4f2704f689f0")
+ID3D10Resource : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetType(
+ D3D10_RESOURCE_DIMENSION *rType) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEvictionPriority(
+ UINT EvictionPriority) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetEvictionPriority(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Resource, 0x9b7e4c01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10ResourceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Resource *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Resource *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Resource *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Resource *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Resource *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Resource *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Resource *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D10Resource *This,
+ D3D10_RESOURCE_DIMENSION *rType);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D10Resource *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D10Resource *This);
+
+ END_INTERFACE
+} ID3D10ResourceVtbl;
+
+interface ID3D10Resource {
+ CONST_VTBL ID3D10ResourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Resource_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Resource_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Resource methods ***/
+#define ID3D10Resource_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
+#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D10Resource_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Resource_QueryInterface(ID3D10Resource* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Resource_AddRef(ID3D10Resource* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Resource_Release(ID3D10Resource* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Resource_GetDevice(ID3D10Resource* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Resource_GetPrivateData(ID3D10Resource* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Resource_SetPrivateData(ID3D10Resource* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Resource_SetPrivateDataInterface(ID3D10Resource* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Resource methods ***/
+static FORCEINLINE void ID3D10Resource_GetType(ID3D10Resource* This,D3D10_RESOURCE_DIMENSION *rType) {
+ This->lpVtbl->GetType(This,rType);
+}
+static FORCEINLINE void ID3D10Resource_SetEvictionPriority(ID3D10Resource* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D10Resource_GetEvictionPriority(ID3D10Resource* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Resource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Buffer interface
+ */
+#ifndef __ID3D10Buffer_INTERFACE_DEFINED__
+#define __ID3D10Buffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Buffer, 0x9b7e4c02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c02-342c-4106-a19f-4f2704f689f0")
+ID3D10Buffer : public ID3D10Resource
+{
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ void **ppData) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_BUFFER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Buffer, 0x9b7e4c02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10BufferVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Buffer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Buffer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Buffer *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Buffer *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Buffer *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Buffer *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Buffer *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D10Buffer *This,
+ D3D10_RESOURCE_DIMENSION *rType);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D10Buffer *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D10Buffer *This);
+
+ /*** ID3D10Buffer methods ***/
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D10Buffer *This,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ void **ppData);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D10Buffer *This);
+
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Buffer *This,
+ D3D10_BUFFER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10BufferVtbl;
+
+interface ID3D10Buffer {
+ CONST_VTBL ID3D10BufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Buffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Buffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Buffer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Buffer_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Resource methods ***/
+#define ID3D10Buffer_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
+#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D10Buffer_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D10Buffer methods ***/
+#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,MapType,MapFlags,ppData)
+#define ID3D10Buffer_Unmap(This) (This)->lpVtbl->Unmap(This)
+#define ID3D10Buffer_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Buffer_QueryInterface(ID3D10Buffer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Buffer_AddRef(ID3D10Buffer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Buffer_Release(ID3D10Buffer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Buffer_GetDevice(ID3D10Buffer* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Buffer_GetPrivateData(ID3D10Buffer* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Buffer_SetPrivateData(ID3D10Buffer* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Buffer_SetPrivateDataInterface(ID3D10Buffer* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Resource methods ***/
+static FORCEINLINE void ID3D10Buffer_GetType(ID3D10Buffer* This,D3D10_RESOURCE_DIMENSION *rType) {
+ This->lpVtbl->GetType(This,rType);
+}
+static FORCEINLINE void ID3D10Buffer_SetEvictionPriority(ID3D10Buffer* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D10Buffer_GetEvictionPriority(ID3D10Buffer* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D10Buffer methods ***/
+static FORCEINLINE HRESULT ID3D10Buffer_Map(ID3D10Buffer* This,D3D10_MAP MapType,UINT MapFlags,void **ppData) {
+ return This->lpVtbl->Map(This,MapType,MapFlags,ppData);
+}
+static FORCEINLINE void ID3D10Buffer_Unmap(ID3D10Buffer* This) {
+ This->lpVtbl->Unmap(This);
+}
+static FORCEINLINE void ID3D10Buffer_GetDesc(ID3D10Buffer* This,D3D10_BUFFER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Buffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Texture1D interface
+ */
+#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__
+#define __ID3D10Texture1D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Texture1D, 0x9b7e4c03, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c03-342c-4106-a19f-4f2704f689f0")
+ID3D10Texture1D : public ID3D10Resource
+{
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ void **ppData) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ UINT Subresource) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_TEXTURE1D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Texture1D, 0x9b7e4c03, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10Texture1DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Texture1D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Texture1D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Texture1D *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Texture1D *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Texture1D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Texture1D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Texture1D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D10Texture1D *This,
+ D3D10_RESOURCE_DIMENSION *rType);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D10Texture1D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D10Texture1D *This);
+
+ /*** ID3D10Texture1D methods ***/
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D10Texture1D *This,
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ void **ppData);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D10Texture1D *This,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Texture1D *This,
+ D3D10_TEXTURE1D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10Texture1DVtbl;
+
+interface ID3D10Texture1D {
+ CONST_VTBL ID3D10Texture1DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Texture1D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Texture1D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Texture1D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Resource methods ***/
+#define ID3D10Texture1D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
+#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D10Texture1D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D10Texture1D methods ***/
+#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,ppData)
+#define ID3D10Texture1D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
+#define ID3D10Texture1D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Texture1D_QueryInterface(ID3D10Texture1D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Texture1D_AddRef(ID3D10Texture1D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Texture1D_Release(ID3D10Texture1D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Texture1D_GetDevice(ID3D10Texture1D* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Texture1D_GetPrivateData(ID3D10Texture1D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture1D_SetPrivateData(ID3D10Texture1D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture1D_SetPrivateDataInterface(ID3D10Texture1D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Resource methods ***/
+static FORCEINLINE void ID3D10Texture1D_GetType(ID3D10Texture1D* This,D3D10_RESOURCE_DIMENSION *rType) {
+ This->lpVtbl->GetType(This,rType);
+}
+static FORCEINLINE void ID3D10Texture1D_SetEvictionPriority(ID3D10Texture1D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D10Texture1D_GetEvictionPriority(ID3D10Texture1D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D10Texture1D methods ***/
+static FORCEINLINE HRESULT ID3D10Texture1D_Map(ID3D10Texture1D* This,UINT Subresource,D3D10_MAP MapType,UINT MapFlags,void **ppData) {
+ return This->lpVtbl->Map(This,Subresource,MapType,MapFlags,ppData);
+}
+static FORCEINLINE void ID3D10Texture1D_Unmap(ID3D10Texture1D* This,UINT Subresource) {
+ This->lpVtbl->Unmap(This,Subresource);
+}
+static FORCEINLINE void ID3D10Texture1D_GetDesc(ID3D10Texture1D* This,D3D10_TEXTURE1D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Texture1D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Texture2D interface
+ */
+#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__
+#define __ID3D10Texture2D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Texture2D, 0x9b7e4c04, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c04-342c-4106-a19f-4f2704f689f0")
+ID3D10Texture2D : public ID3D10Resource
+{
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ UINT Subresource) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_TEXTURE2D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Texture2D, 0x9b7e4c04, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10Texture2DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Texture2D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Texture2D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Texture2D *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Texture2D *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Texture2D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Texture2D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Texture2D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D10Texture2D *This,
+ D3D10_RESOURCE_DIMENSION *rType);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D10Texture2D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D10Texture2D *This);
+
+ /*** ID3D10Texture2D methods ***/
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D10Texture2D *This,
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D10Texture2D *This,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Texture2D *This,
+ D3D10_TEXTURE2D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10Texture2DVtbl;
+
+interface ID3D10Texture2D {
+ CONST_VTBL ID3D10Texture2DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Texture2D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Texture2D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Texture2D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Resource methods ***/
+#define ID3D10Texture2D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
+#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D10Texture2D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D10Texture2D methods ***/
+#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex2D)
+#define ID3D10Texture2D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
+#define ID3D10Texture2D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Texture2D_QueryInterface(ID3D10Texture2D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Texture2D_AddRef(ID3D10Texture2D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Texture2D_Release(ID3D10Texture2D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Texture2D_GetDevice(ID3D10Texture2D* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Texture2D_GetPrivateData(ID3D10Texture2D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture2D_SetPrivateData(ID3D10Texture2D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture2D_SetPrivateDataInterface(ID3D10Texture2D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Resource methods ***/
+static FORCEINLINE void ID3D10Texture2D_GetType(ID3D10Texture2D* This,D3D10_RESOURCE_DIMENSION *rType) {
+ This->lpVtbl->GetType(This,rType);
+}
+static FORCEINLINE void ID3D10Texture2D_SetEvictionPriority(ID3D10Texture2D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D10Texture2D_GetEvictionPriority(ID3D10Texture2D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D10Texture2D methods ***/
+static FORCEINLINE HRESULT ID3D10Texture2D_Map(ID3D10Texture2D* This,UINT Subresource,D3D10_MAP MapType,UINT MapFlags,D3D10_MAPPED_TEXTURE2D *pMappedTex2D) {
+ return This->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex2D);
+}
+static FORCEINLINE void ID3D10Texture2D_Unmap(ID3D10Texture2D* This,UINT Subresource) {
+ This->lpVtbl->Unmap(This,Subresource);
+}
+static FORCEINLINE void ID3D10Texture2D_GetDesc(ID3D10Texture2D* This,D3D10_TEXTURE2D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Texture2D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Texture3D interface
+ */
+#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__
+#define __ID3D10Texture3D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Texture3D, 0x9b7e4c05, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c05-342c-4106-a19f-4f2704f689f0")
+ID3D10Texture3D : public ID3D10Resource
+{
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ UINT Subresource) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_TEXTURE3D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Texture3D, 0x9b7e4c05, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10Texture3DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Texture3D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Texture3D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Texture3D *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Texture3D *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Texture3D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Texture3D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Texture3D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D10Texture3D *This,
+ D3D10_RESOURCE_DIMENSION *rType);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D10Texture3D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D10Texture3D *This);
+
+ /*** ID3D10Texture3D methods ***/
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D10Texture3D *This,
+ UINT Subresource,
+ D3D10_MAP MapType,
+ UINT MapFlags,
+ D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D10Texture3D *This,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Texture3D *This,
+ D3D10_TEXTURE3D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10Texture3DVtbl;
+
+interface ID3D10Texture3D {
+ CONST_VTBL ID3D10Texture3DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Texture3D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Texture3D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Texture3D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Resource methods ***/
+#define ID3D10Texture3D_GetType(This,rType) (This)->lpVtbl->GetType(This,rType)
+#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D10Texture3D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D10Texture3D methods ***/
+#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D) (This)->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex3D)
+#define ID3D10Texture3D_Unmap(This,Subresource) (This)->lpVtbl->Unmap(This,Subresource)
+#define ID3D10Texture3D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Texture3D_QueryInterface(ID3D10Texture3D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Texture3D_AddRef(ID3D10Texture3D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Texture3D_Release(ID3D10Texture3D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Texture3D_GetDevice(ID3D10Texture3D* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Texture3D_GetPrivateData(ID3D10Texture3D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture3D_SetPrivateData(ID3D10Texture3D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Texture3D_SetPrivateDataInterface(ID3D10Texture3D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Resource methods ***/
+static FORCEINLINE void ID3D10Texture3D_GetType(ID3D10Texture3D* This,D3D10_RESOURCE_DIMENSION *rType) {
+ This->lpVtbl->GetType(This,rType);
+}
+static FORCEINLINE void ID3D10Texture3D_SetEvictionPriority(ID3D10Texture3D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D10Texture3D_GetEvictionPriority(ID3D10Texture3D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D10Texture3D methods ***/
+static FORCEINLINE HRESULT ID3D10Texture3D_Map(ID3D10Texture3D* This,UINT Subresource,D3D10_MAP MapType,UINT MapFlags,D3D10_MAPPED_TEXTURE3D *pMappedTex3D) {
+ return This->lpVtbl->Map(This,Subresource,MapType,MapFlags,pMappedTex3D);
+}
+static FORCEINLINE void ID3D10Texture3D_Unmap(ID3D10Texture3D* This,UINT Subresource) {
+ This->lpVtbl->Unmap(This,Subresource);
+}
+static FORCEINLINE void ID3D10Texture3D_GetDesc(ID3D10Texture3D* This,D3D10_TEXTURE3D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Texture3D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10View interface
+ */
+#ifndef __ID3D10View_INTERFACE_DEFINED__
+#define __ID3D10View_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10View, 0xc902b03f, 0x60a7, 0x49ba, 0x99,0x36, 0x2a,0x3a,0xb3,0x7a,0x7e,0x33);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c902b03f-60a7-49ba-9936-2a3ab37a7e33")
+ID3D10View : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetResource(
+ ID3D10Resource **ppResource) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10View, 0xc902b03f, 0x60a7, 0x49ba, 0x99,0x36, 0x2a,0x3a,0xb3,0x7a,0x7e,0x33)
+#endif
+#else
+typedef struct ID3D10ViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10View *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10View *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10View *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10View *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10View *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10View *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10View *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D10View *This,
+ ID3D10Resource **ppResource);
+
+ END_INTERFACE
+} ID3D10ViewVtbl;
+
+interface ID3D10View {
+ CONST_VTBL ID3D10ViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10View_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10View_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10View_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10View_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10View_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10View_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10View methods ***/
+#define ID3D10View_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10View_QueryInterface(ID3D10View* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10View_AddRef(ID3D10View* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10View_Release(ID3D10View* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10View_GetDevice(ID3D10View* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10View_GetPrivateData(ID3D10View* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10View_SetPrivateData(ID3D10View* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10View_SetPrivateDataInterface(ID3D10View* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10View methods ***/
+static FORCEINLINE void ID3D10View_GetResource(ID3D10View* This,ID3D10Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10View_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10DepthStencilView interface
+ */
+#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__
+#define __ID3D10DepthStencilView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10DepthStencilView, 0x9b7e4c09, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c09-342c-4106-a19f-4f2704f689f0")
+ID3D10DepthStencilView : public ID3D10View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10DepthStencilView, 0x9b7e4c09, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10DepthStencilViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10DepthStencilView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10DepthStencilView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10DepthStencilView *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10DepthStencilView *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10DepthStencilView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10DepthStencilView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10DepthStencilView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D10DepthStencilView *This,
+ ID3D10Resource **ppResource);
+
+ /*** ID3D10DepthStencilView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10DepthStencilView *This,
+ D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10DepthStencilViewVtbl;
+
+interface ID3D10DepthStencilView {
+ CONST_VTBL ID3D10DepthStencilViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10DepthStencilView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10DepthStencilView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10DepthStencilView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10View methods ***/
+#define ID3D10DepthStencilView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D10DepthStencilView methods ***/
+#define ID3D10DepthStencilView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10DepthStencilView_QueryInterface(ID3D10DepthStencilView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10DepthStencilView_AddRef(ID3D10DepthStencilView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10DepthStencilView_Release(ID3D10DepthStencilView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10DepthStencilView_GetDevice(ID3D10DepthStencilView* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilView_GetPrivateData(ID3D10DepthStencilView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilView_SetPrivateData(ID3D10DepthStencilView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilView_SetPrivateDataInterface(ID3D10DepthStencilView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10View methods ***/
+static FORCEINLINE void ID3D10DepthStencilView_GetResource(ID3D10DepthStencilView* This,ID3D10Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D10DepthStencilView methods ***/
+static FORCEINLINE void ID3D10DepthStencilView_GetDesc(ID3D10DepthStencilView* This,D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10RenderTargetView interface
+ */
+#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__
+#define __ID3D10RenderTargetView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10RenderTargetView, 0x9b7e4c08, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c08-342c-4106-a19f-4f2704f689f0")
+ID3D10RenderTargetView : public ID3D10View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10RenderTargetView, 0x9b7e4c08, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10RenderTargetViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10RenderTargetView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10RenderTargetView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10RenderTargetView *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10RenderTargetView *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10RenderTargetView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10RenderTargetView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10RenderTargetView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D10RenderTargetView *This,
+ ID3D10Resource **ppResource);
+
+ /*** ID3D10RenderTargetView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10RenderTargetView *This,
+ D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10RenderTargetViewVtbl;
+
+interface ID3D10RenderTargetView {
+ CONST_VTBL ID3D10RenderTargetViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10RenderTargetView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10RenderTargetView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10RenderTargetView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10View methods ***/
+#define ID3D10RenderTargetView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D10RenderTargetView methods ***/
+#define ID3D10RenderTargetView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10RenderTargetView_QueryInterface(ID3D10RenderTargetView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10RenderTargetView_AddRef(ID3D10RenderTargetView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10RenderTargetView_Release(ID3D10RenderTargetView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10RenderTargetView_GetDevice(ID3D10RenderTargetView* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10RenderTargetView_GetPrivateData(ID3D10RenderTargetView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10RenderTargetView_SetPrivateData(ID3D10RenderTargetView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10RenderTargetView_SetPrivateDataInterface(ID3D10RenderTargetView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10View methods ***/
+static FORCEINLINE void ID3D10RenderTargetView_GetResource(ID3D10RenderTargetView* This,ID3D10Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D10RenderTargetView methods ***/
+static FORCEINLINE void ID3D10RenderTargetView_GetDesc(ID3D10RenderTargetView* This,D3D10_RENDER_TARGET_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10ShaderResourceView interface
+ */
+#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__
+#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10ShaderResourceView, 0x9b7e4c07, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c07-342c-4106-a19f-4f2704f689f0")
+ID3D10ShaderResourceView : public ID3D10View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10ShaderResourceView, 0x9b7e4c07, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10ShaderResourceViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10ShaderResourceView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10ShaderResourceView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10ShaderResourceView *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10ShaderResourceView *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10ShaderResourceView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10ShaderResourceView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10ShaderResourceView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D10ShaderResourceView *This,
+ ID3D10Resource **ppResource);
+
+ /*** ID3D10ShaderResourceView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10ShaderResourceView *This,
+ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10ShaderResourceViewVtbl;
+
+interface ID3D10ShaderResourceView {
+ CONST_VTBL ID3D10ShaderResourceViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10ShaderResourceView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10ShaderResourceView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10ShaderResourceView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10View methods ***/
+#define ID3D10ShaderResourceView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D10ShaderResourceView methods ***/
+#define ID3D10ShaderResourceView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10ShaderResourceView_QueryInterface(ID3D10ShaderResourceView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10ShaderResourceView_AddRef(ID3D10ShaderResourceView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10ShaderResourceView_Release(ID3D10ShaderResourceView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView_GetDevice(ID3D10ShaderResourceView* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView_GetPrivateData(ID3D10ShaderResourceView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView_SetPrivateData(ID3D10ShaderResourceView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView_SetPrivateDataInterface(ID3D10ShaderResourceView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10View methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView_GetResource(ID3D10ShaderResourceView* This,ID3D10Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D10ShaderResourceView methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView_GetDesc(ID3D10ShaderResourceView* This,D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10BlendState interface
+ */
+#ifndef __ID3D10BlendState_INTERFACE_DEFINED__
+#define __ID3D10BlendState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10BlendState, 0xedad8d19, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("edad8d19-8a35-4d6d-8566-2ea276cde161")
+ID3D10BlendState : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_BLEND_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10BlendState, 0xedad8d19, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61)
+#endif
+#else
+typedef struct ID3D10BlendStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10BlendState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10BlendState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10BlendState *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10BlendState *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10BlendState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10BlendState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10BlendState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10BlendState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10BlendState *This,
+ D3D10_BLEND_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10BlendStateVtbl;
+
+interface ID3D10BlendState {
+ CONST_VTBL ID3D10BlendStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10BlendState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10BlendState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10BlendState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10BlendState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10BlendState methods ***/
+#define ID3D10BlendState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10BlendState_QueryInterface(ID3D10BlendState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10BlendState_AddRef(ID3D10BlendState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10BlendState_Release(ID3D10BlendState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10BlendState_GetDevice(ID3D10BlendState* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10BlendState_GetPrivateData(ID3D10BlendState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10BlendState_SetPrivateData(ID3D10BlendState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10BlendState_SetPrivateDataInterface(ID3D10BlendState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10BlendState methods ***/
+static FORCEINLINE void ID3D10BlendState_GetDesc(ID3D10BlendState* This,D3D10_BLEND_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10BlendState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10DepthStencilState interface
+ */
+#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__
+#define __ID3D10DepthStencilState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10DepthStencilState, 0x2b4b1cc8, 0xa4ad, 0x41f8, 0x83,0x22, 0xca,0x86,0xfc,0x3e,0xc6,0x75);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675")
+ID3D10DepthStencilState : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_DEPTH_STENCIL_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10DepthStencilState, 0x2b4b1cc8, 0xa4ad, 0x41f8, 0x83,0x22, 0xca,0x86,0xfc,0x3e,0xc6,0x75)
+#endif
+#else
+typedef struct ID3D10DepthStencilStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10DepthStencilState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10DepthStencilState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10DepthStencilState *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10DepthStencilState *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10DepthStencilState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10DepthStencilState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10DepthStencilState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10DepthStencilState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10DepthStencilState *This,
+ D3D10_DEPTH_STENCIL_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10DepthStencilStateVtbl;
+
+interface ID3D10DepthStencilState {
+ CONST_VTBL ID3D10DepthStencilStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10DepthStencilState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10DepthStencilState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10DepthStencilState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10DepthStencilState methods ***/
+#define ID3D10DepthStencilState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10DepthStencilState_QueryInterface(ID3D10DepthStencilState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10DepthStencilState_AddRef(ID3D10DepthStencilState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10DepthStencilState_Release(ID3D10DepthStencilState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10DepthStencilState_GetDevice(ID3D10DepthStencilState* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilState_GetPrivateData(ID3D10DepthStencilState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilState_SetPrivateData(ID3D10DepthStencilState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10DepthStencilState_SetPrivateDataInterface(ID3D10DepthStencilState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10DepthStencilState methods ***/
+static FORCEINLINE void ID3D10DepthStencilState_GetDesc(ID3D10DepthStencilState* This,D3D10_DEPTH_STENCIL_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10GeometryShader interface
+ */
+#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__
+#define __ID3D10GeometryShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10GeometryShader, 0x6316be88, 0x54cd, 0x4040, 0xab,0x44, 0x20,0x46,0x1b,0xc8,0x1f,0x68);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6316be88-54cd-4040-ab44-20461bc81f68")
+ID3D10GeometryShader : public ID3D10DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10GeometryShader, 0x6316be88, 0x54cd, 0x4040, 0xab,0x44, 0x20,0x46,0x1b,0xc8,0x1f,0x68)
+#endif
+#else
+typedef struct ID3D10GeometryShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10GeometryShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10GeometryShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10GeometryShader *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10GeometryShader *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10GeometryShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10GeometryShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10GeometryShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D10GeometryShaderVtbl;
+
+interface ID3D10GeometryShader {
+ CONST_VTBL ID3D10GeometryShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10GeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10GeometryShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10GeometryShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10GeometryShader_QueryInterface(ID3D10GeometryShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10GeometryShader_AddRef(ID3D10GeometryShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10GeometryShader_Release(ID3D10GeometryShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10GeometryShader_GetDevice(ID3D10GeometryShader* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10GeometryShader_GetPrivateData(ID3D10GeometryShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10GeometryShader_SetPrivateData(ID3D10GeometryShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10GeometryShader_SetPrivateDataInterface(ID3D10GeometryShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10InputLayout interface
+ */
+#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__
+#define __ID3D10InputLayout_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10InputLayout, 0x9b7e4c0b, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0b-342c-4106-a19f-4f2704f689f0")
+ID3D10InputLayout : public ID3D10DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10InputLayout, 0x9b7e4c0b, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10InputLayoutVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10InputLayout *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10InputLayout *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10InputLayout *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10InputLayout *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10InputLayout *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10InputLayout *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10InputLayout *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D10InputLayoutVtbl;
+
+interface ID3D10InputLayout {
+ CONST_VTBL ID3D10InputLayoutVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10InputLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10InputLayout_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10InputLayout_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10InputLayout_QueryInterface(ID3D10InputLayout* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10InputLayout_AddRef(ID3D10InputLayout* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10InputLayout_Release(ID3D10InputLayout* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10InputLayout_GetDevice(ID3D10InputLayout* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10InputLayout_GetPrivateData(ID3D10InputLayout* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10InputLayout_SetPrivateData(ID3D10InputLayout* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10InputLayout_SetPrivateDataInterface(ID3D10InputLayout* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10InputLayout_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10PixelShader interface
+ */
+#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__
+#define __ID3D10PixelShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10PixelShader, 0x4968b601, 0x9d00, 0x4cde, 0x83,0x46, 0x8e,0x7f,0x67,0x58,0x19,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4968b601-9d00-4cde-8346-8e7f675819b6")
+ID3D10PixelShader : public ID3D10DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10PixelShader, 0x4968b601, 0x9d00, 0x4cde, 0x83,0x46, 0x8e,0x7f,0x67,0x58,0x19,0xb6)
+#endif
+#else
+typedef struct ID3D10PixelShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10PixelShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10PixelShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10PixelShader *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10PixelShader *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10PixelShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10PixelShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10PixelShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D10PixelShaderVtbl;
+
+interface ID3D10PixelShader {
+ CONST_VTBL ID3D10PixelShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10PixelShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10PixelShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10PixelShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10PixelShader_QueryInterface(ID3D10PixelShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10PixelShader_AddRef(ID3D10PixelShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10PixelShader_Release(ID3D10PixelShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10PixelShader_GetDevice(ID3D10PixelShader* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10PixelShader_GetPrivateData(ID3D10PixelShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10PixelShader_SetPrivateData(ID3D10PixelShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10PixelShader_SetPrivateDataInterface(ID3D10PixelShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10PixelShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10RasterizerState interface
+ */
+#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__
+#define __ID3D10RasterizerState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10RasterizerState, 0xa2a07292, 0x89af, 0x4345, 0xbe,0x2e, 0xc5,0x3d,0x9f,0xbb,0x6e,0x9f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a2a07292-89af-4345-be2e-c53d9fbb6e9f")
+ID3D10RasterizerState : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_RASTERIZER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10RasterizerState, 0xa2a07292, 0x89af, 0x4345, 0xbe,0x2e, 0xc5,0x3d,0x9f,0xbb,0x6e,0x9f)
+#endif
+#else
+typedef struct ID3D10RasterizerStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10RasterizerState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10RasterizerState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10RasterizerState *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10RasterizerState *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10RasterizerState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10RasterizerState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10RasterizerState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10RasterizerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10RasterizerState *This,
+ D3D10_RASTERIZER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10RasterizerStateVtbl;
+
+interface ID3D10RasterizerState {
+ CONST_VTBL ID3D10RasterizerStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10RasterizerState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10RasterizerState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10RasterizerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10RasterizerState methods ***/
+#define ID3D10RasterizerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10RasterizerState_QueryInterface(ID3D10RasterizerState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10RasterizerState_AddRef(ID3D10RasterizerState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10RasterizerState_Release(ID3D10RasterizerState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10RasterizerState_GetDevice(ID3D10RasterizerState* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10RasterizerState_GetPrivateData(ID3D10RasterizerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10RasterizerState_SetPrivateData(ID3D10RasterizerState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10RasterizerState_SetPrivateDataInterface(ID3D10RasterizerState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10RasterizerState methods ***/
+static FORCEINLINE void ID3D10RasterizerState_GetDesc(ID3D10RasterizerState* This,D3D10_RASTERIZER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10SamplerState interface
+ */
+#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__
+#define __ID3D10SamplerState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10SamplerState, 0x9b7e4c0c, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0c-342c-4106-a19f-4f2704f689f0")
+ID3D10SamplerState : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_SAMPLER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10SamplerState, 0x9b7e4c0c, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10SamplerStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10SamplerState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10SamplerState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10SamplerState *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10SamplerState *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10SamplerState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10SamplerState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10SamplerState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10SamplerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10SamplerState *This,
+ D3D10_SAMPLER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10SamplerStateVtbl;
+
+interface ID3D10SamplerState {
+ CONST_VTBL ID3D10SamplerStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10SamplerState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10SamplerState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10SamplerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10SamplerState methods ***/
+#define ID3D10SamplerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10SamplerState_QueryInterface(ID3D10SamplerState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10SamplerState_AddRef(ID3D10SamplerState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10SamplerState_Release(ID3D10SamplerState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10SamplerState_GetDevice(ID3D10SamplerState* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10SamplerState_GetPrivateData(ID3D10SamplerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10SamplerState_SetPrivateData(ID3D10SamplerState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10SamplerState_SetPrivateDataInterface(ID3D10SamplerState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10SamplerState methods ***/
+static FORCEINLINE void ID3D10SamplerState_GetDesc(ID3D10SamplerState* This,D3D10_SAMPLER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10SamplerState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10VertexShader interface
+ */
+#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__
+#define __ID3D10VertexShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10VertexShader, 0x9b7e4c0a, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0a-342c-4106-a19f-4f2704f689f0")
+ID3D10VertexShader : public ID3D10DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10VertexShader, 0x9b7e4c0a, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10VertexShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10VertexShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10VertexShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10VertexShader *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10VertexShader *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10VertexShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10VertexShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10VertexShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D10VertexShaderVtbl;
+
+interface ID3D10VertexShader {
+ CONST_VTBL ID3D10VertexShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10VertexShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10VertexShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10VertexShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10VertexShader_QueryInterface(ID3D10VertexShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10VertexShader_AddRef(ID3D10VertexShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10VertexShader_Release(ID3D10VertexShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10VertexShader_GetDevice(ID3D10VertexShader* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10VertexShader_GetPrivateData(ID3D10VertexShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10VertexShader_SetPrivateData(ID3D10VertexShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10VertexShader_SetPrivateDataInterface(ID3D10VertexShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10VertexShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Asynchronous interface
+ */
+#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__
+#define __ID3D10Asynchronous_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Asynchronous, 0x9b7e4c0d, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0d-342c-4106-a19f-4f2704f689f0")
+ID3D10Asynchronous : public ID3D10DeviceChild
+{
+ virtual void STDMETHODCALLTYPE Begin(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE End(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetData(
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetDataSize(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Asynchronous, 0x9b7e4c0d, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10AsynchronousVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Asynchronous *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Asynchronous *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Asynchronous *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Asynchronous *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Asynchronous *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Asynchronous *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Asynchronous *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Asynchronous methods ***/
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D10Asynchronous *This);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D10Asynchronous *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D10Asynchronous *This,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D10Asynchronous *This);
+
+ END_INTERFACE
+} ID3D10AsynchronousVtbl;
+
+interface ID3D10Asynchronous {
+ CONST_VTBL ID3D10AsynchronousVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Asynchronous_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Asynchronous_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Asynchronous_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Asynchronous methods ***/
+#define ID3D10Asynchronous_Begin(This) (This)->lpVtbl->Begin(This)
+#define ID3D10Asynchronous_End(This) (This)->lpVtbl->End(This)
+#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
+#define ID3D10Asynchronous_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Asynchronous_QueryInterface(ID3D10Asynchronous* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Asynchronous_AddRef(ID3D10Asynchronous* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Asynchronous_Release(ID3D10Asynchronous* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Asynchronous_GetDevice(ID3D10Asynchronous* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Asynchronous_GetPrivateData(ID3D10Asynchronous* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Asynchronous_SetPrivateData(ID3D10Asynchronous* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Asynchronous_SetPrivateDataInterface(ID3D10Asynchronous* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Asynchronous methods ***/
+static FORCEINLINE void ID3D10Asynchronous_Begin(ID3D10Asynchronous* This) {
+ This->lpVtbl->Begin(This);
+}
+static FORCEINLINE void ID3D10Asynchronous_End(ID3D10Asynchronous* This) {
+ This->lpVtbl->End(This);
+}
+static FORCEINLINE HRESULT ID3D10Asynchronous_GetData(ID3D10Asynchronous* This,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE UINT ID3D10Asynchronous_GetDataSize(ID3D10Asynchronous* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Counter interface
+ */
+#ifndef __ID3D10Counter_INTERFACE_DEFINED__
+#define __ID3D10Counter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Counter, 0x9b7e4c11, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c11-342c-4106-a19f-4f2704f689f0")
+ID3D10Counter : public ID3D10Asynchronous
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_COUNTER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Counter, 0x9b7e4c11, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10CounterVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Counter *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Counter *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Counter *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Counter *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Counter *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Counter *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Counter *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Asynchronous methods ***/
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D10Counter *This);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D10Counter *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D10Counter *This,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D10Counter *This);
+
+ /*** ID3D10Counter methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Counter *This,
+ D3D10_COUNTER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10CounterVtbl;
+
+interface ID3D10Counter {
+ CONST_VTBL ID3D10CounterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Counter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Counter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Counter_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Counter_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Asynchronous methods ***/
+#define ID3D10Counter_Begin(This) (This)->lpVtbl->Begin(This)
+#define ID3D10Counter_End(This) (This)->lpVtbl->End(This)
+#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
+#define ID3D10Counter_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D10Counter methods ***/
+#define ID3D10Counter_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Counter_QueryInterface(ID3D10Counter* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Counter_AddRef(ID3D10Counter* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Counter_Release(ID3D10Counter* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Counter_GetDevice(ID3D10Counter* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Counter_GetPrivateData(ID3D10Counter* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Counter_SetPrivateData(ID3D10Counter* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Counter_SetPrivateDataInterface(ID3D10Counter* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Asynchronous methods ***/
+static FORCEINLINE void ID3D10Counter_Begin(ID3D10Counter* This) {
+ This->lpVtbl->Begin(This);
+}
+static FORCEINLINE void ID3D10Counter_End(ID3D10Counter* This) {
+ This->lpVtbl->End(This);
+}
+static FORCEINLINE HRESULT ID3D10Counter_GetData(ID3D10Counter* This,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE UINT ID3D10Counter_GetDataSize(ID3D10Counter* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D10Counter methods ***/
+static FORCEINLINE void ID3D10Counter_GetDesc(ID3D10Counter* This,D3D10_COUNTER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Counter_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Query interface
+ */
+#ifndef __ID3D10Query_INTERFACE_DEFINED__
+#define __ID3D10Query_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Query, 0x9b7e4c0e, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0e-342c-4106-a19f-4f2704f689f0")
+ID3D10Query : public ID3D10Asynchronous
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D10_QUERY_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Query, 0x9b7e4c0e, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10QueryVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Query *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Query *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Query *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Query *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Query *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Query *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Query *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Asynchronous methods ***/
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D10Query *This);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D10Query *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D10Query *This,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D10Query *This);
+
+ /*** ID3D10Query methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Query *This,
+ D3D10_QUERY_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10QueryVtbl;
+
+interface ID3D10Query {
+ CONST_VTBL ID3D10QueryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Query_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Query_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Query_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Query_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Query_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Asynchronous methods ***/
+#define ID3D10Query_Begin(This) (This)->lpVtbl->Begin(This)
+#define ID3D10Query_End(This) (This)->lpVtbl->End(This)
+#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
+#define ID3D10Query_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D10Query methods ***/
+#define ID3D10Query_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Query_QueryInterface(ID3D10Query* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Query_AddRef(ID3D10Query* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Query_Release(ID3D10Query* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Query_GetDevice(ID3D10Query* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Query_GetPrivateData(ID3D10Query* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Query_SetPrivateData(ID3D10Query* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Query_SetPrivateDataInterface(ID3D10Query* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Asynchronous methods ***/
+static FORCEINLINE void ID3D10Query_Begin(ID3D10Query* This) {
+ This->lpVtbl->Begin(This);
+}
+static FORCEINLINE void ID3D10Query_End(ID3D10Query* This) {
+ This->lpVtbl->End(This);
+}
+static FORCEINLINE HRESULT ID3D10Query_GetData(ID3D10Query* This,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE UINT ID3D10Query_GetDataSize(ID3D10Query* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D10Query methods ***/
+static FORCEINLINE void ID3D10Query_GetDesc(ID3D10Query* This,D3D10_QUERY_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Query_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Predicate interface
+ */
+#ifndef __ID3D10Predicate_INTERFACE_DEFINED__
+#define __ID3D10Predicate_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Predicate, 0x9b7e4c10, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c10-342c-4106-a19f-4f2704f689f0")
+ID3D10Predicate : public ID3D10Query
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Predicate, 0x9b7e4c10, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10PredicateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Predicate *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Predicate *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Predicate *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10Predicate *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Predicate *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Predicate *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Predicate *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10Asynchronous methods ***/
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D10Predicate *This);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D10Predicate *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D10Predicate *This,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D10Predicate *This);
+
+ /*** ID3D10Query methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10Predicate *This,
+ D3D10_QUERY_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D10PredicateVtbl;
+
+interface ID3D10Predicate {
+ CONST_VTBL ID3D10PredicateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Predicate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Predicate_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Predicate_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10Predicate_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10Asynchronous methods ***/
+#define ID3D10Predicate_Begin(This) (This)->lpVtbl->Begin(This)
+#define ID3D10Predicate_End(This) (This)->lpVtbl->End(This)
+#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pData,DataSize,GetDataFlags)
+#define ID3D10Predicate_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D10Query methods ***/
+#define ID3D10Predicate_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Predicate_QueryInterface(ID3D10Predicate* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Predicate_AddRef(ID3D10Predicate* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Predicate_Release(ID3D10Predicate* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10Predicate_GetDevice(ID3D10Predicate* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10Predicate_GetPrivateData(ID3D10Predicate* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Predicate_SetPrivateData(ID3D10Predicate* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Predicate_SetPrivateDataInterface(ID3D10Predicate* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10Asynchronous methods ***/
+static FORCEINLINE void ID3D10Predicate_Begin(ID3D10Predicate* This) {
+ This->lpVtbl->Begin(This);
+}
+static FORCEINLINE void ID3D10Predicate_End(ID3D10Predicate* This) {
+ This->lpVtbl->End(This);
+}
+static FORCEINLINE HRESULT ID3D10Predicate_GetData(ID3D10Predicate* This,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE UINT ID3D10Predicate_GetDataSize(ID3D10Predicate* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D10Query methods ***/
+static FORCEINLINE void ID3D10Predicate_GetDesc(ID3D10Predicate* This,D3D10_QUERY_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Predicate_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Device interface
+ */
+#ifndef __ID3D10Device_INTERFACE_DEFINED__
+#define __ID3D10Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Device, 0x9b7e4c0f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c0f-342c-4106-a19f-4f2704f689f0")
+ID3D10Device : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetShader(
+ ID3D10PixelShader *pPixelShader) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetShader(
+ ID3D10VertexShader *pVertexShader) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexed(
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE Draw(
+ UINT VertexCount,
+ UINT StartVertexLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetInputLayout(
+ ID3D10InputLayout *pInputLayout) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetVertexBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetIndexBuffer(
+ ID3D10Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawInstanced(
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetShader(
+ ID3D10GeometryShader *pShader) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
+ D3D10_PRIMITIVE_TOPOLOGY Topology) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPredication(
+ ID3D10Predicate *pPredicate,
+ WINBOOL PredicateValue) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetRenderTargets(
+ UINT NumViews,
+ ID3D10RenderTargetView *const *ppRenderTargetViews,
+ ID3D10DepthStencilView *pDepthStencilView) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetBlendState(
+ ID3D10BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
+ ID3D10DepthStencilState *pDepthStencilState,
+ UINT StencilRef) = 0;
+
+ virtual void STDMETHODCALLTYPE SOSetTargets(
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppSOTargets,
+ const UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawAuto(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetState(
+ ID3D10RasterizerState *pRasterizerState) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetViewports(
+ UINT NumViewports,
+ const D3D10_VIEWPORT *pViewports) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetScissorRects(
+ UINT NumRects,
+ const D3D10_RECT *pRects) = 0;
+
+ virtual void STDMETHODCALLTYPE CopySubresourceRegion(
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D10_BOX *pSrcBox) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyResource(
+ ID3D10Resource *pDstResource,
+ ID3D10Resource *pSrcResource) = 0;
+
+ virtual void STDMETHODCALLTYPE UpdateSubresource(
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D10_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRenderTargetView(
+ ID3D10RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearDepthStencilView(
+ ID3D10DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil) = 0;
+
+ virtual void STDMETHODCALLTYPE GenerateMips(
+ ID3D10ShaderResourceView *pShaderResourceView) = 0;
+
+ virtual void STDMETHODCALLTYPE ResolveSubresource(
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetShader(
+ ID3D10PixelShader **ppPixelShader) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetShader(
+ ID3D10VertexShader **ppVertexShader) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetInputLayout(
+ ID3D10InputLayout **ppInputLayout) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
+ ID3D10Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetShader(
+ ID3D10GeometryShader **ppGeometryShader) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
+ D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE GetPredication(
+ ID3D10Predicate **ppPredicate,
+ WINBOOL *pPredicateValue) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetRenderTargets(
+ UINT NumViews,
+ ID3D10RenderTargetView **ppRenderTargetViews,
+ ID3D10DepthStencilView **ppDepthStencilView) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetBlendState(
+ ID3D10BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
+ ID3D10DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef) = 0;
+
+ virtual void STDMETHODCALLTYPE SOGetTargets(
+ UINT NumBuffers,
+ ID3D10Buffer **ppSOTargets,
+ UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetState(
+ ID3D10RasterizerState **ppRasterizerState) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetViewports(
+ UINT *NumViewports,
+ D3D10_VIEWPORT *pViewports) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetScissorRects(
+ UINT *NumRects,
+ D3D10_RECT *pRects) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
+ UINT RaiseFlags) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetExceptionMode(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *pData) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearState(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE Flush(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
+ const D3D10_BUFFER_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Buffer **ppBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
+ const D3D10_TEXTURE1D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture1D **ppTexture1D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
+ const D3D10_TEXTURE2D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture2D **ppTexture2D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
+ const D3D10_TEXTURE3D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture3D **ppTexture3D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
+ ID3D10Resource *pResource,
+ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D10ShaderResourceView **ppSRView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
+ ID3D10Resource *pResource,
+ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D10RenderTargetView **ppRTView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
+ ID3D10Resource *pResource,
+ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D10DepthStencilView **ppDepthStencilView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
+ const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D10InputLayout **ppInputLayout) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10VertexShader **ppVertexShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10GeometryShader **ppGeometryShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ UINT OutputStreamStride,
+ ID3D10GeometryShader **ppGeometryShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10PixelShader **ppPixelShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
+ const D3D10_BLEND_DESC *pBlendStateDesc,
+ ID3D10BlendState **ppBlendState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
+ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D10DepthStencilState **ppDepthStencilState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
+ const D3D10_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D10RasterizerState **ppRasterizerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
+ const D3D10_SAMPLER_DESC *pSamplerDesc,
+ ID3D10SamplerState **ppSamplerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateQuery(
+ const D3D10_QUERY_DESC *pQueryDesc,
+ ID3D10Query **ppQuery) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
+ const D3D10_QUERY_DESC *pPredicateDesc,
+ ID3D10Predicate **ppPredicate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCounter(
+ const D3D10_COUNTER_DESC *pCounterDesc,
+ ID3D10Counter **ppCounter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels) = 0;
+
+ virtual void STDMETHODCALLTYPE CheckCounterInfo(
+ D3D10_COUNTER_INFO *pCounterInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckCounter(
+ const D3D10_COUNTER_DESC *pDesc,
+ D3D10_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ char *name,
+ UINT *pNameLength,
+ char *units,
+ UINT *pUnitsLength,
+ char *description,
+ UINT *pDescriptionLength) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetCreationFlags(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource) = 0;
+
+ virtual void STDMETHODCALLTYPE SetTextFilterSize(
+ UINT Width,
+ UINT Height) = 0;
+
+ virtual void STDMETHODCALLTYPE GetTextFilterSize(
+ UINT *pWidth,
+ UINT *pHeight) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Device, 0x9b7e4c0f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10DeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Device *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Device *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Device *This);
+
+ /*** ID3D10Device methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D10Device *This,
+ ID3D10PixelShader *pPixelShader);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D10Device *This,
+ ID3D10VertexShader *pVertexShader);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D10Device *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D10Device *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D10Device *This,
+ ID3D10InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D10Device *This,
+ ID3D10Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D10Device *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D10Device *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D10Device *This,
+ ID3D10GeometryShader *pShader);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D10Device *This,
+ D3D10_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D10Device *This,
+ ID3D10Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D10Device *This,
+ UINT NumViews,
+ ID3D10RenderTargetView *const *ppRenderTargetViews,
+ ID3D10DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D10Device *This,
+ ID3D10BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D10Device *This,
+ ID3D10DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D10Device *This,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D10Device *This);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D10Device *This,
+ ID3D10RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D10Device *This,
+ UINT NumViewports,
+ const D3D10_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D10Device *This,
+ UINT NumRects,
+ const D3D10_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D10Device *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D10_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D10Device *This,
+ ID3D10Resource *pDstResource,
+ ID3D10Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D10Device *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D10_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D10Device *This,
+ ID3D10RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D10Device *This,
+ ID3D10DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D10Device *This,
+ ID3D10ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D10Device *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D10Device *This,
+ ID3D10PixelShader **ppPixelShader);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D10Device *This,
+ ID3D10VertexShader **ppVertexShader);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D10Device *This,
+ ID3D10InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D10Device *This,
+ ID3D10Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D10Device *This,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D10Device *This,
+ D3D10_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D10Device *This,
+ ID3D10Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D10Device *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D10Device *This,
+ UINT NumViews,
+ ID3D10RenderTargetView **ppRenderTargetViews,
+ ID3D10DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D10Device *This,
+ ID3D10BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D10Device *This,
+ ID3D10DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D10Device *This,
+ UINT NumBuffers,
+ ID3D10Buffer **ppSOTargets,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D10Device *This,
+ ID3D10RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D10Device *This,
+ UINT *NumViewports,
+ D3D10_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D10Device *This,
+ UINT *NumRects,
+ D3D10_RECT *pRects);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D10Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D10Device *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D10Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Device *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Device *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Device *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D10Device *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D10Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D10Device *This,
+ const D3D10_BUFFER_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D10Device *This,
+ const D3D10_TEXTURE1D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D10Device *This,
+ const D3D10_TEXTURE2D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D10Device *This,
+ const D3D10_TEXTURE3D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D10Device *This,
+ ID3D10Resource *pResource,
+ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D10ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D10Device *This,
+ ID3D10Resource *pResource,
+ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D10RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D10Device *This,
+ ID3D10Resource *pResource,
+ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D10DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D10Device *This,
+ const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D10InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D10Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D10Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D10Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ UINT OutputStreamStride,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D10Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D10Device *This,
+ const D3D10_BLEND_DESC *pBlendStateDesc,
+ ID3D10BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D10Device *This,
+ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D10DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D10Device *This,
+ const D3D10_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D10RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D10Device *This,
+ const D3D10_SAMPLER_DESC *pSamplerDesc,
+ ID3D10SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D10Device *This,
+ const D3D10_QUERY_DESC *pQueryDesc,
+ ID3D10Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D10Device *This,
+ const D3D10_QUERY_DESC *pPredicateDesc,
+ ID3D10Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D10Device *This,
+ const D3D10_COUNTER_DESC *pCounterDesc,
+ ID3D10Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D10Device *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D10Device *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D10Device *This,
+ D3D10_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D10Device *This,
+ const D3D10_COUNTER_DESC *pDesc,
+ D3D10_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ char *name,
+ UINT *pNameLength,
+ char *units,
+ UINT *pUnitsLength,
+ char *description,
+ UINT *pDescriptionLength);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D10Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D10Device *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ void (STDMETHODCALLTYPE *SetTextFilterSize)(
+ ID3D10Device *This,
+ UINT Width,
+ UINT Height);
+
+ void (STDMETHODCALLTYPE *GetTextFilterSize)(
+ ID3D10Device *This,
+ UINT *pWidth,
+ UINT *pHeight);
+
+ END_INTERFACE
+} ID3D10DeviceVtbl;
+
+interface ID3D10Device {
+ CONST_VTBL ID3D10DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Device methods ***/
+#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_PSSetShader(This,pPixelShader) (This)->lpVtbl->PSSetShader(This,pPixelShader)
+#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_VSSetShader(This,pVertexShader) (This)->lpVtbl->VSSetShader(This,pVertexShader)
+#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_GSSetShader(This,pShader) (This)->lpVtbl->GSSetShader(This,pShader)
+#define ID3D10Device_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D10Device_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D10Device_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D10Device_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_PSGetShader(This,ppPixelShader) (This)->lpVtbl->PSGetShader(This,ppPixelShader)
+#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_VSGetShader(This,ppVertexShader) (This)->lpVtbl->VSGetShader(This,ppVertexShader)
+#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device_GSGetShader(This,ppGeometryShader) (This)->lpVtbl->GSGetShader(This,ppGeometryShader)
+#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D10Device_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,NumViewports,pViewports)
+#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,NumRects,pRects)
+#define ID3D10Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D10Device_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D10Device_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Device_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D10Device_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D10Device_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)
+#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)
+#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)
+#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)
+#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D10Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength)
+#define ID3D10Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D10Device_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
+#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight) (This)->lpVtbl->GetTextFilterSize(This,pWidth,pHeight)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Device_QueryInterface(ID3D10Device* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Device_AddRef(ID3D10Device* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Device_Release(ID3D10Device* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10Device methods ***/
+static FORCEINLINE void ID3D10Device_VSSetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_PSSetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_PSSetShader(ID3D10Device* This,ID3D10PixelShader *pPixelShader) {
+ This->lpVtbl->PSSetShader(This,pPixelShader);
+}
+static FORCEINLINE void ID3D10Device_PSSetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_VSSetShader(ID3D10Device* This,ID3D10VertexShader *pVertexShader) {
+ This->lpVtbl->VSSetShader(This,pVertexShader);
+}
+static FORCEINLINE void ID3D10Device_DrawIndexed(ID3D10Device* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D10Device_Draw(ID3D10Device* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE void ID3D10Device_PSSetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_IASetInputLayout(ID3D10Device* This,ID3D10InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D10Device_IASetVertexBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D10Device_IASetIndexBuffer(ID3D10Device* This,ID3D10Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D10Device_DrawIndexedInstanced(ID3D10Device* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D10Device_DrawInstanced(ID3D10Device* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D10Device_GSSetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_GSSetShader(ID3D10Device* This,ID3D10GeometryShader *pShader) {
+ This->lpVtbl->GSSetShader(This,pShader);
+}
+static FORCEINLINE void ID3D10Device_IASetPrimitiveTopology(ID3D10Device* This,D3D10_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D10Device_VSSetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_VSSetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_SetPredication(ID3D10Device* This,ID3D10Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D10Device_GSSetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_GSSetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_OMSetRenderTargets(ID3D10Device* This,UINT NumViews,ID3D10RenderTargetView *const *ppRenderTargetViews,ID3D10DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D10Device_OMSetBlendState(ID3D10Device* This,ID3D10BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D10Device_OMSetDepthStencilState(ID3D10Device* This,ID3D10DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D10Device_SOSetTargets(ID3D10Device* This,UINT NumBuffers,ID3D10Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D10Device_DrawAuto(ID3D10Device* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D10Device_RSSetState(ID3D10Device* This,ID3D10RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D10Device_RSSetViewports(ID3D10Device* This,UINT NumViewports,const D3D10_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D10Device_RSSetScissorRects(ID3D10Device* This,UINT NumRects,const D3D10_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D10Device_CopySubresourceRegion(ID3D10Device* This,ID3D10Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D10Resource *pSrcResource,UINT SrcSubresource,const D3D10_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D10Device_CopyResource(ID3D10Device* This,ID3D10Resource *pDstResource,ID3D10Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D10Device_UpdateSubresource(ID3D10Device* This,ID3D10Resource *pDstResource,UINT DstSubresource,const D3D10_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D10Device_ClearRenderTargetView(ID3D10Device* This,ID3D10RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D10Device_ClearDepthStencilView(ID3D10Device* This,ID3D10DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D10Device_GenerateMips(ID3D10Device* This,ID3D10ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D10Device_ResolveSubresource(ID3D10Device* This,ID3D10Resource *pDstResource,UINT DstSubresource,ID3D10Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D10Device_VSGetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_PSGetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_PSGetShader(ID3D10Device* This,ID3D10PixelShader **ppPixelShader) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader);
+}
+static FORCEINLINE void ID3D10Device_PSGetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_VSGetShader(ID3D10Device* This,ID3D10VertexShader **ppVertexShader) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader);
+}
+static FORCEINLINE void ID3D10Device_PSGetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_IAGetInputLayout(ID3D10Device* This,ID3D10InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D10Device_IAGetVertexBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D10Device_IAGetIndexBuffer(ID3D10Device* This,ID3D10Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D10Device_GSGetConstantBuffers(ID3D10Device* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device_GSGetShader(ID3D10Device* This,ID3D10GeometryShader **ppGeometryShader) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader);
+}
+static FORCEINLINE void ID3D10Device_IAGetPrimitiveTopology(ID3D10Device* This,D3D10_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D10Device_VSGetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_VSGetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_GetPredication(ID3D10Device* This,ID3D10Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D10Device_GSGetShaderResources(ID3D10Device* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device_GSGetSamplers(ID3D10Device* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device_OMGetRenderTargets(ID3D10Device* This,UINT NumViews,ID3D10RenderTargetView **ppRenderTargetViews,ID3D10DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D10Device_OMGetBlendState(ID3D10Device* This,ID3D10BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D10Device_OMGetDepthStencilState(ID3D10Device* This,ID3D10DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D10Device_SOGetTargets(ID3D10Device* This,UINT NumBuffers,ID3D10Buffer **ppSOTargets,UINT *pOffsets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D10Device_RSGetState(ID3D10Device* This,ID3D10RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D10Device_RSGetViewports(ID3D10Device* This,UINT *NumViewports,D3D10_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D10Device_RSGetScissorRects(ID3D10Device* This,UINT *NumRects,D3D10_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE HRESULT ID3D10Device_GetDeviceRemovedReason(ID3D10Device* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE HRESULT ID3D10Device_SetExceptionMode(ID3D10Device* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D10Device_GetExceptionMode(ID3D10Device* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+static FORCEINLINE HRESULT ID3D10Device_GetPrivateData(ID3D10Device* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Device_SetPrivateData(ID3D10Device* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Device_SetPrivateDataInterface(ID3D10Device* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE void ID3D10Device_ClearState(ID3D10Device* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D10Device_Flush(ID3D10Device* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateBuffer(ID3D10Device* This,const D3D10_BUFFER_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateTexture1D(ID3D10Device* This,const D3D10_TEXTURE1D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateTexture2D(ID3D10Device* This,const D3D10_TEXTURE2D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateTexture3D(ID3D10Device* This,const D3D10_TEXTURE3D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateShaderResourceView(ID3D10Device* This,ID3D10Resource *pResource,const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D10ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateRenderTargetView(ID3D10Device* This,ID3D10Resource *pResource,const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,ID3D10RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateDepthStencilView(ID3D10Device* This,ID3D10Resource *pResource,const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D10DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateInputLayout(ID3D10Device* This,const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D10InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateVertexShader(ID3D10Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateGeometryShader(ID3D10Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateGeometryShaderWithStreamOutput(ID3D10Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,UINT OutputStreamStride,ID3D10GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreatePixelShader(ID3D10Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateBlendState(ID3D10Device* This,const D3D10_BLEND_DESC *pBlendStateDesc,ID3D10BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateDepthStencilState(ID3D10Device* This,const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D10DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateRasterizerState(ID3D10Device* This,const D3D10_RASTERIZER_DESC *pRasterizerDesc,ID3D10RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateSamplerState(ID3D10Device* This,const D3D10_SAMPLER_DESC *pSamplerDesc,ID3D10SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateQuery(ID3D10Device* This,const D3D10_QUERY_DESC *pQueryDesc,ID3D10Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreatePredicate(ID3D10Device* This,const D3D10_QUERY_DESC *pPredicateDesc,ID3D10Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D10Device_CreateCounter(ID3D10Device* This,const D3D10_COUNTER_DESC *pCounterDesc,ID3D10Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D10Device_CheckFormatSupport(ID3D10Device* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D10Device_CheckMultisampleQualityLevels(ID3D10Device* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D10Device_CheckCounterInfo(ID3D10Device* This,D3D10_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D10Device_CheckCounter(ID3D10Device* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,char *name,UINT *pNameLength,char *units,UINT *pUnitsLength,char *description,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength);
+}
+static FORCEINLINE UINT ID3D10Device_GetCreationFlags(ID3D10Device* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D10Device_OpenSharedResource(ID3D10Device* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE void ID3D10Device_SetTextFilterSize(ID3D10Device* This,UINT Width,UINT Height) {
+ This->lpVtbl->SetTextFilterSize(This,Width,Height);
+}
+static FORCEINLINE void ID3D10Device_GetTextFilterSize(ID3D10Device* This,UINT *pWidth,UINT *pHeight) {
+ This->lpVtbl->GetTextFilterSize(This,pWidth,pHeight);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Device_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Multithread interface
+ */
+#ifndef __ID3D10Multithread_INTERFACE_DEFINED__
+#define __ID3D10Multithread_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e00-342c-4106-a19f-4f2704f689f0")
+ID3D10Multithread : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE Enter(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE Leave(
+ ) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE SetMultithreadProtected(
+ WINBOOL bMTProtect) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetMultithreadProtected(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10MultithreadVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Multithread *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Multithread *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Multithread *This);
+
+ /*** ID3D10Multithread methods ***/
+ void (STDMETHODCALLTYPE *Enter)(
+ ID3D10Multithread *This);
+
+ void (STDMETHODCALLTYPE *Leave)(
+ ID3D10Multithread *This);
+
+ WINBOOL (STDMETHODCALLTYPE *SetMultithreadProtected)(
+ ID3D10Multithread *This,
+ WINBOOL bMTProtect);
+
+ WINBOOL (STDMETHODCALLTYPE *GetMultithreadProtected)(
+ ID3D10Multithread *This);
+
+ END_INTERFACE
+} ID3D10MultithreadVtbl;
+
+interface ID3D10Multithread {
+ CONST_VTBL ID3D10MultithreadVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Multithread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Multithread_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Multithread_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Multithread methods ***/
+#define ID3D10Multithread_Enter(This) (This)->lpVtbl->Enter(This)
+#define ID3D10Multithread_Leave(This) (This)->lpVtbl->Leave(This)
+#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect) (This)->lpVtbl->SetMultithreadProtected(This,bMTProtect)
+#define ID3D10Multithread_GetMultithreadProtected(This) (This)->lpVtbl->GetMultithreadProtected(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Multithread_QueryInterface(ID3D10Multithread* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Multithread_AddRef(ID3D10Multithread* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Multithread_Release(ID3D10Multithread* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10Multithread methods ***/
+static FORCEINLINE void ID3D10Multithread_Enter(ID3D10Multithread* This) {
+ This->lpVtbl->Enter(This);
+}
+static FORCEINLINE void ID3D10Multithread_Leave(ID3D10Multithread* This) {
+ This->lpVtbl->Leave(This);
+}
+static FORCEINLINE WINBOOL ID3D10Multithread_SetMultithreadProtected(ID3D10Multithread* This,WINBOOL bMTProtect) {
+ return This->lpVtbl->SetMultithreadProtected(This,bMTProtect);
+}
+static FORCEINLINE WINBOOL ID3D10Multithread_GetMultithreadProtected(ID3D10Multithread* This) {
+ return This->lpVtbl->GetMultithreadProtected(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Multithread_INTERFACE_DEFINED__ */
+
+#ifndef D3D10_IGNORE_SDK_LAYERS
+#include "d3d10sdklayers.h"
+#endif
+#include "d3d10misc.h"
+#include "d3d10shader.h"
+#include "d3d10effect.h"
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d10_h__ */
diff --git a/d3d10_1.h b/d3d10_1.h
new file mode 100644
index 0000000..2380a36
--- /dev/null
+++ b/d3d10_1.h
@@ -0,0 +1,1442 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d10_1.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d10_1_h__
+#define __d3d10_1_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D10BlendState1_FWD_DEFINED__
+#define __ID3D10BlendState1_FWD_DEFINED__
+typedef interface ID3D10BlendState1 ID3D10BlendState1;
+#ifdef __cplusplus
+interface ID3D10BlendState1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10ShaderResourceView1_FWD_DEFINED__
+#define __ID3D10ShaderResourceView1_FWD_DEFINED__
+typedef interface ID3D10ShaderResourceView1 ID3D10ShaderResourceView1;
+#ifdef __cplusplus
+interface ID3D10ShaderResourceView1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10Device1_FWD_DEFINED__
+#define __ID3D10Device1_FWD_DEFINED__
+typedef interface ID3D10Device1 ID3D10Device1;
+#ifdef __cplusplus
+interface ID3D10Device1;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <d3d10.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _D3D10_1_CONSTANTS
+#define _D3D10_1_CONSTANTS
+#define D3D10_1_DEFAULT_SAMPLE_MASK (0xffffffff)
+
+#define D3D10_1_GS_INPUT_REGISTER_COUNT (32)
+
+#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
+
+#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128)
+
+#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32)
+
+#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
+
+#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT (1)
+
+#define D3D10_1_SHADER_MAJOR_VERSION (4)
+
+#define D3D10_1_SHADER_MINOR_VERSION (1)
+
+#define D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
+
+#define D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (256)
+
+#define D3D10_1_SO_BUFFER_SLOT_COUNT (4)
+
+#define D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER (1)
+
+#define D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT (64)
+
+#define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT (32)
+
+#define D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
+
+#define D3D10_1_VS_INPUT_REGISTER_COUNT (32)
+
+#define D3D10_1_VS_OUTPUT_REGISTER_COUNT (32)
+
+#endif
+#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.6)
+#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)
+#include <d3d10_1shader.h>
+typedef enum D3D10_FEATURE_LEVEL1 {
+ D3D10_FEATURE_LEVEL_10_0 = 0xa000,
+ D3D10_FEATURE_LEVEL_10_1 = 0xa100,
+ D3D10_FEATURE_LEVEL_9_1 = 0x9100,
+ D3D10_FEATURE_LEVEL_9_2 = 0x9200,
+ D3D10_FEATURE_LEVEL_9_3 = 0x9300
+} D3D10_FEATURE_LEVEL1;
+typedef struct D3D10_RENDER_TARGET_BLEND_DESC1 {
+ WINBOOL BlendEnable;
+ D3D10_BLEND SrcBlend;
+ D3D10_BLEND DestBlend;
+ D3D10_BLEND_OP BlendOp;
+ D3D10_BLEND SrcBlendAlpha;
+ D3D10_BLEND DestBlendAlpha;
+ D3D10_BLEND_OP BlendOpAlpha;
+ UINT8 RenderTargetWriteMask;
+} D3D10_RENDER_TARGET_BLEND_DESC1;
+typedef struct D3D10_BLEND_DESC1 {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL IndependentBlendEnable;
+ D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[8];
+} D3D10_BLEND_DESC1;
+/*****************************************************************************
+ * ID3D10BlendState1 interface
+ */
+#ifndef __ID3D10BlendState1_INTERFACE_DEFINED__
+#define __ID3D10BlendState1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10BlendState1, 0xedad8d99, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("edad8d99-8a35-4d6d-8566-2ea276cde161")
+ID3D10BlendState1 : public ID3D10BlendState
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D10_BLEND_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10BlendState1, 0xedad8d99, 0x8a35, 0x4d6d, 0x85,0x66, 0x2e,0xa2,0x76,0xcd,0xe1,0x61)
+#endif
+#else
+typedef struct ID3D10BlendState1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10BlendState1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10BlendState1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10BlendState1 *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10BlendState1 *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10BlendState1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10BlendState1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10BlendState1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10BlendState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10BlendState1 *This,
+ D3D10_BLEND_DESC *pDesc);
+
+ /*** ID3D10BlendState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D10BlendState1 *This,
+ D3D10_BLEND_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D10BlendState1Vtbl;
+
+interface ID3D10BlendState1 {
+ CONST_VTBL ID3D10BlendState1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10BlendState1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10BlendState methods ***/
+#define ID3D10BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D10BlendState1 methods ***/
+#define ID3D10BlendState1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10BlendState1_QueryInterface(ID3D10BlendState1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10BlendState1_AddRef(ID3D10BlendState1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10BlendState1_Release(ID3D10BlendState1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10BlendState1_GetDevice(ID3D10BlendState1* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10BlendState1_GetPrivateData(ID3D10BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10BlendState1_SetPrivateData(ID3D10BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10BlendState1_SetPrivateDataInterface(ID3D10BlendState1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10BlendState methods ***/
+static FORCEINLINE void ID3D10BlendState1_GetDesc(ID3D10BlendState1* This,D3D10_BLEND_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D10BlendState1 methods ***/
+static FORCEINLINE void ID3D10BlendState1_GetDesc1(ID3D10BlendState1* This,D3D10_BLEND_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10BlendState1_INTERFACE_DEFINED__ */
+
+typedef struct D3D10_TEXCUBE_ARRAY_SRV1 {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT First2DArrayFace;
+ UINT NumCubes;
+} D3D10_TEXCUBE_ARRAY_SRV1;
+typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
+typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1 {
+ DXGI_FORMAT Format;
+ D3D10_SRV_DIMENSION1 ViewDimension;
+ __C89_NAMELESS union {
+ D3D10_BUFFER_SRV Buffer;
+ D3D10_TEX1D_SRV Texture1D;
+ D3D10_TEX1D_ARRAY_SRV Texture1DArray;
+ D3D10_TEX2D_SRV Texture2D;
+ D3D10_TEX2D_ARRAY_SRV Texture2DArray;
+ D3D10_TEX2DMS_SRV Texture2DMS;
+ D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
+ D3D10_TEX3D_SRV Texture3D;
+ D3D10_TEXCUBE_SRV TextureCube;
+ D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D10_SHADER_RESOURCE_VIEW_DESC1;
+/*****************************************************************************
+ * ID3D10ShaderResourceView1 interface
+ */
+#ifndef __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
+#define __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10ShaderResourceView1, 0x9b7e4c87, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c87-342c-4106-a19f-4f2704f689f0")
+ID3D10ShaderResourceView1 : public ID3D10ShaderResourceView
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10ShaderResourceView1, 0x9b7e4c87, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10ShaderResourceView1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10ShaderResourceView1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10ShaderResourceView1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10ShaderResourceView1 *This);
+
+ /*** ID3D10DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D10ShaderResourceView1 *This,
+ ID3D10Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10ShaderResourceView1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10ShaderResourceView1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10ShaderResourceView1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D10View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D10ShaderResourceView1 *This,
+ ID3D10Resource **ppResource);
+
+ /*** ID3D10ShaderResourceView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D10ShaderResourceView1 *This,
+ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
+
+ /*** ID3D10ShaderResourceView1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D10ShaderResourceView1 *This,
+ D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D10ShaderResourceView1Vtbl;
+
+interface ID3D10ShaderResourceView1 {
+ CONST_VTBL ID3D10ShaderResourceView1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10ShaderResourceView1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10ShaderResourceView1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10ShaderResourceView1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10DeviceChild methods ***/
+#define ID3D10ShaderResourceView1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D10ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10ShaderResourceView1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D10View methods ***/
+#define ID3D10ShaderResourceView1_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D10ShaderResourceView methods ***/
+#define ID3D10ShaderResourceView1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D10ShaderResourceView1 methods ***/
+#define ID3D10ShaderResourceView1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10ShaderResourceView1_QueryInterface(ID3D10ShaderResourceView1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10ShaderResourceView1_AddRef(ID3D10ShaderResourceView1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10ShaderResourceView1_Release(ID3D10ShaderResourceView1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10DeviceChild methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView1_GetDevice(ID3D10ShaderResourceView1* This,ID3D10Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView1_GetPrivateData(ID3D10ShaderResourceView1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView1_SetPrivateData(ID3D10ShaderResourceView1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10ShaderResourceView1_SetPrivateDataInterface(ID3D10ShaderResourceView1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D10View methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView1_GetResource(ID3D10ShaderResourceView1* This,ID3D10Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D10ShaderResourceView methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView1_GetDesc(ID3D10ShaderResourceView1* This,D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D10ShaderResourceView1 methods ***/
+static FORCEINLINE void ID3D10ShaderResourceView1_GetDesc1(ID3D10ShaderResourceView1* This,D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10Device1 interface
+ */
+#ifndef __ID3D10Device1_INTERFACE_DEFINED__
+#define __ID3D10Device1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Device1, 0x9b7e4c8f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4c8f-342c-4106-a19f-4f2704f689f0")
+ID3D10Device1 : public ID3D10Device
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1(
+ ID3D10Resource *pResource,
+ const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
+ ID3D10ShaderResourceView1 **ppSRView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1(
+ const D3D10_BLEND_DESC1 *pBlendStateDesc,
+ ID3D10BlendState1 **ppBlendState) = 0;
+
+ virtual D3D10_FEATURE_LEVEL1 STDMETHODCALLTYPE GetFeatureLevel(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Device1, 0x9b7e4c8f, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10Device1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Device1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Device1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Device1 *This);
+
+ /*** ID3D10Device methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D10Device1 *This,
+ ID3D10PixelShader *pPixelShader);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D10Device1 *This,
+ ID3D10VertexShader *pVertexShader);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D10Device1 *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D10Device1 *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D10Device1 *This,
+ ID3D10InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D10Device1 *This,
+ ID3D10Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D10Device1 *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D10Device1 *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D10Device1 *This,
+ ID3D10GeometryShader *pShader);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D10Device1 *This,
+ D3D10_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D10Device1 *This,
+ ID3D10Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D10Device1 *This,
+ UINT NumViews,
+ ID3D10RenderTargetView *const *ppRenderTargetViews,
+ ID3D10DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D10Device1 *This,
+ ID3D10BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D10Device1 *This,
+ ID3D10DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D10Device1 *This,
+ UINT NumBuffers,
+ ID3D10Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D10Device1 *This);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D10Device1 *This,
+ ID3D10RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D10Device1 *This,
+ UINT NumViewports,
+ const D3D10_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D10Device1 *This,
+ UINT NumRects,
+ const D3D10_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D10_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pDstResource,
+ ID3D10Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D10_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D10Device1 *This,
+ ID3D10RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D10Device1 *This,
+ ID3D10DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D10Device1 *This,
+ ID3D10ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D10Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D10Device1 *This,
+ ID3D10PixelShader **ppPixelShader);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D10Device1 *This,
+ ID3D10VertexShader **ppVertexShader);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D10Device1 *This,
+ ID3D10InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D10Device1 *This,
+ ID3D10Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D10Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D10Device1 *This,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D10Device1 *This,
+ D3D10_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D10Device1 *This,
+ ID3D10Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D10ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D10Device1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D10SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D10Device1 *This,
+ UINT NumViews,
+ ID3D10RenderTargetView **ppRenderTargetViews,
+ ID3D10DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D10Device1 *This,
+ ID3D10BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D10Device1 *This,
+ ID3D10DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D10Device1 *This,
+ UINT NumBuffers,
+ ID3D10Buffer **ppSOTargets,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D10Device1 *This,
+ ID3D10RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D10Device1 *This,
+ UINT *NumViewports,
+ D3D10_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D10Device1 *This,
+ UINT *NumRects,
+ D3D10_RECT *pRects);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D10Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D10Device1 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D10Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D10Device1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D10Device1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D10Device1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D10Device1 *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D10Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D10Device1 *This,
+ const D3D10_BUFFER_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D10Device1 *This,
+ const D3D10_TEXTURE1D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D10Device1 *This,
+ const D3D10_TEXTURE2D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D10Device1 *This,
+ const D3D10_TEXTURE3D_DESC *pDesc,
+ const D3D10_SUBRESOURCE_DATA *pInitialData,
+ ID3D10Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pResource,
+ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D10ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pResource,
+ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D10RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pResource,
+ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D10DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D10Device1 *This,
+ const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D10InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D10Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D10Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D10Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ UINT OutputStreamStride,
+ ID3D10GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D10Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D10PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D10Device1 *This,
+ const D3D10_BLEND_DESC *pBlendStateDesc,
+ ID3D10BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D10Device1 *This,
+ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D10DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D10Device1 *This,
+ const D3D10_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D10RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D10Device1 *This,
+ const D3D10_SAMPLER_DESC *pSamplerDesc,
+ ID3D10SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D10Device1 *This,
+ const D3D10_QUERY_DESC *pQueryDesc,
+ ID3D10Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D10Device1 *This,
+ const D3D10_QUERY_DESC *pPredicateDesc,
+ ID3D10Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D10Device1 *This,
+ const D3D10_COUNTER_DESC *pCounterDesc,
+ ID3D10Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D10Device1 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D10Device1 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D10Device1 *This,
+ D3D10_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D10Device1 *This,
+ const D3D10_COUNTER_DESC *pDesc,
+ D3D10_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ char *name,
+ UINT *pNameLength,
+ char *units,
+ UINT *pUnitsLength,
+ char *description,
+ UINT *pDescriptionLength);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D10Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D10Device1 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ void (STDMETHODCALLTYPE *SetTextFilterSize)(
+ ID3D10Device1 *This,
+ UINT Width,
+ UINT Height);
+
+ void (STDMETHODCALLTYPE *GetTextFilterSize)(
+ ID3D10Device1 *This,
+ UINT *pWidth,
+ UINT *pHeight);
+
+ /*** ID3D10Device1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
+ ID3D10Device1 *This,
+ ID3D10Resource *pResource,
+ const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
+ ID3D10ShaderResourceView1 **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D10Device1 *This,
+ const D3D10_BLEND_DESC1 *pBlendStateDesc,
+ ID3D10BlendState1 **ppBlendState);
+
+ D3D10_FEATURE_LEVEL1 (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D10Device1 *This);
+
+ END_INTERFACE
+} ID3D10Device1Vtbl;
+
+interface ID3D10Device1 {
+ CONST_VTBL ID3D10Device1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Device1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Device methods ***/
+#define ID3D10Device1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_PSSetShader(This,pPixelShader) (This)->lpVtbl->PSSetShader(This,pPixelShader)
+#define ID3D10Device1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_VSSetShader(This,pVertexShader) (This)->lpVtbl->VSSetShader(This,pVertexShader)
+#define ID3D10Device1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D10Device1_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D10Device1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D10Device1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D10Device1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D10Device1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D10Device1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D10Device1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_GSSetShader(This,pShader) (This)->lpVtbl->GSSetShader(This,pShader)
+#define ID3D10Device1_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D10Device1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D10Device1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D10Device1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D10Device1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D10Device1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D10Device1_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D10Device1_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D10Device1_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D10Device1_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D10Device1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D10Device1_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D10Device1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D10Device1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D10Device1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D10Device1_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D10Device1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D10Device1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_PSGetShader(This,ppPixelShader) (This)->lpVtbl->PSGetShader(This,ppPixelShader)
+#define ID3D10Device1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_VSGetShader(This,ppVertexShader) (This)->lpVtbl->VSGetShader(This,ppVertexShader)
+#define ID3D10Device1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D10Device1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D10Device1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D10Device1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D10Device1_GSGetShader(This,ppGeometryShader) (This)->lpVtbl->GSGetShader(This,ppGeometryShader)
+#define ID3D10Device1_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D10Device1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D10Device1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D10Device1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D10Device1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D10Device1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D10Device1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D10Device1_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D10Device1_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D10Device1_RSGetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,NumViewports,pViewports)
+#define ID3D10Device1_RSGetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,NumRects,pRects)
+#define ID3D10Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D10Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D10Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+#define ID3D10Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D10Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D10Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D10Device1_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D10Device1_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D10Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D10Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D10Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D10Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D10Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D10Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D10Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D10Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D10Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)
+#define ID3D10Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)
+#define ID3D10Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)
+#define ID3D10Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)
+#define ID3D10Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D10Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D10Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D10Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D10Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D10Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D10Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D10Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D10Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D10Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D10Device1_CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength)
+#define ID3D10Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D10Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D10Device1_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
+#define ID3D10Device1_GetTextFilterSize(This,pWidth,pHeight) (This)->lpVtbl->GetTextFilterSize(This,pWidth,pHeight)
+/*** ID3D10Device1 methods ***/
+#define ID3D10Device1_CreateShaderResourceView1(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView1(This,pResource,pDesc,ppSRView)
+#define ID3D10Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D10Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Device1_QueryInterface(ID3D10Device1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Device1_AddRef(ID3D10Device1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Device1_Release(ID3D10Device1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10Device methods ***/
+static FORCEINLINE void ID3D10Device1_VSSetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_PSSetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_PSSetShader(ID3D10Device1* This,ID3D10PixelShader *pPixelShader) {
+ This->lpVtbl->PSSetShader(This,pPixelShader);
+}
+static FORCEINLINE void ID3D10Device1_PSSetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_VSSetShader(ID3D10Device1* This,ID3D10VertexShader *pVertexShader) {
+ This->lpVtbl->VSSetShader(This,pVertexShader);
+}
+static FORCEINLINE void ID3D10Device1_DrawIndexed(ID3D10Device1* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D10Device1_Draw(ID3D10Device1* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE void ID3D10Device1_PSSetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_IASetInputLayout(ID3D10Device1* This,ID3D10InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D10Device1_IASetVertexBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D10Device1_IASetIndexBuffer(ID3D10Device1* This,ID3D10Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D10Device1_DrawIndexedInstanced(ID3D10Device1* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D10Device1_DrawInstanced(ID3D10Device1* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D10Device1_GSSetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_GSSetShader(ID3D10Device1* This,ID3D10GeometryShader *pShader) {
+ This->lpVtbl->GSSetShader(This,pShader);
+}
+static FORCEINLINE void ID3D10Device1_IASetPrimitiveTopology(ID3D10Device1* This,D3D10_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D10Device1_VSSetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_VSSetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_SetPredication(ID3D10Device1* This,ID3D10Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D10Device1_GSSetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_GSSetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_OMSetRenderTargets(ID3D10Device1* This,UINT NumViews,ID3D10RenderTargetView *const *ppRenderTargetViews,ID3D10DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D10Device1_OMSetBlendState(ID3D10Device1* This,ID3D10BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D10Device1_OMSetDepthStencilState(ID3D10Device1* This,ID3D10DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D10Device1_SOSetTargets(ID3D10Device1* This,UINT NumBuffers,ID3D10Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D10Device1_DrawAuto(ID3D10Device1* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D10Device1_RSSetState(ID3D10Device1* This,ID3D10RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D10Device1_RSSetViewports(ID3D10Device1* This,UINT NumViewports,const D3D10_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D10Device1_RSSetScissorRects(ID3D10Device1* This,UINT NumRects,const D3D10_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D10Device1_CopySubresourceRegion(ID3D10Device1* This,ID3D10Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D10Resource *pSrcResource,UINT SrcSubresource,const D3D10_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D10Device1_CopyResource(ID3D10Device1* This,ID3D10Resource *pDstResource,ID3D10Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D10Device1_UpdateSubresource(ID3D10Device1* This,ID3D10Resource *pDstResource,UINT DstSubresource,const D3D10_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D10Device1_ClearRenderTargetView(ID3D10Device1* This,ID3D10RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D10Device1_ClearDepthStencilView(ID3D10Device1* This,ID3D10DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D10Device1_GenerateMips(ID3D10Device1* This,ID3D10ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D10Device1_ResolveSubresource(ID3D10Device1* This,ID3D10Resource *pDstResource,UINT DstSubresource,ID3D10Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D10Device1_VSGetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_PSGetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_PSGetShader(ID3D10Device1* This,ID3D10PixelShader **ppPixelShader) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader);
+}
+static FORCEINLINE void ID3D10Device1_PSGetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_VSGetShader(ID3D10Device1* This,ID3D10VertexShader **ppVertexShader) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader);
+}
+static FORCEINLINE void ID3D10Device1_PSGetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_IAGetInputLayout(ID3D10Device1* This,ID3D10InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D10Device1_IAGetVertexBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D10Device1_IAGetIndexBuffer(ID3D10Device1* This,ID3D10Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D10Device1_GSGetConstantBuffers(ID3D10Device1* This,UINT StartSlot,UINT NumBuffers,ID3D10Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D10Device1_GSGetShader(ID3D10Device1* This,ID3D10GeometryShader **ppGeometryShader) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader);
+}
+static FORCEINLINE void ID3D10Device1_IAGetPrimitiveTopology(ID3D10Device1* This,D3D10_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D10Device1_VSGetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_VSGetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_GetPredication(ID3D10Device1* This,ID3D10Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D10Device1_GSGetShaderResources(ID3D10Device1* This,UINT StartSlot,UINT NumViews,ID3D10ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D10Device1_GSGetSamplers(ID3D10Device1* This,UINT StartSlot,UINT NumSamplers,ID3D10SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D10Device1_OMGetRenderTargets(ID3D10Device1* This,UINT NumViews,ID3D10RenderTargetView **ppRenderTargetViews,ID3D10DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D10Device1_OMGetBlendState(ID3D10Device1* This,ID3D10BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D10Device1_OMGetDepthStencilState(ID3D10Device1* This,ID3D10DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D10Device1_SOGetTargets(ID3D10Device1* This,UINT NumBuffers,ID3D10Buffer **ppSOTargets,UINT *pOffsets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D10Device1_RSGetState(ID3D10Device1* This,ID3D10RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D10Device1_RSGetViewports(ID3D10Device1* This,UINT *NumViewports,D3D10_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D10Device1_RSGetScissorRects(ID3D10Device1* This,UINT *NumRects,D3D10_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE HRESULT ID3D10Device1_GetDeviceRemovedReason(ID3D10Device1* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE HRESULT ID3D10Device1_SetExceptionMode(ID3D10Device1* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D10Device1_GetExceptionMode(ID3D10Device1* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+static FORCEINLINE HRESULT ID3D10Device1_GetPrivateData(ID3D10Device1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Device1_SetPrivateData(ID3D10Device1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D10Device1_SetPrivateDataInterface(ID3D10Device1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE void ID3D10Device1_ClearState(ID3D10Device1* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D10Device1_Flush(ID3D10Device1* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateBuffer(ID3D10Device1* This,const D3D10_BUFFER_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateTexture1D(ID3D10Device1* This,const D3D10_TEXTURE1D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateTexture2D(ID3D10Device1* This,const D3D10_TEXTURE2D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateTexture3D(ID3D10Device1* This,const D3D10_TEXTURE3D_DESC *pDesc,const D3D10_SUBRESOURCE_DATA *pInitialData,ID3D10Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateShaderResourceView(ID3D10Device1* This,ID3D10Resource *pResource,const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D10ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateRenderTargetView(ID3D10Device1* This,ID3D10Resource *pResource,const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,ID3D10RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateDepthStencilView(ID3D10Device1* This,ID3D10Resource *pResource,const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D10DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateInputLayout(ID3D10Device1* This,const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D10InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateVertexShader(ID3D10Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateGeometryShader(ID3D10Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateGeometryShaderWithStreamOutput(ID3D10Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,UINT OutputStreamStride,ID3D10GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreatePixelShader(ID3D10Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D10PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateBlendState(ID3D10Device1* This,const D3D10_BLEND_DESC *pBlendStateDesc,ID3D10BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateDepthStencilState(ID3D10Device1* This,const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D10DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateRasterizerState(ID3D10Device1* This,const D3D10_RASTERIZER_DESC *pRasterizerDesc,ID3D10RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateSamplerState(ID3D10Device1* This,const D3D10_SAMPLER_DESC *pSamplerDesc,ID3D10SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateQuery(ID3D10Device1* This,const D3D10_QUERY_DESC *pQueryDesc,ID3D10Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreatePredicate(ID3D10Device1* This,const D3D10_QUERY_DESC *pPredicateDesc,ID3D10Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateCounter(ID3D10Device1* This,const D3D10_COUNTER_DESC *pCounterDesc,ID3D10Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CheckFormatSupport(ID3D10Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CheckMultisampleQualityLevels(ID3D10Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D10Device1_CheckCounterInfo(ID3D10Device1* This,D3D10_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CheckCounter(ID3D10Device1* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,char *name,UINT *pNameLength,char *units,UINT *pUnitsLength,char *description,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength);
+}
+static FORCEINLINE UINT ID3D10Device1_GetCreationFlags(ID3D10Device1* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D10Device1_OpenSharedResource(ID3D10Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE void ID3D10Device1_SetTextFilterSize(ID3D10Device1* This,UINT Width,UINT Height) {
+ This->lpVtbl->SetTextFilterSize(This,Width,Height);
+}
+static FORCEINLINE void ID3D10Device1_GetTextFilterSize(ID3D10Device1* This,UINT *pWidth,UINT *pHeight) {
+ This->lpVtbl->GetTextFilterSize(This,pWidth,pHeight);
+}
+/*** ID3D10Device1 methods ***/
+static FORCEINLINE HRESULT ID3D10Device1_CreateShaderResourceView1(ID3D10Device1* This,ID3D10Resource *pResource,const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,ID3D10ShaderResourceView1 **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView1(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D10Device1_CreateBlendState1(ID3D10Device1* This,const D3D10_BLEND_DESC1 *pBlendStateDesc,ID3D10BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE D3D10_FEATURE_LEVEL1 ID3D10Device1_GetFeatureLevel(ID3D10Device1* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Device1_INTERFACE_DEFINED__ */
+
+#define D3D10_1_SDK_VERSION (0x20)
+
+HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,
+ HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);
+HRESULT __stdcall D3D10CreateDeviceAndSwapChain1(IDXGIAdapter *adapter,enum D3D10_DRIVER_TYPE driver_type,HMODULE swrast,UINT flags,D3D10_FEATURE_LEVEL1 feature_level,UINT sdk_version,DXGI_SWAP_CHAIN_DESC *swapchain_desc,IDXGISwapChain **swapchain,ID3D10Device1 **device);
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d10_1_h__ */
diff --git a/d3d10_1shader.h b/d3d10_1shader.h
new file mode 100644
index 0000000..a9aa135
--- /dev/null
+++ b/d3d10_1shader.h
@@ -0,0 +1,53 @@
+#undef INTERFACE
+/*
+ * Copyright 2010 Rico Schüller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3D10_1SHADER_H__
+#define __D3D10_1SHADER_H__
+
+#include "d3d10shader.h"
+
+DEFINE_GUID(IID_ID3D10ShaderReflection1, 0xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47);
+
+#define INTERFACE ID3D10ShaderReflection1
+DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10ShaderReflection1 methods */
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD(GetMovInstructionCount)(THIS_ UINT *count) PURE;
+ STDMETHOD(GetMovcInstructionCount)(THIS_ UINT *count) PURE;
+ STDMETHOD(GetConversionInstructionCount)(THIS_ UINT *count) PURE;
+ STDMETHOD(GetBitwiseInstructionCount)(THIS_ UINT *count) PURE;
+ STDMETHOD(GetGSInputPrimitive)(THIS_ D3D10_PRIMITIVE *prim) PURE;
+ STDMETHOD(IsLevel9Shader)(THIS_ WINBOOL *level9shader) PURE;
+ STDMETHOD(IsSampleFrequencyShader)(THIS_ WINBOOL *samplefrequency) PURE;
+};
+#undef INTERFACE
+
+#endif
diff --git a/d3d10effect.h b/d3d10effect.h
new file mode 100644
index 0000000..25edd30
--- /dev/null
+++ b/d3d10effect.h
@@ -0,0 +1,860 @@
+#undef INTERFACE
+/*
+ * Copyright 2009 Henri Verbeet for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+#ifndef __WINE_D3D10EFFECT_H
+#define __WINE_D3D10EFFECT_H
+
+#include "d3d10.h"
+
+#define D3D10_EFFECT_VARIABLE_POOLED 0x1
+#define D3D10_EFFECT_VARIABLE_ANNOTATION 0x2
+#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT 0x4
+
+#ifndef D3D10_BYTES_FROM_BITS
+#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) >> 3)
+#endif
+
+typedef enum _D3D10_DEVICE_STATE_TYPES
+{
+ D3D10_DST_SO_BUFFERS = 1,
+ D3D10_DST_OM_RENDER_TARGETS,
+ D3D10_DST_OM_DEPTH_STENCIL_STATE,
+ D3D10_DST_OM_BLEND_STATE,
+ D3D10_DST_VS,
+ D3D10_DST_VS_SAMPLERS,
+ D3D10_DST_VS_SHADER_RESOURCES,
+ D3D10_DST_VS_CONSTANT_BUFFERS,
+ D3D10_DST_GS,
+ D3D10_DST_GS_SAMPLERS,
+ D3D10_DST_GS_SHADER_RESOURCES,
+ D3D10_DST_GS_CONSTANT_BUFFERS,
+ D3D10_DST_PS,
+ D3D10_DST_PS_SAMPLERS,
+ D3D10_DST_PS_SHADER_RESOURCES,
+ D3D10_DST_PS_CONSTANT_BUFFERS,
+ D3D10_DST_IA_VERTEX_BUFFERS,
+ D3D10_DST_IA_INDEX_BUFFER,
+ D3D10_DST_IA_INPUT_LAYOUT,
+ D3D10_DST_IA_PRIMITIVE_TOPOLOGY,
+ D3D10_DST_RS_VIEWPORTS,
+ D3D10_DST_RS_SCISSOR_RECTS,
+ D3D10_DST_RS_RASTERIZER_STATE,
+ D3D10_DST_PREDICATION,
+} D3D10_DEVICE_STATE_TYPES;
+
+typedef struct _D3D10_EFFECT_TYPE_DESC
+{
+ const char *TypeName;
+ D3D10_SHADER_VARIABLE_CLASS Class;
+ D3D10_SHADER_VARIABLE_TYPE Type;
+ UINT Elements;
+ UINT Members;
+ UINT Rows;
+ UINT Columns;
+ UINT PackedSize;
+ UINT UnpackedSize;
+ UINT Stride;
+} D3D10_EFFECT_TYPE_DESC;
+
+typedef struct _D3D10_EFFECT_VARIABLE_DESC
+{
+ const char *Name;
+ const char *Semantic;
+ UINT Flags;
+ UINT Annotations;
+ UINT BufferOffset;
+ UINT ExplicitBindPoint;
+} D3D10_EFFECT_VARIABLE_DESC;
+
+typedef struct _D3D10_TECHNIQUE_DESC
+{
+ const char *Name;
+ UINT Passes;
+ UINT Annotations;
+} D3D10_TECHNIQUE_DESC;
+
+typedef struct _D3D10_STATE_BLOCK_MASK
+{
+ BYTE VS;
+ BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
+ BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
+ BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
+ BYTE GS;
+ BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
+ BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
+ BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
+ BYTE PS;
+ BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
+ BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
+ BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
+ BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
+ BYTE IAIndexBuffer;
+ BYTE IAInputLayout;
+ BYTE IAPrimitiveTopology;
+ BYTE OMRenderTargets;
+ BYTE OMDepthStencilState;
+ BYTE OMBlendState;
+ BYTE RSViewports;
+ BYTE RSScissorRects;
+ BYTE RSRasterizerState;
+ BYTE SOBuffers;
+ BYTE Predication;
+} D3D10_STATE_BLOCK_MASK;
+
+typedef struct _D3D10_EFFECT_DESC
+{
+ WINBOOL IsChildEffect;
+ UINT ConstantBuffers;
+ UINT SharedConstantBuffers;
+ UINT GlobalVariables;
+ UINT SharedGlobalVariables;
+ UINT Techniques;
+} D3D10_EFFECT_DESC;
+
+typedef struct _D3D10_EFFECT_SHADER_DESC
+{
+ const BYTE *pInputSignature;
+ WINBOOL IsInline;
+ const BYTE *pBytecode;
+ UINT BytecodeLength;
+ const char *SODecl;
+ UINT NumInputSignatureEntries;
+ UINT NumOutputSignatureEntries;
+} D3D10_EFFECT_SHADER_DESC;
+
+typedef struct _D3D10_PASS_DESC
+{
+ const char *Name;
+ UINT Annotations;
+ BYTE *pIAInputSignature;
+ SIZE_T IAInputSignatureSize;
+ UINT StencilRef;
+ UINT SampleMask;
+ FLOAT BlendFactor[4];
+} D3D10_PASS_DESC;
+
+typedef struct _D3D10_PASS_SHADER_DESC
+{
+ struct ID3D10EffectShaderVariable *pShaderVariable;
+ UINT ShaderIndex;
+} D3D10_PASS_SHADER_DESC;
+
+#define D3D10_EFFECT_COMPILE_CHILD_EFFECT 0x0001
+#define D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS 0x0002
+#define D3D10_EFFECT_SINGLE_THREADED 0x0008
+
+DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
+
+#define INTERFACE ID3D10EffectType
+DECLARE_INTERFACE(ID3D10EffectType)
+{
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(const char *, GetMemberName)(THIS_ UINT index) PURE;
+ STDMETHOD_(const char *, GetMemberSemantic)(THIS_ UINT index) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
+
+#define INTERFACE ID3D10EffectVariable
+DECLARE_INTERFACE(ID3D10EffectVariable)
+{
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
+
+#define INTERFACE ID3D10EffectConstantBuffer
+DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectConstantBuffer methods */
+ STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *buffer) PURE;
+ STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **buffer) PURE;
+ STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *view) PURE;
+ STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **view) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f);
+
+#define INTERFACE ID3D10EffectScalarVariable
+DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectScalarVariable methods */
+ STDMETHOD(SetFloat)(THIS_ float value) PURE;
+ STDMETHOD(GetFloat)(THIS_ float *value) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
+ STDMETHOD(SetInt)(THIS_ int value) PURE;
+ STDMETHOD(GetInt)(THIS_ int *value) PURE;
+ STDMETHOD(SetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
+ STDMETHOD(SetBool)(THIS_ WINBOOL value) PURE;
+ STDMETHOD(GetBool)(THIS_ WINBOOL *value) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetBoolArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
+
+#define INTERFACE ID3D10EffectVectorVariable
+DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectVectorVariable methods */
+ STDMETHOD(SetBoolVector)(THIS_ WINBOOL *value) PURE;
+ STDMETHOD(SetIntVector)(THIS_ int *value) PURE;
+ STDMETHOD(SetFloatVector)(THIS_ float *value) PURE;
+ STDMETHOD(GetBoolVector)(THIS_ WINBOOL *value) PURE;
+ STDMETHOD(GetIntVector)(THIS_ int *value) PURE;
+ STDMETHOD(GetFloatVector)(THIS_ float *value) PURE;
+ STDMETHOD(SetBoolVectorArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
+ STDMETHOD(SetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
+ STDMETHOD(SetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetBoolVectorArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
+ STDMETHOD(GetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
+
+#define INTERFACE ID3D10EffectMatrixVariable
+DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectMatrixVariable methods */
+ STDMETHOD(SetMatrix)(THIS_ float *data) PURE;
+ STDMETHOD(GetMatrix)(THIS_ float *data) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ float *data) PURE;
+ STDMETHOD(GetMatrixTranspose)(THIS_ float *data) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
+
+#define INTERFACE ID3D10EffectStringVariable
+DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectStringVariable methods */
+ STDMETHOD(GetString)(THIS_ const char **str) PURE;
+ STDMETHOD(GetStringArray)(THIS_ const char **strs, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
+ 0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
+
+#define INTERFACE ID3D10EffectShaderResourceVariable
+DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectShaderResourceVariable methods */
+ STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *resource) PURE;
+ STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **resource) PURE;
+ STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
+ STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
+ 0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
+
+#define INTERFACE ID3D10EffectRenderTargetViewVariable
+DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectRenderTargetViewVariable methods */
+ STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *view) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **view) PURE;
+ STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
+ 0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
+
+#define INTERFACE ID3D10EffectDepthStencilViewVariable
+DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectDepthStencilViewVariable methods */
+ STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *view) PURE;
+ STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **view) PURE;
+ STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
+ STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06);
+
+#define INTERFACE ID3D10EffectShaderVariable
+DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectShaderVariable methods */
+ STDMETHOD(GetShaderDesc)(THIS_ UINT index, D3D10_EFFECT_SHADER_DESC *desc) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ UINT index, ID3D10VertexShader **shader) PURE;
+ STDMETHOD(GetGeometryShader)(THIS_ UINT index, ID3D10GeometryShader **shader) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ UINT index, ID3D10PixelShader **shader) PURE;
+ STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
+ D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
+ D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
+
+#define INTERFACE ID3D10EffectBlendVariable
+DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectBlendVariable methods */
+ STDMETHOD(GetBlendState)(THIS_ UINT index, ID3D10BlendState **blend_state) PURE;
+ STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_BLEND_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
+ 0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
+
+#define INTERFACE ID3D10EffectDepthStencilVariable
+DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectDepthStencilVariable methods */
+ STDMETHOD(GetDepthStencilState)(THIS_ UINT index, ID3D10DepthStencilState **depth_stencil_state) PURE;
+ STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_DEPTH_STENCIL_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
+ 0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34);
+
+#define INTERFACE ID3D10EffectRasterizerVariable
+DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectRasterizerVariable methods */
+ STDMETHOD(GetRasterizerState)(THIS_ UINT index, ID3D10RasterizerState **rasterizer_state) PURE;
+ STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_RASTERIZER_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
+ 0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
+
+#define INTERFACE ID3D10EffectSamplerVariable
+DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
+{
+ /* ID3D10EffectVariable methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
+ STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
+ STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+ /* ID3D10EffectSamplerVariable methods */
+ STDMETHOD(GetSampler)(THIS_ UINT index, ID3D10SamplerState **sampler) PURE;
+ STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_SAMPLER_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
+
+#define INTERFACE ID3D10EffectTechnique
+DECLARE_INTERFACE(ID3D10EffectTechnique)
+{
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectPass *, GetPassByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ const char *name) PURE;
+ STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
+
+#define INTERFACE ID3D10Effect
+DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10Effect methods */
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD_(WINBOOL, IsPool)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ const char *semantic) PURE;
+ STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ const char *name) PURE;
+ STDMETHOD(Optimize)(THIS) PURE;
+ STDMETHOD_(WINBOOL, IsOptimized)(THIS) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
+
+#define INTERFACE ID3D10EffectPool
+DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10EffectPool methods */
+ STDMETHOD_(struct ID3D10Effect *, AsEffect)(THIS) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
+
+#define INTERFACE ID3D10EffectPass
+DECLARE_INTERFACE(ID3D10EffectPass)
+{
+ STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *desc) PURE;
+ STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
+ STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
+ STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+ STDMETHOD(Apply)(THIS_ UINT flags) PURE;
+ STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10StateBlock, 0x0803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08);
+
+#define INTERFACE ID3D10StateBlock
+DECLARE_INTERFACE_(ID3D10StateBlock, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **object) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10StateBlock methods */
+ STDMETHOD(Capture)(THIS) PURE;
+ STDMETHOD(Apply)(THIS) PURE;
+ STDMETHOD(ReleaseAllDeviceObjects)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
+};
+#undef INTERFACE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3D10CompileEffectFromMemory(void *data, SIZE_T data_size, const char *filename,
+ const D3D10_SHADER_MACRO *defines, ID3D10Include *include, UINT hlsl_flags, UINT fx_flags,
+ ID3D10Blob **effect, ID3D10Blob **errors);
+HRESULT WINAPI D3D10CreateEffectFromMemory(void *data, SIZE_T data_size, UINT flags,
+ ID3D10Device *device, ID3D10EffectPool *effect_pool, ID3D10Effect **effect);
+HRESULT WINAPI D3D10CreateEffectPoolFromMemory(void *data, SIZE_T data_size, UINT fx_flags,
+ ID3D10Device *device, ID3D10EffectPool **effect_pool);
+HRESULT WINAPI D3D10CreateStateBlock(ID3D10Device *device,
+ D3D10_STATE_BLOCK_MASK *mask, ID3D10StateBlock **stateblock);
+
+HRESULT WINAPI D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *mask_x,
+ D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
+HRESULT WINAPI D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *mask);
+HRESULT WINAPI D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *mask,
+ D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
+HRESULT WINAPI D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *mask);
+HRESULT WINAPI D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *mask,
+ D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
+WINBOOL WINAPI D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *mask,
+ D3D10_DEVICE_STATE_TYPES state_type, UINT idx);
+HRESULT WINAPI D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *mask_x,
+ D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
+HRESULT WINAPI D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *mask_x,
+ D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3D10EFFECT_H */
diff --git a/d3d10misc.h b/d3d10misc.h
new file mode 100644
index 0000000..f8f5617
--- /dev/null
+++ b/d3d10misc.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2008 Henri Verbeet for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3D10MISC_H__
+#define __D3D10MISC_H__
+
+#include "d3d10.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum D3D10_DRIVER_TYPE {
+ D3D10_DRIVER_TYPE_HARDWARE = 0,
+ D3D10_DRIVER_TYPE_REFERENCE = 1,
+ D3D10_DRIVER_TYPE_NULL = 2,
+ D3D10_DRIVER_TYPE_SOFTWARE = 3,
+ D3D10_DRIVER_TYPE_WARP = 5,
+} D3D10_DRIVER_TYPE;
+
+HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
+ HMODULE swrast, UINT flags, UINT sdk_version, ID3D10Device **device);
+
+HRESULT WINAPI D3D10CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
+ HMODULE swrast, UINT flags, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc,
+ IDXGISwapChain **swapchain, ID3D10Device **device);
+
+HRESULT WINAPI D3D10CreateBlob(SIZE_T data_size, ID3D10Blob **blob);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D3D10MISC_H__ */
diff --git a/d3d10sdklayers.h b/d3d10sdklayers.h
new file mode 100644
index 0000000..37b2d28
--- /dev/null
+++ b/d3d10sdklayers.h
@@ -0,0 +1,1303 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d10sdklayers.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d10sdklayers_h__
+#define __d3d10sdklayers_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D10Debug_FWD_DEFINED__
+#define __ID3D10Debug_FWD_DEFINED__
+typedef interface ID3D10Debug ID3D10Debug;
+#ifdef __cplusplus
+interface ID3D10Debug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10SwitchToRef_FWD_DEFINED__
+#define __ID3D10SwitchToRef_FWD_DEFINED__
+typedef interface ID3D10SwitchToRef ID3D10SwitchToRef;
+#ifdef __cplusplus
+interface ID3D10SwitchToRef;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10InfoQueue_FWD_DEFINED__
+#define __ID3D10InfoQueue_FWD_DEFINED__
+typedef interface ID3D10InfoQueue ID3D10InfoQueue;
+#ifdef __cplusplus
+interface ID3D10InfoQueue;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetMessage
+#endif
+#define D3D10_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1)
+
+#define D3D10_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2)
+
+#define D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4)
+
+typedef enum D3D10_MESSAGE_CATEGORY {
+ D3D10_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0,
+ D3D10_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
+ D3D10_MESSAGE_CATEGORY_INITIALIZATION = 2,
+ D3D10_MESSAGE_CATEGORY_CLEANUP = 3,
+ D3D10_MESSAGE_CATEGORY_COMPILATION = 4,
+ D3D10_MESSAGE_CATEGORY_STATE_CREATION = 5,
+ D3D10_MESSAGE_CATEGORY_STATE_SETTING = 6,
+ D3D10_MESSAGE_CATEGORY_STATE_GETTING = 7,
+ D3D10_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 8,
+ D3D10_MESSAGE_CATEGORY_EXECUTION = 9,
+ D3D10_MESSAGE_CATEGORY_SHADER = 10
+} D3D10_MESSAGE_CATEGORY;
+typedef enum D3D10_MESSAGE_SEVERITY {
+ D3D10_MESSAGE_SEVERITY_CORRUPTION = 0,
+ D3D10_MESSAGE_SEVERITY_ERROR = 1,
+ D3D10_MESSAGE_SEVERITY_WARNING = 2,
+ D3D10_MESSAGE_SEVERITY_INFO = 3,
+ D3D10_MESSAGE_SEVERITY_MESSAGE = 4
+} D3D10_MESSAGE_SEVERITY;
+typedef enum D3D10_MESSAGE_ID {
+ D3D10_MESSAGE_ID_UNKNOWN = 0,
+ D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD = 1,
+ D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD = 2,
+ D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD = 3,
+ D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD = 4,
+ D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD = 5,
+ D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD = 6,
+ D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD = 7,
+ D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD = 8,
+ D3D10_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD = 9,
+ D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD = 10,
+ D3D10_MESSAGE_ID_STRING_FROM_APPLICATION = 11,
+ D3D10_MESSAGE_ID_CORRUPTED_THIS = 12,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER1 = 13,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER2 = 14,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER3 = 15,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER4 = 16,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER5 = 17,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER6 = 18,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER7 = 19,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER8 = 20,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER9 = 21,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER10 = 22,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER11 = 23,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER12 = 24,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER13 = 25,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER14 = 26,
+ D3D10_MESSAGE_ID_CORRUPTED_PARAMETER15 = 27,
+ D3D10_MESSAGE_ID_CORRUPTED_MULTITHREADING = 28,
+ D3D10_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 29,
+ D3D10_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = 30,
+ D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = 31,
+ D3D10_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT = 32,
+ D3D10_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT = 33,
+ D3D10_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 34,
+ D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 35,
+ D3D10_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT = 36,
+ D3D10_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT = 37,
+ D3D10_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 38,
+ D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 39,
+ D3D10_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT = 40,
+ D3D10_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT = 41,
+ D3D10_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT = 42,
+ D3D10_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 43,
+ D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 44,
+ D3D10_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT = 45,
+ D3D10_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT = 46,
+ D3D10_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT = 47,
+ D3D10_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = 48,
+ D3D10_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = 49,
+ D3D10_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT = 50,
+ D3D10_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 51,
+ D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 52,
+ D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = 53,
+ D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = 54,
+ D3D10_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 55,
+ D3D10_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 56,
+ D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT = 57,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES = 58,
+ D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE = 59,
+ D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = 60,
+ D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = 61,
+ D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = 62,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS = 63,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS = 64,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA = 65,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS = 66,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS = 67,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS = 68,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN = 69,
+ D3D10_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN = 70,
+ D3D10_MESSAGE_ID_CREATEBUFFER_NULLDESC = 71,
+ D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = 72,
+ D3D10_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION = 73,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT = 74,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT = 75,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES = 76,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE = 77,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = 78,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = 79,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = 80,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = 81,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS = 82,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA = 83,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS = 84,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS = 85,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS = 86,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN = 87,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN = 88,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_NULLDESC = 89,
+ D3D10_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION = 90,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT = 91,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT = 92,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES = 93,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE = 94,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = 95,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = 96,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = 97,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = 98,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS = 99,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA = 100,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS = 101,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS = 102,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS = 103,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN = 104,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN = 105,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_NULLDESC = 106,
+ D3D10_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION = 107,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT = 108,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT = 109,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES = 110,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE = 111,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = 112,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = 113,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = 114,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = 115,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS = 116,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA = 117,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS = 118,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS = 119,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS = 120,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN = 121,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN = 122,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_NULLDESC = 123,
+ D3D10_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION = 124,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 125,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 126,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 127,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 128,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 129,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = 130,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = 131,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = 132,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 133,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 134,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 135,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 136,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 137,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 138,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS = 139,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = 140,
+ D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = 141,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 142,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 143,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 144,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 145,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 146,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = 147,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = 148,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = 149,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 150,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 151,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 152,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 153,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 154,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 155,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 156,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 157,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 158,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 159,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 160,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 161,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 162,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 163,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC = 164,
+ D3D10_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 165,
+ D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 166,
+ D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 167,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 168,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 169,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 170,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 171,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 172,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 173,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 174,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 175,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = 176,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = 177,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 178,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 179,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 180,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 181,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 182,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 183,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 184,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 185,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 186,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 187,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 188,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 189,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 190,
+ D3D10_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 191,
+ D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 192,
+ D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 193,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 194,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 195,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 196,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 197,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS = 198,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = 199,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 200,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 201,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 202,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 203,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 204,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 205,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 206,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 207,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 208,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 209,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = 210,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = 211,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 212,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 213,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 214,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 215,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 216,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 217,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 218,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS = 219,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = 220,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = 221,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = 222,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = 223,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = 224,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = 225,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = 226,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = 227,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = 228,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = 229,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS = 230,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = 231,
+ D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY = 232,
+ D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = 233,
+ D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = 234,
+ D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC = 235,
+ D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = 236,
+ D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = 237,
+ D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER = 238,
+ D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = 239,
+ D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = 240,
+ D3D10_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER = 241,
+ D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = 242,
+ D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = 243,
+ D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = 244,
+ D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = 245,
+ D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER = 246,
+ D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 247,
+ D3D10_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = 248,
+ D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = 249,
+ D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER = 250,
+ D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 251,
+ D3D10_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = 252,
+ D3D10_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER = 253,
+ D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = 254,
+ D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = 255,
+ D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER = 256,
+ D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 257,
+ D3D10_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = 258,
+ D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = 259,
+ D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = 260,
+ D3D10_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = 261,
+ D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = 262,
+ D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 263,
+ D3D10_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = 264,
+ D3D10_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = 265,
+ D3D10_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 266,
+ D3D10_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = 267,
+ D3D10_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = 268,
+ D3D10_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 269,
+ D3D10_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = 270,
+ D3D10_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY = 271,
+ D3D10_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = 272,
+ D3D10_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 273,
+ D3D10_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = 274,
+ D3D10_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = 275,
+ D3D10_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = 276,
+ D3D10_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID = 277,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = 278,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = 279,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = 280,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE = 281,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = 282,
+ D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = 283,
+ D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = 284,
+ D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = 285,
+ D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = 286,
+ D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = 287,
+ D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = 288,
+ D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = 289,
+ D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = 290,
+ D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = 291,
+ D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = 292,
+ D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = 293,
+ D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = 294,
+ D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = 295,
+ D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = 296,
+ D3D10_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = 297,
+ D3D10_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = 298,
+ D3D10_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = 299,
+ D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = 300,
+ D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = 301,
+ D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = 302,
+ D3D10_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = 303,
+ D3D10_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = 304,
+ D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = 305,
+ D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = 306,
+ D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = 307,
+ D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = 308,
+ D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = 309,
+ D3D10_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = 310,
+ D3D10_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = 311,
+ D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = 312,
+ D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = 313,
+ D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = 314,
+ D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = 315,
+ D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = 316,
+ D3D10_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = 317,
+ D3D10_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = 318,
+ D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = 319,
+ D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = 320,
+ D3D10_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = 321,
+ D3D10_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = 322,
+ D3D10_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = 323,
+ D3D10_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = 324,
+ D3D10_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = 325,
+ D3D10_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = 326,
+ D3D10_MESSAGE_ID_REF_THREADING_MODE = 327,
+ D3D10_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = 328,
+ D3D10_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = 329,
+ D3D10_MESSAGE_ID_REF_HARDWARE_EXCEPTION = 330,
+ D3D10_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = 331,
+ D3D10_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = 332,
+ D3D10_MESSAGE_ID_REF_OUT_OF_MEMORY = 333,
+ D3D10_MESSAGE_ID_REF_INFO = 334,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = 335,
+ D3D10_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = 336,
+ D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = 337,
+ D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = 338,
+ D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = 339,
+ D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = 340,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = 341,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 342,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = 343,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = 344,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = 345,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = 346,
+ D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 347,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = 348,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET = 349,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = 350,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = 351,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET = 352,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = 353,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = 354,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 355,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = 356,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET = 357,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = 358,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = 359,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = 360,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = 361,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT = 362,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = 363,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED = 364,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = 365,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = 366,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = 367,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = 368,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = 369,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = 370,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = 371,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = 372,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = 373,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = 374,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = 375,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 376,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 377,
+ D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 378,
+ D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 379,
+ D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 380,
+ D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = 381,
+ D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = 382,
+ D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = 383,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = 384,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 385,
+ D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 386,
+ D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = 387,
+ D3D10_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = 388,
+ D3D10_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = 389,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = 390,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 391,
+ D3D10_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = 392,
+ D3D10_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = 393,
+ D3D10_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN = 394,
+ D3D10_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN = 395,
+ D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER = 396,
+ D3D10_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = 397,
+ D3D10_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 398,
+ D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN = 399,
+ D3D10_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN = 400,
+ D3D10_MESSAGE_ID_CREATECOUNTER_NULLDESC = 401,
+ D3D10_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER = 402,
+ D3D10_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 403,
+ D3D10_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE = 404,
+ D3D10_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED = 405,
+ D3D10_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION = 406,
+ D3D10_MESSAGE_ID_QUERY_BEGIN_DUPLICATE = 407,
+ D3D10_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = 408,
+ D3D10_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION = 409,
+ D3D10_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS = 410,
+ D3D10_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN = 411,
+ D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE = 412,
+ D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS = 413,
+ D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL = 414,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = 415,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = 416,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 417,
+ D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = 418,
+ D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = 419,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 420,
+ D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = 421,
+ D3D10_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 422,
+ D3D10_MESSAGE_ID_LIVE_BUFFER = 423,
+ D3D10_MESSAGE_ID_LIVE_TEXTURE1D = 424,
+ D3D10_MESSAGE_ID_LIVE_TEXTURE2D = 425,
+ D3D10_MESSAGE_ID_LIVE_TEXTURE3D = 426,
+ D3D10_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = 427,
+ D3D10_MESSAGE_ID_LIVE_RENDERTARGETVIEW = 428,
+ D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = 429,
+ D3D10_MESSAGE_ID_LIVE_VERTEXSHADER = 430,
+ D3D10_MESSAGE_ID_LIVE_GEOMETRYSHADER = 431,
+ D3D10_MESSAGE_ID_LIVE_PIXELSHADER = 432,
+ D3D10_MESSAGE_ID_LIVE_INPUTLAYOUT = 433,
+ D3D10_MESSAGE_ID_LIVE_SAMPLER = 434,
+ D3D10_MESSAGE_ID_LIVE_BLENDSTATE = 435,
+ D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = 436,
+ D3D10_MESSAGE_ID_LIVE_RASTERIZERSTATE = 437,
+ D3D10_MESSAGE_ID_LIVE_QUERY = 438,
+ D3D10_MESSAGE_ID_LIVE_PREDICATE = 439,
+ D3D10_MESSAGE_ID_LIVE_COUNTER = 440,
+ D3D10_MESSAGE_ID_LIVE_DEVICE = 441,
+ D3D10_MESSAGE_ID_LIVE_SWAPCHAIN = 442,
+ D3D10_MESSAGE_ID_D3D10_MESSAGES_END = 443,
+ D3D10_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x100000,
+ D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = 0x100001,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = 0x100002,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = 0x100003,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = 0x100004,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = 0x100005,
+ D3D10_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED = 0x100006,
+ D3D10_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100007,
+ D3D10_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100008,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS = 0x100009,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND = 0x10000a,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D = 0x10000b,
+ D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE = 0x10000c,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = 0x10000d,
+ D3D10_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = 0x10000e,
+ D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = 0x10000f,
+ D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = 0x100010,
+ D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = 0x100011,
+ D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = 0x100012,
+ D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = 0x100013,
+ D3D10_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = 0x100014,
+ D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK = 0x100015,
+ D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = 0x100016,
+ D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = 0x100017,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = 0x100018,
+ D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = 0x100019,
+ D3D10_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = 0x10001a,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = 0x10001b,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = 0x10001c,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = 0x10001d,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = 0x10001e,
+ D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = 0x10001f,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = 0x100020,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER = 0x100021,
+ D3D10_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = 0x100022,
+ D3D10_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = 0x100023,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = 0x100024,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = 0x100025,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT = 0x100026,
+ D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = 0x100027,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = 0x100028,
+ D3D10_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = 0x100029,
+ D3D10_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED = 0x10002a,
+ D3D10_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED = 0x10002b,
+ D3D10_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED = 0x10002c,
+ D3D10_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED = 0x10002d,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = 0x10002e,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND = 0x10002f,
+ D3D10_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = 0x100030,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE = 0x100031,
+ D3D10_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED = 0x100032,
+ D3D10_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = 0x100033,
+ D3D10_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED = 0x100034,
+ D3D10_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = 0x100035,
+ D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = 0x100036,
+ D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = 0x100037,
+ D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = 0x100038,
+ D3D10_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = 0x100039,
+ D3D10_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP = 0x10003a,
+ D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = 0x10003b,
+ D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT = 0x10003c,
+ D3D10_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = 0x10003d,
+ D3D10_MESSAGE_ID_D3D10L9_MESSAGES_END = 0x10003e
+} D3D10_MESSAGE_ID;
+typedef struct D3D10_MESSAGE {
+ D3D10_MESSAGE_CATEGORY Category;
+ D3D10_MESSAGE_SEVERITY Severity;
+ D3D10_MESSAGE_ID ID;
+ const char *pDescription;
+ SIZE_T DescriptionByteLength;
+} D3D10_MESSAGE;
+typedef struct D3D10_INFO_QUEUE_FILTER_DESC {
+ UINT NumCategories;
+ D3D10_MESSAGE_CATEGORY *pCategoryList;
+ UINT NumSeverities;
+ D3D10_MESSAGE_SEVERITY *pSeverityList;
+ UINT NumIDs;
+ D3D10_MESSAGE_ID *pIDList;
+} D3D10_INFO_QUEUE_FILTER_DESC;
+typedef struct D3D10_INFO_QUEUE_FILTER {
+ D3D10_INFO_QUEUE_FILTER_DESC AllowList;
+ D3D10_INFO_QUEUE_FILTER_DESC DenyList;
+} D3D10_INFO_QUEUE_FILTER;
+/*****************************************************************************
+ * ID3D10Debug interface
+ */
+#ifndef __ID3D10Debug_INTERFACE_DEFINED__
+#define __ID3D10Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Debug, 0x9b7e4e01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e01-342c-4106-a19f-4f2704f689f0")
+ID3D10Debug : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetFeatureMask(
+ UINT mask) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetFeatureMask(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPresentPerRenderOpDelay(
+ UINT milliseconds) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetPresentPerRenderOpDelay(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSwapChain(
+ IDXGISwapChain *swapchain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSwapChain(
+ IDXGISwapChain **swapchain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Validate(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Debug, 0x9b7e4e01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10DebugVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Debug *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Debug *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Debug *This);
+
+ /*** ID3D10Debug methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetFeatureMask)(
+ ID3D10Debug *This,
+ UINT mask);
+
+ UINT (STDMETHODCALLTYPE *GetFeatureMask)(
+ ID3D10Debug *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetPresentPerRenderOpDelay)(
+ ID3D10Debug *This,
+ UINT milliseconds);
+
+ UINT (STDMETHODCALLTYPE *GetPresentPerRenderOpDelay)(
+ ID3D10Debug *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetSwapChain)(
+ ID3D10Debug *This,
+ IDXGISwapChain *swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSwapChain)(
+ ID3D10Debug *This,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *Validate)(
+ ID3D10Debug *This);
+
+ END_INTERFACE
+} ID3D10DebugVtbl;
+
+interface ID3D10Debug {
+ CONST_VTBL ID3D10DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Debug methods ***/
+#define ID3D10Debug_SetFeatureMask(This,mask) (This)->lpVtbl->SetFeatureMask(This,mask)
+#define ID3D10Debug_GetFeatureMask(This) (This)->lpVtbl->GetFeatureMask(This)
+#define ID3D10Debug_SetPresentPerRenderOpDelay(This,milliseconds) (This)->lpVtbl->SetPresentPerRenderOpDelay(This,milliseconds)
+#define ID3D10Debug_GetPresentPerRenderOpDelay(This) (This)->lpVtbl->GetPresentPerRenderOpDelay(This)
+#define ID3D10Debug_SetSwapChain(This,swapchain) (This)->lpVtbl->SetSwapChain(This,swapchain)
+#define ID3D10Debug_GetSwapChain(This,swapchain) (This)->lpVtbl->GetSwapChain(This,swapchain)
+#define ID3D10Debug_Validate(This) (This)->lpVtbl->Validate(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Debug_QueryInterface(ID3D10Debug* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Debug_AddRef(ID3D10Debug* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Debug_Release(ID3D10Debug* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10Debug methods ***/
+static FORCEINLINE HRESULT ID3D10Debug_SetFeatureMask(ID3D10Debug* This,UINT mask) {
+ return This->lpVtbl->SetFeatureMask(This,mask);
+}
+static FORCEINLINE UINT ID3D10Debug_GetFeatureMask(ID3D10Debug* This) {
+ return This->lpVtbl->GetFeatureMask(This);
+}
+static FORCEINLINE HRESULT ID3D10Debug_SetPresentPerRenderOpDelay(ID3D10Debug* This,UINT milliseconds) {
+ return This->lpVtbl->SetPresentPerRenderOpDelay(This,milliseconds);
+}
+static FORCEINLINE UINT ID3D10Debug_GetPresentPerRenderOpDelay(ID3D10Debug* This) {
+ return This->lpVtbl->GetPresentPerRenderOpDelay(This);
+}
+static FORCEINLINE HRESULT ID3D10Debug_SetSwapChain(ID3D10Debug* This,IDXGISwapChain *swapchain) {
+ return This->lpVtbl->SetSwapChain(This,swapchain);
+}
+static FORCEINLINE HRESULT ID3D10Debug_GetSwapChain(ID3D10Debug* This,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->GetSwapChain(This,swapchain);
+}
+static FORCEINLINE HRESULT ID3D10Debug_Validate(ID3D10Debug* This) {
+ return This->lpVtbl->Validate(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Debug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10SwitchToRef interface
+ */
+#ifndef __ID3D10SwitchToRef_INTERFACE_DEFINED__
+#define __ID3D10SwitchToRef_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10SwitchToRef, 0x9b7e4e02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e02-342c-4106-a19f-4f2704f689f0")
+ID3D10SwitchToRef : public IUnknown
+{
+ virtual WINBOOL STDMETHODCALLTYPE SetUseRef(
+ WINBOOL useref) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetUseRef(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10SwitchToRef, 0x9b7e4e02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10SwitchToRefVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10SwitchToRef *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10SwitchToRef *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10SwitchToRef *This);
+
+ /*** ID3D10SwitchToRef methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SetUseRef)(
+ ID3D10SwitchToRef *This,
+ WINBOOL useref);
+
+ WINBOOL (STDMETHODCALLTYPE *GetUseRef)(
+ ID3D10SwitchToRef *This);
+
+ END_INTERFACE
+} ID3D10SwitchToRefVtbl;
+
+interface ID3D10SwitchToRef {
+ CONST_VTBL ID3D10SwitchToRefVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10SwitchToRef_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10SwitchToRef_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10SwitchToRef_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10SwitchToRef methods ***/
+#define ID3D10SwitchToRef_SetUseRef(This,useref) (This)->lpVtbl->SetUseRef(This,useref)
+#define ID3D10SwitchToRef_GetUseRef(This) (This)->lpVtbl->GetUseRef(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10SwitchToRef_QueryInterface(ID3D10SwitchToRef* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10SwitchToRef_AddRef(ID3D10SwitchToRef* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10SwitchToRef_Release(ID3D10SwitchToRef* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10SwitchToRef methods ***/
+static FORCEINLINE WINBOOL ID3D10SwitchToRef_SetUseRef(ID3D10SwitchToRef* This,WINBOOL useref) {
+ return This->lpVtbl->SetUseRef(This,useref);
+}
+static FORCEINLINE WINBOOL ID3D10SwitchToRef_GetUseRef(ID3D10SwitchToRef* This) {
+ return This->lpVtbl->GetUseRef(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10SwitchToRef_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10InfoQueue interface
+ */
+#ifndef __ID3D10InfoQueue_INTERFACE_DEFINED__
+#define __ID3D10InfoQueue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10InfoQueue, 0x1b940b17, 0x2642, 0x4d1f, 0xab,0x1f, 0xb9,0x9b,0xad,0x0c,0x39,0x5f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1b940b17-2642-4d1f-ab1f-b99bad0c395f")
+ID3D10InfoQueue : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
+ UINT64 limit) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStoredMessages(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMessage(
+ UINT64 message_idx,
+ D3D10_MESSAGE *message,
+ SIZE_T *message_size) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
+ D3D10_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
+ D3D10_INFO_QUEUE_FILTER *filter,
+ SIZE_T *filter_size) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
+ D3D10_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopStorageFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
+ D3D10_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
+ D3D10_INFO_QUEUE_FILTER *filter,
+ SIZE_T *filterbytelength) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
+ D3D10_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopRetrievalFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddMessage(
+ D3D10_MESSAGE_CATEGORY category,
+ D3D10_MESSAGE_SEVERITY severity,
+ D3D10_MESSAGE_ID id,
+ const char *description) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
+ D3D10_MESSAGE_SEVERITY severity,
+ const char *description) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
+ D3D10_MESSAGE_CATEGORY category,
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
+ D3D10_MESSAGE_SEVERITY severity,
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
+ D3D10_MESSAGE_ID id,
+ WINBOOL enable) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnCategory(
+ D3D10_MESSAGE_CATEGORY category) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnSeverity(
+ D3D10_MESSAGE_SEVERITY severity) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnID(
+ D3D10_MESSAGE_ID id) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
+ WINBOOL mute) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetMuteDebugOutput(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10InfoQueue, 0x1b940b17, 0x2642, 0x4d1f, 0xab,0x1f, 0xb9,0x9b,0xad,0x0c,0x39,0x5f)
+#endif
+#else
+typedef struct ID3D10InfoQueueVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10InfoQueue *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10InfoQueue *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10InfoQueue *This);
+
+ /*** ID3D10InfoQueue methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMessageCountLimit)(
+ ID3D10InfoQueue *This,
+ UINT64 limit);
+
+ void (STDMETHODCALLTYPE *ClearStoredMessages)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetMessage)(
+ ID3D10InfoQueue *This,
+ UINT64 message_idx,
+ D3D10_MESSAGE *message,
+ SIZE_T *message_size);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessages)(
+ ID3D10InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter)(
+ ID3D10InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit)(
+ ID3D10InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetMessageCountLimit)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddStorageFilterEntries)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter);
+
+ HRESULT (STDMETHODCALLTYPE *GetStorageFilter)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter,
+ SIZE_T *filter_size);
+
+ void (STDMETHODCALLTYPE *ClearStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushStorageFilter)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter);
+
+ void (STDMETHODCALLTYPE *PopStorageFilter)(
+ ID3D10InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetStorageFilterStackSize)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddRetrievalFilterEntries)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter);
+
+ HRESULT (STDMETHODCALLTYPE *GetRetrievalFilter)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter,
+ SIZE_T *filterbytelength);
+
+ void (STDMETHODCALLTYPE *ClearRetrievalFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyRetrievalFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfRetrievalFilter)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushRetrievalFilter)(
+ ID3D10InfoQueue *This,
+ D3D10_INFO_QUEUE_FILTER *filter);
+
+ void (STDMETHODCALLTYPE *PopRetrievalFilter)(
+ ID3D10InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetRetrievalFilterStackSize)(
+ ID3D10InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddMessage)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_CATEGORY category,
+ D3D10_MESSAGE_SEVERITY severity,
+ D3D10_MESSAGE_ID id,
+ const char *description);
+
+ HRESULT (STDMETHODCALLTYPE *AddApplicationMessage)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_SEVERITY severity,
+ const char *description);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnCategory)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_CATEGORY category,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnSeverity)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_SEVERITY severity,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnID)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_ID id,
+ WINBOOL enable);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnCategory)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_CATEGORY category);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnSeverity)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_SEVERITY severity);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnID)(
+ ID3D10InfoQueue *This,
+ D3D10_MESSAGE_ID id);
+
+ void (STDMETHODCALLTYPE *SetMuteDebugOutput)(
+ ID3D10InfoQueue *This,
+ WINBOOL mute);
+
+ WINBOOL (STDMETHODCALLTYPE *GetMuteDebugOutput)(
+ ID3D10InfoQueue *This);
+
+ END_INTERFACE
+} ID3D10InfoQueueVtbl;
+
+interface ID3D10InfoQueue {
+ CONST_VTBL ID3D10InfoQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10InfoQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10InfoQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10InfoQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10InfoQueue methods ***/
+#define ID3D10InfoQueue_SetMessageCountLimit(This,limit) (This)->lpVtbl->SetMessageCountLimit(This,limit)
+#define ID3D10InfoQueue_ClearStoredMessages(This) (This)->lpVtbl->ClearStoredMessages(This)
+#define ID3D10InfoQueue_GetMessage(This,message_idx,message,message_size) (This)->lpVtbl->GetMessage(This,message_idx,message,message_size)
+#define ID3D10InfoQueue_GetNumMessagesAllowedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesAllowedByStorageFilter(This)
+#define ID3D10InfoQueue_GetNumMessagesDeniedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesDeniedByStorageFilter(This)
+#define ID3D10InfoQueue_GetNumStoredMessages(This) (This)->lpVtbl->GetNumStoredMessages(This)
+#define ID3D10InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) (This)->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This)
+#define ID3D10InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) (This)->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This)
+#define ID3D10InfoQueue_GetMessageCountLimit(This) (This)->lpVtbl->GetMessageCountLimit(This)
+#define ID3D10InfoQueue_AddStorageFilterEntries(This,filter) (This)->lpVtbl->AddStorageFilterEntries(This,filter)
+#define ID3D10InfoQueue_GetStorageFilter(This,filter,filter_size) (This)->lpVtbl->GetStorageFilter(This,filter,filter_size)
+#define ID3D10InfoQueue_ClearStorageFilter(This) (This)->lpVtbl->ClearStorageFilter(This)
+#define ID3D10InfoQueue_PushEmptyStorageFilter(This) (This)->lpVtbl->PushEmptyStorageFilter(This)
+#define ID3D10InfoQueue_PushCopyOfStorageFilter(This) (This)->lpVtbl->PushCopyOfStorageFilter(This)
+#define ID3D10InfoQueue_PushStorageFilter(This,filter) (This)->lpVtbl->PushStorageFilter(This,filter)
+#define ID3D10InfoQueue_PopStorageFilter(This) (This)->lpVtbl->PopStorageFilter(This)
+#define ID3D10InfoQueue_GetStorageFilterStackSize(This) (This)->lpVtbl->GetStorageFilterStackSize(This)
+#define ID3D10InfoQueue_AddRetrievalFilterEntries(This,filter) (This)->lpVtbl->AddRetrievalFilterEntries(This,filter)
+#define ID3D10InfoQueue_GetRetrievalFilter(This,filter,filterbytelength) (This)->lpVtbl->GetRetrievalFilter(This,filter,filterbytelength)
+#define ID3D10InfoQueue_ClearRetrievalFilter(This) (This)->lpVtbl->ClearRetrievalFilter(This)
+#define ID3D10InfoQueue_PushEmptyRetrievalFilter(This) (This)->lpVtbl->PushEmptyRetrievalFilter(This)
+#define ID3D10InfoQueue_PushCopyOfRetrievalFilter(This) (This)->lpVtbl->PushCopyOfRetrievalFilter(This)
+#define ID3D10InfoQueue_PushRetrievalFilter(This,filter) (This)->lpVtbl->PushRetrievalFilter(This,filter)
+#define ID3D10InfoQueue_PopRetrievalFilter(This) (This)->lpVtbl->PopRetrievalFilter(This)
+#define ID3D10InfoQueue_GetRetrievalFilterStackSize(This) (This)->lpVtbl->GetRetrievalFilterStackSize(This)
+#define ID3D10InfoQueue_AddMessage(This,category,severity,id,description) (This)->lpVtbl->AddMessage(This,category,severity,id,description)
+#define ID3D10InfoQueue_AddApplicationMessage(This,severity,description) (This)->lpVtbl->AddApplicationMessage(This,severity,description)
+#define ID3D10InfoQueue_SetBreakOnCategory(This,category,enable) (This)->lpVtbl->SetBreakOnCategory(This,category,enable)
+#define ID3D10InfoQueue_SetBreakOnSeverity(This,severity,enable) (This)->lpVtbl->SetBreakOnSeverity(This,severity,enable)
+#define ID3D10InfoQueue_SetBreakOnID(This,id,enable) (This)->lpVtbl->SetBreakOnID(This,id,enable)
+#define ID3D10InfoQueue_GetBreakOnCategory(This,category) (This)->lpVtbl->GetBreakOnCategory(This,category)
+#define ID3D10InfoQueue_GetBreakOnSeverity(This,severity) (This)->lpVtbl->GetBreakOnSeverity(This,severity)
+#define ID3D10InfoQueue_GetBreakOnID(This,id) (This)->lpVtbl->GetBreakOnID(This,id)
+#define ID3D10InfoQueue_SetMuteDebugOutput(This,mute) (This)->lpVtbl->SetMuteDebugOutput(This,mute)
+#define ID3D10InfoQueue_GetMuteDebugOutput(This) (This)->lpVtbl->GetMuteDebugOutput(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10InfoQueue_QueryInterface(ID3D10InfoQueue* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10InfoQueue_AddRef(ID3D10InfoQueue* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10InfoQueue_Release(ID3D10InfoQueue* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10InfoQueue methods ***/
+static FORCEINLINE HRESULT ID3D10InfoQueue_SetMessageCountLimit(ID3D10InfoQueue* This,UINT64 limit) {
+ return This->lpVtbl->SetMessageCountLimit(This,limit);
+}
+static FORCEINLINE void ID3D10InfoQueue_ClearStoredMessages(ID3D10InfoQueue* This) {
+ This->lpVtbl->ClearStoredMessages(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_GetMessage(ID3D10InfoQueue* This,UINT64 message_idx,D3D10_MESSAGE *message,SIZE_T *message_size) {
+ return This->lpVtbl->GetMessage(This,message_idx,message,message_size);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetNumMessagesAllowedByStorageFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesAllowedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetNumMessagesDeniedByStorageFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDeniedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetNumStoredMessages(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessages(This);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This);
+}
+static FORCEINLINE UINT64 ID3D10InfoQueue_GetMessageCountLimit(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetMessageCountLimit(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_AddStorageFilterEntries(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->AddStorageFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_GetStorageFilter(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter,SIZE_T *filter_size) {
+ return This->lpVtbl->GetStorageFilter(This,filter,filter_size);
+}
+static FORCEINLINE void ID3D10InfoQueue_ClearStorageFilter(ID3D10InfoQueue* This) {
+ This->lpVtbl->ClearStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushEmptyStorageFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->PushEmptyStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushCopyOfStorageFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushStorageFilter(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->PushStorageFilter(This,filter);
+}
+static FORCEINLINE void ID3D10InfoQueue_PopStorageFilter(ID3D10InfoQueue* This) {
+ This->lpVtbl->PopStorageFilter(This);
+}
+static FORCEINLINE UINT ID3D10InfoQueue_GetStorageFilterStackSize(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetStorageFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_AddRetrievalFilterEntries(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->AddRetrievalFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_GetRetrievalFilter(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter,SIZE_T *filterbytelength) {
+ return This->lpVtbl->GetRetrievalFilter(This,filter,filterbytelength);
+}
+static FORCEINLINE void ID3D10InfoQueue_ClearRetrievalFilter(ID3D10InfoQueue* This) {
+ This->lpVtbl->ClearRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushEmptyRetrievalFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->PushEmptyRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushCopyOfRetrievalFilter(ID3D10InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_PushRetrievalFilter(ID3D10InfoQueue* This,D3D10_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->PushRetrievalFilter(This,filter);
+}
+static FORCEINLINE void ID3D10InfoQueue_PopRetrievalFilter(ID3D10InfoQueue* This) {
+ This->lpVtbl->PopRetrievalFilter(This);
+}
+static FORCEINLINE UINT ID3D10InfoQueue_GetRetrievalFilterStackSize(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetRetrievalFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_AddMessage(ID3D10InfoQueue* This,D3D10_MESSAGE_CATEGORY category,D3D10_MESSAGE_SEVERITY severity,D3D10_MESSAGE_ID id,const char *description) {
+ return This->lpVtbl->AddMessage(This,category,severity,id,description);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_AddApplicationMessage(ID3D10InfoQueue* This,D3D10_MESSAGE_SEVERITY severity,const char *description) {
+ return This->lpVtbl->AddApplicationMessage(This,severity,description);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_SetBreakOnCategory(ID3D10InfoQueue* This,D3D10_MESSAGE_CATEGORY category,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnCategory(This,category,enable);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_SetBreakOnSeverity(ID3D10InfoQueue* This,D3D10_MESSAGE_SEVERITY severity,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnSeverity(This,severity,enable);
+}
+static FORCEINLINE HRESULT ID3D10InfoQueue_SetBreakOnID(ID3D10InfoQueue* This,D3D10_MESSAGE_ID id,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnID(This,id,enable);
+}
+static FORCEINLINE WINBOOL ID3D10InfoQueue_GetBreakOnCategory(ID3D10InfoQueue* This,D3D10_MESSAGE_CATEGORY category) {
+ return This->lpVtbl->GetBreakOnCategory(This,category);
+}
+static FORCEINLINE WINBOOL ID3D10InfoQueue_GetBreakOnSeverity(ID3D10InfoQueue* This,D3D10_MESSAGE_SEVERITY severity) {
+ return This->lpVtbl->GetBreakOnSeverity(This,severity);
+}
+static FORCEINLINE WINBOOL ID3D10InfoQueue_GetBreakOnID(ID3D10InfoQueue* This,D3D10_MESSAGE_ID id) {
+ return This->lpVtbl->GetBreakOnID(This,id);
+}
+static FORCEINLINE void ID3D10InfoQueue_SetMuteDebugOutput(ID3D10InfoQueue* This,WINBOOL mute) {
+ This->lpVtbl->SetMuteDebugOutput(This,mute);
+}
+static FORCEINLINE WINBOOL ID3D10InfoQueue_GetMuteDebugOutput(ID3D10InfoQueue* This) {
+ return This->lpVtbl->GetMuteDebugOutput(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10InfoQueue_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d10sdklayers_h__ */
diff --git a/d3d10shader.h b/d3d10shader.h
new file mode 100644
index 0000000..47efdb1
--- /dev/null
+++ b/d3d10shader.h
@@ -0,0 +1,234 @@
+#undef INTERFACE
+/*
+ * Copyright 2009 Henri Verbeet for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+#ifndef __WINE_D3D10SHADER_H
+#define __WINE_D3D10SHADER_H
+
+#include "d3d10.h"
+
+#define D3D10_SHADER_DEBUG 0x0001
+#define D3D10_SHADER_SKIP_VALIDATION 0x0002
+#define D3D10_SHADER_SKIP_OPTIMIZATION 0x0004
+#define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR 0x0008
+#define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR 0x0010
+#define D3D10_SHADER_PARTIAL_PRECISION 0x0020
+#define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT 0x0040
+#define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT 0x0080
+#define D3D10_SHADER_NO_PRESHADER 0x0100
+#define D3D10_SHADER_AVOID_FLOW_CONTROL 0x0200
+#define D3D10_SHADER_PREFER_FLOW_CONTROL 0x0400
+#define D3D10_SHADER_ENABLE_STRICTNESS 0x0800
+#define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
+#define D3D10_SHADER_IEEE_STRICTNESS 0x2000
+#define D3D10_SHADER_WARNINGS_ARE_ERRORS 0x40000
+
+#define D3D10_SHADER_OPTIMIZATION_LEVEL0 0x4000
+#define D3D10_SHADER_OPTIMIZATION_LEVEL1 0x0000
+#define D3D10_SHADER_OPTIMIZATION_LEVEL2 0xC000
+#define D3D10_SHADER_OPTIMIZATION_LEVEL3 0x8000
+
+/* These are defined as version-neutral in d3dcommon.h */
+typedef D3D_SHADER_MACRO D3D10_SHADER_MACRO;
+typedef D3D_SHADER_MACRO *LPD3D10_SHADER_MACRO;
+
+typedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS;
+typedef D3D_SHADER_VARIABLE_CLASS *LPD3D10_SHADER_VARIABLE_CLASS;
+
+typedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE;
+typedef D3D_CBUFFER_TYPE *LPD3D10_CBUFFER_TYPE;
+
+typedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE;
+
+typedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE;
+
+typedef D3D_NAME D3D10_NAME;
+
+typedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE;
+typedef D3D_SHADER_INPUT_TYPE *LPD3D10_SHADER_INPUT_TYPE;
+
+typedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE;
+typedef D3D_SHADER_VARIABLE_TYPE *LPD3D10_SHADER_VARIABLE_TYPE;
+
+typedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE;
+typedef ID3DInclude ID3D10Include;
+typedef ID3DInclude *LPD3D10INCLUDE;
+#define IID_ID3D10Include IID_ID3DInclude
+
+typedef struct _D3D10_SHADER_INPUT_BIND_DESC
+{
+ const char *Name;
+ D3D10_SHADER_INPUT_TYPE Type;
+ UINT BindPoint;
+ UINT BindCount;
+ UINT uFlags;
+ D3D10_RESOURCE_RETURN_TYPE ReturnType;
+ D3D10_SRV_DIMENSION Dimension;
+ UINT NumSamples;
+} D3D10_SHADER_INPUT_BIND_DESC;
+
+typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
+{
+ const char *SemanticName;
+ UINT SemanticIndex;
+ UINT Register;
+ D3D10_NAME SystemValueType;
+ D3D10_REGISTER_COMPONENT_TYPE ComponentType;
+ BYTE Mask;
+ BYTE ReadWriteMask;
+} D3D10_SIGNATURE_PARAMETER_DESC;
+
+typedef struct _D3D10_SHADER_DESC
+{
+ UINT Version;
+ const char *Creator;
+ UINT Flags;
+ UINT ConstantBuffers;
+ UINT BoundResources;
+ UINT InputParameters;
+ UINT OutputParameters;
+ UINT InstructionCount;
+ UINT TempRegisterCount;
+ UINT TempArrayCount;
+ UINT DefCount;
+ UINT DclCount;
+ UINT TextureNormalInstructions;
+ UINT TextureLoadInstructions;
+ UINT TextureCompInstructions;
+ UINT TextureBiasInstructions;
+ UINT TextureGradientInstructions;
+ UINT FloatInstructionCount;
+ UINT IntInstructionCount;
+ UINT UintInstructionCount;
+ UINT StaticFlowControlCount;
+ UINT DynamicFlowControlCount;
+ UINT MacroInstructionCount;
+ UINT ArrayInstructionCount;
+ UINT CutInstructionCount;
+ UINT EmitInstructionCount;
+ D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology;
+ UINT GSMaxOutputVertexCount;
+} D3D10_SHADER_DESC;
+
+typedef struct _D3D10_SHADER_BUFFER_DESC
+{
+ const char *Name;
+ D3D10_CBUFFER_TYPE Type;
+ UINT Variables;
+ UINT Size;
+ UINT uFlags;
+} D3D10_SHADER_BUFFER_DESC;
+
+typedef struct _D3D10_SHADER_VARIABLE_DESC
+{
+ const char *Name;
+ UINT StartOffset;
+ UINT Size;
+ UINT uFlags;
+ void *DefaultValue;
+} D3D10_SHADER_VARIABLE_DESC;
+
+typedef struct _D3D10_SHADER_TYPE_DESC
+{
+ D3D10_SHADER_VARIABLE_CLASS Class;
+ D3D10_SHADER_VARIABLE_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT Members;
+ UINT Offset;
+} D3D10_SHADER_TYPE_DESC;
+
+DEFINE_GUID(IID_ID3D10ShaderReflectionType, 0xc530ad7d, 0x9b16, 0x4395, 0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd);
+
+#define INTERFACE ID3D10ShaderReflectionType
+DECLARE_INTERFACE(ID3D10ShaderReflectionType)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_TYPE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10ShaderReflectionVariable, 0x1bf63c95, 0x2650, 0x405d, 0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1);
+
+#define INTERFACE ID3D10ShaderReflectionVariable
+DECLARE_INTERFACE(ID3D10ShaderReflectionVariable)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionType *, GetType)(THIS) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10ShaderReflectionConstantBuffer, 0x66c66a94, 0xdddd, 0x4b62, 0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0);
+
+#define INTERFACE ID3D10ShaderReflectionConstantBuffer
+DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_BUFFER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D10ShaderReflection, 0xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa);
+
+#define INTERFACE ID3D10ShaderReflection
+DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D10ShaderReflection methods */
+ STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+};
+#undef INTERFACE
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3D10CompileShader(const char *data, SIZE_T data_size, const char *filename,
+ const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *entrypoint,
+ const char *profile, UINT flags, ID3D10Blob **shader, ID3D10Blob **error_messages);
+HRESULT WINAPI D3D10DisassembleShader(const void *data, SIZE_T data_size,
+ WINBOOL color_code, const char *comments, ID3D10Blob **disassembly);
+const char * WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
+const char * WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
+const char * WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
+
+HRESULT WINAPI D3D10ReflectShader(const void *data, SIZE_T data_size, ID3D10ShaderReflection **reflector);
+HRESULT WINAPI D3D10GetInputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob);
+HRESULT WINAPI D3D10GetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob);
+HRESULT WINAPI D3D10GetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob);
+HRESULT WINAPI D3D10GetShaderDebugInfo(const void *data, SIZE_T data_size, ID3D10Blob **blob);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3D10SHADER_H */
diff --git a/d3d11.h b/d3d11.h
new file mode 100644
index 0000000..b8895c2
--- /dev/null
+++ b/d3d11.h
@@ -0,0 +1,10992 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11_h__
+#define __d3d11_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11DeviceChild_FWD_DEFINED__
+#define __ID3D11DeviceChild_FWD_DEFINED__
+typedef interface ID3D11DeviceChild ID3D11DeviceChild;
+#ifdef __cplusplus
+interface ID3D11DeviceChild;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Asynchronous_FWD_DEFINED__
+#define __ID3D11Asynchronous_FWD_DEFINED__
+typedef interface ID3D11Asynchronous ID3D11Asynchronous;
+#ifdef __cplusplus
+interface ID3D11Asynchronous;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Query_FWD_DEFINED__
+#define __ID3D11Query_FWD_DEFINED__
+typedef interface ID3D11Query ID3D11Query;
+#ifdef __cplusplus
+interface ID3D11Query;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Resource_FWD_DEFINED__
+#define __ID3D11Resource_FWD_DEFINED__
+typedef interface ID3D11Resource ID3D11Resource;
+#ifdef __cplusplus
+interface ID3D11Resource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11View_FWD_DEFINED__
+#define __ID3D11View_FWD_DEFINED__
+typedef interface ID3D11View ID3D11View;
+#ifdef __cplusplus
+interface ID3D11View;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11BlendState_FWD_DEFINED__
+#define __ID3D11BlendState_FWD_DEFINED__
+typedef interface ID3D11BlendState ID3D11BlendState;
+#ifdef __cplusplus
+interface ID3D11BlendState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Buffer_FWD_DEFINED__
+#define __ID3D11Buffer_FWD_DEFINED__
+typedef interface ID3D11Buffer ID3D11Buffer;
+#ifdef __cplusplus
+interface ID3D11Buffer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ClassInstance_FWD_DEFINED__
+#define __ID3D11ClassInstance_FWD_DEFINED__
+typedef interface ID3D11ClassInstance ID3D11ClassInstance;
+#ifdef __cplusplus
+interface ID3D11ClassInstance;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ClassLinkage_FWD_DEFINED__
+#define __ID3D11ClassLinkage_FWD_DEFINED__
+typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
+#ifdef __cplusplus
+interface ID3D11ClassLinkage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11CommandList_FWD_DEFINED__
+#define __ID3D11CommandList_FWD_DEFINED__
+typedef interface ID3D11CommandList ID3D11CommandList;
+#ifdef __cplusplus
+interface ID3D11CommandList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ComputeShader_FWD_DEFINED__
+#define __ID3D11ComputeShader_FWD_DEFINED__
+typedef interface ID3D11ComputeShader ID3D11ComputeShader;
+#ifdef __cplusplus
+interface ID3D11ComputeShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Counter_FWD_DEFINED__
+#define __ID3D11Counter_FWD_DEFINED__
+typedef interface ID3D11Counter ID3D11Counter;
+#ifdef __cplusplus
+interface ID3D11Counter;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DepthStencilState_FWD_DEFINED__
+#define __ID3D11DepthStencilState_FWD_DEFINED__
+typedef interface ID3D11DepthStencilState ID3D11DepthStencilState;
+#ifdef __cplusplus
+interface ID3D11DepthStencilState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DepthStencilView_FWD_DEFINED__
+#define __ID3D11DepthStencilView_FWD_DEFINED__
+typedef interface ID3D11DepthStencilView ID3D11DepthStencilView;
+#ifdef __cplusplus
+interface ID3D11DepthStencilView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DomainShader_FWD_DEFINED__
+#define __ID3D11DomainShader_FWD_DEFINED__
+typedef interface ID3D11DomainShader ID3D11DomainShader;
+#ifdef __cplusplus
+interface ID3D11DomainShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11GeometryShader_FWD_DEFINED__
+#define __ID3D11GeometryShader_FWD_DEFINED__
+typedef interface ID3D11GeometryShader ID3D11GeometryShader;
+#ifdef __cplusplus
+interface ID3D11GeometryShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11HullShader_FWD_DEFINED__
+#define __ID3D11HullShader_FWD_DEFINED__
+typedef interface ID3D11HullShader ID3D11HullShader;
+#ifdef __cplusplus
+interface ID3D11HullShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11InputLayout_FWD_DEFINED__
+#define __ID3D11InputLayout_FWD_DEFINED__
+typedef interface ID3D11InputLayout ID3D11InputLayout;
+#ifdef __cplusplus
+interface ID3D11InputLayout;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11PixelShader_FWD_DEFINED__
+#define __ID3D11PixelShader_FWD_DEFINED__
+typedef interface ID3D11PixelShader ID3D11PixelShader;
+#ifdef __cplusplus
+interface ID3D11PixelShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Predicate_FWD_DEFINED__
+#define __ID3D11Predicate_FWD_DEFINED__
+typedef interface ID3D11Predicate ID3D11Predicate;
+#ifdef __cplusplus
+interface ID3D11Predicate;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11RasterizerState_FWD_DEFINED__
+#define __ID3D11RasterizerState_FWD_DEFINED__
+typedef interface ID3D11RasterizerState ID3D11RasterizerState;
+#ifdef __cplusplus
+interface ID3D11RasterizerState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11RenderTargetView_FWD_DEFINED__
+#define __ID3D11RenderTargetView_FWD_DEFINED__
+typedef interface ID3D11RenderTargetView ID3D11RenderTargetView;
+#ifdef __cplusplus
+interface ID3D11RenderTargetView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11SamplerState_FWD_DEFINED__
+#define __ID3D11SamplerState_FWD_DEFINED__
+typedef interface ID3D11SamplerState ID3D11SamplerState;
+#ifdef __cplusplus
+interface ID3D11SamplerState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ShaderResourceView_FWD_DEFINED__
+#define __ID3D11ShaderResourceView_FWD_DEFINED__
+typedef interface ID3D11ShaderResourceView ID3D11ShaderResourceView;
+#ifdef __cplusplus
+interface ID3D11ShaderResourceView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Texture1D_FWD_DEFINED__
+#define __ID3D11Texture1D_FWD_DEFINED__
+typedef interface ID3D11Texture1D ID3D11Texture1D;
+#ifdef __cplusplus
+interface ID3D11Texture1D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Texture2D_FWD_DEFINED__
+#define __ID3D11Texture2D_FWD_DEFINED__
+typedef interface ID3D11Texture2D ID3D11Texture2D;
+#ifdef __cplusplus
+interface ID3D11Texture2D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Texture3D_FWD_DEFINED__
+#define __ID3D11Texture3D_FWD_DEFINED__
+typedef interface ID3D11Texture3D ID3D11Texture3D;
+#ifdef __cplusplus
+interface ID3D11Texture3D;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11UnorderedAccessView_FWD_DEFINED__
+#define __ID3D11UnorderedAccessView_FWD_DEFINED__
+typedef interface ID3D11UnorderedAccessView ID3D11UnorderedAccessView;
+#ifdef __cplusplus
+interface ID3D11UnorderedAccessView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VertexShader_FWD_DEFINED__
+#define __ID3D11VertexShader_FWD_DEFINED__
+typedef interface ID3D11VertexShader ID3D11VertexShader;
+#ifdef __cplusplus
+interface ID3D11VertexShader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DeviceContext_FWD_DEFINED__
+#define __ID3D11DeviceContext_FWD_DEFINED__
+typedef interface ID3D11DeviceContext ID3D11DeviceContext;
+#ifdef __cplusplus
+interface ID3D11DeviceContext;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__
+#define __ID3D11AuthenticatedChannel_FWD_DEFINED__
+typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel;
+#ifdef __cplusplus
+interface ID3D11AuthenticatedChannel;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11CryptoSession_FWD_DEFINED__
+#define __ID3D11CryptoSession_FWD_DEFINED__
+typedef interface ID3D11CryptoSession ID3D11CryptoSession;
+#ifdef __cplusplus
+interface ID3D11CryptoSession;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoDecoder_FWD_DEFINED__
+#define __ID3D11VideoDecoder_FWD_DEFINED__
+typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
+#ifdef __cplusplus
+interface ID3D11VideoDecoder;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__
+#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__
+typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator;
+#ifdef __cplusplus
+interface ID3D11VideoProcessorEnumerator;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessor_FWD_DEFINED__
+#define __ID3D11VideoProcessor_FWD_DEFINED__
+typedef interface ID3D11VideoProcessor ID3D11VideoProcessor;
+#ifdef __cplusplus
+interface ID3D11VideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
+#ifdef __cplusplus
+interface ID3D11VideoDecoderOutputView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__
+#define __ID3D11VideoProcessorInputView_FWD_DEFINED__
+typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView;
+#ifdef __cplusplus
+interface ID3D11VideoProcessorInputView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__
+#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__
+typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView;
+#ifdef __cplusplus
+interface ID3D11VideoProcessorOutputView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoDevice_FWD_DEFINED__
+#define __ID3D11VideoDevice_FWD_DEFINED__
+typedef interface ID3D11VideoDevice ID3D11VideoDevice;
+#ifdef __cplusplus
+interface ID3D11VideoDevice;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoContext_FWD_DEFINED__
+#define __ID3D11VideoContext_FWD_DEFINED__
+typedef interface ID3D11VideoContext ID3D11VideoContext;
+#ifdef __cplusplus
+interface ID3D11VideoContext;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Device_FWD_DEFINED__
+#define __ID3D11Device_FWD_DEFINED__
+typedef interface ID3D11Device ID3D11Device;
+#ifdef __cplusplus
+interface ID3D11Device;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi.h>
+#include <d3dcommon.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
+typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
+typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
+typedef RECT D3D11_RECT;
+#ifndef __ID3D11Device_FWD_DEFINED__
+#define __ID3D11Device_FWD_DEFINED__
+typedef interface ID3D11Device ID3D11Device;
+#ifdef __cplusplus
+interface ID3D11Device;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ClassLinkage_FWD_DEFINED__
+#define __ID3D11ClassLinkage_FWD_DEFINED__
+typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
+#ifdef __cplusplus
+interface ID3D11ClassLinkage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Resource_FWD_DEFINED__
+#define __ID3D11Resource_FWD_DEFINED__
+typedef interface ID3D11Resource ID3D11Resource;
+#ifdef __cplusplus
+interface ID3D11Resource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__
+#define __ID3D11VideoProcessorInputView_FWD_DEFINED__
+typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView;
+#ifdef __cplusplus
+interface ID3D11VideoProcessorInputView;
+#endif /* __cplusplus */
+#endif
+
+#ifndef _D3D11_CONSTANTS
+#define _D3D11_CONSTANTS
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
+
+#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
+
+#define D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
+
+#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
+
+#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
+
+#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
+
+#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
+
+#define D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
+
+#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
+
+#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
+
+#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
+
+#define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
+
+#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
+
+#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
+
+#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
+
+#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
+
+#define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
+
+#define D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
+
+#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
+
+#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
+
+#define D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
+
+#define D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
+
+#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
+
+#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
+
+#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
+
+#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
+
+#define D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (256)
+
+#define D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP (64)
+
+#define D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (240)
+
+#define D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP (68)
+
+#define D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (224)
+
+#define D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP (72)
+
+#define D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (208)
+
+#define D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP (76)
+
+#define D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (192)
+
+#define D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP (84)
+
+#define D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (176)
+
+#define D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP (92)
+
+#define D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (160)
+
+#define D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP (100)
+
+#define D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (144)
+
+#define D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP (112)
+
+#define D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (128)
+
+#define D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP (128)
+
+#define D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (112)
+
+#define D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP (144)
+
+#define D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (96)
+
+#define D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP (168)
+
+#define D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (80)
+
+#define D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP (204)
+
+#define D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (64)
+
+#define D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP (256)
+
+#define D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (48)
+
+#define D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP (340)
+
+#define D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (32)
+
+#define D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP (512)
+
+#define D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD (16)
+
+#define D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP (768)
+
+#define D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION (1)
+
+#define D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT (256)
+
+#define D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP (768)
+
+#define D3D11_CS_4_X_THREAD_GROUP_MAX_X (768)
+
+#define D3D11_CS_4_X_THREAD_GROUP_MAX_Y (768)
+
+#define D3D11_CS_4_X_UAV_REGISTER_COUNT (1)
+
+#define D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535)
+
+#define D3D11_CS_TGSM_REGISTER_COUNT (8192)
+
+#define D3D11_CS_TGSM_REGISTER_READS_PER_INST (1)
+
+#define D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS (1)
+
+#define D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS (1)
+
+#define D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP (1024)
+
+#define D3D11_CS_THREAD_GROUP_MAX_X (1024)
+
+#define D3D11_CS_THREAD_GROUP_MAX_Y (1024)
+
+#define D3D11_CS_THREAD_GROUP_MAX_Z (64)
+
+#define D3D11_CS_THREAD_GROUP_MIN_X (1)
+
+#define D3D11_CS_THREAD_GROUP_MIN_Y (1)
+
+#define D3D11_CS_THREAD_GROUP_MIN_Z (1)
+
+#define D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL (16384)
+
+#define D3D11_DEFAULT_DEPTH_BIAS (0)
+
+#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f
+#define D3D11_DEFAULT_MAX_ANISOTROPY (16)
+
+#define D3D11_DEFAULT_MIP_LOD_BIAS 0.0f
+#define D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX (0)
+
+#define D3D11_DEFAULT_SAMPLE_MASK (0xffffffff)
+
+#define D3D11_DEFAULT_SCISSOR_ENDX (0)
+
+#define D3D11_DEFAULT_SCISSOR_ENDY (0)
+
+#define D3D11_DEFAULT_SCISSOR_STARTX (0)
+
+#define D3D11_DEFAULT_SCISSOR_STARTY (0)
+
+#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS 0.0f
+#define D3D11_DEFAULT_STENCIL_READ_MASK (0xff)
+
+#define D3D11_DEFAULT_STENCIL_REFERENCE (0)
+
+#define D3D11_DEFAULT_STENCIL_WRITE_MASK (0xff)
+
+#define D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX (0)
+
+#define D3D11_DEFAULT_VIEWPORT_HEIGHT (0)
+
+#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH 0.0f
+#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH 0.0f
+#define D3D11_DEFAULT_VIEWPORT_TOPLEFTX (0)
+
+#define D3D11_DEFAULT_VIEWPORT_TOPLEFTY (0)
+
+#define D3D11_DEFAULT_VIEWPORT_WIDTH (0)
+
+#define D3D11_FLOAT32_MAX (3.402823466e+38f)
+#define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
+
+#define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
+
+#define D3D11_MAX_MAXANISOTROPY (16)
+
+#define D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
+
+#define D3D11_VIEWPORT_BOUNDS_MAX (32767)
+
+#define D3D11_VIEWPORT_BOUNDS_MIN (-32768)
+
+#define D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX (15)
+
+#define D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
+
+#define D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL (0xffffffff)
+
+#define D3D11_KEEP_UNORDERED_ACCESS_VIEWS (0xffffffff)
+
+#define D3D11_SHADER_MAJOR_VERSION (5)
+
+#define D3D11_SHADER_MAX_INSTANCES (65535)
+
+#define D3D11_SHADER_MAX_INTERFACES (253)
+
+#define D3D11_SHADER_MAX_INTERFACE_CALL_SITES (4096)
+
+#define D3D11_SHADER_MAX_TYPES (65535)
+
+#define D3D11_SHADER_MINOR_VERSION (0)
+
+#define D3D11_VS_OUTPUT_REGISTER_COUNT (32)
+
+#define D3D11_OMAC_SIZE (16)
+
+#define D3D11_PS_CS_UAV_REGISTER_COMPONENTS (1)
+
+#define D3D11_PS_CS_UAV_REGISTER_COUNT (8)
+
+#define D3D11_PS_CS_UAV_REGISTER_READS_PER_INST (1)
+
+#define D3D11_PS_CS_UAV_REGISTER_READ_PORTS (1)
+
+#define D3D11_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
+
+#define D3D11_PS_FRONTFACING_FALSE_VALUE (0)
+
+#define D3D11_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
+
+#define D3D11_PS_INPUT_REGISTER_COMPONENTS (4)
+
+#define D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_PS_INPUT_REGISTER_COUNT (32)
+
+#define D3D11_PS_INPUT_REGISTER_READS_PER_INST (2)
+
+#define D3D11_PS_INPUT_REGISTER_READ_PORTS (1)
+
+#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)
+#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
+
+#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
+
+#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
+
+#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_PS_OUTPUT_MASK_REGISTER_COUNT (1)
+
+#define D3D11_PS_OUTPUT_REGISTER_COMPONENTS (4)
+
+#define D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_PS_OUTPUT_REGISTER_COUNT (8)
+
+#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)
+#define D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
+
+#define D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
+
+#define D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
+
+#define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
+
+#define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
+
+#define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
+
+#define D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384)
+
+#define D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
+
+#define D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D11_REQ_MAXANISOTROPY (16)
+
+#define D3D11_REQ_MIP_LEVELS (15)
+
+#define D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
+
+#define D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
+
+#define D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384)
+
+#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
+
+#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)
+#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
+
+#define D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20)
+
+#define D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
+
+#define D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
+
+#define D3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
+
+#define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
+
+#define D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
+
+#define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
+
+#define D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
+
+#define D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
+
+#define D3D11_SHIFT_INSTRUCTION_PAD_VALUE (0)
+
+#define D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
+
+#define D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
+
+#define D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512)
+
+#define D3D11_SO_BUFFER_SLOT_COUNT (4)
+
+#define D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
+
+#define D3D11_SO_NO_RASTERIZED_STREAM (0xffffffff)
+
+#define D3D11_SO_OUTPUT_COMPONENT_COUNT (128)
+
+#define D3D11_SO_STREAM_COUNT (4)
+
+#define D3D11_SPEC_DATE_DAY (16)
+
+#define D3D11_SPEC_DATE_MONTH (5)
+
+#define D3D11_SPEC_DATE_YEAR (2011)
+
+#define D3D11_SPEC_VERSION (1.07)
+#define D3D11_SRGB_GAMMA (2.2f)
+#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 (12.92f)
+#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 (1.055f)
+#define D3D11_SRGB_TO_FLOAT_EXPONENT (2.4f)
+#define D3D11_SRGB_TO_FLOAT_OFFSET (0.055f)
+#define D3D11_SRGB_TO_FLOAT_THRESHOLD (0.04045f)
+#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)
+#define D3D11_STANDARD_COMPONENT_BIT_COUNT (32)
+
+#define D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
+
+#define D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
+
+#define D3D11_STANDARD_PIXEL_COMPONENT_COUNT (128)
+
+#define D3D11_STANDARD_PIXEL_ELEMENT_COUNT (32)
+
+#define D3D11_STANDARD_VECTOR_SIZE (4)
+
+#define D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
+
+#define D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
+
+#endif
+#ifndef _D3D11_1_CONSTANTS
+#define _D3D11_1_CONSTANTS
+#define D3D11_1_UAV_SLOT_COUNT (64)
+
+#endif
+#ifndef _D3D11_2_CONSTANTS
+#define _D3D11_2_CONSTANTS
+#define D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES (0x10000)
+
+#endif
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_DEFAULT {};
+extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
+#endif
+typedef enum D3D11_BLEND {
+ D3D11_BLEND_ZERO = 1,
+ D3D11_BLEND_ONE = 2,
+ D3D11_BLEND_SRC_COLOR = 3,
+ D3D11_BLEND_INV_SRC_COLOR = 4,
+ D3D11_BLEND_SRC_ALPHA = 5,
+ D3D11_BLEND_INV_SRC_ALPHA = 6,
+ D3D11_BLEND_DEST_ALPHA = 7,
+ D3D11_BLEND_INV_DEST_ALPHA = 8,
+ D3D11_BLEND_DEST_COLOR = 9,
+ D3D11_BLEND_INV_DEST_COLOR = 10,
+ D3D11_BLEND_SRC_ALPHA_SAT = 11,
+ D3D11_BLEND_BLEND_FACTOR = 14,
+ D3D11_BLEND_INV_BLEND_FACTOR = 15,
+ D3D11_BLEND_SRC1_COLOR = 16,
+ D3D11_BLEND_INV_SRC1_COLOR = 17,
+ D3D11_BLEND_SRC1_ALPHA = 18,
+ D3D11_BLEND_INV_SRC1_ALPHA = 19
+} D3D11_BLEND;
+typedef enum D3D11_BLEND_OP {
+ D3D11_BLEND_OP_ADD = 1,
+ D3D11_BLEND_OP_SUBTRACT = 2,
+ D3D11_BLEND_OP_REV_SUBTRACT = 3,
+ D3D11_BLEND_OP_MIN = 4,
+ D3D11_BLEND_OP_MAX = 5
+} D3D11_BLEND_OP;
+typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE {
+ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0,
+ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1,
+ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2,
+ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3,
+ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4,
+ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5,
+ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6,
+ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7,
+ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8
+} D3D11_VIDEO_DECODER_BUFFER_TYPE;
+typedef enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE {
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3
+} D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE;
+typedef enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE {
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2
+} D3D11_VIDEO_PROCESSOR_OUTPUT_RATE;
+typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT {
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7
+} D3D11_VIDEO_PROCESSOR_STEREO_FORMAT;
+typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE {
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2
+} D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE;
+typedef enum D3D11_VIDEO_PROCESSOR_ROTATION {
+ D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
+ D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1,
+ D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
+ D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3
+} D3D11_VIDEO_PROCESSOR_ROTATION;
+typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS {
+ D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1,
+ D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2,
+ D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
+ D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8,
+ D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10
+} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS {
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800
+} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS {
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40,
+ D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80
+} D3D11_VIDEO_PROCESSOR_FILTER_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS {
+ D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1,
+ D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2,
+ D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
+ D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
+} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS {
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40,
+ D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80
+} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS {
+ D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1,
+ D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2,
+ D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4,
+ D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8,
+ D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10
+} D3D11_VIDEO_PROCESSOR_STEREO_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS {
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
+ D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
+} D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS {
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100,
+ D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000
+} D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS;
+typedef enum D3D11_CONTENT_PROTECTION_CAPS {
+ D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2,
+ D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4,
+ D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8,
+ D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10,
+ D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20,
+ D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40,
+ D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80,
+ D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100,
+ D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200,
+ D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000,
+ D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000
+} D3D11_CONTENT_PROTECTION_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE {
+ D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0x0,
+ D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 0x1,
+ D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 0x2
+} D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE;
+typedef enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE {
+ D3D11_PROCESSIDTYPE_UNKNOWN = 0x0,
+ D3D11_PROCESSIDTYPE_DWM = 0x1,
+ D3D11_PROCESSIDTYPE_HANDLE = 0x2
+} D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE;
+typedef enum D3D11_BUS_TYPE {
+ D3D11_BUS_TYPE_OTHER = 0x0,
+ D3D11_BUS_TYPE_PCI = 0x1,
+ D3D11_BUS_TYPE_PCIX = 0x2,
+ D3D11_BUS_TYPE_PCIEXPRESS = 0x3,
+ D3D11_BUS_TYPE_AGP = 0x4,
+ D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000,
+ D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000,
+ D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000,
+ D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000,
+ D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000,
+ D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000
+} D3D11_BUS_TYPE;
+typedef struct D3D11_BOX {
+ UINT left;
+ UINT top;
+ UINT front;
+ UINT right;
+ UINT bottom;
+ UINT back;
+} D3D11_BOX;
+typedef struct D3D11_BUFFER_RTV {
+ __C89_NAMELESS union {
+ UINT FirstElement;
+ UINT ElementOffset;
+ } __C89_NAMELESSUNIONNAME1;
+ __C89_NAMELESS union {
+ UINT NumElements;
+ UINT ElementWidth;
+ } __C89_NAMELESSUNIONNAME2;
+} D3D11_BUFFER_RTV;
+typedef struct D3D11_BUFFER_SRV {
+ __C89_NAMELESS union {
+ UINT FirstElement;
+ UINT ElementOffset;
+ } __C89_NAMELESSUNIONNAME1;
+ __C89_NAMELESS union {
+ UINT NumElements;
+ UINT ElementWidth;
+ } __C89_NAMELESSUNIONNAME2;
+} D3D11_BUFFER_SRV;
+typedef struct D3D11_BUFFER_UAV {
+ UINT FirstElement;
+ UINT NumElements;
+ UINT Flags;
+} D3D11_BUFFER_UAV;
+typedef struct D3D11_BUFFEREX_SRV {
+ UINT FirstElement;
+ UINT NumElements;
+ UINT Flags;
+} D3D11_BUFFEREX_SRV;
+typedef struct D3D11_CLASS_INSTANCE_DESC {
+ UINT InstanceId;
+ UINT InstanceIndex;
+ UINT TypeId;
+ UINT ConstantBuffer;
+ UINT BaseConstantBufferOffset;
+ UINT BaseTexture;
+ UINT BaseSampler;
+ WINBOOL Created;
+} D3D11_CLASS_INSTANCE_DESC;
+typedef enum D3D11_COMPARISON_FUNC {
+ D3D11_COMPARISON_NEVER = 1,
+ D3D11_COMPARISON_LESS = 2,
+ D3D11_COMPARISON_EQUAL = 3,
+ D3D11_COMPARISON_LESS_EQUAL = 4,
+ D3D11_COMPARISON_GREATER = 5,
+ D3D11_COMPARISON_NOT_EQUAL = 6,
+ D3D11_COMPARISON_GREATER_EQUAL = 7,
+ D3D11_COMPARISON_ALWAYS = 8
+} D3D11_COMPARISON_FUNC;
+typedef enum D3D11_COUNTER {
+ D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
+} D3D11_COUNTER;
+typedef struct D3D11_COUNTER_DESC {
+ D3D11_COUNTER Counter;
+ UINT MiscFlags;
+} D3D11_COUNTER_DESC;
+typedef struct D3D11_COUNTER_INFO {
+ D3D11_COUNTER LastDeviceDependentCounter;
+ UINT NumSimultaneousCounters;
+ UINT8 NumDetectableParallelUnits;
+} D3D11_COUNTER_INFO;
+typedef enum D3D11_COUNTER_TYPE {
+ D3D11_COUNTER_TYPE_FLOAT32 = 0,
+ D3D11_COUNTER_TYPE_UINT16 = 1,
+ D3D11_COUNTER_TYPE_UINT32 = 2,
+ D3D11_COUNTER_TYPE_UINT64 = 3
+} D3D11_COUNTER_TYPE;
+typedef enum D3D11_CULL_MODE {
+ D3D11_CULL_NONE = 1,
+ D3D11_CULL_FRONT = 2,
+ D3D11_CULL_BACK = 3
+} D3D11_CULL_MODE;
+typedef enum D3D11_DEPTH_WRITE_MASK {
+ D3D11_DEPTH_WRITE_MASK_ZERO = 0,
+ D3D11_DEPTH_WRITE_MASK_ALL = 1
+} D3D11_DEPTH_WRITE_MASK;
+typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS {
+ D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
+ D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
+} D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
+typedef enum D3D11_DEVICE_CONTEXT_TYPE {
+ D3D11_DEVICE_CONTEXT_IMMEDIATE = 0,
+ D3D11_DEVICE_CONTEXT_DEFERRED = 1
+} D3D11_DEVICE_CONTEXT_TYPE;
+typedef enum D3D11_DSV_DIMENSION {
+ D3D11_DSV_DIMENSION_UNKNOWN = 0,
+ D3D11_DSV_DIMENSION_TEXTURE1D = 1,
+ D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2,
+ D3D11_DSV_DIMENSION_TEXTURE2D = 3,
+ D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4,
+ D3D11_DSV_DIMENSION_TEXTURE2DMS = 5,
+ D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
+} D3D11_DSV_DIMENSION;
+typedef enum D3D11_FEATURE {
+ D3D11_FEATURE_THREADING = 0,
+ D3D11_FEATURE_DOUBLES = 1,
+ D3D11_FEATURE_FORMAT_SUPPORT = 2,
+ D3D11_FEATURE_FORMAT_SUPPORT2 = 3,
+ D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = 4,
+ D3D11_FEATURE_D3D11_OPTIONS = 5,
+ D3D11_FEATURE_ARCHITECTURE_INFO = 6,
+ D3D11_FEATURE_D3D9_OPTIONS = 7,
+ D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = 8,
+ D3D11_FEATURE_D3D9_SHADOW_SUPPORT = 9,
+ D3D11_FEATURE_D3D11_OPTIONS1 = 10,
+ D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = 11,
+ D3D11_FEATURE_MARKER_SUPPORT = 12,
+ D3D11_FEATURE_D3D9_OPTIONS1 = 13,
+ D3D11_FEATURE_D3D11_OPTIONS2 = 14,
+ D3D11_FEATURE_D3D11_OPTIONS3 = 15,
+ D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 16,
+ D3D11_FEATURE_D3D11_OPTIONS4 = 17,
+ D3D11_FEATURE_SHADER_CACHE = 18,
+ D3D11_FEATURE_D3D11_OPTIONS5 = 19
+} D3D11_FEATURE;
+typedef struct D3D11_FEATURE_DATA_THREADING {
+ WINBOOL DriverConcurrentCreates;
+ WINBOOL DriverCommandLists;
+} D3D11_FEATURE_DATA_THREADING;
+typedef struct D3D11_FEATURE_DATA_DOUBLES {
+ WINBOOL DoublePrecisionFloatShaderOps;
+} D3D11_FEATURE_DATA_DOUBLES;
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 {
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport2;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
+typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS {
+ WINBOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
+} D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
+ WINBOOL OutputMergerLogicOp;
+ WINBOOL UAVOnlyRenderingForcedSampleCount;
+ WINBOOL DiscardAPIsSeenByDriver;
+ WINBOOL FlagsForUpdateAndCopySeenByDriver;
+ WINBOOL ClearView;
+ WINBOOL CopyWithOverlap;
+ WINBOOL ConstantBufferPartialUpdate;
+ WINBOOL ConstantBufferOffsetting;
+ WINBOOL MapNoOverwriteOnDynamicConstantBuffer;
+ WINBOOL MapNoOverwriteOnDynamicBufferSRV;
+ WINBOOL MultisampleRTVWithForcedSampleCountOne;
+ WINBOOL SAD4ShaderInstructions;
+ WINBOOL ExtendedDoublesShaderInstructions;
+ WINBOOL ExtendedResourceSharing;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
+ WINBOOL TileBasedDeferredRenderer;
+} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS {
+ WINBOOL FullNonPow2TextureSupport;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
+ WINBOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
+} D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
+typedef enum D3D11_SHADER_MIN_PRECISION_SUPPORT {
+ D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
+ D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2
+} D3D11_SHADER_MIN_PRECISION_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
+ UINT PixelShaderMinPrecision;
+ UINT AllOtherShaderStagesMinPrecision;
+} D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
+typedef enum D3D11_TILED_RESOURCES_TIER {
+ D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0x0,
+ D3D11_TILED_RESOURCES_TIER_1 = 0x1,
+ D3D11_TILED_RESOURCES_TIER_2 = 0x2,
+ D3D11_TILED_RESOURCES_TIER_3 = 0x3
+} D3D11_TILED_RESOURCES_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 {
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ WINBOOL MinMaxFiltering;
+ WINBOOL ClearViewAlsoSupportsDepthOnlyFormats;
+ WINBOOL MapOnDefaultBuffers;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS1;
+typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
+ WINBOOL SimpleInstancingSupported;
+} D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT {
+ WINBOOL Profile;
+} D3D11_FEATURE_DATA_MARKER_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 {
+ WINBOOL FullNonPow2TextureSupported;
+ WINBOOL DepthAsTextureWithLessEqualComparisonFilterSupported;
+ WINBOOL SimpleInstancingSupported;
+ WINBOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS1;
+typedef enum D3D11_CONSERVATIVE_RASTERIZATION_TIER {
+ D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0x0,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 0x1,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 0x2,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 0x3
+} D3D11_CONSERVATIVE_RASTERIZATION_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 {
+ WINBOOL PSSpecifiedStencilRefSupported;
+ WINBOOL TypedUAVLoadAdditionalFormats;
+ WINBOOL ROVsSupported;
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ WINBOOL MapOnDefaultTextures;
+ WINBOOL StandardSwizzle;
+ WINBOOL UnifiedMemoryArchitecture;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS2;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 {
+ WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS3;
+typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
+ UINT MaxGPUVirtualAddressBitsPerResource;
+ UINT MaxGPUVirtualAddressBitsPerProcess;
+} D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
+typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS {
+ D3D11_SHADER_CACHE_SUPPORT_NONE = 0x0,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2
+} D3D11_SHADER_CACHE_SUPPORT_FLAGS;
+typedef struct D3D11_FEATURE_DATA_SHADER_CACHE {
+ UINT SupportFlags;
+} D3D11_FEATURE_DATA_SHADER_CACHE;
+typedef enum D3D11_SHARED_RESOURCE_TIER {
+ D3D11_SHARED_RESOURCE_TIER_0 = 0,
+ D3D11_SHARED_RESOURCE_TIER_1 = 1,
+ D3D11_SHARED_RESOURCE_TIER_2 = 2,
+ D3D11_SHARED_RESOURCE_TIER_3 = 3
+} D3D11_SHARED_RESOURCE_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS5 {
+ D3D11_SHARED_RESOURCE_TIER SharedResourceTier;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS5;
+typedef enum D3D11_FILL_MODE {
+ D3D11_FILL_WIREFRAME = 2,
+ D3D11_FILL_SOLID = 3
+} D3D11_FILL_MODE;
+typedef enum D3D11_FILTER_TYPE {
+ D3D11_FILTER_TYPE_POINT = 0,
+ D3D11_FILTER_TYPE_LINEAR = 1
+} D3D11_FILTER_TYPE;
+#define D3D11_MIN_FILTER_SHIFT (4)
+
+#define D3D11_MAG_FILTER_SHIFT (2)
+
+#define D3D11_MIP_FILTER_SHIFT (0)
+
+#define D3D11_FILTER_TYPE_MASK (0x3)
+
+#define D3D11_COMPARISON_FILTERING_BIT (0x80)
+
+#define D3D11_ANISOTROPIC_FILTERING_BIT (0x40)
+
+#define D3D11_ENCODE_BASIC_FILTER(min, mag, mip, bComparison) \
+ ((D3D11_FILTER)(((bComparison) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | \
+ (((min)&D3D11_FILTER_TYPE_MASK) << D3D11_MIN_FILTER_SHIFT) | \
+ (((mag)&D3D11_FILTER_TYPE_MASK) << D3D11_MAG_FILTER_SHIFT) | \
+ (((mip)&D3D11_FILTER_TYPE_MASK) << D3D11_MIP_FILTER_SHIFT)))
+#define D3D11_ENCODE_ANISOTROPIC_FILTER(bComparison) \
+ ((D3D11_FILTER)(D3D11_ANISOTROPIC_FILTERING_BIT | \
+ D3D11_ENCODE_BASIC_FILTER(D3D11_FILTER_TYPE_LINEAR,D3D11_FILTER_TYPE_LINEAR, \
+ D3D11_FILTER_TYPE_LINEAR,bComparison)))
+#define D3D11_DECODE_MIN_FILTER(d3d11Filter) \
+ ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIN_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
+#define D3D11_DECODE_MAG_FILTER(d3d11Filter) \
+ ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MAG_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
+#define D3D11_DECODE_MIP_FILTER(d3d11Filter) \
+ ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIP_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))
+#define D3D11_DECODE_IS_COMPARISON_FILTER(d3d11Filter) ((d3d11Filter) & D3D11_COMPARISON_FILTERING_BIT)
+#define D3D11_DECODE_IS_ANISOTROPIC_FILTER(d3d11Filter) \
+ (((d3d11Filter) & D3D11_ANISOTROPIC_FILTERING_BIT ) \
+ && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER(d3d11Filter)) \
+ && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER(d3d11Filter)) \
+ && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER(d3d11Filter)))
+typedef enum D3D11_FILTER {
+ D3D11_FILTER_MIN_MAG_MIP_POINT = 0x0,
+ D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
+ D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
+ D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
+ D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
+ D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
+ D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
+ D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
+ D3D11_FILTER_ANISOTROPIC = 0x55,
+ D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
+ D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
+ D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
+ D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
+ D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
+ D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
+ D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
+ D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
+ D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
+ D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
+ D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
+ D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
+ D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
+ D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
+ D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
+ D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
+ D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
+ D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
+ D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
+ D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
+ D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
+ D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
+ D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
+ D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
+ D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
+ D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
+ D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
+} D3D11_FILTER;
+typedef enum D3D11_DSV_FLAG {
+ D3D11_DSV_READ_ONLY_DEPTH = 0x1,
+ D3D11_DSV_READ_ONLY_STENCIL = 0x2
+} D3D11_DSV_FLAG;
+typedef enum D3D11_BUFFEREX_SRV_FLAG {
+ D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1
+} D3D11_BUFFEREX_SRV_FLAG;
+typedef enum D3D11_UAV_FLAG {
+ D3D11_BUFFER_UAV_FLAG_RAW = 0x1,
+ D3D11_BUFFER_UAV_FLAG_APPEND = 0x2,
+ D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4
+} D3D11_UAV_FLAG;
+typedef enum D3D11_INPUT_CLASSIFICATION {
+ D3D11_INPUT_PER_VERTEX_DATA = 0,
+ D3D11_INPUT_PER_INSTANCE_DATA = 1
+} D3D11_INPUT_CLASSIFICATION;
+#define D3D11_APPEND_ALIGNED_ELEMENT (0xffffffff)
+
+typedef struct D3D11_INPUT_ELEMENT_DESC {
+ LPCSTR SemanticName;
+ UINT SemanticIndex;
+ DXGI_FORMAT Format;
+ UINT InputSlot;
+ UINT AlignedByteOffset;
+ D3D11_INPUT_CLASSIFICATION InputSlotClass;
+ UINT InstanceDataStepRate;
+} D3D11_INPUT_ELEMENT_DESC;
+typedef enum D3D11_MAP {
+ D3D11_MAP_READ = 1,
+ D3D11_MAP_WRITE = 2,
+ D3D11_MAP_READ_WRITE = 3,
+ D3D11_MAP_WRITE_DISCARD = 4,
+ D3D11_MAP_WRITE_NO_OVERWRITE = 5
+} D3D11_MAP;
+typedef enum D3D11_MAP_FLAG {
+ D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
+} D3D11_MAP_FLAG;
+typedef enum D3D11_RAISE_FLAG {
+ D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1
+} D3D11_RAISE_FLAG;
+typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
+ UINT64 NumPrimitivesWritten;
+ UINT64 PrimitivesStorageNeeded;
+} D3D11_QUERY_DATA_SO_STATISTICS;
+typedef struct D3D11_MAPPED_SUBRESOURCE {
+ void *pData;
+ UINT RowPitch;
+ UINT DepthPitch;
+} D3D11_MAPPED_SUBRESOURCE;
+typedef enum D3D11_QUERY {
+ D3D11_QUERY_EVENT = 0,
+ D3D11_QUERY_OCCLUSION = 1,
+ D3D11_QUERY_TIMESTAMP = 2,
+ D3D11_QUERY_TIMESTAMP_DISJOINT = 3,
+ D3D11_QUERY_PIPELINE_STATISTICS = 4,
+ D3D11_QUERY_OCCLUSION_PREDICATE = 5,
+ D3D11_QUERY_SO_STATISTICS = 6,
+ D3D11_QUERY_SO_OVERFLOW_PREDICATE = 7,
+ D3D11_QUERY_SO_STATISTICS_STREAM0 = 8,
+ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = 9,
+ D3D11_QUERY_SO_STATISTICS_STREAM1 = 10,
+ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = 11,
+ D3D11_QUERY_SO_STATISTICS_STREAM2 = 12,
+ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = 13,
+ D3D11_QUERY_SO_STATISTICS_STREAM3 = 14,
+ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = 15
+} D3D11_QUERY;
+typedef enum D3D11_QUERY_MISC_FLAG {
+ D3D11_QUERY_MISC_PREDICATEHINT = 0x1
+} D3D11_QUERY_MISC_FLAG;
+typedef enum D3D11_ASYNC_GETDATA_FLAG {
+ D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1
+} D3D11_ASYNC_GETDATA_FLAG;
+typedef enum D3D11_RESOURCE_MISC_FLAG {
+ D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1,
+ D3D11_RESOURCE_MISC_SHARED = 0x2,
+ D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4,
+ D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10,
+ D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20,
+ D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40,
+ D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80,
+ D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100,
+ D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200,
+ D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800,
+ D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000,
+ D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000,
+ D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
+ D3D11_RESOURCE_MISC_GUARDED = 0x8000,
+ D3D11_RESOURCE_MISC_TILE_POOL = 0x20000,
+ D3D11_RESOURCE_MISC_TILED = 0x40000,
+ D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000
+} D3D11_RESOURCE_MISC_FLAG;
+typedef struct D3D11_QUERY_DESC {
+ D3D11_QUERY Query;
+ UINT MiscFlags;
+} D3D11_QUERY_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC {
+ CD3D11_QUERY_DESC() {}
+ ~CD3D11_QUERY_DESC() {}
+ explicit CD3D11_QUERY_DESC(const D3D11_QUERY_DESC &other) : D3D11_QUERY_DESC(other) {}
+ explicit CD3D11_QUERY_DESC(D3D11_QUERY query, UINT misc_flags = 0) {
+ Query = query;
+ MiscFlags = misc_flags;
+ }
+ operator const D3D11_QUERY_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef struct D3D11_RASTERIZER_DESC {
+ D3D11_FILL_MODE FillMode;
+ D3D11_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL ScissorEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+} D3D11_RASTERIZER_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC {
+ CD3D11_RASTERIZER_DESC() {}
+ explicit CD3D11_RASTERIZER_DESC(const D3D11_RASTERIZER_DESC &o) : D3D11_RASTERIZER_DESC(o) {}
+ explicit CD3D11_RASTERIZER_DESC(CD3D11_DEFAULT) {
+ FillMode = D3D11_FILL_SOLID;
+ CullMode = D3D11_CULL_BACK;
+ FrontCounterClockwise = FALSE;
+ DepthBias = D3D11_DEFAULT_DEPTH_BIAS;
+ DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;
+ SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;
+ DepthClipEnable = TRUE;
+ ScissorEnable = FALSE;
+ MultisampleEnable = FALSE;
+ AntialiasedLineEnable = FALSE;
+ }
+ explicit CD3D11_RASTERIZER_DESC(D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode,
+ WINBOOL frontCounterClockwise, INT depthBias, FLOAT depthBiasClamp, FLOAT slopeScaledDepthBias,
+ BOOL depthClipEnable, WINBOOL scissorEnable, WINBOOL multisampleEnable, WINBOOL antialiasedLineEnable) {
+ FillMode = fillMode;
+ CullMode = cullMode;
+ FrontCounterClockwise = frontCounterClockwise;
+ DepthBias = depthBias;
+ DepthBiasClamp = depthBiasClamp;
+ SlopeScaledDepthBias = slopeScaledDepthBias;
+ DepthClipEnable = depthClipEnable;
+ ScissorEnable = scissorEnable;
+ MultisampleEnable = multisampleEnable;
+ AntialiasedLineEnable = antialiasedLineEnable;
+ }
+ ~CD3D11_RASTERIZER_DESC() {}
+ operator const D3D11_RASTERIZER_DESC&() const { return *this; }
+};
+#endif
+typedef enum D3D11_RESOURCE_DIMENSION {
+ D3D11_RESOURCE_DIMENSION_UNKNOWN = 0,
+ D3D11_RESOURCE_DIMENSION_BUFFER = 1,
+ D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2,
+ D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3,
+ D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4
+} D3D11_RESOURCE_DIMENSION;
+typedef enum D3D11_RTV_DIMENSION {
+ D3D11_RTV_DIMENSION_UNKNOWN = 0,
+ D3D11_RTV_DIMENSION_BUFFER = 1,
+ D3D11_RTV_DIMENSION_TEXTURE1D = 2,
+ D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D11_RTV_DIMENSION_TEXTURE2D = 4,
+ D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D11_RTV_DIMENSION_TEXTURE2DMS = 6,
+ D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D11_RTV_DIMENSION_TEXTURE3D = 8
+} D3D11_RTV_DIMENSION;
+typedef struct D3D11_SO_DECLARATION_ENTRY {
+ UINT Stream;
+ LPCSTR SemanticName;
+ UINT SemanticIndex;
+ BYTE StartComponent;
+ BYTE ComponentCount;
+ BYTE OutputSlot;
+} D3D11_SO_DECLARATION_ENTRY;
+typedef enum D3D11_STENCIL_OP {
+ D3D11_STENCIL_OP_KEEP = 1,
+ D3D11_STENCIL_OP_ZERO = 2,
+ D3D11_STENCIL_OP_REPLACE = 3,
+ D3D11_STENCIL_OP_INCR_SAT = 4,
+ D3D11_STENCIL_OP_DECR_SAT = 5,
+ D3D11_STENCIL_OP_INVERT = 6,
+ D3D11_STENCIL_OP_INCR = 7,
+ D3D11_STENCIL_OP_DECR = 8
+} D3D11_STENCIL_OP;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+}
+inline UINT D3D11CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) {
+ return MipSlice + ArraySlice * MipLevels;
+}
+extern "C"{
+#endif
+typedef struct D3D11_SUBRESOURCE_DATA {
+ const void *pSysMem;
+ UINT SysMemPitch;
+ UINT SysMemSlicePitch;
+} D3D11_SUBRESOURCE_DATA;
+typedef struct D3D11_TEX1D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX1D_ARRAY_DSV;
+typedef struct D3D11_TEX1D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX1D_ARRAY_RTV;
+typedef struct D3D11_TEX1D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX1D_ARRAY_SRV;
+typedef struct D3D11_TEX1D_ARRAY_UAV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX1D_ARRAY_UAV;
+typedef struct D3D11_TEX1D_DSV {
+ UINT MipSlice;
+} D3D11_TEX1D_DSV;
+typedef struct D3D11_TEX1D_RTV {
+ UINT MipSlice;
+} D3D11_TEX1D_RTV;
+typedef struct D3D11_TEX1D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D11_TEX1D_SRV;
+typedef struct D3D11_TEX1D_UAV {
+ UINT MipSlice;
+} D3D11_TEX1D_UAV;
+typedef struct D3D11_TEX2D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2D_ARRAY_DSV;
+typedef struct D3D11_TEX2D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2D_ARRAY_RTV;
+typedef struct D3D11_TEX2D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2D_ARRAY_SRV;
+typedef struct D3D11_TEX2D_ARRAY_UAV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2D_ARRAY_UAV;
+typedef struct D3D11_TEX2D_DSV {
+ UINT MipSlice;
+} D3D11_TEX2D_DSV;
+typedef struct D3D11_TEX2D_RTV {
+ UINT MipSlice;
+} D3D11_TEX2D_RTV;
+typedef struct D3D11_TEX2D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D11_TEX2D_SRV;
+typedef struct D3D11_TEX2D_UAV {
+ UINT MipSlice;
+} D3D11_TEX2D_UAV;
+typedef struct D3D11_TEX2DMS_ARRAY_DSV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2DMS_ARRAY_DSV;
+typedef struct D3D11_TEX2DMS_ARRAY_RTV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2DMS_ARRAY_RTV;
+typedef struct D3D11_TEX2DMS_ARRAY_SRV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2DMS_ARRAY_SRV;
+typedef struct D3D11_TEX2DMS_DSV {
+ UINT UnusedField_NothingToDefine;
+} D3D11_TEX2DMS_DSV;
+typedef struct D3D11_TEX2DMS_RTV {
+ UINT UnusedField_NothingToDefine;
+} D3D11_TEX2DMS_RTV;
+typedef struct D3D11_TEX2DMS_SRV {
+ UINT UnusedField_NothingToDefine;
+} D3D11_TEX2DMS_SRV;
+typedef struct D3D11_TEX3D_RTV {
+ UINT MipSlice;
+ UINT FirstWSlice;
+ UINT WSize;
+} D3D11_TEX3D_RTV;
+typedef struct D3D11_TEX3D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D11_TEX3D_SRV;
+typedef struct D3D11_TEX3D_UAV {
+ UINT MipSlice;
+ UINT FirstWSlice;
+ UINT WSize;
+} D3D11_TEX3D_UAV;
+typedef struct D3D11_TEXCUBE_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT First2DArrayFace;
+ UINT NumCubes;
+} D3D11_TEXCUBE_ARRAY_SRV;
+typedef struct D3D11_TEXCUBE_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+} D3D11_TEXCUBE_SRV;
+typedef enum D3D11_TEXTURE_ADDRESS_MODE {
+ D3D11_TEXTURE_ADDRESS_WRAP = 1,
+ D3D11_TEXTURE_ADDRESS_MIRROR = 2,
+ D3D11_TEXTURE_ADDRESS_CLAMP = 3,
+ D3D11_TEXTURE_ADDRESS_BORDER = 4,
+ D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5
+} D3D11_TEXTURE_ADDRESS_MODE;
+typedef enum D3D11_UAV_DIMENSION {
+ D3D11_UAV_DIMENSION_UNKNOWN = 0,
+ D3D11_UAV_DIMENSION_BUFFER = 1,
+ D3D11_UAV_DIMENSION_TEXTURE1D = 2,
+ D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D11_UAV_DIMENSION_TEXTURE2D = 4,
+ D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D11_UAV_DIMENSION_TEXTURE3D = 8
+} D3D11_UAV_DIMENSION;
+typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D11_UAV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_UAV Buffer;
+ D3D11_TEX1D_UAV Texture1D;
+ D3D11_TEX1D_ARRAY_UAV Texture1DArray;
+ D3D11_TEX2D_UAV Texture2D;
+ D3D11_TEX2D_ARRAY_UAV Texture2DArray;
+ D3D11_TEX3D_UAV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_UNORDERED_ACCESS_VIEW_DESC;
+typedef enum D3D11_USAGE {
+ D3D11_USAGE_DEFAULT = 0,
+ D3D11_USAGE_IMMUTABLE = 1,
+ D3D11_USAGE_DYNAMIC = 2,
+ D3D11_USAGE_STAGING = 3
+} D3D11_USAGE;
+typedef enum D3D11_BIND_FLAG {
+ D3D11_BIND_VERTEX_BUFFER = 0x1,
+ D3D11_BIND_INDEX_BUFFER = 0x2,
+ D3D11_BIND_CONSTANT_BUFFER = 0x4,
+ D3D11_BIND_SHADER_RESOURCE = 0x8,
+ D3D11_BIND_STREAM_OUTPUT = 0x10,
+ D3D11_BIND_RENDER_TARGET = 0x20,
+ D3D11_BIND_DEPTH_STENCIL = 0x40,
+ D3D11_BIND_UNORDERED_ACCESS = 0x80,
+ D3D11_BIND_DECODER = 0x200,
+ D3D11_BIND_VIDEO_ENCODER = 0x400
+} D3D11_BIND_FLAG;
+typedef enum D3D11_CPU_ACCESS_FLAG {
+ D3D11_CPU_ACCESS_WRITE = 0x10000,
+ D3D11_CPU_ACCESS_READ = 0x20000
+} D3D11_CPU_ACCESS_FLAG;
+typedef struct D3D11_VIEWPORT {
+ FLOAT TopLeftX;
+ FLOAT TopLeftY;
+ FLOAT Width;
+ FLOAT Height;
+ FLOAT MinDepth;
+ FLOAT MaxDepth;
+} D3D11_VIEWPORT;
+typedef enum D3D11_COLOR_WRITE_ENABLE {
+ D3D11_COLOR_WRITE_ENABLE_RED = 1,
+ D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
+ D3D11_COLOR_WRITE_ENABLE_BLUE = 4,
+ D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
+ D3D11_COLOR_WRITE_ENABLE_ALL = ((D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN) | D3D11_COLOR_WRITE_ENABLE_BLUE) | D3D11_COLOR_WRITE_ENABLE_ALPHA
+} D3D11_COLOR_WRITE_ENABLE;
+typedef enum D3D11_FORMAT_SUPPORT {
+ D3D11_FORMAT_SUPPORT_BUFFER = 0x1,
+ D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
+ D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
+ D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8,
+ D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10,
+ D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20,
+ D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40,
+ D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
+ D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
+ D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
+ D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
+ D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
+ D3D11_FORMAT_SUPPORT_MIP = 0x1000,
+ D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
+ D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
+ D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000,
+ D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
+ D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
+ D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
+ D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000,
+ D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
+ D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
+ D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
+ D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
+ D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
+ D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
+ D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000,
+ D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000,
+ D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
+ D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000,
+ D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000
+} D3D11_FORMAT_SUPPORT;
+typedef enum D3D11_FORMAT_SUPPORT2 {
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
+ D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
+ D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
+ D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
+ D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
+ D3D11_FORMAT_SUPPORT2_TILED = 0x200,
+ D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400,
+ D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
+} D3D11_FORMAT_SUPPORT2;
+typedef enum D3D11_CLEAR_FLAG {
+ D3D11_CLEAR_DEPTH = 0x1,
+ D3D11_CLEAR_STENCIL = 0x2
+} D3D11_CLEAR_FLAG;
+typedef struct D3D11_RENDER_TARGET_BLEND_DESC {
+ WINBOOL BlendEnable;
+ D3D11_BLEND SrcBlend;
+ D3D11_BLEND DestBlend;
+ D3D11_BLEND_OP BlendOp;
+ D3D11_BLEND SrcBlendAlpha;
+ D3D11_BLEND DestBlendAlpha;
+ D3D11_BLEND_OP BlendOpAlpha;
+ UINT8 RenderTargetWriteMask;
+} D3D11_RENDER_TARGET_BLEND_DESC;
+typedef struct D3D11_BLEND_DESC {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL IndependentBlendEnable;
+ D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[8];
+} D3D11_BLEND_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC {
+ CD3D11_BLEND_DESC() {}
+ explicit CD3D11_BLEND_DESC(const D3D11_BLEND_DESC &o) : D3D11_BLEND_DESC(o) {}
+ explicit CD3D11_BLEND_DESC(CD3D11_DEFAULT) {
+ AlphaToCoverageEnable = FALSE;
+ IndependentBlendEnable = FALSE;
+ for(D3D11_RENDER_TARGET_BLEND_DESC *target = RenderTarget;
+ target < RenderTarget + D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT;
+ target++) {
+ target->BlendEnable = FALSE;
+ target->SrcBlend = target->SrcBlendAlpha = D3D11_BLEND_ONE;
+ target->DestBlend = target->DestBlendAlpha = D3D11_BLEND_ZERO;
+ target->BlendOp = target->BlendOpAlpha = D3D11_BLEND_OP_ADD;
+ target->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
+ }
+ }
+ ~CD3D11_BLEND_DESC() {}
+ operator const D3D11_BLEND_DESC&() const { return *this; }
+};
+#endif
+typedef struct D3D11_BUFFER_DESC {
+ UINT ByteWidth;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+ UINT StructureByteStride;
+} D3D11_BUFFER_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC {
+ CD3D11_BUFFER_DESC() {}
+ explicit CD3D11_BUFFER_DESC(const D3D11_BUFFER_DESC &o) : D3D11_BUFFER_DESC(o) {}
+ explicit CD3D11_BUFFER_DESC(UINT byteWidth,UINT bindFlags,
+ D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0,
+ UINT miscFlags = 0, UINT structureByteStride = 0 ) {
+ ByteWidth = byteWidth;
+ Usage = usage;
+ BindFlags = bindFlags;
+ CPUAccessFlags = cpuaccessFlags;
+ MiscFlags = miscFlags;
+ StructureByteStride = structureByteStride;
+ }
+ ~CD3D11_BUFFER_DESC() {}
+ operator const D3D11_BUFFER_DESC&() const { return *this; }
+};
+#endif
+typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D11_DSV_DIMENSION ViewDimension;
+ UINT Flags;
+ __C89_NAMELESS union {
+ D3D11_TEX1D_DSV Texture1D;
+ D3D11_TEX1D_ARRAY_DSV Texture1DArray;
+ D3D11_TEX2D_DSV Texture2D;
+ D3D11_TEX2D_ARRAY_DSV Texture2DArray;
+ D3D11_TEX2DMS_DSV Texture2DMS;
+ D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_DEPTH_STENCIL_VIEW_DESC;
+typedef struct D3D11_DEPTH_STENCILOP_DESC {
+ D3D11_STENCIL_OP StencilFailOp;
+ D3D11_STENCIL_OP StencilDepthFailOp;
+ D3D11_STENCIL_OP StencilPassOp;
+ D3D11_COMPARISON_FUNC StencilFunc;
+} D3D11_DEPTH_STENCILOP_DESC;
+typedef struct D3D11_DEPTH_STENCIL_DESC {
+ WINBOOL DepthEnable;
+ D3D11_DEPTH_WRITE_MASK DepthWriteMask;
+ D3D11_COMPARISON_FUNC DepthFunc;
+ WINBOOL StencilEnable;
+ UINT8 StencilReadMask;
+ UINT8 StencilWriteMask;
+ D3D11_DEPTH_STENCILOP_DESC FrontFace;
+ D3D11_DEPTH_STENCILOP_DESC BackFace;
+} D3D11_DEPTH_STENCIL_DESC;
+#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
+struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC {
+ CD3D11_DEPTH_STENCIL_DESC() {}
+ explicit CD3D11_DEPTH_STENCIL_DESC(const D3D11_DEPTH_STENCIL_DESC &other) : D3D11_DEPTH_STENCIL_DESC(other) {}
+ explicit CD3D11_DEPTH_STENCIL_DESC(CD3D11_DEFAULT) {
+ const D3D11_DEPTH_STENCILOP_DESC default_op =
+ {D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS};
+ DepthEnable = TRUE;
+ DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
+ DepthFunc = D3D11_COMPARISON_LESS;
+ StencilEnable = FALSE;
+ StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
+ StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
+ FrontFace = default_op;
+ BackFace = default_op;
+ }
+ explicit CD3D11_DEPTH_STENCIL_DESC(
+ WINBOOL depth_enable,
+ D3D11_DEPTH_WRITE_MASK depth_write_mask,
+ D3D11_COMPARISON_FUNC depth_func,
+ WINBOOL stencil_enable,
+ UINT8 stencil_read_mask,
+ UINT8 stencil_write_mask,
+ D3D11_STENCIL_OP front_stencil_fail_op,
+ D3D11_STENCIL_OP front_stencil_depth_fail_op,
+ D3D11_STENCIL_OP front_stencil_pass_op,
+ D3D11_COMPARISON_FUNC front_stencil_func,
+ D3D11_STENCIL_OP back_stencil_fail_op,
+ D3D11_STENCIL_OP back_stencil_depth_fail_op,
+ D3D11_STENCIL_OP back_stencil_pass_op,
+ D3D11_COMPARISON_FUNC back_stencil_func) {
+ DepthEnable = depth_enable;
+ DepthWriteMask = depth_write_mask;
+ DepthFunc = depth_func;
+ StencilEnable = stencil_enable;
+ StencilReadMask = stencil_read_mask;
+ StencilWriteMask = stencil_write_mask;
+ FrontFace.StencilFailOp = front_stencil_fail_op;
+ FrontFace.StencilDepthFailOp = front_stencil_depth_fail_op;
+ FrontFace.StencilPassOp = front_stencil_pass_op;
+ FrontFace.StencilFunc = front_stencil_func;
+ BackFace.StencilFailOp = back_stencil_fail_op;
+ BackFace.StencilDepthFailOp = back_stencil_depth_fail_op;
+ BackFace.StencilPassOp = back_stencil_pass_op;
+ BackFace.StencilFunc = back_stencil_func;
+ }
+ ~CD3D11_DEPTH_STENCIL_DESC() {}
+ operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; }
+};
+#endif
+typedef struct D3D11_RENDER_TARGET_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D11_RTV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_RTV Buffer;
+ D3D11_TEX1D_RTV Texture1D;
+ D3D11_TEX1D_ARRAY_RTV Texture1DArray;
+ D3D11_TEX2D_RTV Texture2D;
+ D3D11_TEX2D_ARRAY_RTV Texture2DArray;
+ D3D11_TEX2DMS_RTV Texture2DMS;
+ D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
+ D3D11_TEX3D_RTV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_RENDER_TARGET_VIEW_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC {
+ CD3D11_RENDER_TARGET_VIEW_DESC() {}
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(D3D11_RTV_DIMENSION dim, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
+ UINT mip_slice = 0, UINT first_slice = 0, UINT array_size = -1) {
+ Format = format;
+ ViewDimension = dim;
+ switch(dim) {
+ case D3D11_RTV_DIMENSION_BUFFER:
+ Buffer.FirstElement = mip_slice;
+ Buffer.NumElements = first_slice;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE1D:
+ Texture1D.MipSlice = mip_slice;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
+ Texture1DArray.MipSlice = mip_slice;
+ Texture1DArray.FirstArraySlice = first_slice;
+ Texture1DArray.ArraySize = array_size;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE2D:
+ Texture2D.MipSlice = mip_slice;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
+ Texture2DArray.MipSlice = mip_slice;
+ Texture2DArray.FirstArraySlice = first_slice;
+ Texture2DArray.ArraySize = array_size;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
+ Texture2DMSArray.FirstArraySlice = first_slice;
+ Texture2DMSArray.ArraySize = array_size;
+ break;
+ case D3D11_RTV_DIMENSION_TEXTURE3D:
+ Texture3D.MipSlice = mip_slice;
+ Texture3D.FirstWSlice = first_slice;
+ Texture3D.WSize = array_size;
+ break;
+ default:
+ break;
+ }
+ }
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,
+ UINT elem_cnt) {
+ Format = format;
+ ViewDimension = D3D11_RTV_DIMENSION_BUFFER;
+ Buffer.FirstElement = first_elem;
+ Buffer.NumElements = elem_cnt;
+ }
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture1D *texture, D3D11_RTV_DIMENSION dim,
+ DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,
+ UINT array_size = -1);
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture2D *texture, D3D11_RTV_DIMENSION dim,
+ DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,
+ UINT array_size = -1);
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
+ UINT mip_slice = 0, UINT first_w_slice = 0, UINT w_slice = -1 );
+ ~CD3D11_RENDER_TARGET_VIEW_DESC() {}
+ explicit CD3D11_RENDER_TARGET_VIEW_DESC(const D3D11_RENDER_TARGET_VIEW_DESC &other)
+ : D3D11_RENDER_TARGET_VIEW_DESC(other) {}
+ operator const D3D11_RENDER_TARGET_VIEW_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef struct D3D11_SAMPLER_DESC {
+ D3D11_FILTER Filter;
+ D3D11_TEXTURE_ADDRESS_MODE AddressU;
+ D3D11_TEXTURE_ADDRESS_MODE AddressV;
+ D3D11_TEXTURE_ADDRESS_MODE AddressW;
+ FLOAT MipLODBias;
+ UINT MaxAnisotropy;
+ D3D11_COMPARISON_FUNC ComparisonFunc;
+ FLOAT BorderColor[4];
+ FLOAT MinLOD;
+ FLOAT MaxLOD;
+} D3D11_SAMPLER_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC {
+ CD3D11_SAMPLER_DESC() {}
+ explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o) : D3D11_SAMPLER_DESC(o) {}
+ explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT) {
+ Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
+ AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
+ AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
+ AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
+ MipLODBias = 0;
+ MaxAnisotropy = 1;
+ ComparisonFunc = D3D11_COMPARISON_NEVER;
+ BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;
+ MinLOD = -3.402823466e+38f;
+ MaxLOD = 3.402823466e+38f;
+ }
+ explicit CD3D11_SAMPLER_DESC(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressU,
+ D3D11_TEXTURE_ADDRESS_MODE addressV, D3D11_TEXTURE_ADDRESS_MODE addressW,
+ FLOAT mipLODBias, UINT maxAnisotropy, D3D11_COMPARISON_FUNC comparisonFunc,
+ const FLOAT *borderColor, FLOAT minLOD, FLOAT maxLOD) {
+ Filter = filter;
+ AddressU = addressU;
+ AddressV = addressV;
+ AddressW = addressW;
+ MipLODBias = mipLODBias;
+ MaxAnisotropy = maxAnisotropy;
+ ComparisonFunc = comparisonFunc;
+ if(borderColor) {
+ BorderColor[0] = borderColor[0];
+ BorderColor[1] = borderColor[1];
+ BorderColor[2] = borderColor[2];
+ BorderColor[3] = borderColor[3];
+ }else {
+ BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;
+ }
+ MinLOD = minLOD;
+ MaxLOD = maxLOD;
+ }
+ ~CD3D11_SAMPLER_DESC() {}
+ operator const D3D11_SAMPLER_DESC&() const { return *this; }
+};
+#endif
+typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D11_SRV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_SRV Buffer;
+ D3D11_TEX1D_SRV Texture1D;
+ D3D11_TEX1D_ARRAY_SRV Texture1DArray;
+ D3D11_TEX2D_SRV Texture2D;
+ D3D11_TEX2D_ARRAY_SRV Texture2DArray;
+ D3D11_TEX2DMS_SRV Texture2DMS;
+ D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
+ D3D11_TEX3D_SRV Texture3D;
+ D3D11_TEXCUBE_SRV TextureCube;
+ D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
+ D3D11_BUFFEREX_SRV BufferEx;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_SHADER_RESOURCE_VIEW_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined( __cplusplus )
+struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC {
+ CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(D3D11_SRV_DIMENSION dim,
+ DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0,
+ UINT mip_levels = -1, UINT first_slice = 0, UINT array_size = -1, UINT flags = 0) {
+ Format = format;
+ ViewDimension = dim;
+ switch(ViewDimension) {
+ case D3D11_SRV_DIMENSION_BUFFER:
+ Buffer.FirstElement = most_detailed_mip;
+ Buffer.NumElements = mip_levels;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE1D:
+ Texture1D.MostDetailedMip = most_detailed_mip;
+ Texture1D.MipLevels = mip_levels;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
+ Texture1DArray.MostDetailedMip = most_detailed_mip;
+ Texture1DArray.MipLevels = mip_levels;
+ Texture1DArray.FirstArraySlice = first_slice;
+ Texture1DArray.ArraySize = array_size;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE2D:
+ Texture2D.MostDetailedMip = most_detailed_mip;
+ Texture2D.MipLevels = mip_levels;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
+ Texture2DArray.MostDetailedMip = most_detailed_mip;
+ Texture2DArray.MipLevels = mip_levels;
+ Texture2DArray.FirstArraySlice = first_slice;
+ Texture2DArray.ArraySize = array_size;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
+ Texture2DMSArray.FirstArraySlice = first_slice;
+ Texture2DMSArray.ArraySize = array_size;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURE3D:
+ Texture3D.MostDetailedMip = most_detailed_mip;
+ Texture3D.MipLevels = mip_levels;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURECUBE:
+ TextureCube.MostDetailedMip = most_detailed_mip;
+ TextureCube.MipLevels = mip_levels;
+ break;
+ case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
+ TextureCubeArray.MostDetailedMip = most_detailed_mip;
+ TextureCubeArray.MipLevels = mip_levels;
+ TextureCubeArray.First2DArrayFace = first_slice;
+ TextureCubeArray.NumCubes = array_size;
+ break;
+ case D3D11_SRV_DIMENSION_BUFFEREX:
+ BufferEx.FirstElement = most_detailed_mip;
+ BufferEx.NumElements = mip_levels;
+ BufferEx.Flags = flags;
+ break;
+ default:
+ break;
+ }
+ }
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,
+ UINT elem_cnt, UINT flags = 0);
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture1D *texture, D3D11_SRV_DIMENSION dim,
+ DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,
+ UINT first_slice = 0, UINT array_size = -1 );
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture2D *texture, D3D11_SRV_DIMENSION dim,
+ DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,
+ UINT first_slice = 0, UINT array_size = -1 );
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
+ UINT most_detailed_mip = 0, UINT mip_levels = -1 );
+ ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
+ explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(const D3D11_SHADER_RESOURCE_VIEW_DESC &other)
+ : D3D11_SHADER_RESOURCE_VIEW_DESC(other) {}
+ operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const {
+ return *this;
+ }
+};
+#endif
+typedef struct D3D11_TEXTURE1D_DESC {
+ UINT Width;
+ UINT MipLevels;
+ UINT ArraySize;
+ DXGI_FORMAT Format;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D11_TEXTURE1D_DESC;
+typedef struct D3D11_TEXTURE2D_DESC {
+ UINT Width;
+ UINT Height;
+ UINT MipLevels;
+ UINT ArraySize;
+ DXGI_FORMAT Format;
+ DXGI_SAMPLE_DESC SampleDesc;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D11_TEXTURE2D_DESC;
+#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC {
+ CD3D11_TEXTURE2D_DESC() {}
+ explicit CD3D11_TEXTURE2D_DESC(const D3D11_TEXTURE2D_DESC &o) : D3D11_TEXTURE2D_DESC(o) {}
+ explicit CD3D11_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height, UINT arraySize = 1,
+ UINT mipLevels = 0, UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
+ D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT sampleCount = 1,
+ UINT sampleQuality = 0, UINT miscFlags = 0) {
+ Width = width;
+ Height = height;
+ MipLevels = mipLevels;
+ ArraySize = arraySize;
+ Format = format;
+ SampleDesc.Count = sampleCount;
+ SampleDesc.Quality = sampleQuality;
+ Usage = usage;
+ BindFlags = bindFlags;
+ CPUAccessFlags = cpuaccessFlags;
+ MiscFlags = miscFlags;
+ }
+ ~CD3D11_TEXTURE2D_DESC() {}
+ operator const D3D11_TEXTURE2D_DESC&() const { return *this; }
+};
+#endif
+typedef struct D3D11_TEXTURE3D_DESC {
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT MipLevels;
+ DXGI_FORMAT Format;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+} D3D11_TEXTURE3D_DESC;
+typedef struct D3D11_VIDEO_DECODER_DESC {
+ GUID Guid;
+ UINT SampleWidth;
+ UINT SampleHeight;
+ DXGI_FORMAT OutputFormat;
+} D3D11_VIDEO_DECODER_DESC;
+typedef struct D3D11_VIDEO_DECODER_CONFIG {
+ GUID guidConfigBitstreamEncryption;
+ GUID guidConfigMBcontrolEncryption;
+ GUID guidConfigResidDiffEncryption;
+ UINT ConfigBitstreamRaw;
+ UINT ConfigMBcontrolRasterOrder;
+ UINT ConfigResidDiffHost;
+ UINT ConfigSpatialResid8;
+ UINT ConfigResid8Subtraction;
+ UINT ConfigSpatialHost8or9Clipping;
+ UINT ConfigSpatialResidInterleaved;
+ UINT ConfigIntraResidUnsigned;
+ UINT ConfigResidDiffAccelerator;
+ UINT ConfigHostInverseScan;
+ UINT ConfigSpecificIDCT;
+ UINT Config4GroupedCoefs;
+ USHORT ConfigMinRenderTargetBuffCount;
+ USHORT ConfigDecoderSpecific;
+} D3D11_VIDEO_DECODER_CONFIG;
+typedef enum D3D11_VIDEO_FRAME_FORMAT {
+ D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0,
+ D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
+ D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
+} D3D11_VIDEO_FRAME_FORMAT;
+typedef enum D3D11_VIDEO_USAGE {
+ D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
+ D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1,
+ D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2
+} D3D11_VIDEO_USAGE;
+typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC {
+ D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
+ DXGI_RATIONAL InputFrameRate;
+ UINT InputWidth;
+ UINT InputHeight;
+ DXGI_RATIONAL OutputFrameRate;
+ UINT OutputWidth;
+ UINT OutputHeight;
+ D3D11_VIDEO_USAGE Usage;
+} D3D11_VIDEO_PROCESSOR_CONTENT_DESC;
+typedef struct D3D11_VIDEO_PROCESSOR_CAPS {
+ UINT DeviceCaps;
+ UINT FeatureCaps;
+ UINT FilterCaps;
+ UINT InputFormatCaps;
+ UINT AutoStreamCaps;
+ UINT StereoCaps;
+ UINT RateConversionCapsCount;
+ UINT MaxInputStreams;
+ UINT MaxStreamStates;
+} D3D11_VIDEO_PROCESSOR_CAPS;
+typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS {
+ UINT PastFrames;
+ UINT FutureFrames;
+ UINT ProcessorCaps;
+ UINT ITelecineCaps;
+ UINT CustomRateCount;
+} D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS;
+typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE {
+ DXGI_RATIONAL CustomRate;
+ UINT OutputFrames;
+ WINBOOL InputInterlaced;
+ UINT InputFramesOrFields;
+} D3D11_VIDEO_PROCESSOR_CUSTOM_RATE;
+typedef enum D3D11_VIDEO_PROCESSOR_FILTER {
+ D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0,
+ D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1,
+ D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2,
+ D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3,
+ D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4,
+ D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5,
+ D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6,
+ D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7
+} D3D11_VIDEO_PROCESSOR_FILTER;
+typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE {
+ int Minimum;
+ int Maximum;
+ int Default;
+ float Multiplier;
+} D3D11_VIDEO_PROCESSOR_FILTER_RANGE;
+typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE {
+ D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1,
+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2,
+ D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3
+} D3D11_AUTHENTICATED_CHANNEL_TYPE;
+typedef enum D3D11_VDOV_DIMENSION {
+ D3D11_VDOV_DIMENSION_UNKNOWN = 0,
+ D3D11_VDOV_DIMENSION_TEXTURE2D = 1
+} D3D11_VDOV_DIMENSION;
+typedef struct D3D11_TEX2D_VDOV {
+ UINT ArraySlice;
+} D3D11_TEX2D_VDOV;
+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC {
+ GUID DecodeProfile;
+ D3D11_VDOV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_TEX2D_VDOV Texture2D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC;
+typedef enum D3D11_VPIV_DIMENSION {
+ D3D11_VPIV_DIMENSION_UNKNOWN = 0,
+ D3D11_VPIV_DIMENSION_TEXTURE2D = 1
+} D3D11_VPIV_DIMENSION;
+typedef struct D3D11_TEX2D_VPIV {
+ UINT MipSlice;
+ UINT ArraySlice;
+} D3D11_TEX2D_VPIV;
+typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC {
+ UINT FourCC;
+ D3D11_VPIV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_TEX2D_VPIV Texture2D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC;
+typedef enum D3D11_VPOV_DIMENSION {
+ D3D11_VPOV_DIMENSION_UNKNOWN = 0,
+ D3D11_VPOV_DIMENSION_TEXTURE2D = 1,
+ D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2
+} D3D11_VPOV_DIMENSION;
+typedef struct D3D11_TEX2D_VPOV {
+ UINT MipSlice;
+} D3D11_TEX2D_VPOV;
+typedef struct D3D11_TEX2D_ARRAY_VPOV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D11_TEX2D_ARRAY_VPOV;
+typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC {
+ D3D11_VPOV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_TEX2D_VPOV Texture2D;
+ D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC;
+typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS {
+ UINT Caps;
+ UINT KeyExchangeTypeCount;
+ UINT BlockAlignmentSize;
+ ULONGLONG ProtectedMemorySize;
+} D3D11_VIDEO_CONTENT_PROTECTION_CAPS;
+typedef struct D3D11_ENCRYPTED_BLOCK_INFO {
+ UINT NumEncryptedBytesAtBeginning;
+ UINT NumBytesInSkipPattern;
+ UINT NumBytesInEncryptPattern;
+} D3D11_ENCRYPTED_BLOCK_INFO;
+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC {
+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
+ UINT BufferIndex;
+ UINT DataOffset;
+ UINT DataSize;
+ UINT FirstMBaddress;
+ UINT NumMBsInBuffer;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ UINT ReservedBits;
+ void *pIV;
+ UINT IVSize;
+ WINBOOL PartialEncryption;
+ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
+} D3D11_VIDEO_DECODER_BUFFER_DESC;
+typedef struct D3D11_VIDEO_DECODER_EXTENSION {
+ UINT Function;
+ void *pPrivateInputData;
+ UINT PrivateInputDataSize;
+ void *pPrivateOutputData;
+ UINT PrivateOutputDataSize;
+ UINT ResourceCount;
+ ID3D11Resource **ppResourceList;
+} D3D11_VIDEO_DECODER_EXTENSION;
+typedef struct D3D11_VIDEO_COLOR_YCbCrA {
+ float Y;
+ float Cb;
+ float Cr;
+ float A;
+} D3D11_VIDEO_COLOR_YCbCrA;
+typedef struct D3D11_VIDEO_COLOR_RGBA {
+ float R;
+ float G;
+ float B;
+ float A;
+} D3D11_VIDEO_COLOR_RGBA;
+typedef struct D3D11_VIDEO_COLOR {
+ __C89_NAMELESS union {
+ D3D11_VIDEO_COLOR_YCbCrA YCbCr;
+ D3D11_VIDEO_COLOR_RGBA RGBA;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_VIDEO_COLOR;
+typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE {
+ UINT Usage : 1;
+ UINT RGB_Range : 1;
+ UINT YCbCr_Matrix : 1;
+ UINT YCbCr_xvYCC : 1;
+ UINT Nominal_Range : 2;
+ UINT Reserved : 26;
+} D3D11_VIDEO_PROCESSOR_COLOR_SPACE;
+typedef struct D3D11_VIDEO_PROCESSOR_STREAM {
+ WINBOOL Enable;
+ UINT OutputIndex;
+ UINT InputFrameOrField;
+ UINT PastFrames;
+ UINT FutureFrames;
+ ID3D11VideoProcessorInputView **ppPastSurfaces;
+ ID3D11VideoProcessorInputView *pInputSurface;
+ ID3D11VideoProcessorInputView **ppFutureSurfaces;
+ ID3D11VideoProcessorInputView **ppPastSurfacesRight;
+ ID3D11VideoProcessorInputView *pInputSurfaceRight;
+ ID3D11VideoProcessorInputView **ppFutureSurfacesRight;
+} D3D11_VIDEO_PROCESSOR_STREAM;
+typedef struct D3D11_OMAC {
+ BYTE Omac[16];
+} D3D11_OMAC;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT {
+ D3D11_OMAC omac;
+ GUID ConfigureType;
+ HANDLE hChannel;
+ UINT SequenceNumber;
+ HRESULT ReturnCode;
+} D3D11_AUTHENTICATED_CONFIGURE_OUTPUT;
+typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
+ UINT64 Frequency;
+ WINBOOL Disjoint;
+} D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
+typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS {
+ UINT64 IAVertices;
+ UINT64 IAPrimitives;
+ UINT64 VSInvocations;
+ UINT64 GSInvocations;
+ UINT64 GSPrimitives;
+ UINT64 CInvocations;
+ UINT64 CPrimitives;
+ UINT64 PSInvocations;
+ UINT64 HSInvocations;
+ UINT64 DSInvocations;
+ UINT64 CSInvocations;
+} D3D11_QUERY_DATA_PIPELINE_STATISTICS;
+typedef struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS {
+ UINT VertexCountPerInstance;
+ UINT InstanceCount;
+ UINT StartVertexLocation;
+ UINT StartInstanceLocation;
+} D3D11_DRAW_INSTANCED_INDIRECT_ARGS;
+typedef struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS {
+ UINT IndexCountPerInstance;
+ UINT InstanceCount;
+ UINT StartIndexLocation;
+ INT BaseVertexLocation;
+ UINT StartInstanceLocation;
+} D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_INPUT {
+ D3D11_OMAC omac;
+ GUID ConfigureType;
+ HANDLE hChannel;
+ UINT SequenceNumber;
+} D3D11_AUTHENTICATED_CONFIGURE_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_INPUT {
+ GUID QueryType;
+ HANDLE hChannel;
+ UINT SequenceNumber;
+} D3D11_AUTHENTICATED_QUERY_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT {
+ D3D11_OMAC omac;
+ GUID QueryType;
+ HANDLE hChannel;
+ UINT SequenceNumber;
+ HRESULT ReturnCode;
+} D3D11_AUTHENTICATED_QUERY_OUTPUT;
+typedef union D3D11_AUTHENTICATED_PROTECTION_FLAGS {
+ struct {
+ UINT ProtectionEnabled : 1;
+ UINT OverlayOrFullscreenRequired : 1;
+ UINT Reserved : 30;
+ } Flags;
+ UINT Value;
+} D3D11_AUTHENTICATED_PROTECTION_FLAGS;
+typedef struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags;
+} D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType;
+} D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ HANDLE DeviceHandle;
+} D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT {
+ D3D11_AUTHENTICATED_QUERY_INPUT Input;
+ HANDLE DecoderHandle;
+} D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ HANDLE DecoderHandle;
+ HANDLE CryptoSessionHandle;
+ HANDLE DeviceHandle;
+} D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ UINT RestrictedSharedResourceProcessCount;
+} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT {
+ D3D11_AUTHENTICATED_QUERY_INPUT Input;
+ UINT ProcessIndex;
+} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ UINT ProcessIndex;
+ D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier;
+ HANDLE ProcessHandle;
+} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ UINT UnrestrictedProtectedSharedResourceCount;
+} D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT {
+ D3D11_AUTHENTICATED_QUERY_INPUT Input;
+ HANDLE DeviceHandle;
+ HANDLE CryptoSessionHandle;
+} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ HANDLE DeviceHandle;
+ HANDLE CryptoSessionHandle;
+ UINT OutputIDCount;
+} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT {
+ D3D11_AUTHENTICATED_QUERY_INPUT Input;
+ HANDLE DeviceHandle;
+ HANDLE CryptoSessionHandle;
+ UINT OutputIDIndex;
+} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ HANDLE DeviceHandle;
+ HANDLE CryptoSessionHandle;
+ UINT OutputIDIndex;
+ UINT64 OutputID;
+} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ D3D11_BUS_TYPE BusType;
+ WINBOOL AccessibleInContiguousBlocks;
+ WINBOOL AccessibleInNonContiguousBlocks;
+} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ UINT EncryptionGuidCount;
+} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT {
+ D3D11_AUTHENTICATED_QUERY_INPUT Input;
+ UINT EncryptionGuidIndex;
+} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ UINT EncryptionGuidIndex;
+ GUID EncryptionGuid;
+} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT {
+ D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
+ GUID EncryptionGuid;
+} D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT {
+ D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
+ UINT StartSequenceQuery;
+ UINT StartSequenceConfigure;
+} D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT {
+ D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
+ D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections;
+} D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT {
+ D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
+ HANDLE DecoderHandle;
+ HANDLE CryptoSessionHandle;
+ HANDLE DeviceHandle;
+} D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT {
+ D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
+ D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType;
+ HANDLE ProcessHandle;
+ WINBOOL AllowAccess;
+} D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT;
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT {
+ D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
+ GUID EncryptionGuid;
+} D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT;
+/*****************************************************************************
+ * ID3D11DeviceChild interface
+ */
+#ifndef __ID3D11DeviceChild_INTERFACE_DEFINED__
+#define __ID3D11DeviceChild_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceChild, 0x1841e5c8, 0x16b0, 0x489b, 0xbc,0xc8, 0x44,0xcf,0xb0,0xd5,0xde,0xae);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")
+ID3D11DeviceChild : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE GetDevice(
+ ID3D11Device **ppDevice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *pData) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceChild, 0x1841e5c8, 0x16b0, 0x489b, 0xbc,0xc8, 0x44,0xcf,0xb0,0xd5,0xde,0xae)
+#endif
+#else
+typedef struct ID3D11DeviceChildVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceChild *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceChild *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceChild *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceChild *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceChild *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceChild *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceChild *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11DeviceChildVtbl;
+
+interface ID3D11DeviceChild {
+ CONST_VTBL ID3D11DeviceChildVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceChild_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceChild_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceChild_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceChild_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceChild_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceChild_QueryInterface(ID3D11DeviceChild* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceChild_AddRef(ID3D11DeviceChild* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceChild_Release(ID3D11DeviceChild* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceChild_GetDevice(ID3D11DeviceChild* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceChild_GetPrivateData(ID3D11DeviceChild* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceChild_SetPrivateData(ID3D11DeviceChild* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceChild_SetPrivateDataInterface(ID3D11DeviceChild* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Asynchronous interface
+ */
+#ifndef __ID3D11Asynchronous_INTERFACE_DEFINED__
+#define __ID3D11Asynchronous_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Asynchronous, 0x4b35d0cd, 0x1e15, 0x4258, 0x9c,0x98, 0x1b,0x13,0x33,0xf6,0xdd,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")
+ID3D11Asynchronous : public ID3D11DeviceChild
+{
+ virtual UINT STDMETHODCALLTYPE GetDataSize(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Asynchronous, 0x4b35d0cd, 0x1e15, 0x4258, 0x9c,0x98, 0x1b,0x13,0x33,0xf6,0xdd,0x3b)
+#endif
+#else
+typedef struct ID3D11AsynchronousVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Asynchronous *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Asynchronous *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Asynchronous *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Asynchronous *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Asynchronous *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Asynchronous *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Asynchronous *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Asynchronous methods ***/
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D11Asynchronous *This);
+
+ END_INTERFACE
+} ID3D11AsynchronousVtbl;
+
+interface ID3D11Asynchronous {
+ CONST_VTBL ID3D11AsynchronousVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Asynchronous_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Asynchronous_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Asynchronous_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Asynchronous_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Asynchronous_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Asynchronous_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Asynchronous_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Asynchronous methods ***/
+#define ID3D11Asynchronous_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Asynchronous_QueryInterface(ID3D11Asynchronous* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Asynchronous_AddRef(ID3D11Asynchronous* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Asynchronous_Release(ID3D11Asynchronous* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Asynchronous_GetDevice(ID3D11Asynchronous* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Asynchronous_GetPrivateData(ID3D11Asynchronous* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Asynchronous_SetPrivateData(ID3D11Asynchronous* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Asynchronous_SetPrivateDataInterface(ID3D11Asynchronous* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Asynchronous methods ***/
+static FORCEINLINE UINT ID3D11Asynchronous_GetDataSize(ID3D11Asynchronous* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Query interface
+ */
+#ifndef __ID3D11Query_INTERFACE_DEFINED__
+#define __ID3D11Query_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Query, 0xd6c00747, 0x87b7, 0x425e, 0xb8,0x4d, 0x44,0xd1,0x08,0x56,0x0a,0xfd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d6c00747-87b7-425e-b84d-44d108560afd")
+ID3D11Query : public ID3D11Asynchronous
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_QUERY_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Query, 0xd6c00747, 0x87b7, 0x425e, 0xb8,0x4d, 0x44,0xd1,0x08,0x56,0x0a,0xfd)
+#endif
+#else
+typedef struct ID3D11QueryVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Query *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Query *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Query *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Query *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Query *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Query *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Query *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Asynchronous methods ***/
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D11Query *This);
+
+ /*** ID3D11Query methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Query *This,
+ D3D11_QUERY_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11QueryVtbl;
+
+interface ID3D11Query {
+ CONST_VTBL ID3D11QueryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Query_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Query_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Query_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Query_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Query_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Query_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Query_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Asynchronous methods ***/
+#define ID3D11Query_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D11Query methods ***/
+#define ID3D11Query_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Query_QueryInterface(ID3D11Query* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Query_AddRef(ID3D11Query* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Query_Release(ID3D11Query* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Query_GetDevice(ID3D11Query* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Query_GetPrivateData(ID3D11Query* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Query_SetPrivateData(ID3D11Query* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Query_SetPrivateDataInterface(ID3D11Query* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Asynchronous methods ***/
+static FORCEINLINE UINT ID3D11Query_GetDataSize(ID3D11Query* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D11Query methods ***/
+static FORCEINLINE void ID3D11Query_GetDesc(ID3D11Query* This,D3D11_QUERY_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Query_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Resource interface
+ */
+#ifndef __ID3D11Resource_INTERFACE_DEFINED__
+#define __ID3D11Resource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Resource, 0xdc8e63f3, 0xd12b, 0x4952, 0xb4,0x7b, 0x5e,0x45,0x02,0x6a,0x86,0x2d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dc8e63f3-d12b-4952-b47b-5e45026a862d")
+ID3D11Resource : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetType(
+ D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEvictionPriority(
+ UINT EvictionPriority) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetEvictionPriority(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Resource, 0xdc8e63f3, 0xd12b, 0x4952, 0xb4,0x7b, 0x5e,0x45,0x02,0x6a,0x86,0x2d)
+#endif
+#else
+typedef struct ID3D11ResourceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Resource *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Resource *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Resource *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Resource *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Resource *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Resource *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Resource *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Resource *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Resource *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Resource *This);
+
+ END_INTERFACE
+} ID3D11ResourceVtbl;
+
+interface ID3D11Resource {
+ CONST_VTBL ID3D11ResourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Resource_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Resource_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Resource_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Resource_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Resource_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Resource_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Resource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Resource_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Resource_QueryInterface(ID3D11Resource* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Resource_AddRef(ID3D11Resource* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Resource_Release(ID3D11Resource* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Resource_GetDevice(ID3D11Resource* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Resource_GetPrivateData(ID3D11Resource* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Resource_SetPrivateData(ID3D11Resource* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Resource_SetPrivateDataInterface(ID3D11Resource* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Resource_GetType(ID3D11Resource* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Resource_SetEvictionPriority(ID3D11Resource* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Resource_GetEvictionPriority(ID3D11Resource* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Resource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11View interface
+ */
+#ifndef __ID3D11View_INTERFACE_DEFINED__
+#define __ID3D11View_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11View, 0x839d1216, 0xbb2e, 0x412b, 0xb7,0xf4, 0xa9,0xdb,0xeb,0xe0,0x8e,0xd1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")
+ID3D11View : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetResource(
+ ID3D11Resource **ppResource) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11View, 0x839d1216, 0xbb2e, 0x412b, 0xb7,0xf4, 0xa9,0xdb,0xeb,0xe0,0x8e,0xd1)
+#endif
+#else
+typedef struct ID3D11ViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11View *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11View *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11View *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11View *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11View *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11View *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11View *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11View *This,
+ ID3D11Resource **ppResource);
+
+ END_INTERFACE
+} ID3D11ViewVtbl;
+
+interface ID3D11View {
+ CONST_VTBL ID3D11ViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11View_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11View_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11View_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11View_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11View_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11View_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11View_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11View_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11View_QueryInterface(ID3D11View* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11View_AddRef(ID3D11View* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11View_Release(ID3D11View* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11View_GetDevice(ID3D11View* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11View_GetPrivateData(ID3D11View* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11View_SetPrivateData(ID3D11View* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11View_SetPrivateDataInterface(ID3D11View* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11View_GetResource(ID3D11View* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11View_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11BlendState interface
+ */
+#ifndef __ID3D11BlendState_INTERFACE_DEFINED__
+#define __ID3D11BlendState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11BlendState, 0x75b68faa, 0x347d, 0x4159, 0x8f,0x45, 0xa0,0x64,0x0f,0x01,0xcd,0x9a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("75b68faa-347d-4159-8f45-a0640f01cd9a")
+ID3D11BlendState : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_BLEND_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11BlendState, 0x75b68faa, 0x347d, 0x4159, 0x8f,0x45, 0xa0,0x64,0x0f,0x01,0xcd,0x9a)
+#endif
+#else
+typedef struct ID3D11BlendStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11BlendState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11BlendState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11BlendState *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11BlendState *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11BlendState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11BlendState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11BlendState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11BlendState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11BlendState *This,
+ D3D11_BLEND_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11BlendStateVtbl;
+
+interface ID3D11BlendState {
+ CONST_VTBL ID3D11BlendStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11BlendState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11BlendState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11BlendState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11BlendState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11BlendState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11BlendState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11BlendState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11BlendState methods ***/
+#define ID3D11BlendState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11BlendState_QueryInterface(ID3D11BlendState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11BlendState_AddRef(ID3D11BlendState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11BlendState_Release(ID3D11BlendState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11BlendState_GetDevice(ID3D11BlendState* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11BlendState_GetPrivateData(ID3D11BlendState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState_SetPrivateData(ID3D11BlendState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState_SetPrivateDataInterface(ID3D11BlendState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11BlendState methods ***/
+static FORCEINLINE void ID3D11BlendState_GetDesc(ID3D11BlendState* This,D3D11_BLEND_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11BlendState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Buffer interface
+ */
+#ifndef __ID3D11Buffer_INTERFACE_DEFINED__
+#define __ID3D11Buffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Buffer, 0x48570b85, 0xd1ee, 0x4fcd, 0xa2,0x50, 0xeb,0x35,0x07,0x22,0xb0,0x37);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("48570b85-d1ee-4fcd-a250-eb350722b037")
+ID3D11Buffer : public ID3D11Resource
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_BUFFER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Buffer, 0x48570b85, 0xd1ee, 0x4fcd, 0xa2,0x50, 0xeb,0x35,0x07,0x22,0xb0,0x37)
+#endif
+#else
+typedef struct ID3D11BufferVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Buffer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Buffer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Buffer *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Buffer *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Buffer *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Buffer *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Buffer *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Buffer *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Buffer *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Buffer *This);
+
+ /*** ID3D11Buffer methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Buffer *This,
+ D3D11_BUFFER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11BufferVtbl;
+
+interface ID3D11Buffer {
+ CONST_VTBL ID3D11BufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Buffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Buffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Buffer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Buffer_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Buffer_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Buffer_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Buffer_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Buffer_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Buffer_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Buffer_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Buffer methods ***/
+#define ID3D11Buffer_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Buffer_QueryInterface(ID3D11Buffer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Buffer_AddRef(ID3D11Buffer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Buffer_Release(ID3D11Buffer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Buffer_GetDevice(ID3D11Buffer* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Buffer_GetPrivateData(ID3D11Buffer* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Buffer_SetPrivateData(ID3D11Buffer* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Buffer_SetPrivateDataInterface(ID3D11Buffer* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Buffer_GetType(ID3D11Buffer* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Buffer_SetEvictionPriority(ID3D11Buffer* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Buffer_GetEvictionPriority(ID3D11Buffer* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Buffer methods ***/
+static FORCEINLINE void ID3D11Buffer_GetDesc(ID3D11Buffer* This,D3D11_BUFFER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Buffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11ClassInstance interface
+ */
+#ifndef __ID3D11ClassInstance_INTERFACE_DEFINED__
+#define __ID3D11ClassInstance_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11ClassInstance, 0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94,0x36, 0x86,0x62,0xa6,0x57,0x97,0xcb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")
+ID3D11ClassInstance : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetClassLinkage(
+ ID3D11ClassLinkage **ppLinkage) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_CLASS_INSTANCE_DESC *pDesc) = 0;
+
+ virtual void STDMETHODCALLTYPE GetInstanceName(
+ LPSTR pInstanceName,
+ SIZE_T *pBufferLength) = 0;
+
+ virtual void STDMETHODCALLTYPE GetTypeName(
+ LPSTR pTypeName,
+ SIZE_T *pBufferLength) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11ClassInstance, 0xa6cd7faa, 0xb0b7, 0x4a2f, 0x94,0x36, 0x86,0x62,0xa6,0x57,0x97,0xcb)
+#endif
+#else
+typedef struct ID3D11ClassInstanceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11ClassInstance *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11ClassInstance *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11ClassInstance *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11ClassInstance *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11ClassInstance *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11ClassInstance *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11ClassInstance *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11ClassInstance methods ***/
+ void (STDMETHODCALLTYPE *GetClassLinkage)(
+ ID3D11ClassInstance *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11ClassInstance *This,
+ D3D11_CLASS_INSTANCE_DESC *pDesc);
+
+ void (STDMETHODCALLTYPE *GetInstanceName)(
+ ID3D11ClassInstance *This,
+ LPSTR pInstanceName,
+ SIZE_T *pBufferLength);
+
+ void (STDMETHODCALLTYPE *GetTypeName)(
+ ID3D11ClassInstance *This,
+ LPSTR pTypeName,
+ SIZE_T *pBufferLength);
+
+ END_INTERFACE
+} ID3D11ClassInstanceVtbl;
+
+interface ID3D11ClassInstance {
+ CONST_VTBL ID3D11ClassInstanceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11ClassInstance_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11ClassInstance_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11ClassInstance_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11ClassInstance_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11ClassInstance_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11ClassInstance_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11ClassInstance_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11ClassInstance methods ***/
+#define ID3D11ClassInstance_GetClassLinkage(This,ppLinkage) (This)->lpVtbl->GetClassLinkage(This,ppLinkage)
+#define ID3D11ClassInstance_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#define ID3D11ClassInstance_GetInstanceName(This,pInstanceName,pBufferLength) (This)->lpVtbl->GetInstanceName(This,pInstanceName,pBufferLength)
+#define ID3D11ClassInstance_GetTypeName(This,pTypeName,pBufferLength) (This)->lpVtbl->GetTypeName(This,pTypeName,pBufferLength)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11ClassInstance_QueryInterface(ID3D11ClassInstance* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11ClassInstance_AddRef(ID3D11ClassInstance* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11ClassInstance_Release(ID3D11ClassInstance* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11ClassInstance_GetDevice(ID3D11ClassInstance* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11ClassInstance_GetPrivateData(ID3D11ClassInstance* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ClassInstance_SetPrivateData(ID3D11ClassInstance* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ClassInstance_SetPrivateDataInterface(ID3D11ClassInstance* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11ClassInstance methods ***/
+static FORCEINLINE void ID3D11ClassInstance_GetClassLinkage(ID3D11ClassInstance* This,ID3D11ClassLinkage **ppLinkage) {
+ This->lpVtbl->GetClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE void ID3D11ClassInstance_GetDesc(ID3D11ClassInstance* This,D3D11_CLASS_INSTANCE_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+static FORCEINLINE void ID3D11ClassInstance_GetInstanceName(ID3D11ClassInstance* This,LPSTR pInstanceName,SIZE_T *pBufferLength) {
+ This->lpVtbl->GetInstanceName(This,pInstanceName,pBufferLength);
+}
+static FORCEINLINE void ID3D11ClassInstance_GetTypeName(ID3D11ClassInstance* This,LPSTR pTypeName,SIZE_T *pBufferLength) {
+ This->lpVtbl->GetTypeName(This,pTypeName,pBufferLength);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11ClassLinkage interface
+ */
+#ifndef __ID3D11ClassLinkage_INTERFACE_DEFINED__
+#define __ID3D11ClassLinkage_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11ClassLinkage, 0xddf57cba, 0x9543, 0x46e4, 0xa1,0x2b, 0xf2,0x07,0xa0,0xfe,0x7f,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ddf57cba-9543-46e4-a12b-f207a0fe7fed")
+ID3D11ClassLinkage : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE GetClassInstance(
+ LPCSTR pClassInstanceName,
+ UINT InstanceIndex,
+ ID3D11ClassInstance **ppInstance) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateClassInstance(
+ LPCSTR pClassTypeName,
+ UINT ConstantBufferOffset,
+ UINT ConstantVectorOffset,
+ UINT TextureOffset,
+ UINT SamplerOffset,
+ ID3D11ClassInstance **ppInstance) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11ClassLinkage, 0xddf57cba, 0x9543, 0x46e4, 0xa1,0x2b, 0xf2,0x07,0xa0,0xfe,0x7f,0xed)
+#endif
+#else
+typedef struct ID3D11ClassLinkageVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11ClassLinkage *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11ClassLinkage *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11ClassLinkage *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11ClassLinkage *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11ClassLinkage *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11ClassLinkage *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11ClassLinkage *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11ClassLinkage methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetClassInstance)(
+ ID3D11ClassLinkage *This,
+ LPCSTR pClassInstanceName,
+ UINT InstanceIndex,
+ ID3D11ClassInstance **ppInstance);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassInstance)(
+ ID3D11ClassLinkage *This,
+ LPCSTR pClassTypeName,
+ UINT ConstantBufferOffset,
+ UINT ConstantVectorOffset,
+ UINT TextureOffset,
+ UINT SamplerOffset,
+ ID3D11ClassInstance **ppInstance);
+
+ END_INTERFACE
+} ID3D11ClassLinkageVtbl;
+
+interface ID3D11ClassLinkage {
+ CONST_VTBL ID3D11ClassLinkageVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11ClassLinkage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11ClassLinkage_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11ClassLinkage_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11ClassLinkage_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11ClassLinkage_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11ClassLinkage_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11ClassLinkage_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11ClassLinkage methods ***/
+#define ID3D11ClassLinkage_GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) (This)->lpVtbl->GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance)
+#define ID3D11ClassLinkage_CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) (This)->lpVtbl->CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11ClassLinkage_QueryInterface(ID3D11ClassLinkage* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11ClassLinkage_AddRef(ID3D11ClassLinkage* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11ClassLinkage_Release(ID3D11ClassLinkage* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11ClassLinkage_GetDevice(ID3D11ClassLinkage* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11ClassLinkage_GetPrivateData(ID3D11ClassLinkage* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ClassLinkage_SetPrivateData(ID3D11ClassLinkage* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ClassLinkage_SetPrivateDataInterface(ID3D11ClassLinkage* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11ClassLinkage methods ***/
+static FORCEINLINE HRESULT ID3D11ClassLinkage_GetClassInstance(ID3D11ClassLinkage* This,LPCSTR pClassInstanceName,UINT InstanceIndex,ID3D11ClassInstance **ppInstance) {
+ return This->lpVtbl->GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance);
+}
+static FORCEINLINE HRESULT ID3D11ClassLinkage_CreateClassInstance(ID3D11ClassLinkage* This,LPCSTR pClassTypeName,UINT ConstantBufferOffset,UINT ConstantVectorOffset,UINT TextureOffset,UINT SamplerOffset,ID3D11ClassInstance **ppInstance) {
+ return This->lpVtbl->CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11CommandList interface
+ */
+#ifndef __ID3D11CommandList_INTERFACE_DEFINED__
+#define __ID3D11CommandList_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11CommandList, 0xa24bc4d1, 0x769e, 0x43f7, 0x80,0x13, 0x98,0xff,0x56,0x6c,0x18,0xe2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a24bc4d1-769e-43f7-8013-98ff566c18e2")
+ID3D11CommandList : public ID3D11DeviceChild
+{
+ virtual UINT STDMETHODCALLTYPE GetContextFlags(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11CommandList, 0xa24bc4d1, 0x769e, 0x43f7, 0x80,0x13, 0x98,0xff,0x56,0x6c,0x18,0xe2)
+#endif
+#else
+typedef struct ID3D11CommandListVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11CommandList *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11CommandList *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11CommandList *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11CommandList *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11CommandList *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11CommandList *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11CommandList *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11CommandList methods ***/
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11CommandList *This);
+
+ END_INTERFACE
+} ID3D11CommandListVtbl;
+
+interface ID3D11CommandList {
+ CONST_VTBL ID3D11CommandListVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11CommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11CommandList_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11CommandList_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11CommandList_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11CommandList_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11CommandList_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11CommandList methods ***/
+#define ID3D11CommandList_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11CommandList_QueryInterface(ID3D11CommandList* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11CommandList_AddRef(ID3D11CommandList* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11CommandList_Release(ID3D11CommandList* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11CommandList_GetDevice(ID3D11CommandList* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11CommandList_GetPrivateData(ID3D11CommandList* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11CommandList_SetPrivateData(ID3D11CommandList* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11CommandList_SetPrivateDataInterface(ID3D11CommandList* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11CommandList methods ***/
+static FORCEINLINE UINT ID3D11CommandList_GetContextFlags(ID3D11CommandList* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11CommandList_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11ComputeShader interface
+ */
+#ifndef __ID3D11ComputeShader_INTERFACE_DEFINED__
+#define __ID3D11ComputeShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11ComputeShader, 0x4f5b196e, 0xc2bd, 0x495e, 0xbd,0x01, 0x1f,0xde,0xd3,0x8e,0x49,0x69);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4f5b196e-c2bd-495e-bd01-1fded38e4969")
+ID3D11ComputeShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11ComputeShader, 0x4f5b196e, 0xc2bd, 0x495e, 0xbd,0x01, 0x1f,0xde,0xd3,0x8e,0x49,0x69)
+#endif
+#else
+typedef struct ID3D11ComputeShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11ComputeShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11ComputeShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11ComputeShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11ComputeShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11ComputeShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11ComputeShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11ComputeShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11ComputeShaderVtbl;
+
+interface ID3D11ComputeShader {
+ CONST_VTBL ID3D11ComputeShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11ComputeShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11ComputeShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11ComputeShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11ComputeShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11ComputeShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11ComputeShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11ComputeShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11ComputeShader_QueryInterface(ID3D11ComputeShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11ComputeShader_AddRef(ID3D11ComputeShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11ComputeShader_Release(ID3D11ComputeShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11ComputeShader_GetDevice(ID3D11ComputeShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11ComputeShader_GetPrivateData(ID3D11ComputeShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ComputeShader_SetPrivateData(ID3D11ComputeShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ComputeShader_SetPrivateDataInterface(ID3D11ComputeShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Counter interface
+ */
+#ifndef __ID3D11Counter_INTERFACE_DEFINED__
+#define __ID3D11Counter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Counter, 0x6e8c49fb, 0xa371, 0x4770, 0xb4,0x40, 0x29,0x08,0x60,0x22,0xb7,0x41);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6e8c49fb-a371-4770-b440-29086022b741")
+ID3D11Counter : public ID3D11Asynchronous
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_COUNTER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Counter, 0x6e8c49fb, 0xa371, 0x4770, 0xb4,0x40, 0x29,0x08,0x60,0x22,0xb7,0x41)
+#endif
+#else
+typedef struct ID3D11CounterVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Counter *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Counter *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Counter *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Counter *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Counter *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Counter *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Counter *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Asynchronous methods ***/
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D11Counter *This);
+
+ /*** ID3D11Counter methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Counter *This,
+ D3D11_COUNTER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11CounterVtbl;
+
+interface ID3D11Counter {
+ CONST_VTBL ID3D11CounterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Counter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Counter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Counter_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Counter_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Counter_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Counter_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Counter_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Asynchronous methods ***/
+#define ID3D11Counter_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D11Counter methods ***/
+#define ID3D11Counter_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Counter_QueryInterface(ID3D11Counter* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Counter_AddRef(ID3D11Counter* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Counter_Release(ID3D11Counter* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Counter_GetDevice(ID3D11Counter* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Counter_GetPrivateData(ID3D11Counter* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Counter_SetPrivateData(ID3D11Counter* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Counter_SetPrivateDataInterface(ID3D11Counter* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Asynchronous methods ***/
+static FORCEINLINE UINT ID3D11Counter_GetDataSize(ID3D11Counter* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D11Counter methods ***/
+static FORCEINLINE void ID3D11Counter_GetDesc(ID3D11Counter* This,D3D11_COUNTER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Counter_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DepthStencilState interface
+ */
+#ifndef __ID3D11DepthStencilState_INTERFACE_DEFINED__
+#define __ID3D11DepthStencilState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DepthStencilState, 0x03823efb, 0x8d8f, 0x4e1c, 0x9a,0xa2, 0xf6,0x4b,0xb2,0xcb,0xfd,0xf1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")
+ID3D11DepthStencilState : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_DEPTH_STENCIL_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DepthStencilState, 0x03823efb, 0x8d8f, 0x4e1c, 0x9a,0xa2, 0xf6,0x4b,0xb2,0xcb,0xfd,0xf1)
+#endif
+#else
+typedef struct ID3D11DepthStencilStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DepthStencilState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DepthStencilState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DepthStencilState *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DepthStencilState *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DepthStencilState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DepthStencilState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DepthStencilState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DepthStencilState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11DepthStencilState *This,
+ D3D11_DEPTH_STENCIL_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11DepthStencilStateVtbl;
+
+interface ID3D11DepthStencilState {
+ CONST_VTBL ID3D11DepthStencilStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DepthStencilState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DepthStencilState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DepthStencilState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DepthStencilState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DepthStencilState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DepthStencilState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DepthStencilState methods ***/
+#define ID3D11DepthStencilState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DepthStencilState_QueryInterface(ID3D11DepthStencilState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DepthStencilState_AddRef(ID3D11DepthStencilState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DepthStencilState_Release(ID3D11DepthStencilState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DepthStencilState_GetDevice(ID3D11DepthStencilState* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilState_GetPrivateData(ID3D11DepthStencilState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilState_SetPrivateData(ID3D11DepthStencilState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilState_SetPrivateDataInterface(ID3D11DepthStencilState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DepthStencilState methods ***/
+static FORCEINLINE void ID3D11DepthStencilState_GetDesc(ID3D11DepthStencilState* This,D3D11_DEPTH_STENCIL_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DepthStencilView interface
+ */
+#ifndef __ID3D11DepthStencilView_INTERFACE_DEFINED__
+#define __ID3D11DepthStencilView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DepthStencilView, 0x9fdac92a, 0x1876, 0x48c3, 0xaf,0xad, 0x25,0xb9,0x4f,0x84,0xa9,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9fdac92a-1876-48c3-afad-25b94f84a9b6")
+ID3D11DepthStencilView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DepthStencilView, 0x9fdac92a, 0x1876, 0x48c3, 0xaf,0xad, 0x25,0xb9,0x4f,0x84,0xa9,0xb6)
+#endif
+#else
+typedef struct ID3D11DepthStencilViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DepthStencilView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DepthStencilView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DepthStencilView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DepthStencilView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DepthStencilView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DepthStencilView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DepthStencilView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11DepthStencilView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11DepthStencilView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11DepthStencilView *This,
+ D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11DepthStencilViewVtbl;
+
+interface ID3D11DepthStencilView {
+ CONST_VTBL ID3D11DepthStencilViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DepthStencilView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DepthStencilView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DepthStencilView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DepthStencilView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DepthStencilView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DepthStencilView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11DepthStencilView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11DepthStencilView methods ***/
+#define ID3D11DepthStencilView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DepthStencilView_QueryInterface(ID3D11DepthStencilView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DepthStencilView_AddRef(ID3D11DepthStencilView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DepthStencilView_Release(ID3D11DepthStencilView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DepthStencilView_GetDevice(ID3D11DepthStencilView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilView_GetPrivateData(ID3D11DepthStencilView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilView_SetPrivateData(ID3D11DepthStencilView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DepthStencilView_SetPrivateDataInterface(ID3D11DepthStencilView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11DepthStencilView_GetResource(ID3D11DepthStencilView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11DepthStencilView methods ***/
+static FORCEINLINE void ID3D11DepthStencilView_GetDesc(ID3D11DepthStencilView* This,D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DomainShader interface
+ */
+#ifndef __ID3D11DomainShader_INTERFACE_DEFINED__
+#define __ID3D11DomainShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DomainShader, 0xf582c508, 0x0f36, 0x490c, 0x99,0x77, 0x31,0xee,0xce,0x26,0x8c,0xfa);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f582c508-0f36-490c-9977-31eece268cfa")
+ID3D11DomainShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DomainShader, 0xf582c508, 0x0f36, 0x490c, 0x99,0x77, 0x31,0xee,0xce,0x26,0x8c,0xfa)
+#endif
+#else
+typedef struct ID3D11DomainShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DomainShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DomainShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DomainShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DomainShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DomainShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DomainShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DomainShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11DomainShaderVtbl;
+
+interface ID3D11DomainShader {
+ CONST_VTBL ID3D11DomainShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DomainShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DomainShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DomainShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DomainShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DomainShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DomainShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DomainShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DomainShader_QueryInterface(ID3D11DomainShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DomainShader_AddRef(ID3D11DomainShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DomainShader_Release(ID3D11DomainShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DomainShader_GetDevice(ID3D11DomainShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DomainShader_GetPrivateData(ID3D11DomainShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DomainShader_SetPrivateData(ID3D11DomainShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DomainShader_SetPrivateDataInterface(ID3D11DomainShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DomainShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11GeometryShader interface
+ */
+#ifndef __ID3D11GeometryShader_INTERFACE_DEFINED__
+#define __ID3D11GeometryShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11GeometryShader, 0x38325b96, 0xeffb, 0x4022, 0xba,0x02, 0x2e,0x79,0x5b,0x70,0x27,0x5c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("38325b96-effb-4022-ba02-2e795b70275c")
+ID3D11GeometryShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11GeometryShader, 0x38325b96, 0xeffb, 0x4022, 0xba,0x02, 0x2e,0x79,0x5b,0x70,0x27,0x5c)
+#endif
+#else
+typedef struct ID3D11GeometryShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11GeometryShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11GeometryShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11GeometryShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11GeometryShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11GeometryShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11GeometryShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11GeometryShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11GeometryShaderVtbl;
+
+interface ID3D11GeometryShader {
+ CONST_VTBL ID3D11GeometryShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11GeometryShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11GeometryShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11GeometryShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11GeometryShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11GeometryShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11GeometryShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11GeometryShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11GeometryShader_QueryInterface(ID3D11GeometryShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11GeometryShader_AddRef(ID3D11GeometryShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11GeometryShader_Release(ID3D11GeometryShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11GeometryShader_GetDevice(ID3D11GeometryShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11GeometryShader_GetPrivateData(ID3D11GeometryShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11GeometryShader_SetPrivateData(ID3D11GeometryShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11GeometryShader_SetPrivateDataInterface(ID3D11GeometryShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11HullShader interface
+ */
+#ifndef __ID3D11HullShader_INTERFACE_DEFINED__
+#define __ID3D11HullShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11HullShader, 0x8e5c6061, 0x628a, 0x4c8e, 0x82,0x64, 0xbb,0xe4,0x5c,0xb3,0xd5,0xdd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")
+ID3D11HullShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11HullShader, 0x8e5c6061, 0x628a, 0x4c8e, 0x82,0x64, 0xbb,0xe4,0x5c,0xb3,0xd5,0xdd)
+#endif
+#else
+typedef struct ID3D11HullShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11HullShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11HullShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11HullShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11HullShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11HullShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11HullShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11HullShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11HullShaderVtbl;
+
+interface ID3D11HullShader {
+ CONST_VTBL ID3D11HullShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11HullShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11HullShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11HullShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11HullShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11HullShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11HullShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11HullShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11HullShader_QueryInterface(ID3D11HullShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11HullShader_AddRef(ID3D11HullShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11HullShader_Release(ID3D11HullShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11HullShader_GetDevice(ID3D11HullShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11HullShader_GetPrivateData(ID3D11HullShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11HullShader_SetPrivateData(ID3D11HullShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11HullShader_SetPrivateDataInterface(ID3D11HullShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11HullShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11InputLayout interface
+ */
+#ifndef __ID3D11InputLayout_INTERFACE_DEFINED__
+#define __ID3D11InputLayout_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11InputLayout, 0xe4819ddc, 0x4cf0, 0x4025, 0xbd,0x26, 0x5d,0xe8,0x2a,0x3e,0x07,0xb7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")
+ID3D11InputLayout : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11InputLayout, 0xe4819ddc, 0x4cf0, 0x4025, 0xbd,0x26, 0x5d,0xe8,0x2a,0x3e,0x07,0xb7)
+#endif
+#else
+typedef struct ID3D11InputLayoutVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11InputLayout *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11InputLayout *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11InputLayout *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11InputLayout *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11InputLayout *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11InputLayout *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11InputLayout *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11InputLayoutVtbl;
+
+interface ID3D11InputLayout {
+ CONST_VTBL ID3D11InputLayoutVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11InputLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11InputLayout_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11InputLayout_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11InputLayout_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11InputLayout_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11InputLayout_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11InputLayout_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11InputLayout_QueryInterface(ID3D11InputLayout* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11InputLayout_AddRef(ID3D11InputLayout* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11InputLayout_Release(ID3D11InputLayout* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11InputLayout_GetDevice(ID3D11InputLayout* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11InputLayout_GetPrivateData(ID3D11InputLayout* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11InputLayout_SetPrivateData(ID3D11InputLayout* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11InputLayout_SetPrivateDataInterface(ID3D11InputLayout* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11InputLayout_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11PixelShader interface
+ */
+#ifndef __ID3D11PixelShader_INTERFACE_DEFINED__
+#define __ID3D11PixelShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11PixelShader, 0xea82e40d, 0x51dc, 0x4f33, 0x93,0xd4, 0xdb,0x7c,0x91,0x25,0xae,0x8c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")
+ID3D11PixelShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11PixelShader, 0xea82e40d, 0x51dc, 0x4f33, 0x93,0xd4, 0xdb,0x7c,0x91,0x25,0xae,0x8c)
+#endif
+#else
+typedef struct ID3D11PixelShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11PixelShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11PixelShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11PixelShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11PixelShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11PixelShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11PixelShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11PixelShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11PixelShaderVtbl;
+
+interface ID3D11PixelShader {
+ CONST_VTBL ID3D11PixelShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11PixelShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11PixelShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11PixelShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11PixelShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11PixelShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11PixelShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11PixelShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11PixelShader_QueryInterface(ID3D11PixelShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11PixelShader_AddRef(ID3D11PixelShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11PixelShader_Release(ID3D11PixelShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11PixelShader_GetDevice(ID3D11PixelShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11PixelShader_GetPrivateData(ID3D11PixelShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11PixelShader_SetPrivateData(ID3D11PixelShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11PixelShader_SetPrivateDataInterface(ID3D11PixelShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11PixelShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Predicate interface
+ */
+#ifndef __ID3D11Predicate_INTERFACE_DEFINED__
+#define __ID3D11Predicate_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Predicate, 0x9eb576dd, 0x9f77, 0x4d86, 0x81,0xaa, 0x8b,0xab,0x5f,0xe4,0x90,0xe2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")
+ID3D11Predicate : public ID3D11Query
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Predicate, 0x9eb576dd, 0x9f77, 0x4d86, 0x81,0xaa, 0x8b,0xab,0x5f,0xe4,0x90,0xe2)
+#endif
+#else
+typedef struct ID3D11PredicateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Predicate *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Predicate *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Predicate *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Predicate *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Predicate *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Predicate *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Predicate *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Asynchronous methods ***/
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D11Predicate *This);
+
+ /*** ID3D11Query methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Predicate *This,
+ D3D11_QUERY_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11PredicateVtbl;
+
+interface ID3D11Predicate {
+ CONST_VTBL ID3D11PredicateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Predicate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Predicate_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Predicate_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Predicate_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Predicate_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Predicate_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Predicate_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Asynchronous methods ***/
+#define ID3D11Predicate_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D11Query methods ***/
+#define ID3D11Predicate_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Predicate_QueryInterface(ID3D11Predicate* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Predicate_AddRef(ID3D11Predicate* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Predicate_Release(ID3D11Predicate* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Predicate_GetDevice(ID3D11Predicate* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Predicate_GetPrivateData(ID3D11Predicate* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Predicate_SetPrivateData(ID3D11Predicate* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Predicate_SetPrivateDataInterface(ID3D11Predicate* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Asynchronous methods ***/
+static FORCEINLINE UINT ID3D11Predicate_GetDataSize(ID3D11Predicate* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D11Query methods ***/
+static FORCEINLINE void ID3D11Predicate_GetDesc(ID3D11Predicate* This,D3D11_QUERY_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Predicate_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11RasterizerState interface
+ */
+#ifndef __ID3D11RasterizerState_INTERFACE_DEFINED__
+#define __ID3D11RasterizerState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RasterizerState, 0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5,0x06, 0xfc,0x04,0x20,0x0b,0x6e,0xe7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")
+ID3D11RasterizerState : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_RASTERIZER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RasterizerState, 0x9bb4ab81, 0xab1a, 0x4d8f, 0xb5,0x06, 0xfc,0x04,0x20,0x0b,0x6e,0xe7)
+#endif
+#else
+typedef struct ID3D11RasterizerStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RasterizerState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RasterizerState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RasterizerState *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RasterizerState *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RasterizerState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RasterizerState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RasterizerState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11RasterizerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RasterizerState *This,
+ D3D11_RASTERIZER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11RasterizerStateVtbl;
+
+interface ID3D11RasterizerState {
+ CONST_VTBL ID3D11RasterizerStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RasterizerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RasterizerState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RasterizerState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RasterizerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RasterizerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RasterizerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RasterizerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11RasterizerState methods ***/
+#define ID3D11RasterizerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RasterizerState_QueryInterface(ID3D11RasterizerState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState_AddRef(ID3D11RasterizerState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState_Release(ID3D11RasterizerState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RasterizerState_GetDevice(ID3D11RasterizerState* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState_GetPrivateData(ID3D11RasterizerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState_SetPrivateData(ID3D11RasterizerState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState_SetPrivateDataInterface(ID3D11RasterizerState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11RasterizerState methods ***/
+static FORCEINLINE void ID3D11RasterizerState_GetDesc(ID3D11RasterizerState* This,D3D11_RASTERIZER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11RenderTargetView interface
+ */
+#ifndef __ID3D11RenderTargetView_INTERFACE_DEFINED__
+#define __ID3D11RenderTargetView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RenderTargetView, 0xdfdba067, 0x0b8d, 0x4865, 0x87,0x5b, 0xd7,0xb4,0x51,0x6c,0xc1,0x64);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dfdba067-0b8d-4865-875b-d7b4516cc164")
+ID3D11RenderTargetView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RenderTargetView, 0xdfdba067, 0x0b8d, 0x4865, 0x87,0x5b, 0xd7,0xb4,0x51,0x6c,0xc1,0x64)
+#endif
+#else
+typedef struct ID3D11RenderTargetViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RenderTargetView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RenderTargetView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RenderTargetView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RenderTargetView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RenderTargetView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RenderTargetView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RenderTargetView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11RenderTargetView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11RenderTargetView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RenderTargetView *This,
+ D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11RenderTargetViewVtbl;
+
+interface ID3D11RenderTargetView {
+ CONST_VTBL ID3D11RenderTargetViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RenderTargetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RenderTargetView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RenderTargetView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RenderTargetView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RenderTargetView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RenderTargetView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11RenderTargetView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11RenderTargetView methods ***/
+#define ID3D11RenderTargetView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RenderTargetView_QueryInterface(ID3D11RenderTargetView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RenderTargetView_AddRef(ID3D11RenderTargetView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RenderTargetView_Release(ID3D11RenderTargetView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RenderTargetView_GetDevice(ID3D11RenderTargetView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView_GetPrivateData(ID3D11RenderTargetView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView_SetPrivateData(ID3D11RenderTargetView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView_SetPrivateDataInterface(ID3D11RenderTargetView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11RenderTargetView_GetResource(ID3D11RenderTargetView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11RenderTargetView methods ***/
+static FORCEINLINE void ID3D11RenderTargetView_GetDesc(ID3D11RenderTargetView* This,D3D11_RENDER_TARGET_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11SamplerState interface
+ */
+#ifndef __ID3D11SamplerState_INTERFACE_DEFINED__
+#define __ID3D11SamplerState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11SamplerState, 0xda6fea51, 0x564c, 0x4487, 0x98,0x10, 0xf0,0xd0,0xf9,0xb4,0xe3,0xa5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("da6fea51-564c-4487-9810-f0d0f9b4e3a5")
+ID3D11SamplerState : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_SAMPLER_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11SamplerState, 0xda6fea51, 0x564c, 0x4487, 0x98,0x10, 0xf0,0xd0,0xf9,0xb4,0xe3,0xa5)
+#endif
+#else
+typedef struct ID3D11SamplerStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11SamplerState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11SamplerState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11SamplerState *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11SamplerState *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11SamplerState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11SamplerState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11SamplerState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11SamplerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11SamplerState *This,
+ D3D11_SAMPLER_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11SamplerStateVtbl;
+
+interface ID3D11SamplerState {
+ CONST_VTBL ID3D11SamplerStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11SamplerState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11SamplerState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11SamplerState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11SamplerState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11SamplerState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11SamplerState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11SamplerState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11SamplerState methods ***/
+#define ID3D11SamplerState_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11SamplerState_QueryInterface(ID3D11SamplerState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11SamplerState_AddRef(ID3D11SamplerState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11SamplerState_Release(ID3D11SamplerState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11SamplerState_GetDevice(ID3D11SamplerState* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11SamplerState_GetPrivateData(ID3D11SamplerState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11SamplerState_SetPrivateData(ID3D11SamplerState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11SamplerState_SetPrivateDataInterface(ID3D11SamplerState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11SamplerState methods ***/
+static FORCEINLINE void ID3D11SamplerState_GetDesc(ID3D11SamplerState* This,D3D11_SAMPLER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11SamplerState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11ShaderResourceView interface
+ */
+#ifndef __ID3D11ShaderResourceView_INTERFACE_DEFINED__
+#define __ID3D11ShaderResourceView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11ShaderResourceView, 0xb0e06fe0, 0x8192, 0x4e1a, 0xb1,0xca, 0x36,0xd7,0x41,0x47,0x10,0xb2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")
+ID3D11ShaderResourceView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11ShaderResourceView, 0xb0e06fe0, 0x8192, 0x4e1a, 0xb1,0xca, 0x36,0xd7,0x41,0x47,0x10,0xb2)
+#endif
+#else
+typedef struct ID3D11ShaderResourceViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11ShaderResourceView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11ShaderResourceView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11ShaderResourceView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11ShaderResourceView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11ShaderResourceView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11ShaderResourceView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11ShaderResourceView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11ShaderResourceView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11ShaderResourceView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11ShaderResourceView *This,
+ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11ShaderResourceViewVtbl;
+
+interface ID3D11ShaderResourceView {
+ CONST_VTBL ID3D11ShaderResourceViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11ShaderResourceView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11ShaderResourceView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11ShaderResourceView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11ShaderResourceView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11ShaderResourceView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11ShaderResourceView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11ShaderResourceView methods ***/
+#define ID3D11ShaderResourceView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11ShaderResourceView_QueryInterface(ID3D11ShaderResourceView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11ShaderResourceView_AddRef(ID3D11ShaderResourceView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11ShaderResourceView_Release(ID3D11ShaderResourceView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView_GetDevice(ID3D11ShaderResourceView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView_GetPrivateData(ID3D11ShaderResourceView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView_SetPrivateData(ID3D11ShaderResourceView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView_SetPrivateDataInterface(ID3D11ShaderResourceView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView_GetResource(ID3D11ShaderResourceView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11ShaderResourceView methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView_GetDesc(ID3D11ShaderResourceView* This,D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Texture1D interface
+ */
+#ifndef __ID3D11Texture1D_INTERFACE_DEFINED__
+#define __ID3D11Texture1D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Texture1D, 0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4,0xc8, 0x43,0x9a,0xf2,0xef,0x56,0x4c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")
+ID3D11Texture1D : public ID3D11Resource
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_TEXTURE1D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Texture1D, 0xf8fb5c27, 0xc6b3, 0x4f75, 0xa4,0xc8, 0x43,0x9a,0xf2,0xef,0x56,0x4c)
+#endif
+#else
+typedef struct ID3D11Texture1DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Texture1D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Texture1D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Texture1D *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Texture1D *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Texture1D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Texture1D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Texture1D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Texture1D *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Texture1D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Texture1D *This);
+
+ /*** ID3D11Texture1D methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Texture1D *This,
+ D3D11_TEXTURE1D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11Texture1DVtbl;
+
+interface ID3D11Texture1D {
+ CONST_VTBL ID3D11Texture1DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Texture1D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Texture1D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Texture1D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Texture1D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Texture1D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Texture1D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Texture1D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Texture1D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Texture1D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Texture1D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Texture1D methods ***/
+#define ID3D11Texture1D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Texture1D_QueryInterface(ID3D11Texture1D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Texture1D_AddRef(ID3D11Texture1D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Texture1D_Release(ID3D11Texture1D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Texture1D_GetDevice(ID3D11Texture1D* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Texture1D_GetPrivateData(ID3D11Texture1D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture1D_SetPrivateData(ID3D11Texture1D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture1D_SetPrivateDataInterface(ID3D11Texture1D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Texture1D_GetType(ID3D11Texture1D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Texture1D_SetEvictionPriority(ID3D11Texture1D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Texture1D_GetEvictionPriority(ID3D11Texture1D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Texture1D methods ***/
+static FORCEINLINE void ID3D11Texture1D_GetDesc(ID3D11Texture1D* This,D3D11_TEXTURE1D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Texture1D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Texture2D interface
+ */
+#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
+#define __ID3D11Texture2D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Texture2D, 0x6f15aaf2, 0xd208, 0x4e89, 0x9a,0xb4, 0x48,0x95,0x35,0xd3,0x4f,0x9c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6f15aaf2-d208-4e89-9ab4-489535d34f9c")
+ID3D11Texture2D : public ID3D11Resource
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_TEXTURE2D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Texture2D, 0x6f15aaf2, 0xd208, 0x4e89, 0x9a,0xb4, 0x48,0x95,0x35,0xd3,0x4f,0x9c)
+#endif
+#else
+typedef struct ID3D11Texture2DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Texture2D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Texture2D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Texture2D *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Texture2D *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Texture2D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Texture2D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Texture2D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Texture2D *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Texture2D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Texture2D *This);
+
+ /*** ID3D11Texture2D methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Texture2D *This,
+ D3D11_TEXTURE2D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11Texture2DVtbl;
+
+interface ID3D11Texture2D {
+ CONST_VTBL ID3D11Texture2DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Texture2D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Texture2D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Texture2D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Texture2D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Texture2D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Texture2D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Texture2D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Texture2D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Texture2D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Texture2D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Texture2D methods ***/
+#define ID3D11Texture2D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Texture2D_QueryInterface(ID3D11Texture2D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Texture2D_AddRef(ID3D11Texture2D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Texture2D_Release(ID3D11Texture2D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Texture2D_GetDevice(ID3D11Texture2D* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D_GetPrivateData(ID3D11Texture2D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D_SetPrivateData(ID3D11Texture2D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D_SetPrivateDataInterface(ID3D11Texture2D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Texture2D_GetType(ID3D11Texture2D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Texture2D_SetEvictionPriority(ID3D11Texture2D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Texture2D_GetEvictionPriority(ID3D11Texture2D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Texture2D methods ***/
+static FORCEINLINE void ID3D11Texture2D_GetDesc(ID3D11Texture2D* This,D3D11_TEXTURE2D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Texture2D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Texture3D interface
+ */
+#ifndef __ID3D11Texture3D_INTERFACE_DEFINED__
+#define __ID3D11Texture3D_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Texture3D, 0x037e866e, 0xf56d, 0x4357, 0xa8,0xaf, 0x9d,0xab,0xbe,0x6e,0x25,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("037e866e-f56d-4357-a8af-9dabbe6e250e")
+ID3D11Texture3D : public ID3D11Resource
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_TEXTURE3D_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Texture3D, 0x037e866e, 0xf56d, 0x4357, 0xa8,0xaf, 0x9d,0xab,0xbe,0x6e,0x25,0x0e)
+#endif
+#else
+typedef struct ID3D11Texture3DVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Texture3D *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Texture3D *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Texture3D *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Texture3D *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Texture3D *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Texture3D *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Texture3D *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Texture3D *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Texture3D *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Texture3D *This);
+
+ /*** ID3D11Texture3D methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Texture3D *This,
+ D3D11_TEXTURE3D_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11Texture3DVtbl;
+
+interface ID3D11Texture3D {
+ CONST_VTBL ID3D11Texture3DVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Texture3D_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Texture3D_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Texture3D_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Texture3D_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Texture3D_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Texture3D_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Texture3D_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Texture3D_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Texture3D_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Texture3D_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Texture3D methods ***/
+#define ID3D11Texture3D_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Texture3D_QueryInterface(ID3D11Texture3D* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Texture3D_AddRef(ID3D11Texture3D* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Texture3D_Release(ID3D11Texture3D* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Texture3D_GetDevice(ID3D11Texture3D* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D_GetPrivateData(ID3D11Texture3D* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D_SetPrivateData(ID3D11Texture3D* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D_SetPrivateDataInterface(ID3D11Texture3D* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Texture3D_GetType(ID3D11Texture3D* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Texture3D_SetEvictionPriority(ID3D11Texture3D* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Texture3D_GetEvictionPriority(ID3D11Texture3D* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Texture3D methods ***/
+static FORCEINLINE void ID3D11Texture3D_GetDesc(ID3D11Texture3D* This,D3D11_TEXTURE3D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Texture3D_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11UnorderedAccessView interface
+ */
+#ifndef __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
+#define __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11UnorderedAccessView, 0x28acf509, 0x7f5c, 0x48f6, 0x86,0x11, 0xf3,0x16,0x01,0x0a,0x63,0x80);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("28acf509-7f5c-48f6-8611-f316010a6380")
+ID3D11UnorderedAccessView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11UnorderedAccessView, 0x28acf509, 0x7f5c, 0x48f6, 0x86,0x11, 0xf3,0x16,0x01,0x0a,0x63,0x80)
+#endif
+#else
+typedef struct ID3D11UnorderedAccessViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11UnorderedAccessView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11UnorderedAccessView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11UnorderedAccessView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11UnorderedAccessView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11UnorderedAccessView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11UnorderedAccessView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11UnorderedAccessView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11UnorderedAccessView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11UnorderedAccessView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11UnorderedAccessView *This,
+ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11UnorderedAccessViewVtbl;
+
+interface ID3D11UnorderedAccessView {
+ CONST_VTBL ID3D11UnorderedAccessViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11UnorderedAccessView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11UnorderedAccessView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11UnorderedAccessView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11UnorderedAccessView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11UnorderedAccessView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11UnorderedAccessView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11UnorderedAccessView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11UnorderedAccessView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11UnorderedAccessView methods ***/
+#define ID3D11UnorderedAccessView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView_QueryInterface(ID3D11UnorderedAccessView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11UnorderedAccessView_AddRef(ID3D11UnorderedAccessView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11UnorderedAccessView_Release(ID3D11UnorderedAccessView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView_GetDevice(ID3D11UnorderedAccessView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView_GetPrivateData(ID3D11UnorderedAccessView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView_SetPrivateData(ID3D11UnorderedAccessView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView_SetPrivateDataInterface(ID3D11UnorderedAccessView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView_GetResource(ID3D11UnorderedAccessView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11UnorderedAccessView methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView_GetDesc(ID3D11UnorderedAccessView* This,D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VertexShader interface
+ */
+#ifndef __ID3D11VertexShader_INTERFACE_DEFINED__
+#define __ID3D11VertexShader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VertexShader, 0x3b301d64, 0xd678, 0x4289, 0x88,0x97, 0x22,0xf8,0x92,0x8b,0x72,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3b301d64-d678-4289-8897-22f8928b72f3")
+ID3D11VertexShader : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VertexShader, 0x3b301d64, 0xd678, 0x4289, 0x88,0x97, 0x22,0xf8,0x92,0x8b,0x72,0xf3)
+#endif
+#else
+typedef struct ID3D11VertexShaderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VertexShader *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VertexShader *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VertexShader *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VertexShader *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VertexShader *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VertexShader *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VertexShader *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11VertexShaderVtbl;
+
+interface ID3D11VertexShader {
+ CONST_VTBL ID3D11VertexShaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VertexShader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VertexShader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VertexShader_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VertexShader_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VertexShader_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VertexShader_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VertexShader_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VertexShader_QueryInterface(ID3D11VertexShader* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VertexShader_AddRef(ID3D11VertexShader* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VertexShader_Release(ID3D11VertexShader* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VertexShader_GetDevice(ID3D11VertexShader* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VertexShader_GetPrivateData(ID3D11VertexShader* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VertexShader_SetPrivateData(ID3D11VertexShader* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VertexShader_SetPrivateDataInterface(ID3D11VertexShader* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VertexShader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DeviceContext interface
+ */
+#ifndef __ID3D11DeviceContext_INTERFACE_DEFINED__
+#define __ID3D11DeviceContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceContext, 0xc0bfa96c, 0xe089, 0x44fb, 0x8e,0xaf, 0x26,0xf8,0x79,0x61,0x90,0xda);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c0bfa96c-e089-44fb-8eaf-26f8796190da")
+ID3D11DeviceContext : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetShader(
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetShader(
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexed(
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE Draw(
+ UINT VertexCount,
+ UINT StartVertexLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ ID3D11Resource *pResource,
+ UINT Subresource) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetInputLayout(
+ ID3D11InputLayout *pInputLayout) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetVertexBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetIndexBuffer(
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawInstanced(
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetShader(
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
+ D3D11_PRIMITIVE_TOPOLOGY Topology) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE Begin(
+ ID3D11Asynchronous *pAsync) = 0;
+
+ virtual void STDMETHODCALLTYPE End(
+ ID3D11Asynchronous *pAsync) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetData(
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPredication(
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetRenderTargets(
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetBlendState(
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef) = 0;
+
+ virtual void STDMETHODCALLTYPE SOSetTargets(
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawAuto(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexedInstancedIndirect(
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawInstancedIndirect(
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs) = 0;
+
+ virtual void STDMETHODCALLTYPE Dispatch(
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ) = 0;
+
+ virtual void STDMETHODCALLTYPE DispatchIndirect(
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetState(
+ ID3D11RasterizerState *pRasterizerState) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetViewports(
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetScissorRects(
+ UINT NumRects,
+ const D3D11_RECT *pRects) = 0;
+
+ virtual void STDMETHODCALLTYPE CopySubresourceRegion(
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyResource(
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource) = 0;
+
+ virtual void STDMETHODCALLTYPE UpdateSubresource(
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyStructureCount(
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRenderTargetView(
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearDepthStencilView(
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil) = 0;
+
+ virtual void STDMETHODCALLTYPE GenerateMips(
+ ID3D11ShaderResourceView *pShaderResourceView) = 0;
+
+ virtual void STDMETHODCALLTYPE SetResourceMinLOD(
+ ID3D11Resource *pResource,
+ FLOAT MinLOD) = 0;
+
+ virtual FLOAT STDMETHODCALLTYPE GetResourceMinLOD(
+ ID3D11Resource *pResource) = 0;
+
+ virtual void STDMETHODCALLTYPE ResolveSubresource(
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format) = 0;
+
+ virtual void STDMETHODCALLTYPE ExecuteCommandList(
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState) = 0;
+
+ virtual void STDMETHODCALLTYPE HSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE HSSetShader(
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE HSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE HSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE DSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE DSSetShader(
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE DSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE DSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetUnorderedAccessViews(
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetShader(
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetShader(
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetShader(
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetInputLayout(
+ ID3D11InputLayout **ppInputLayout) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetShader(
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE GetPredication(
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetRenderTargets(
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews(
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetBlendState(
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask) = 0;
+
+ virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef) = 0;
+
+ virtual void STDMETHODCALLTYPE SOGetTargets(
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetState(
+ ID3D11RasterizerState **ppRasterizerState) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetViewports(
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports) = 0;
+
+ virtual void STDMETHODCALLTYPE RSGetScissorRects(
+ UINT *pNumRects,
+ D3D11_RECT *pRects) = 0;
+
+ virtual void STDMETHODCALLTYPE HSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE HSGetShader(
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE HSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE HSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE DSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE DSGetShader(
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE DSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE DSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetShaderResources(
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetUnorderedAccessViews(
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetShader(
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetSamplers(
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetConstantBuffers(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearState(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE Flush(
+ ) = 0;
+
+ virtual D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetContextFlags(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FinishCommandList(
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceContext, 0xc0bfa96c, 0xe089, 0x44fb, 0x8e,0xaf, 0x26,0xf8,0x79,0x61,0x90,0xda)
+#endif
+#else
+typedef struct ID3D11DeviceContextVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceContext *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceContext *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceContext *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceContext *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceContext *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceContext *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceContext *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DeviceContext methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D11DeviceContext *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D11DeviceContext *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pResource,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D11DeviceContext *This,
+ ID3D11InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D11DeviceContext *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D11DeviceContext *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D11DeviceContext *This,
+ D3D11_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D11DeviceContext *This,
+ ID3D11Asynchronous *pAsync);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D11DeviceContext *This,
+ ID3D11Asynchronous *pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D11DeviceContext *This,
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D11DeviceContext *This,
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D11DeviceContext *This,
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D11DeviceContext *This,
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D11DeviceContext *This,
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D11DeviceContext *This,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D11DeviceContext *This);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D11DeviceContext *This,
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ);
+
+ void (STDMETHODCALLTYPE *DispatchIndirect)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D11DeviceContext *This,
+ ID3D11RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D11DeviceContext *This,
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D11DeviceContext *This,
+ UINT NumRects,
+ const D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *CopyStructureCount)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D11DeviceContext *This,
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D11DeviceContext *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D11DeviceContext *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D11DeviceContext *This,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D11DeviceContext *This,
+ ID3D11ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *SetResourceMinLOD)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pResource,
+ FLOAT MinLOD);
+
+ FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D11DeviceContext *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandList)(
+ ID3D11DeviceContext *This,
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState);
+
+ void (STDMETHODCALLTYPE *HSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSSetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *CSSetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSSetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D11DeviceContext *This,
+ ID3D11InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D11DeviceContext *This,
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D11DeviceContext *This,
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D11DeviceContext *This,
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D11DeviceContext *This,
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D11DeviceContext *This,
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D11DeviceContext *This,
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D11DeviceContext *This,
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D11DeviceContext *This,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D11DeviceContext *This,
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D11DeviceContext *This,
+ UINT *pNumRects,
+ D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *HSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSGetShaderResources)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *CSGetShader)(
+ ID3D11DeviceContext *This,
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSGetSamplers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
+ ID3D11DeviceContext *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D11DeviceContext *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D11DeviceContext *This);
+
+ D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D11DeviceContext *This);
+
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11DeviceContext *This);
+
+ HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
+ ID3D11DeviceContext *This,
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList);
+
+ END_INTERFACE
+} ID3D11DeviceContextVtbl;
+
+interface ID3D11DeviceContext {
+ CONST_VTBL ID3D11DeviceContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceContext_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DeviceContext methods ***/
+#define ID3D11DeviceContext_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D11DeviceContext_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D11DeviceContext_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
+#define ID3D11DeviceContext_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
+#define ID3D11DeviceContext_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D11DeviceContext_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D11DeviceContext_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
+#define ID3D11DeviceContext_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
+#define ID3D11DeviceContext_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
+#define ID3D11DeviceContext_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D11DeviceContext_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D11DeviceContext_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D11DeviceContext_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D11DeviceContext_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D11DeviceContext_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
+#define ID3D11DeviceContext_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D11DeviceContext_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D11DeviceContext_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D11DeviceContext_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D11DeviceContext_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D11DeviceContext_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D11DeviceContext_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
+#define ID3D11DeviceContext_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D11DeviceContext_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D11DeviceContext_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D11DeviceContext_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
+#define ID3D11DeviceContext_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
+#define ID3D11DeviceContext_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D11DeviceContext_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
+#define ID3D11DeviceContext_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D11DeviceContext_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D11DeviceContext_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D11DeviceContext_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D11DeviceContext_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D11DeviceContext_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
+#define ID3D11DeviceContext_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D11DeviceContext_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
+#define ID3D11DeviceContext_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
+#define ID3D11DeviceContext_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D11DeviceContext_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D11DeviceContext_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D11DeviceContext_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#define ID3D11DeviceContext_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext_QueryInterface(ID3D11DeviceContext* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext_AddRef(ID3D11DeviceContext* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext_Release(ID3D11DeviceContext* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceContext_GetDevice(ID3D11DeviceContext* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_GetPrivateData(ID3D11DeviceContext* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_SetPrivateData(ID3D11DeviceContext* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_SetPrivateDataInterface(ID3D11DeviceContext* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DeviceContext methods ***/
+static FORCEINLINE void ID3D11DeviceContext_VSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSSetShader(ID3D11DeviceContext* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSSetShader(ID3D11DeviceContext* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawIndexed(ID3D11DeviceContext* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext_Draw(ID3D11DeviceContext* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_Map(ID3D11DeviceContext* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
+ return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
+}
+static FORCEINLINE void ID3D11DeviceContext_Unmap(ID3D11DeviceContext* This,ID3D11Resource *pResource,UINT Subresource) {
+ This->lpVtbl->Unmap(This,pResource,Subresource);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_IASetInputLayout(ID3D11DeviceContext* This,ID3D11InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext_IASetVertexBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext_IASetIndexBuffer(ID3D11DeviceContext* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawIndexedInstanced(ID3D11DeviceContext* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawInstanced(ID3D11DeviceContext* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSSetShader(ID3D11DeviceContext* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_IASetPrimitiveTopology(ID3D11DeviceContext* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_Begin(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->Begin(This,pAsync);
+}
+static FORCEINLINE void ID3D11DeviceContext_End(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->End(This,pAsync);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_GetData(ID3D11DeviceContext* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext_SetPredication(ID3D11DeviceContext* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMSetRenderTargets(ID3D11DeviceContext* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMSetBlendState(ID3D11DeviceContext* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMSetDepthStencilState(ID3D11DeviceContext* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext_SOSetTargets(ID3D11DeviceContext* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawAuto(ID3D11DeviceContext* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawIndexedInstancedIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext_DrawInstancedIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext_Dispatch(ID3D11DeviceContext* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
+ This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
+}
+static FORCEINLINE void ID3D11DeviceContext_DispatchIndirect(ID3D11DeviceContext* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSSetState(ID3D11DeviceContext* This,ID3D11RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSSetViewports(ID3D11DeviceContext* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSSetScissorRects(ID3D11DeviceContext* This,UINT NumRects,const D3D11_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext_CopySubresourceRegion(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D11DeviceContext_CopyResource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D11DeviceContext_UpdateSubresource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D11DeviceContext_CopyStructureCount(ID3D11DeviceContext* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
+ This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
+}
+static FORCEINLINE void ID3D11DeviceContext_ClearRenderTargetView(ID3D11DeviceContext* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D11DeviceContext_ClearUnorderedAccessViewUint(ID3D11DeviceContext* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext_ClearUnorderedAccessViewFloat(ID3D11DeviceContext* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext_ClearDepthStencilView(ID3D11DeviceContext* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D11DeviceContext_GenerateMips(ID3D11DeviceContext* This,ID3D11ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext_SetResourceMinLOD(ID3D11DeviceContext* This,ID3D11Resource *pResource,FLOAT MinLOD) {
+ This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
+}
+static FORCEINLINE FLOAT ID3D11DeviceContext_GetResourceMinLOD(ID3D11DeviceContext* This,ID3D11Resource *pResource) {
+ return This->lpVtbl->GetResourceMinLOD(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext_ResolveSubresource(ID3D11DeviceContext* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D11DeviceContext_ExecuteCommandList(ID3D11DeviceContext* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
+ This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSSetShader(ID3D11DeviceContext* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSSetShader(ID3D11DeviceContext* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSSetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSSetUnorderedAccessViews(ID3D11DeviceContext* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSSetShader(ID3D11DeviceContext* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSSetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSSetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSGetShader(ID3D11DeviceContext* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSGetShader(ID3D11DeviceContext* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_PSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_IAGetInputLayout(ID3D11DeviceContext* This,ID3D11InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext_IAGetVertexBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext_IAGetIndexBuffer(ID3D11DeviceContext* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSGetShader(ID3D11DeviceContext* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_IAGetPrimitiveTopology(ID3D11DeviceContext* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_VSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_GetPredication(ID3D11DeviceContext* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_GSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMGetRenderTargets(ID3D11DeviceContext* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMGetBlendState(ID3D11DeviceContext* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext_OMGetDepthStencilState(ID3D11DeviceContext* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext_SOGetTargets(ID3D11DeviceContext* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSGetState(ID3D11DeviceContext* This,ID3D11RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSGetViewports(ID3D11DeviceContext* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext_RSGetScissorRects(ID3D11DeviceContext* This,UINT *pNumRects,D3D11_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSGetShader(ID3D11DeviceContext* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_HSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSGetShader(ID3D11DeviceContext* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_DSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSGetShaderResources(ID3D11DeviceContext* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSGetUnorderedAccessViews(ID3D11DeviceContext* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSGetShader(ID3D11DeviceContext* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSGetSamplers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext_CSGetConstantBuffers(ID3D11DeviceContext* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext_ClearState(ID3D11DeviceContext* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D11DeviceContext_Flush(ID3D11DeviceContext* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext_GetType(ID3D11DeviceContext* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE UINT ID3D11DeviceContext_GetContextFlags(ID3D11DeviceContext* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext_FinishCommandList(ID3D11DeviceContext* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
+ return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11AuthenticatedChannel interface
+ */
+#ifndef __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__
+#define __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11AuthenticatedChannel, 0x3015a308, 0xdcbd, 0x47aa, 0xa7,0x47, 0x19,0x24,0x86,0xd1,0x4d,0x4a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3015a308-dcbd-47aa-a747-192486d14d4a")
+ID3D11AuthenticatedChannel : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCertificateSize(
+ UINT *pCertificateSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCertificate(
+ UINT CertificateSize,
+ BYTE *pCertificate) = 0;
+
+ virtual void STDMETHODCALLTYPE GetChannelHandle(
+ HANDLE *pChannelHandle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11AuthenticatedChannel, 0x3015a308, 0xdcbd, 0x47aa, 0xa7,0x47, 0x19,0x24,0x86,0xd1,0x4d,0x4a)
+#endif
+#else
+typedef struct ID3D11AuthenticatedChannelVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11AuthenticatedChannel *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11AuthenticatedChannel *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11AuthenticatedChannel *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11AuthenticatedChannel *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11AuthenticatedChannel *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11AuthenticatedChannel *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11AuthenticatedChannel *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11AuthenticatedChannel methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCertificateSize)(
+ ID3D11AuthenticatedChannel *This,
+ UINT *pCertificateSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetCertificate)(
+ ID3D11AuthenticatedChannel *This,
+ UINT CertificateSize,
+ BYTE *pCertificate);
+
+ void (STDMETHODCALLTYPE *GetChannelHandle)(
+ ID3D11AuthenticatedChannel *This,
+ HANDLE *pChannelHandle);
+
+ END_INTERFACE
+} ID3D11AuthenticatedChannelVtbl;
+
+interface ID3D11AuthenticatedChannel {
+ CONST_VTBL ID3D11AuthenticatedChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11AuthenticatedChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11AuthenticatedChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11AuthenticatedChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11AuthenticatedChannel_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11AuthenticatedChannel_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11AuthenticatedChannel_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11AuthenticatedChannel_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11AuthenticatedChannel methods ***/
+#define ID3D11AuthenticatedChannel_GetCertificateSize(This,pCertificateSize) (This)->lpVtbl->GetCertificateSize(This,pCertificateSize)
+#define ID3D11AuthenticatedChannel_GetCertificate(This,CertificateSize,pCertificate) (This)->lpVtbl->GetCertificate(This,CertificateSize,pCertificate)
+#define ID3D11AuthenticatedChannel_GetChannelHandle(This,pChannelHandle) (This)->lpVtbl->GetChannelHandle(This,pChannelHandle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_QueryInterface(ID3D11AuthenticatedChannel* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11AuthenticatedChannel_AddRef(ID3D11AuthenticatedChannel* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11AuthenticatedChannel_Release(ID3D11AuthenticatedChannel* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11AuthenticatedChannel_GetDevice(ID3D11AuthenticatedChannel* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_GetPrivateData(ID3D11AuthenticatedChannel* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_SetPrivateData(ID3D11AuthenticatedChannel* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_SetPrivateDataInterface(ID3D11AuthenticatedChannel* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11AuthenticatedChannel methods ***/
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_GetCertificateSize(ID3D11AuthenticatedChannel* This,UINT *pCertificateSize) {
+ return This->lpVtbl->GetCertificateSize(This,pCertificateSize);
+}
+static FORCEINLINE HRESULT ID3D11AuthenticatedChannel_GetCertificate(ID3D11AuthenticatedChannel* This,UINT CertificateSize,BYTE *pCertificate) {
+ return This->lpVtbl->GetCertificate(This,CertificateSize,pCertificate);
+}
+static FORCEINLINE void ID3D11AuthenticatedChannel_GetChannelHandle(ID3D11AuthenticatedChannel* This,HANDLE *pChannelHandle) {
+ This->lpVtbl->GetChannelHandle(This,pChannelHandle);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11CryptoSession interface
+ */
+#ifndef __ID3D11CryptoSession_INTERFACE_DEFINED__
+#define __ID3D11CryptoSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11CryptoSession, 0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3,0x9d, 0xd5,0xc8,0x65,0x84,0x57,0x20);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b32f9ad-bdcc-40a6-a39d-d5c865845720")
+ID3D11CryptoSession : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetCryptoType(
+ GUID *pCryptoType) = 0;
+
+ virtual void STDMETHODCALLTYPE GetDecoderProfile(
+ GUID *pDecoderProfile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCertificateSize(
+ UINT *pCertificateSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCertificate(
+ UINT CertificateSize,
+ BYTE *pCertificate) = 0;
+
+ virtual void STDMETHODCALLTYPE GetCryptoSessionHandle(
+ HANDLE *pCryptoSessionHandle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11CryptoSession, 0x9b32f9ad, 0xbdcc, 0x40a6, 0xa3,0x9d, 0xd5,0xc8,0x65,0x84,0x57,0x20)
+#endif
+#else
+typedef struct ID3D11CryptoSessionVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11CryptoSession *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11CryptoSession *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11CryptoSession *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11CryptoSession *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11CryptoSession *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11CryptoSession *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11CryptoSession *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11CryptoSession methods ***/
+ void (STDMETHODCALLTYPE *GetCryptoType)(
+ ID3D11CryptoSession *This,
+ GUID *pCryptoType);
+
+ void (STDMETHODCALLTYPE *GetDecoderProfile)(
+ ID3D11CryptoSession *This,
+ GUID *pDecoderProfile);
+
+ HRESULT (STDMETHODCALLTYPE *GetCertificateSize)(
+ ID3D11CryptoSession *This,
+ UINT *pCertificateSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetCertificate)(
+ ID3D11CryptoSession *This,
+ UINT CertificateSize,
+ BYTE *pCertificate);
+
+ void (STDMETHODCALLTYPE *GetCryptoSessionHandle)(
+ ID3D11CryptoSession *This,
+ HANDLE *pCryptoSessionHandle);
+
+ END_INTERFACE
+} ID3D11CryptoSessionVtbl;
+
+interface ID3D11CryptoSession {
+ CONST_VTBL ID3D11CryptoSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11CryptoSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11CryptoSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11CryptoSession_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11CryptoSession_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11CryptoSession_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11CryptoSession_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11CryptoSession_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11CryptoSession methods ***/
+#define ID3D11CryptoSession_GetCryptoType(This,pCryptoType) (This)->lpVtbl->GetCryptoType(This,pCryptoType)
+#define ID3D11CryptoSession_GetDecoderProfile(This,pDecoderProfile) (This)->lpVtbl->GetDecoderProfile(This,pDecoderProfile)
+#define ID3D11CryptoSession_GetCertificateSize(This,pCertificateSize) (This)->lpVtbl->GetCertificateSize(This,pCertificateSize)
+#define ID3D11CryptoSession_GetCertificate(This,CertificateSize,pCertificate) (This)->lpVtbl->GetCertificate(This,CertificateSize,pCertificate)
+#define ID3D11CryptoSession_GetCryptoSessionHandle(This,pCryptoSessionHandle) (This)->lpVtbl->GetCryptoSessionHandle(This,pCryptoSessionHandle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11CryptoSession_QueryInterface(ID3D11CryptoSession* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11CryptoSession_AddRef(ID3D11CryptoSession* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11CryptoSession_Release(ID3D11CryptoSession* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11CryptoSession_GetDevice(ID3D11CryptoSession* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11CryptoSession_GetPrivateData(ID3D11CryptoSession* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11CryptoSession_SetPrivateData(ID3D11CryptoSession* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11CryptoSession_SetPrivateDataInterface(ID3D11CryptoSession* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11CryptoSession methods ***/
+static FORCEINLINE void ID3D11CryptoSession_GetCryptoType(ID3D11CryptoSession* This,GUID *pCryptoType) {
+ This->lpVtbl->GetCryptoType(This,pCryptoType);
+}
+static FORCEINLINE void ID3D11CryptoSession_GetDecoderProfile(ID3D11CryptoSession* This,GUID *pDecoderProfile) {
+ This->lpVtbl->GetDecoderProfile(This,pDecoderProfile);
+}
+static FORCEINLINE HRESULT ID3D11CryptoSession_GetCertificateSize(ID3D11CryptoSession* This,UINT *pCertificateSize) {
+ return This->lpVtbl->GetCertificateSize(This,pCertificateSize);
+}
+static FORCEINLINE HRESULT ID3D11CryptoSession_GetCertificate(ID3D11CryptoSession* This,UINT CertificateSize,BYTE *pCertificate) {
+ return This->lpVtbl->GetCertificate(This,CertificateSize,pCertificate);
+}
+static FORCEINLINE void ID3D11CryptoSession_GetCryptoSessionHandle(ID3D11CryptoSession* This,HANDLE *pCryptoSessionHandle) {
+ This->lpVtbl->GetCryptoSessionHandle(This,pCryptoSessionHandle);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11CryptoSession_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoDecoder interface
+ */
+#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__
+#define __ID3D11VideoDecoder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c")
+ID3D11VideoDecoder : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
+ D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDriverHandle(
+ HANDLE *pDriverHandle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, 0xfa,0x5c,0xae,0xde,0xd6,0x5c)
+#endif
+#else
+typedef struct ID3D11VideoDecoderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoDecoder *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoDecoder *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoDecoder *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoDecoder *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoDecoder *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoDecoder *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoDecoder *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoDecoder methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCreationParameters)(
+ ID3D11VideoDecoder *This,
+ D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ D3D11_VIDEO_DECODER_CONFIG *pConfig);
+
+ HRESULT (STDMETHODCALLTYPE *GetDriverHandle)(
+ ID3D11VideoDecoder *This,
+ HANDLE *pDriverHandle);
+
+ END_INTERFACE
+} ID3D11VideoDecoderVtbl;
+
+interface ID3D11VideoDecoder {
+ CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoDecoder_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoDecoder methods ***/
+#define ID3D11VideoDecoder_GetCreationParameters(This,pVideoDesc,pConfig) (This)->lpVtbl->GetCreationParameters(This,pVideoDesc,pConfig)
+#define ID3D11VideoDecoder_GetDriverHandle(This,pDriverHandle) (This)->lpVtbl->GetDriverHandle(This,pDriverHandle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoDecoder methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDecoder_GetCreationParameters(ID3D11VideoDecoder* This,D3D11_VIDEO_DECODER_DESC *pVideoDesc,D3D11_VIDEO_DECODER_CONFIG *pConfig) {
+ return This->lpVtbl->GetCreationParameters(This,pVideoDesc,pConfig);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoder_GetDriverHandle(ID3D11VideoDecoder* This,HANDLE *pDriverHandle) {
+ return This->lpVtbl->GetDriverHandle(This,pDriverHandle);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoProcessorEnumerator interface
+ */
+#ifndef __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__
+#define __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoProcessorEnumerator, 0x31627037, 0x53ab, 0x4200, 0x90,0x61, 0x05,0xfa,0xa9,0xab,0x45,0xf9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("31627037-53ab-4200-9061-05faa9ab45f9")
+ID3D11VideoProcessorEnumerator : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorContentDesc(
+ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormat(
+ DXGI_FORMAT Format,
+ UINT *pFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
+ D3D11_VIDEO_PROCESSOR_CAPS *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRateConversionCaps(
+ UINT TypeIndex,
+ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRate(
+ UINT TypeIndex,
+ UINT CustomRateIndex,
+ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
+ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoProcessorEnumerator, 0x31627037, 0x53ab, 0x4200, 0x90,0x61, 0x05,0xfa,0xa9,0xab,0x45,0xf9)
+#endif
+#else
+typedef struct ID3D11VideoProcessorEnumeratorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoProcessorEnumerator *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoProcessorEnumerator *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoProcessorEnumerator *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoProcessorEnumerator *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoProcessorEnumerator *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoProcessorEnumerator *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoProcessorEnumerator *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoProcessorEnumerator methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorContentDesc)(
+ ID3D11VideoProcessorEnumerator *This,
+ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckVideoProcessorFormat)(
+ ID3D11VideoProcessorEnumerator *This,
+ DXGI_FORMAT Format,
+ UINT *pFlags);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ ID3D11VideoProcessorEnumerator *This,
+ D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorRateConversionCaps)(
+ ID3D11VideoProcessorEnumerator *This,
+ UINT TypeIndex,
+ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRate)(
+ ID3D11VideoProcessorEnumerator *This,
+ UINT TypeIndex,
+ UINT CustomRateIndex,
+ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
+ ID3D11VideoProcessorEnumerator *This,
+ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
+
+ END_INTERFACE
+} ID3D11VideoProcessorEnumeratorVtbl;
+
+interface ID3D11VideoProcessorEnumerator {
+ CONST_VTBL ID3D11VideoProcessorEnumeratorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoProcessorEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoProcessorEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoProcessorEnumerator_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoProcessorEnumerator_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoProcessorEnumerator_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoProcessorEnumerator_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoProcessorEnumerator_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoProcessorEnumerator methods ***/
+#define ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc(This,pContentDesc) (This)->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc)
+#define ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(This,Format,pFlags) (This)->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags)
+#define ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps)
+#define ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) (This)->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps)
+#define ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) (This)->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate)
+#define ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_QueryInterface(ID3D11VideoProcessorEnumerator* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorEnumerator_AddRef(ID3D11VideoProcessorEnumerator* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorEnumerator_Release(ID3D11VideoProcessorEnumerator* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoProcessorEnumerator_GetDevice(ID3D11VideoProcessorEnumerator* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetPrivateData(ID3D11VideoProcessorEnumerator* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_SetPrivateData(ID3D11VideoProcessorEnumerator* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_SetPrivateDataInterface(ID3D11VideoProcessorEnumerator* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoProcessorEnumerator methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) {
+ return This->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(ID3D11VideoProcessorEnumerator* This,DXGI_FORMAT Format,UINT *pFlags) {
+ return This->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_CAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(ID3D11VideoProcessorEnumerator* This,UINT TypeIndex,D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate(ID3D11VideoProcessorEnumerator* This,UINT TypeIndex,UINT CustomRateIndex,D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) {
+ return This->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(ID3D11VideoProcessorEnumerator* This,D3D11_VIDEO_PROCESSOR_FILTER Filter,D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) {
+ return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoProcessor interface
+ */
+#ifndef __ID3D11VideoProcessor_INTERFACE_DEFINED__
+#define __ID3D11VideoProcessor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoProcessor, 0x1d7b0652, 0x185f, 0x41c6, 0x85,0xce, 0x0c,0x5b,0xe3,0xd4,0xae,0x6c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1d7b0652-185f-41c6-85ce-0c5be3d4ae6c")
+ID3D11VideoProcessor : public ID3D11DeviceChild
+{
+ virtual void STDMETHODCALLTYPE GetContentDesc(
+ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) = 0;
+
+ virtual void STDMETHODCALLTYPE GetRateConversionCaps(
+ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoProcessor, 0x1d7b0652, 0x185f, 0x41c6, 0x85,0xce, 0x0c,0x5b,0xe3,0xd4,0xae,0x6c)
+#endif
+#else
+typedef struct ID3D11VideoProcessorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoProcessor *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoProcessor *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoProcessor *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoProcessor *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoProcessor *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoProcessor *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoProcessor *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoProcessor methods ***/
+ void (STDMETHODCALLTYPE *GetContentDesc)(
+ ID3D11VideoProcessor *This,
+ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
+
+ void (STDMETHODCALLTYPE *GetRateConversionCaps)(
+ ID3D11VideoProcessor *This,
+ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
+
+ END_INTERFACE
+} ID3D11VideoProcessorVtbl;
+
+interface ID3D11VideoProcessor {
+ CONST_VTBL ID3D11VideoProcessorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoProcessor_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoProcessor_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoProcessor_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoProcessor methods ***/
+#define ID3D11VideoProcessor_GetContentDesc(This,pDesc) (This)->lpVtbl->GetContentDesc(This,pDesc)
+#define ID3D11VideoProcessor_GetRateConversionCaps(This,pCaps) (This)->lpVtbl->GetRateConversionCaps(This,pCaps)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessor_QueryInterface(ID3D11VideoProcessor* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessor_AddRef(ID3D11VideoProcessor* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessor_Release(ID3D11VideoProcessor* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoProcessor_GetDevice(ID3D11VideoProcessor* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessor_GetPrivateData(ID3D11VideoProcessor* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessor_SetPrivateData(ID3D11VideoProcessor* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessor_SetPrivateDataInterface(ID3D11VideoProcessor* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoProcessor methods ***/
+static FORCEINLINE void ID3D11VideoProcessor_GetContentDesc(ID3D11VideoProcessor* This,D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) {
+ This->lpVtbl->GetContentDesc(This,pDesc);
+}
+static FORCEINLINE void ID3D11VideoProcessor_GetRateConversionCaps(ID3D11VideoProcessor* This,D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) {
+ This->lpVtbl->GetRateConversionCaps(This,pCaps);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoProcessor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoDecoderOutputView interface
+ */
+#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
+#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18")
+ID3D11VideoDecoderOutputView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18)
+#endif
+#else
+typedef struct ID3D11VideoDecoderOutputViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoDecoderOutputView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoDecoderOutputView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoDecoderOutputView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoDecoderOutputView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoDecoderOutputView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoDecoderOutputView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoDecoderOutputView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11VideoDecoderOutputView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11VideoDecoderOutputView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11VideoDecoderOutputView *This,
+ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11VideoDecoderOutputViewVtbl;
+
+interface ID3D11VideoDecoderOutputView {
+ CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoDecoderOutputView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoDecoderOutputView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11VideoDecoderOutputView methods ***/
+#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11VideoDecoderOutputView methods ***/
+static FORCEINLINE void ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoProcessorInputView interface
+ */
+#ifndef __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__
+#define __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoProcessorInputView, 0x11ec5a5f, 0x51dc, 0x4945, 0xab,0x34, 0x6e,0x8c,0x21,0x30,0x0e,0xa5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("11ec5a5f-51dc-4945-ab34-6e8c21300ea5")
+ID3D11VideoProcessorInputView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoProcessorInputView, 0x11ec5a5f, 0x51dc, 0x4945, 0xab,0x34, 0x6e,0x8c,0x21,0x30,0x0e,0xa5)
+#endif
+#else
+typedef struct ID3D11VideoProcessorInputViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoProcessorInputView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoProcessorInputView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoProcessorInputView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoProcessorInputView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoProcessorInputView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoProcessorInputView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoProcessorInputView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11VideoProcessorInputView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11VideoProcessorInputView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11VideoProcessorInputView *This,
+ D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11VideoProcessorInputViewVtbl;
+
+interface ID3D11VideoProcessorInputView {
+ CONST_VTBL ID3D11VideoProcessorInputViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoProcessorInputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoProcessorInputView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoProcessorInputView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoProcessorInputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoProcessorInputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoProcessorInputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoProcessorInputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11VideoProcessorInputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11VideoProcessorInputView methods ***/
+#define ID3D11VideoProcessorInputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorInputView_QueryInterface(ID3D11VideoProcessorInputView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorInputView_AddRef(ID3D11VideoProcessorInputView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorInputView_Release(ID3D11VideoProcessorInputView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoProcessorInputView_GetDevice(ID3D11VideoProcessorInputView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorInputView_GetPrivateData(ID3D11VideoProcessorInputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorInputView_SetPrivateData(ID3D11VideoProcessorInputView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorInputView_SetPrivateDataInterface(ID3D11VideoProcessorInputView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11VideoProcessorInputView_GetResource(ID3D11VideoProcessorInputView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11VideoProcessorInputView methods ***/
+static FORCEINLINE void ID3D11VideoProcessorInputView_GetDesc(ID3D11VideoProcessorInputView* This,D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoProcessorOutputView interface
+ */
+#ifndef __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__
+#define __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoProcessorOutputView, 0xa048285e, 0x25a9, 0x4527, 0xbd,0x93, 0xd6,0x8b,0x68,0xc4,0x42,0x54);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a048285e-25a9-4527-bd93-d68b68c44254")
+ID3D11VideoProcessorOutputView : public ID3D11View
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoProcessorOutputView, 0xa048285e, 0x25a9, 0x4527, 0xbd,0x93, 0xd6,0x8b,0x68,0xc4,0x42,0x54)
+#endif
+#else
+typedef struct ID3D11VideoProcessorOutputViewVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoProcessorOutputView *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoProcessorOutputView *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoProcessorOutputView *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoProcessorOutputView *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoProcessorOutputView *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoProcessorOutputView *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoProcessorOutputView *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11VideoProcessorOutputView *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11VideoProcessorOutputView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11VideoProcessorOutputView *This,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
+
+ END_INTERFACE
+} ID3D11VideoProcessorOutputViewVtbl;
+
+interface ID3D11VideoProcessorOutputView {
+ CONST_VTBL ID3D11VideoProcessorOutputViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoProcessorOutputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoProcessorOutputView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoProcessorOutputView_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoProcessorOutputView_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoProcessorOutputView_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoProcessorOutputView_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoProcessorOutputView_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11VideoProcessorOutputView_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11VideoProcessorOutputView methods ***/
+#define ID3D11VideoProcessorOutputView_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorOutputView_QueryInterface(ID3D11VideoProcessorOutputView* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorOutputView_AddRef(ID3D11VideoProcessorOutputView* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorOutputView_Release(ID3D11VideoProcessorOutputView* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoProcessorOutputView_GetDevice(ID3D11VideoProcessorOutputView* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorOutputView_GetPrivateData(ID3D11VideoProcessorOutputView* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorOutputView_SetPrivateData(ID3D11VideoProcessorOutputView* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorOutputView_SetPrivateDataInterface(ID3D11VideoProcessorOutputView* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11VideoProcessorOutputView_GetResource(ID3D11VideoProcessorOutputView* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11VideoProcessorOutputView methods ***/
+static FORCEINLINE void ID3D11VideoProcessorOutputView_GetDesc(ID3D11VideoProcessorOutputView* This,D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoDevice interface
+ */
+#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__
+#define __ID3D11VideoDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333")
+ID3D11VideoDevice : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ const D3D11_VIDEO_DECODER_CONFIG *pConfig,
+ ID3D11VideoDecoder **ppDecoder) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
+ ID3D11VideoProcessorEnumerator *pEnum,
+ UINT RateConversionIndex,
+ ID3D11VideoProcessor **ppVideoProcessor) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel(
+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession(
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ const GUID *pKeyExchangeType,
+ ID3D11CryptoSession **ppCryptoSession) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView(
+ ID3D11Resource *pResource,
+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoDecoderOutputView **ppVDOVView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView(
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorInputView **ppVPIView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView(
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorOutputView **ppVPOView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator(
+ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
+ ID3D11VideoProcessorEnumerator **ppEnum) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile(
+ UINT Index,
+ GUID *pDecoderProfile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat(
+ const GUID *pDecoderProfile,
+ DXGI_FORMAT Format,
+ WINBOOL *pSupported) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount(
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT *pCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig(
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT Index,
+ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContentProtectionCaps(
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckCryptoKeyExchange(
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ UINT Index,
+ GUID *pKeyExchangeType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *pData) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33)
+#endif
+#else
+typedef struct ID3D11VideoDeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoDevice *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoDevice *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoDevice *This);
+
+ /*** ID3D11VideoDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)(
+ ID3D11VideoDevice *This,
+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ const D3D11_VIDEO_DECODER_CONFIG *pConfig,
+ ID3D11VideoDecoder **ppDecoder);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
+ ID3D11VideoDevice *This,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ UINT RateConversionIndex,
+ ID3D11VideoProcessor **ppVideoProcessor);
+
+ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)(
+ ID3D11VideoDevice *This,
+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)(
+ ID3D11VideoDevice *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ const GUID *pKeyExchangeType,
+ ID3D11CryptoSession **ppCryptoSession);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)(
+ ID3D11VideoDevice *This,
+ ID3D11Resource *pResource,
+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoDecoderOutputView **ppVDOVView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)(
+ ID3D11VideoDevice *This,
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorInputView **ppVPIView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)(
+ ID3D11VideoDevice *This,
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorOutputView **ppVPOView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)(
+ ID3D11VideoDevice *This,
+ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
+ ID3D11VideoProcessorEnumerator **ppEnum);
+
+ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)(
+ ID3D11VideoDevice *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)(
+ ID3D11VideoDevice *This,
+ UINT Index,
+ GUID *pDecoderProfile);
+
+ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)(
+ ID3D11VideoDevice *This,
+ const GUID *pDecoderProfile,
+ DXGI_FORMAT Format,
+ WINBOOL *pSupported);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)(
+ ID3D11VideoDevice *This,
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT *pCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)(
+ ID3D11VideoDevice *This,
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT Index,
+ D3D11_VIDEO_DECODER_CONFIG *pConfig);
+
+ HRESULT (STDMETHODCALLTYPE *GetContentProtectionCaps)(
+ ID3D11VideoDevice *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCryptoKeyExchange)(
+ ID3D11VideoDevice *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ UINT Index,
+ GUID *pKeyExchangeType);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoDevice *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoDevice *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3D11VideoDeviceVtbl;
+
+interface ID3D11VideoDevice {
+ CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11VideoDevice methods ***/
+#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder)
+#define ID3D11VideoDevice_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor)
+#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel)
+#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession)
+#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView)
+#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView)
+#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView)
+#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum)
+#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This)
+#define ID3D11VideoDevice_GetVideoDecoderProfile(This,Index,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile)
+#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported)
+#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount)
+#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,Index,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig)
+#define ID3D11VideoDevice_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) (This)->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps)
+#define ID3D11VideoDevice_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) (This)->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType)
+#define ID3D11VideoDevice_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoDevice_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11VideoDevice methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppDecoder) {
+ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,ID3D11VideoProcessorEnumerator *pEnum,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) {
+ return This->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) {
+ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) {
+ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVDOVView) {
+ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorInputView **ppVPIView) {
+ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorOutputView **ppVPOView) {
+ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* This,const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,ID3D11VideoProcessorEnumerator **ppEnum) {
+ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum);
+}
+static FORCEINLINE UINT ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) {
+ return This->lpVtbl->GetVideoDecoderProfileCount(This);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT Index,GUID *pDecoderProfile) {
+ return This->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) {
+ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) {
+ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT Index,D3D11_VIDEO_DECODER_CONFIG *pConfig) {
+ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_GetContentProtectionCaps(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) {
+ return This->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_CheckCryptoKeyExchange(ID3D11VideoDevice* This,const GUID *pCryptoType,const GUID *pDecoderProfile,UINT Index,GUID *pKeyExchangeType) {
+ return This->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_SetPrivateData(ID3D11VideoDevice* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice_SetPrivateDataInterface(ID3D11VideoDevice* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoContext interface
+ */
+#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__
+#define __ID3D11VideoContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4")
+ID3D11VideoContext : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer(
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type,
+ UINT *buffer_size,
+ void **buffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer(
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame(
+ ID3D11VideoDecoder *decoder,
+ ID3D11VideoDecoderOutputView *view,
+ UINT key_size,
+ const void *key) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame(
+ ID3D11VideoDecoder *decoder) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers(
+ ID3D11VideoDecoder *decoder,
+ UINT buffers_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DecoderExtension(
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_DECODER_EXTENSION *extension) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputTargetRect(
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ const RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputBackgroundColor(
+ ID3D11VideoProcessor *processor,
+ WINBOOL y_cb_cr,
+ const D3D11_VIDEO_COLOR *color) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputColorSpace(
+ ID3D11VideoProcessor *processor,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputAlphaFillMode(
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
+ UINT stream_idx) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputConstriction(
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ SIZE size) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputStereoMode(
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorSetOutputExtension(
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputTargetRect(
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputBackgroundColor(
+ ID3D11VideoProcessor *processor,
+ WINBOOL *y_cb_cr,
+ D3D11_VIDEO_COLOR *color) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputColorSpace(
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputAlphaFillMode(
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
+ UINT *stream_idx) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputConstriction(
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ SIZE *size) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputStereoMode(
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetOutputExtension(
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFrameFormat(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT format) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamColorSpace(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamOutputRate(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
+ WINBOOL repeat,
+ const DXGI_RATIONAL *custom_rate) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamSourceRect(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamDestRect(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAlpha(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float alpha) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPalette(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ const UINT *entries) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPixelAspectRatio(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const DXGI_RATIONAL *src_aspect_ratio,
+ const DXGI_RATIONAL *dst_aspect_ratio) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamLumaKey(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float lower,
+ float upper) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamStereoFormat(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
+ WINBOOL left_view_frame0,
+ WINBOOL base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
+ int mono_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAutoProcessingMode(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFilter(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL enable,
+ int level) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorSetStreamExtension(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFrameFormat(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT *format) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamColorSpace(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamOutputRate(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
+ WINBOOL *repeat,
+ DXGI_RATIONAL *custom_rate) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamSourceRect(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamDestRect(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAlpha(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *alpha) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPalette(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ UINT *entries) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPixelAspectRatio(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ DXGI_RATIONAL *src_aspect_ratio,
+ DXGI_RATIONAL *dst_aspect_ratio) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamLumaKey(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *lower,
+ float *upper) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamStereoFormat(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
+ WINBOOL *left_view_frame0,
+ WINBOOL *base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
+ int *mono_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAutoProcessingMode(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFilter(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL *enabled,
+ int *level) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetStreamExtension(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorBlt(
+ ID3D11VideoProcessor *processor,
+ ID3D11VideoProcessorOutputView *view,
+ UINT frame_idx,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM *streams) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE NegotiateCryptoSessionKeyExchange(
+ ID3D11CryptoSession *session,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual void STDMETHODCALLTYPE EncryptionBlt(
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ UINT iv_size,
+ void *iv) = 0;
+
+ virtual void STDMETHODCALLTYPE DecryptionBlt(
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ D3D11_ENCRYPTED_BLOCK_INFO *block_info,
+ UINT key_size,
+ const void *key,
+ UINT iv_size,
+ void *iv) = 0;
+
+ virtual void STDMETHODCALLTYPE StartSessionKeyRefresh(
+ ID3D11CryptoSession *session,
+ UINT random_number_size,
+ void *random_number) = 0;
+
+ virtual void STDMETHODCALLTYPE FinishSessionKeyRefresh(
+ ID3D11CryptoSession *session) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEncryptionBltKey(
+ ID3D11CryptoSession *session,
+ UINT key_size,
+ void *key) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE NegotiateAuthenticatedChannelKeyExchange(
+ ID3D11AuthenticatedChannel *channel,
+ UINT data_size,
+ void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryAuthenticatedChannel(
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ UINT output_size,
+ void *output) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ConfigureAuthenticatedChannel(
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamRotation(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION rotation) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamRotation(
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION *rotation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4)
+#endif
+#else
+typedef struct ID3D11VideoContextVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoContext *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoContext *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoContext *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoContext *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoContext *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoContext *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoContext *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoContext methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type,
+ UINT *buffer_size,
+ void **buffer);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder,
+ ID3D11VideoDecoderOutputView *view,
+ UINT key_size,
+ const void *key);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder);
+
+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder,
+ UINT buffers_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderExtension)(
+ ID3D11VideoContext *This,
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_DECODER_EXTENSION *extension);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL y_cb_cr,
+ const D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
+ UINT stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ SIZE size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetOutputExtension)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *y_cb_cr,
+ D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
+ UINT *stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ SIZE *size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetOutputExtension)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
+ WINBOOL repeat,
+ const DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPalette)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ const UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const DXGI_RATIONAL *src_aspect_ratio,
+ const DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float lower,
+ float upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
+ WINBOOL left_view_frame0,
+ WINBOOL base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
+ int mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFilter)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL enable,
+ int level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetStreamExtension)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT *format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
+ WINBOOL *repeat,
+ DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPalette)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ DXGI_RATIONAL *src_aspect_ratio,
+ DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *lower,
+ float *upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
+ WINBOOL *left_view_frame0,
+ WINBOOL *base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
+ int *mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFilter)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL *enabled,
+ int *level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetStreamExtension)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorBlt)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ ID3D11VideoProcessorOutputView *view,
+ UINT frame_idx,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM *streams);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *EncryptionBlt)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *DecryptionBlt)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ D3D11_ENCRYPTED_BLOCK_INFO *block_info,
+ UINT key_size,
+ const void *key,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *StartSessionKeyRefresh)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session,
+ UINT random_number_size,
+ void *random_number);
+
+ void (STDMETHODCALLTYPE *FinishSessionKeyRefresh)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session);
+
+ HRESULT (STDMETHODCALLTYPE *GetEncryptionBltKey)(
+ ID3D11VideoContext *This,
+ ID3D11CryptoSession *session,
+ UINT key_size,
+ void *key);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange)(
+ ID3D11VideoContext *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *QueryAuthenticatedChannel)(
+ ID3D11VideoContext *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ UINT output_size,
+ void *output);
+
+ HRESULT (STDMETHODCALLTYPE *ConfigureAuthenticatedChannel)(
+ ID3D11VideoContext *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamRotation)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION rotation);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamRotation)(
+ ID3D11VideoContext *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION *rotation);
+
+ END_INTERFACE
+} ID3D11VideoContextVtbl;
+
+interface ID3D11VideoContext {
+ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoContext methods ***/
+#define ID3D11VideoContext_GetDecoderBuffer(This,decoder,type,buffer_size,buffer) (This)->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer)
+#define ID3D11VideoContext_ReleaseDecoderBuffer(This,decoder,type) (This)->lpVtbl->ReleaseDecoderBuffer(This,decoder,type)
+#define ID3D11VideoContext_DecoderBeginFrame(This,decoder,view,key_size,key) (This)->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key)
+#define ID3D11VideoContext_DecoderEndFrame(This,decoder) (This)->lpVtbl->DecoderEndFrame(This,decoder)
+#define ID3D11VideoContext_SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc)
+#define ID3D11VideoContext_DecoderExtension(This,decoder,extension) (This)->lpVtbl->DecoderExtension(This,decoder,extension)
+#define ID3D11VideoContext_VideoProcessorSetOutputTargetRect(This,processor,enable,rect) (This)->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect)
+#define ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext_VideoProcessorSetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext_VideoProcessorSetOutputConstriction(This,processor,enable,size) (This)->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size)
+#define ID3D11VideoContext_VideoProcessorSetOutputStereoMode(This,processor,enable) (This)->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable)
+#define ID3D11VideoContext_VideoProcessorSetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext_VideoProcessorGetOutputTargetRect(This,processor,enabled,rect) (This)->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect)
+#define ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext_VideoProcessorGetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext_VideoProcessorGetOutputConstriction(This,processor,enabled,size) (This)->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size)
+#define ID3D11VideoContext_VideoProcessorGetOutputStereoMode(This,processor,enabled) (This)->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled)
+#define ID3D11VideoContext_VideoProcessorGetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext_VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext_VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext_VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext_VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext_VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext_VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha) (This)->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha)
+#define ID3D11VideoContext_VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext_VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper) (This)->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper)
+#define ID3D11VideoContext_VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable) (This)->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable)
+#define ID3D11VideoContext_VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level) (This)->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level)
+#define ID3D11VideoContext_VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext_VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext_VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext_VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext_VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext_VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext_VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha) (This)->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha)
+#define ID3D11VideoContext_VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext_VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper) (This)->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper)
+#define ID3D11VideoContext_VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled) (This)->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled)
+#define ID3D11VideoContext_VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level) (This)->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level)
+#define ID3D11VideoContext_VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext_VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams)
+#define ID3D11VideoContext_NegotiateCryptoSessionKeyExchange(This,session,data_size,data) (This)->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data)
+#define ID3D11VideoContext_EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv) (This)->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv)
+#define ID3D11VideoContext_DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv) (This)->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv)
+#define ID3D11VideoContext_StartSessionKeyRefresh(This,session,random_number_size,random_number) (This)->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number)
+#define ID3D11VideoContext_FinishSessionKeyRefresh(This,session) (This)->lpVtbl->FinishSessionKeyRefresh(This,session)
+#define ID3D11VideoContext_GetEncryptionBltKey(This,session,key_size,key) (This)->lpVtbl->GetEncryptionBltKey(This,session,key_size,key)
+#define ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data) (This)->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data)
+#define ID3D11VideoContext_QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output) (This)->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output)
+#define ID3D11VideoContext_ConfigureAuthenticatedChannel(This,channel,input_size,input,output) (This)->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output)
+#define ID3D11VideoContext_VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation)
+#define ID3D11VideoContext_VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoContext methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type,UINT *buffer_size,void **buffer) {
+ return This->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type) {
+ return This->lpVtbl->ReleaseDecoderBuffer(This,decoder,type);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,ID3D11VideoDecoderOutputView *view,UINT key_size,const void *key) {
+ return This->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder) {
+ return This->lpVtbl->DecoderEndFrame(This,decoder);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,UINT buffers_count,const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) {
+ return This->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_DecoderExtension(ID3D11VideoContext* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_DECODER_EXTENSION *extension) {
+ return This->lpVtbl->DecoderExtension(This,decoder,extension);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputTargetRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL y_cb_cr,const D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,UINT stream_idx) {
+ This->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputConstriction(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable,SIZE size) {
+ This->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetOutputStereoMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_VideoProcessorSetOutputExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputTargetRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *y_cb_cr,D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,UINT *stream_idx) {
+ This->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputConstriction(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,SIZE *size) {
+ This->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetOutputStereoMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_VideoProcessorGetOutputExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamFrameFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT format) {
+ This->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamOutputRate(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,WINBOOL repeat,const DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamSourceRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamDestRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamAlpha(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float alpha) {
+ This->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamPalette(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,const UINT *entries) {
+ This->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const DXGI_RATIONAL *src_aspect_ratio,const DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamLumaKey(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float lower,float upper) {
+ This->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamStereoFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,WINBOOL left_view_frame0,WINBOOL base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,int mono_offset) {
+ This->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamFilter(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL enable,int level) {
+ This->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_VideoProcessorSetStreamExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamFrameFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT *format) {
+ This->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamColorSpace(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamOutputRate(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,WINBOOL *repeat,DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamSourceRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamDestRect(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamAlpha(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *alpha) {
+ This->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamPalette(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,UINT *entries) {
+ This->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,DXGI_RATIONAL *src_aspect_ratio,DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamLumaKey(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *lower,float *upper) {
+ This->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamStereoFormat(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,WINBOOL *left_view_frame0,WINBOOL *base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,int *mono_offset) {
+ This->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamFilter(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL *enabled,int *level) {
+ This->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_VideoProcessorGetStreamExtension(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_VideoProcessorBlt(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,ID3D11VideoProcessorOutputView *view,UINT frame_idx,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM *streams) {
+ return This->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_NegotiateCryptoSessionKeyExchange(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext_EncryptionBlt(ID3D11VideoContext* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,UINT iv_size,void *iv) {
+ This->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext_DecryptionBlt(ID3D11VideoContext* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,D3D11_ENCRYPTED_BLOCK_INFO *block_info,UINT key_size,const void *key,UINT iv_size,void *iv) {
+ This->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext_StartSessionKeyRefresh(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT random_number_size,void *random_number) {
+ This->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number);
+}
+static FORCEINLINE void ID3D11VideoContext_FinishSessionKeyRefresh(ID3D11VideoContext* This,ID3D11CryptoSession *session) {
+ This->lpVtbl->FinishSessionKeyRefresh(This,session);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_GetEncryptionBltKey(ID3D11VideoContext* This,ID3D11CryptoSession *session,UINT key_size,void *key) {
+ return This->lpVtbl->GetEncryptionBltKey(This,session,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_QueryAuthenticatedChannel(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,UINT output_size,void *output) {
+ return This->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext_ConfigureAuthenticatedChannel(ID3D11VideoContext* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) {
+ return This->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorSetStreamRotation(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_ROTATION rotation) {
+ This->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+static FORCEINLINE void ID3D11VideoContext_VideoProcessorGetStreamRotation(ID3D11VideoContext* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enable,D3D11_VIDEO_PROCESSOR_ROTATION *rotation) {
+ This->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device interface
+ */
+#ifndef __ID3D11Device_INTERFACE_DEFINED__
+#define __ID3D11Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device, 0xdb6f6ddb, 0xac77, 0x4e88, 0x82,0x53, 0x81,0x9d,0xf9,0xbb,0xf1,0x40);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("db6f6ddb-ac77-4e88-8253-819df9bbf140")
+ID3D11Device : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView(
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateHullShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDomainShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateComputeShader(
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateClassLinkage(
+ ID3D11ClassLinkage **ppLinkage) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateQuery(
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCounter(
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext(
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels) = 0;
+
+ virtual void STDMETHODCALLTYPE CheckCounterInfo(
+ D3D11_COUNTER_INFO *pCounterInfo) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckCounter(
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *pData) = 0;
+
+ virtual D3D_FEATURE_LEVEL STDMETHODCALLTYPE GetFeatureLevel(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetCreationFlags(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE GetImmediateContext(
+ ID3D11DeviceContext **ppImmediateContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
+ UINT RaiseFlags) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetExceptionMode(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device, 0xdb6f6ddb, 0xac77, 0x4e88, 0x82,0x53, 0x81,0x9d,0xf9,0xbb,0xf1,0x40)
+#endif
+#else
+typedef struct ID3D11DeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device *This);
+
+ END_INTERFACE
+} ID3D11DeviceVtbl;
+
+interface ID3D11Device {
+ CONST_VTBL ID3D11DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device_QueryInterface(ID3D11Device* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device_AddRef(ID3D11Device* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device_Release(ID3D11Device* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device_CreateBuffer(ID3D11Device* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateTexture1D(ID3D11Device* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateTexture2D(ID3D11Device* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateTexture3D(ID3D11Device* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateShaderResourceView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateUnorderedAccessView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateRenderTargetView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateDepthStencilView(ID3D11Device* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateInputLayout(ID3D11Device* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateVertexShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateGeometryShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateGeometryShaderWithStreamOutput(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreatePixelShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateHullShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateDomainShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateComputeShader(ID3D11Device* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateClassLinkage(ID3D11Device* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateBlendState(ID3D11Device* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateDepthStencilState(ID3D11Device* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateRasterizerState(ID3D11Device* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateSamplerState(ID3D11Device* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateQuery(ID3D11Device* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreatePredicate(ID3D11Device* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateCounter(ID3D11Device* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device_CreateDeferredContext(ID3D11Device* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device_OpenSharedResource(ID3D11Device* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device_CheckFormatSupport(ID3D11Device* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device_CheckMultisampleQualityLevels(ID3D11Device* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device_CheckCounterInfo(ID3D11Device* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device_CheckCounter(ID3D11Device* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device_CheckFeatureSupport(ID3D11Device* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device_GetPrivateData(ID3D11Device* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device_SetPrivateData(ID3D11Device* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device_SetPrivateDataInterface(ID3D11Device* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device_GetFeatureLevel(ID3D11Device* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device_GetCreationFlags(ID3D11Device* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device_GetDeviceRemovedReason(ID3D11Device* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device_GetImmediateContext(ID3D11Device* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device_SetExceptionMode(ID3D11Device* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device_GetExceptionMode(ID3D11Device* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device_INTERFACE_DEFINED__ */
+
+typedef enum D3D11_CREATE_DEVICE_FLAG {
+ D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
+ D3D11_CREATE_DEVICE_DEBUG = 0x2,
+ D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
+ D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
+ D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
+ D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
+ D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
+ D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
+ D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800
+} D3D11_CREATE_DEVICE_FLAG;
+typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT {
+ D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1,
+ D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2
+} D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT;
+#define D3D11_SDK_VERSION (7)
+
+#include <d3d10_1.h>
+#ifndef D3D11_IGNORE_SDK_LAYERS
+# include <d3d11sdklayers.h>
+#endif
+#include <d3d10misc.h>
+#include <d3d10shader.h>
+#include <d3d10effect.h>
+#include <d3d10_1shader.h>
+#define _FACD3D11 (0x87c)
+
+#define MAKE_D3D11_HRESULT(code) MAKE_HRESULT(SEVERITY_ERROR, _FACD3D11, code)
+typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,
+ const D3D_FEATURE_LEVEL*,UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
+HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,const D3D_FEATURE_LEVEL*,
+ UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
+typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,
+ const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,
+ D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);
+HRESULT __stdcall D3D11CreateDeviceAndSwapChain(IDXGIAdapter *adapter,D3D_DRIVER_TYPE driver_type,HMODULE swrast,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT levels,UINT sdk_version,const DXGI_SWAP_CHAIN_DESC *swapchain_desc,IDXGISwapChain **swapchain,ID3D11Device **device,D3D_FEATURE_LEVEL *obtained_feature_level,ID3D11DeviceContext **immediate_context);
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11_h__ */
diff --git a/d3d11_1.h b/d3d11_1.h
new file mode 100644
index 0000000..bc3d463
--- /dev/null
+++ b/d3d11_1.h
@@ -0,0 +1,4230 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11_1.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11_1_h__
+#define __d3d11_1_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11BlendState1_FWD_DEFINED__
+#define __ID3D11BlendState1_FWD_DEFINED__
+typedef interface ID3D11BlendState1 ID3D11BlendState1;
+#ifdef __cplusplus
+interface ID3D11BlendState1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3DDeviceContextState_FWD_DEFINED__
+#define __ID3DDeviceContextState_FWD_DEFINED__
+typedef interface ID3DDeviceContextState ID3DDeviceContextState;
+#ifdef __cplusplus
+interface ID3DDeviceContextState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DeviceContext1_FWD_DEFINED__
+#define __ID3D11DeviceContext1_FWD_DEFINED__
+typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1;
+#ifdef __cplusplus
+interface ID3D11DeviceContext1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoContext1_FWD_DEFINED__
+#define __ID3D11VideoContext1_FWD_DEFINED__
+typedef interface ID3D11VideoContext1 ID3D11VideoContext1;
+#ifdef __cplusplus
+interface ID3D11VideoContext1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoDevice1_FWD_DEFINED__
+#define __ID3D11VideoDevice1_FWD_DEFINED__
+typedef interface ID3D11VideoDevice1 ID3D11VideoDevice1;
+#ifdef __cplusplus
+interface ID3D11VideoDevice1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoProcessorEnumerator1_FWD_DEFINED__
+#define __ID3D11VideoProcessorEnumerator1_FWD_DEFINED__
+typedef interface ID3D11VideoProcessorEnumerator1 ID3D11VideoProcessorEnumerator1;
+#ifdef __cplusplus
+interface ID3D11VideoProcessorEnumerator1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__
+#define __ID3DUserDefinedAnnotation_FWD_DEFINED__
+typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation;
+#ifdef __cplusplus
+interface ID3DUserDefinedAnnotation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11RasterizerState1_FWD_DEFINED__
+#define __ID3D11RasterizerState1_FWD_DEFINED__
+typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1;
+#ifdef __cplusplus
+interface ID3D11RasterizerState1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Device1_FWD_DEFINED__
+#define __ID3D11Device1_FWD_DEFINED__
+typedef interface ID3D11Device1 ID3D11Device1;
+#ifdef __cplusplus
+interface ID3D11Device1;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi1_2.h>
+#include <d3dcommon.h>
+#include <d3d11.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum D3D11_LOGIC_OP {
+ D3D11_LOGIC_OP_CLEAR = 0,
+ D3D11_LOGIC_OP_SET = 1,
+ D3D11_LOGIC_OP_COPY = 2,
+ D3D11_LOGIC_OP_COPY_INVERTED = 3,
+ D3D11_LOGIC_OP_NOOP = 4,
+ D3D11_LOGIC_OP_INVERT = 5,
+ D3D11_LOGIC_OP_AND = 6,
+ D3D11_LOGIC_OP_NAND = 7,
+ D3D11_LOGIC_OP_OR = 8,
+ D3D11_LOGIC_OP_NOR = 9,
+ D3D11_LOGIC_OP_XOR = 10,
+ D3D11_LOGIC_OP_EQUIV = 11,
+ D3D11_LOGIC_OP_AND_REVERSE = 12,
+ D3D11_LOGIC_OP_AND_INVERTED = 13,
+ D3D11_LOGIC_OP_OR_REVERSE = 14,
+ D3D11_LOGIC_OP_OR_INVERTED = 15
+} D3D11_LOGIC_OP;
+typedef enum D3D11_COPY_FLAGS {
+ D3D11_COPY_NO_OVERWRITE = 0x1,
+ D3D11_COPY_DISCARD = 0x2
+} D3D11_COPY_FLAGS;
+typedef enum D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG {
+ D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED = 0x1
+} D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG;
+typedef enum D3D11_VIDEO_DECODER_CAPS {
+ D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE = 0x1,
+ D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME = 0x2,
+ D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC = 0x4,
+ D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED = 0x8,
+ D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED = 0x10
+} D3D11_VIDEO_DECODER_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS {
+ D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION = 0x1,
+ D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE = 0x2,
+ D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION = 0x4,
+ D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT = 0x8
+} D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS;
+typedef enum D3D11_CRYPTO_SESSION_STATUS {
+ D3D11_CRYPTO_SESSION_STATUS_OK = 0x0,
+ D3D11_CRYPTO_SESSION_STATUS_KEY_LOST = 0x1,
+ D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST = 0x2
+} D3D11_CRYPTO_SESSION_STATUS;
+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 {
+ WINBOOL BlendEnable;
+ WINBOOL LogicOpEnable;
+ D3D11_BLEND SrcBlend;
+ D3D11_BLEND DestBlend;
+ D3D11_BLEND_OP BlendOp;
+ D3D11_BLEND SrcBlendAlpha;
+ D3D11_BLEND DestBlendAlpha;
+ D3D11_BLEND_OP BlendOpAlpha;
+ D3D11_LOGIC_OP LogicOp;
+ UINT8 RenderTargetWriteMask;
+} D3D11_RENDER_TARGET_BLEND_DESC1;
+typedef struct D3D11_BLEND_DESC1 {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL IndependentBlendEnable;
+ D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[8];
+} D3D11_BLEND_DESC1;
+typedef struct D3D11_RASTERIZER_DESC1 {
+ D3D11_FILL_MODE FillMode;
+ D3D11_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL ScissorEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+ UINT ForcedSampleCount;
+} D3D11_RASTERIZER_DESC1;
+typedef struct D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK {
+ UINT ClearSize;
+ UINT EncryptedSize;
+} D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK;
+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC1 {
+ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
+ UINT DataOffset;
+ UINT DataSize;
+ void *pIV;
+ UINT IVSize;
+ D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock;
+ UINT SubSampleMappingCount;
+} D3D11_VIDEO_DECODER_BUFFER_DESC1;
+typedef struct D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION {
+ ID3D11CryptoSession *pCryptoSession;
+ UINT BlobSize;
+ void *pBlob;
+ GUID *pKeyInfoId;
+ UINT PrivateDataSize;
+ void *pPrivateData;
+} D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION;
+typedef struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT {
+ WINBOOL Enable;
+ UINT Width;
+ UINT Height;
+ DXGI_FORMAT Format;
+} D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT;
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA {
+ UINT PrivateDataSize;
+ UINT HWProtectionDataSize;
+ BYTE pbInput[4];
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA;
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA {
+ UINT PrivateDataSize;
+ UINT MaxHWProtectionDataSize;
+ UINT HWProtectionDataSize;
+ UINT64 TransportTime;
+ UINT64 ExecutionTime;
+ BYTE pbOutput[4];
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA;
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA {
+ UINT HWProtectionFunctionID;
+ D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA *pInputData;
+ D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA *pOutputData;
+ HRESULT Status;
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA;
+typedef struct D3D11_VIDEO_SAMPLE_DESC {
+ UINT Width;
+ UINT Height;
+ DXGI_FORMAT Format;
+ DXGI_COLOR_SPACE_TYPE ColorSpace;
+} D3D11_VIDEO_SAMPLE_DESC;
+/*****************************************************************************
+ * ID3D11BlendState1 interface
+ */
+#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__
+#define __ID3D11BlendState1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9")
+ID3D11BlendState1 : public ID3D11BlendState
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_BLEND_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11BlendState1, 0xcc86fabe, 0xda55, 0x401d, 0x85,0xe7, 0xe3,0xc9,0xde,0x28,0x77,0xe9)
+#endif
+#else
+typedef struct ID3D11BlendState1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11BlendState1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11BlendState1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11BlendState1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11BlendState1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11BlendState1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11BlendState1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11BlendState1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11BlendState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11BlendState1 *This,
+ D3D11_BLEND_DESC *pDesc);
+
+ /*** ID3D11BlendState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11BlendState1 *This,
+ D3D11_BLEND_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D11BlendState1Vtbl;
+
+interface ID3D11BlendState1 {
+ CONST_VTBL ID3D11BlendState1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11BlendState1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11BlendState1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11BlendState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11BlendState methods ***/
+#define ID3D11BlendState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11BlendState1 methods ***/
+#define ID3D11BlendState1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11BlendState1_QueryInterface(ID3D11BlendState1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11BlendState1_AddRef(ID3D11BlendState1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11BlendState1_Release(ID3D11BlendState1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDevice(ID3D11BlendState1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_GetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateData(ID3D11BlendState1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11BlendState1_SetPrivateDataInterface(ID3D11BlendState1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11BlendState methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDesc(ID3D11BlendState1* This,D3D11_BLEND_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11BlendState1 methods ***/
+static FORCEINLINE void ID3D11BlendState1_GetDesc1(ID3D11BlendState1* This,D3D11_BLEND_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3DDeviceContextState interface
+ */
+#ifndef __ID3DDeviceContextState_INTERFACE_DEFINED__
+#define __ID3DDeviceContextState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3DDeviceContextState, 0x5c1e0d8a, 0x7c23, 0x48f9, 0x8c,0x59, 0xa9,0x29,0x58,0xce,0xff,0x11);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5c1e0d8a-7c23-48f9-8c59-a92958ceff11")
+ID3DDeviceContextState : public ID3D11DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3DDeviceContextState, 0x5c1e0d8a, 0x7c23, 0x48f9, 0x8c,0x59, 0xa9,0x29,0x58,0xce,0xff,0x11)
+#endif
+#else
+typedef struct ID3DDeviceContextStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3DDeviceContextState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3DDeviceContextState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3DDeviceContextState *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3DDeviceContextState *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3DDeviceContextState *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3DDeviceContextState *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3DDeviceContextState *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ END_INTERFACE
+} ID3DDeviceContextStateVtbl;
+
+interface ID3DDeviceContextState {
+ CONST_VTBL ID3DDeviceContextStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3DDeviceContextState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3DDeviceContextState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3DDeviceContextState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3DDeviceContextState_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3DDeviceContextState_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3DDeviceContextState_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3DDeviceContextState_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3DDeviceContextState_QueryInterface(ID3DDeviceContextState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3DDeviceContextState_AddRef(ID3DDeviceContextState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3DDeviceContextState_Release(ID3DDeviceContextState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3DDeviceContextState_GetDevice(ID3DDeviceContextState* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3DDeviceContextState_GetPrivateData(ID3DDeviceContextState* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3DDeviceContextState_SetPrivateData(ID3DDeviceContextState* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3DDeviceContextState_SetPrivateDataInterface(ID3DDeviceContextState* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3DDeviceContextState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DeviceContext1 interface
+ */
+#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__
+#define __ID3D11DeviceContext1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceContext1, 0xbb2c6faa, 0xb5fb, 0x4082, 0x8e,0x6b, 0x38,0x8b,0x8c,0xfa,0x90,0xe1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1")
+ID3D11DeviceContext1 : public ID3D11DeviceContext
+{
+ virtual void STDMETHODCALLTYPE CopySubresourceRegion1(
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox,
+ UINT CopyFlags) = 0;
+
+ virtual void STDMETHODCALLTYPE UpdateSubresource1(
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch,
+ UINT CopyFlags) = 0;
+
+ virtual void STDMETHODCALLTYPE DiscardResource(
+ ID3D11Resource *pResource) = 0;
+
+ virtual void STDMETHODCALLTYPE DiscardView(
+ ID3D11View *pResourceView) = 0;
+
+ virtual void STDMETHODCALLTYPE VSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE HSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE DSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE GSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE PSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE CSSetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE VSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE HSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE DSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE GSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE PSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE CSGetConstantBuffers1(
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants) = 0;
+
+ virtual void STDMETHODCALLTYPE SwapDeviceContextState(
+ ID3DDeviceContextState *pState,
+ ID3DDeviceContextState **ppPreviousState) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearView(
+ ID3D11View *pView,
+ const FLOAT Color[4],
+ const D3D11_RECT *pRect,
+ UINT NumRects) = 0;
+
+ virtual void STDMETHODCALLTYPE DiscardView1(
+ ID3D11View *pResourceView,
+ const D3D11_RECT *pRects,
+ UINT NumRects) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceContext1, 0xbb2c6faa, 0xb5fb, 0x4082, 0x8e,0x6b, 0x38,0x8b,0x8c,0xfa,0x90,0xe1)
+#endif
+#else
+typedef struct ID3D11DeviceContext1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceContext1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceContext1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceContext1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceContext1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceContext1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceContext1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DeviceContext methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D11DeviceContext1 *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D11DeviceContext1 *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D11DeviceContext1 *This,
+ ID3D11InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D11DeviceContext1 *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D11DeviceContext1 *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D11DeviceContext1 *This,
+ D3D11_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Asynchronous *pAsync);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Asynchronous *pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D11DeviceContext1 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext1 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D11DeviceContext1 *This,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D11DeviceContext1 *This);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D11DeviceContext1 *This,
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ);
+
+ void (STDMETHODCALLTYPE *DispatchIndirect)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D11DeviceContext1 *This,
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D11DeviceContext1 *This,
+ UINT NumRects,
+ const D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *CopyStructureCount)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D11DeviceContext1 *This,
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D11DeviceContext1 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D11DeviceContext1 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D11DeviceContext1 *This,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D11DeviceContext1 *This,
+ ID3D11ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *SetResourceMinLOD)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pResource,
+ FLOAT MinLOD);
+
+ FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandList)(
+ ID3D11DeviceContext1 *This,
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState);
+
+ void (STDMETHODCALLTYPE *HSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSSetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *CSSetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSSetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D11DeviceContext1 *This,
+ ID3D11InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D11DeviceContext1 *This,
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D11DeviceContext1 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext1 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D11DeviceContext1 *This,
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D11DeviceContext1 *This,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D11DeviceContext1 *This,
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D11DeviceContext1 *This,
+ UINT *pNumRects,
+ D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *HSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSGetShaderResources)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *CSGetShader)(
+ ID3D11DeviceContext1 *This,
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSGetSamplers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D11DeviceContext1 *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D11DeviceContext1 *This);
+
+ D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D11DeviceContext1 *This);
+
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11DeviceContext1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
+ ID3D11DeviceContext1 *This,
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList);
+
+ /*** ID3D11DeviceContext1 methods ***/
+ void (STDMETHODCALLTYPE *CopySubresourceRegion1)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource1)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D11DeviceContext1 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *DiscardView)(
+ ID3D11DeviceContext1 *This,
+ ID3D11View *pResourceView);
+
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers1)(
+ ID3D11DeviceContext1 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *SwapDeviceContextState)(
+ ID3D11DeviceContext1 *This,
+ ID3DDeviceContextState *pState,
+ ID3DDeviceContextState **ppPreviousState);
+
+ void (STDMETHODCALLTYPE *ClearView)(
+ ID3D11DeviceContext1 *This,
+ ID3D11View *pView,
+ const FLOAT Color[4],
+ const D3D11_RECT *pRect,
+ UINT NumRects);
+
+ void (STDMETHODCALLTYPE *DiscardView1)(
+ ID3D11DeviceContext1 *This,
+ ID3D11View *pResourceView,
+ const D3D11_RECT *pRects,
+ UINT NumRects);
+
+ END_INTERFACE
+} ID3D11DeviceContext1Vtbl;
+
+interface ID3D11DeviceContext1 {
+ CONST_VTBL ID3D11DeviceContext1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceContext1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceContext1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceContext1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceContext1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceContext1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceContext1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceContext1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DeviceContext methods ***/
+#define ID3D11DeviceContext1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D11DeviceContext1_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D11DeviceContext1_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
+#define ID3D11DeviceContext1_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
+#define ID3D11DeviceContext1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D11DeviceContext1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D11DeviceContext1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
+#define ID3D11DeviceContext1_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
+#define ID3D11DeviceContext1_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
+#define ID3D11DeviceContext1_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D11DeviceContext1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D11DeviceContext1_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D11DeviceContext1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D11DeviceContext1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D11DeviceContext1_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D11DeviceContext1_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext1_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
+#define ID3D11DeviceContext1_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext1_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D11DeviceContext1_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D11DeviceContext1_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D11DeviceContext1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D11DeviceContext1_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D11DeviceContext1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D11DeviceContext1_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
+#define ID3D11DeviceContext1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D11DeviceContext1_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext1_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D11DeviceContext1_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D11DeviceContext1_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
+#define ID3D11DeviceContext1_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
+#define ID3D11DeviceContext1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D11DeviceContext1_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
+#define ID3D11DeviceContext1_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext1_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext1_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D11DeviceContext1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D11DeviceContext1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D11DeviceContext1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D11DeviceContext1_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D11DeviceContext1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D11DeviceContext1_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
+#define ID3D11DeviceContext1_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D11DeviceContext1_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
+#define ID3D11DeviceContext1_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
+#define ID3D11DeviceContext1_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext1_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext1_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext1_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext1_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext1_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D11DeviceContext1_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D11DeviceContext1_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D11DeviceContext1_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#define ID3D11DeviceContext1_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
+/*** ID3D11DeviceContext1 methods ***/
+#define ID3D11DeviceContext1_CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) (This)->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags)
+#define ID3D11DeviceContext1_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) (This)->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags)
+#define ID3D11DeviceContext1_DiscardResource(This,pResource) (This)->lpVtbl->DiscardResource(This,pResource)
+#define ID3D11DeviceContext1_DiscardView(This,pResourceView) (This)->lpVtbl->DiscardView(This,pResourceView)
+#define ID3D11DeviceContext1_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext1_SwapDeviceContextState(This,pState,ppPreviousState) (This)->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState)
+#define ID3D11DeviceContext1_ClearView(This,pView,Color,pRect,NumRects) (This)->lpVtbl->ClearView(This,pView,Color,pRect,NumRects)
+#define ID3D11DeviceContext1_DiscardView1(This,pResourceView,pRects,NumRects) (This)->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext1_QueryInterface(ID3D11DeviceContext1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext1_AddRef(ID3D11DeviceContext1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext1_Release(ID3D11DeviceContext1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceContext1_GetDevice(ID3D11DeviceContext1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_GetPrivateData(ID3D11DeviceContext1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_SetPrivateData(ID3D11DeviceContext1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_SetPrivateDataInterface(ID3D11DeviceContext1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DeviceContext methods ***/
+static FORCEINLINE void ID3D11DeviceContext1_VSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSSetShader(ID3D11DeviceContext1* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSSetShader(ID3D11DeviceContext1* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawIndexed(ID3D11DeviceContext1* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext1_Draw(ID3D11DeviceContext1* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_Map(ID3D11DeviceContext1* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
+ return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
+}
+static FORCEINLINE void ID3D11DeviceContext1_Unmap(ID3D11DeviceContext1* This,ID3D11Resource *pResource,UINT Subresource) {
+ This->lpVtbl->Unmap(This,pResource,Subresource);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IASetInputLayout(ID3D11DeviceContext1* This,ID3D11InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IASetVertexBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IASetIndexBuffer(ID3D11DeviceContext1* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawIndexedInstanced(ID3D11DeviceContext1* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawInstanced(ID3D11DeviceContext1* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSSetShader(ID3D11DeviceContext1* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IASetPrimitiveTopology(ID3D11DeviceContext1* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_Begin(ID3D11DeviceContext1* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->Begin(This,pAsync);
+}
+static FORCEINLINE void ID3D11DeviceContext1_End(ID3D11DeviceContext1* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->End(This,pAsync);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_GetData(ID3D11DeviceContext1* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext1_SetPredication(ID3D11DeviceContext1* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMSetRenderTargets(ID3D11DeviceContext1* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext1* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMSetBlendState(ID3D11DeviceContext1* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMSetDepthStencilState(ID3D11DeviceContext1* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext1_SOSetTargets(ID3D11DeviceContext1* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawAuto(ID3D11DeviceContext1* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawIndexedInstancedIndirect(ID3D11DeviceContext1* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DrawInstancedIndirect(ID3D11DeviceContext1* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext1_Dispatch(ID3D11DeviceContext1* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
+ This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DispatchIndirect(ID3D11DeviceContext1* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSSetState(ID3D11DeviceContext1* This,ID3D11RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSSetViewports(ID3D11DeviceContext1* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSSetScissorRects(ID3D11DeviceContext1* This,UINT NumRects,const D3D11_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CopySubresourceRegion(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CopyResource(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D11DeviceContext1_UpdateSubresource(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CopyStructureCount(ID3D11DeviceContext1* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
+ This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearRenderTargetView(ID3D11DeviceContext1* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearUnorderedAccessViewUint(ID3D11DeviceContext1* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearUnorderedAccessViewFloat(ID3D11DeviceContext1* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearDepthStencilView(ID3D11DeviceContext1* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GenerateMips(ID3D11DeviceContext1* This,ID3D11ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext1_SetResourceMinLOD(ID3D11DeviceContext1* This,ID3D11Resource *pResource,FLOAT MinLOD) {
+ This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
+}
+static FORCEINLINE FLOAT ID3D11DeviceContext1_GetResourceMinLOD(ID3D11DeviceContext1* This,ID3D11Resource *pResource) {
+ return This->lpVtbl->GetResourceMinLOD(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ResolveSubresource(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ExecuteCommandList(ID3D11DeviceContext1* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
+ This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSSetShader(ID3D11DeviceContext1* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSSetShader(ID3D11DeviceContext1* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetUnorderedAccessViews(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetShader(ID3D11DeviceContext1* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSGetShader(ID3D11DeviceContext1* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSGetShader(ID3D11DeviceContext1* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IAGetInputLayout(ID3D11DeviceContext1* This,ID3D11InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IAGetVertexBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IAGetIndexBuffer(ID3D11DeviceContext1* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSGetShader(ID3D11DeviceContext1* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_IAGetPrimitiveTopology(ID3D11DeviceContext1* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GetPredication(ID3D11DeviceContext1* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMGetRenderTargets(ID3D11DeviceContext1* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext1* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMGetBlendState(ID3D11DeviceContext1* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext1_OMGetDepthStencilState(ID3D11DeviceContext1* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext1_SOGetTargets(ID3D11DeviceContext1* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSGetState(ID3D11DeviceContext1* This,ID3D11RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSGetViewports(ID3D11DeviceContext1* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext1_RSGetScissorRects(ID3D11DeviceContext1* This,UINT *pNumRects,D3D11_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSGetShader(ID3D11DeviceContext1* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSGetShader(ID3D11DeviceContext1* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetShaderResources(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetUnorderedAccessViews(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetShader(ID3D11DeviceContext1* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetSamplers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetConstantBuffers(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearState(ID3D11DeviceContext1* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D11DeviceContext1_Flush(ID3D11DeviceContext1* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext1_GetType(ID3D11DeviceContext1* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE UINT ID3D11DeviceContext1_GetContextFlags(ID3D11DeviceContext1* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext1_FinishCommandList(ID3D11DeviceContext1* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
+ return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
+}
+/*** ID3D11DeviceContext1 methods ***/
+static FORCEINLINE void ID3D11DeviceContext1_CopySubresourceRegion1(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox,UINT CopyFlags) {
+ This->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext1_UpdateSubresource1(ID3D11DeviceContext1* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch,UINT CopyFlags) {
+ This->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DiscardResource(ID3D11DeviceContext1* This,ID3D11Resource *pResource) {
+ This->lpVtbl->DiscardResource(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DiscardView(ID3D11DeviceContext1* This,ID3D11View *pResourceView) {
+ This->lpVtbl->DiscardView(This,pResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSSetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_VSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_HSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_GSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_PSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_CSGetConstantBuffers1(ID3D11DeviceContext1* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext1_SwapDeviceContextState(ID3D11DeviceContext1* This,ID3DDeviceContextState *pState,ID3DDeviceContextState **ppPreviousState) {
+ This->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState);
+}
+static FORCEINLINE void ID3D11DeviceContext1_ClearView(ID3D11DeviceContext1* This,ID3D11View *pView,const FLOAT Color[4],const D3D11_RECT *pRect,UINT NumRects) {
+ This->lpVtbl->ClearView(This,pView,Color,pRect,NumRects);
+}
+static FORCEINLINE void ID3D11DeviceContext1_DiscardView1(ID3D11DeviceContext1* This,ID3D11View *pResourceView,const D3D11_RECT *pRects,UINT NumRects) {
+ This->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoContext1 interface
+ */
+#ifndef __ID3D11VideoContext1_INTERFACE_DEFINED__
+#define __ID3D11VideoContext1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoContext1, 0xa7f026da, 0xa5f8, 0x4487, 0xa5,0x64, 0x15,0xe3,0x43,0x57,0x65,0x1e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a7f026da-a5f8-4487-a564-15e34357651e")
+ID3D11VideoContext1 : public ID3D11VideoContext
+{
+ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers1(
+ ID3D11VideoDecoder *decoder,
+ UINT buffer_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDataForNewHardwareKey(
+ ID3D11CryptoSession *session,
+ UINT input_size,
+ const void *input_data,
+ UINT64 *output_data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckCryptoSessionStatus(
+ ID3D11CryptoSession *session,
+ D3D11_CRYPTO_SESSION_STATUS *status) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DecoderEnableDownsampling(
+ ID3D11VideoDecoder *decoder,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+ UINT reference_frame_count) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DecoderUpdateDownsampling(
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputColorSpace1(
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE colour_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputShaderUsage(
+ ID3D11VideoProcessor *processor,
+ WINBOOL shader_usage) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputColorSpace1(
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE *colour_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputShaderUsage(
+ ID3D11VideoProcessor *processor,
+ WINBOOL *shader_usage) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamColorSpace1(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE colour_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamMirror(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL enable,
+ WINBOOL flip_horizontal,
+ WINBOOL flip_vertical) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamColorSpace1(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE *colour_space) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamMirror(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL *enable,
+ WINBOOL *flip_horizontal,
+ WINBOOL *flip_vertical) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetBehaviorHints(
+ ID3D11VideoProcessor *processor,
+ UINT output_width,
+ UINT output_height,
+ DXGI_FORMAT output_format,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
+ UINT *behaviour_hints) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoContext1, 0xa7f026da, 0xa5f8, 0x4487, 0xa5,0x64, 0x15,0xe3,0x43,0x57,0x65,0x1e)
+#endif
+#else
+typedef struct ID3D11VideoContext1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoContext1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoContext1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoContext1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoContext1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoContext1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoContext1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoContext1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoContext methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type,
+ UINT *buffer_size,
+ void **buffer);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ ID3D11VideoDecoderOutputView *view,
+ UINT key_size,
+ const void *key);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder);
+
+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ UINT buffers_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderExtension)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_DECODER_EXTENSION *extension);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL y_cb_cr,
+ const D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
+ UINT stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ SIZE size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetOutputExtension)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *y_cb_cr,
+ D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
+ UINT *stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ SIZE *size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetOutputExtension)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
+ WINBOOL repeat,
+ const DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPalette)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ const UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const DXGI_RATIONAL *src_aspect_ratio,
+ const DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float lower,
+ float upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
+ WINBOOL left_view_frame0,
+ WINBOOL base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
+ int mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFilter)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL enable,
+ int level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetStreamExtension)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT *format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
+ WINBOOL *repeat,
+ DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPalette)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ DXGI_RATIONAL *src_aspect_ratio,
+ DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *lower,
+ float *upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
+ WINBOOL *left_view_frame0,
+ WINBOOL *base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
+ int *mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFilter)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL *enabled,
+ int *level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetStreamExtension)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorBlt)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ ID3D11VideoProcessorOutputView *view,
+ UINT frame_idx,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM *streams);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *EncryptionBlt)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *DecryptionBlt)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ D3D11_ENCRYPTED_BLOCK_INFO *block_info,
+ UINT key_size,
+ const void *key,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *StartSessionKeyRefresh)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ UINT random_number_size,
+ void *random_number);
+
+ void (STDMETHODCALLTYPE *FinishSessionKeyRefresh)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session);
+
+ HRESULT (STDMETHODCALLTYPE *GetEncryptionBltKey)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ UINT key_size,
+ void *key);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange)(
+ ID3D11VideoContext1 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *QueryAuthenticatedChannel)(
+ ID3D11VideoContext1 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ UINT output_size,
+ void *output);
+
+ HRESULT (STDMETHODCALLTYPE *ConfigureAuthenticatedChannel)(
+ ID3D11VideoContext1 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamRotation)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION rotation);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamRotation)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION *rotation);
+
+ /*** ID3D11VideoContext1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers1)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ UINT buffer_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDataForNewHardwareKey)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ UINT input_size,
+ const void *input_data,
+ UINT64 *output_data);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCryptoSessionStatus)(
+ ID3D11VideoContext1 *This,
+ ID3D11CryptoSession *session,
+ D3D11_CRYPTO_SESSION_STATUS *status);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderEnableDownsampling)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+ UINT reference_frame_count);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderUpdateDownsampling)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL shader_usage);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE *colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *shader_usage);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamMirror)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL enable,
+ WINBOOL flip_horizontal,
+ WINBOOL flip_vertical);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE *colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamMirror)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL *enable,
+ WINBOOL *flip_horizontal,
+ WINBOOL *flip_vertical);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints)(
+ ID3D11VideoContext1 *This,
+ ID3D11VideoProcessor *processor,
+ UINT output_width,
+ UINT output_height,
+ DXGI_FORMAT output_format,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
+ UINT *behaviour_hints);
+
+ END_INTERFACE
+} ID3D11VideoContext1Vtbl;
+
+interface ID3D11VideoContext1 {
+ CONST_VTBL ID3D11VideoContext1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoContext1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoContext1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoContext1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoContext1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoContext1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoContext1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoContext1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoContext methods ***/
+#define ID3D11VideoContext1_GetDecoderBuffer(This,decoder,type,buffer_size,buffer) (This)->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer)
+#define ID3D11VideoContext1_ReleaseDecoderBuffer(This,decoder,type) (This)->lpVtbl->ReleaseDecoderBuffer(This,decoder,type)
+#define ID3D11VideoContext1_DecoderBeginFrame(This,decoder,view,key_size,key) (This)->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key)
+#define ID3D11VideoContext1_DecoderEndFrame(This,decoder) (This)->lpVtbl->DecoderEndFrame(This,decoder)
+#define ID3D11VideoContext1_SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc)
+#define ID3D11VideoContext1_DecoderExtension(This,decoder,extension) (This)->lpVtbl->DecoderExtension(This,decoder,extension)
+#define ID3D11VideoContext1_VideoProcessorSetOutputTargetRect(This,processor,enable,rect) (This)->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect)
+#define ID3D11VideoContext1_VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext1_VideoProcessorSetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext1_VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext1_VideoProcessorSetOutputConstriction(This,processor,enable,size) (This)->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size)
+#define ID3D11VideoContext1_VideoProcessorSetOutputStereoMode(This,processor,enable) (This)->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable)
+#define ID3D11VideoContext1_VideoProcessorSetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext1_VideoProcessorGetOutputTargetRect(This,processor,enabled,rect) (This)->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect)
+#define ID3D11VideoContext1_VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext1_VideoProcessorGetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext1_VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext1_VideoProcessorGetOutputConstriction(This,processor,enabled,size) (This)->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size)
+#define ID3D11VideoContext1_VideoProcessorGetOutputStereoMode(This,processor,enabled) (This)->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled)
+#define ID3D11VideoContext1_VideoProcessorGetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext1_VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext1_VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext1_VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext1_VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext1_VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext1_VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha) (This)->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha)
+#define ID3D11VideoContext1_VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext1_VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext1_VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper) (This)->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper)
+#define ID3D11VideoContext1_VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext1_VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable) (This)->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable)
+#define ID3D11VideoContext1_VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level) (This)->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level)
+#define ID3D11VideoContext1_VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext1_VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext1_VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext1_VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext1_VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext1_VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext1_VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha) (This)->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha)
+#define ID3D11VideoContext1_VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext1_VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext1_VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper) (This)->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper)
+#define ID3D11VideoContext1_VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext1_VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled) (This)->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled)
+#define ID3D11VideoContext1_VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level) (This)->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level)
+#define ID3D11VideoContext1_VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext1_VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams)
+#define ID3D11VideoContext1_NegotiateCryptoSessionKeyExchange(This,session,data_size,data) (This)->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data)
+#define ID3D11VideoContext1_EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv) (This)->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv)
+#define ID3D11VideoContext1_DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv) (This)->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv)
+#define ID3D11VideoContext1_StartSessionKeyRefresh(This,session,random_number_size,random_number) (This)->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number)
+#define ID3D11VideoContext1_FinishSessionKeyRefresh(This,session) (This)->lpVtbl->FinishSessionKeyRefresh(This,session)
+#define ID3D11VideoContext1_GetEncryptionBltKey(This,session,key_size,key) (This)->lpVtbl->GetEncryptionBltKey(This,session,key_size,key)
+#define ID3D11VideoContext1_NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data) (This)->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data)
+#define ID3D11VideoContext1_QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output) (This)->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output)
+#define ID3D11VideoContext1_ConfigureAuthenticatedChannel(This,channel,input_size,input,output) (This)->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output)
+#define ID3D11VideoContext1_VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation)
+#define ID3D11VideoContext1_VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation)
+/*** ID3D11VideoContext1 methods ***/
+#define ID3D11VideoContext1_SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc)
+#define ID3D11VideoContext1_GetDataForNewHardwareKey(This,session,input_size,input_data,output_data) (This)->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data)
+#define ID3D11VideoContext1_CheckCryptoSessionStatus(This,session,status) (This)->lpVtbl->CheckCryptoSessionStatus(This,session,status)
+#define ID3D11VideoContext1_DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count) (This)->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count)
+#define ID3D11VideoContext1_DecoderUpdateDownsampling(This,decoder,output_desc) (This)->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc)
+#define ID3D11VideoContext1_VideoProcessorSetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space)
+#define ID3D11VideoContext1_VideoProcessorSetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage)
+#define ID3D11VideoContext1_VideoProcessorGetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space)
+#define ID3D11VideoContext1_VideoProcessorGetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage)
+#define ID3D11VideoContext1_VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space)
+#define ID3D11VideoContext1_VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
+#define ID3D11VideoContext1_VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space)
+#define ID3D11VideoContext1_VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
+#define ID3D11VideoContext1_VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints) (This)->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext1_QueryInterface(ID3D11VideoContext1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoContext1_AddRef(ID3D11VideoContext1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoContext1_Release(ID3D11VideoContext1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoContext1_GetDevice(ID3D11VideoContext1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_GetPrivateData(ID3D11VideoContext1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_SetPrivateData(ID3D11VideoContext1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_SetPrivateDataInterface(ID3D11VideoContext1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoContext methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext1_GetDecoderBuffer(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type,UINT *buffer_size,void **buffer) {
+ return This->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_ReleaseDecoderBuffer(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type) {
+ return This->lpVtbl->ReleaseDecoderBuffer(This,decoder,type);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_DecoderBeginFrame(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,ID3D11VideoDecoderOutputView *view,UINT key_size,const void *key) {
+ return This->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_DecoderEndFrame(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder) {
+ return This->lpVtbl->DecoderEndFrame(This,decoder);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_SubmitDecoderBuffers(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,UINT buffers_count,const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) {
+ return This->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_DecoderExtension(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_DECODER_EXTENSION *extension) {
+ return This->lpVtbl->DecoderExtension(This,decoder,extension);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputTargetRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputBackgroundColor(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL y_cb_cr,const D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputColorSpace(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputAlphaFillMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,UINT stream_idx) {
+ This->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputConstriction(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL enable,SIZE size) {
+ This->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputStereoMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorSetOutputExtension(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputTargetRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputBackgroundColor(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL *y_cb_cr,D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputColorSpace(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputAlphaFillMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,UINT *stream_idx) {
+ This->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputConstriction(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,SIZE *size) {
+ This->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputStereoMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorGetOutputExtension(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamFrameFormat(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT format) {
+ This->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamColorSpace(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamOutputRate(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,WINBOOL repeat,const DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamSourceRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamDestRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamAlpha(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float alpha) {
+ This->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamPalette(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,const UINT *entries) {
+ This->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const DXGI_RATIONAL *src_aspect_ratio,const DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamLumaKey(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float lower,float upper) {
+ This->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamStereoFormat(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,WINBOOL left_view_frame0,WINBOOL base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,int mono_offset) {
+ This->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamFilter(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL enable,int level) {
+ This->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorSetStreamExtension(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamFrameFormat(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT *format) {
+ This->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamColorSpace(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamOutputRate(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,WINBOOL *repeat,DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamSourceRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamDestRect(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamAlpha(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *alpha) {
+ This->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamPalette(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,UINT *entries) {
+ This->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,DXGI_RATIONAL *src_aspect_ratio,DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamLumaKey(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *lower,float *upper) {
+ This->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamStereoFormat(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,WINBOOL *left_view_frame0,WINBOOL *base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,int *mono_offset) {
+ This->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamFilter(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL *enabled,int *level) {
+ This->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorGetStreamExtension(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorBlt(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,ID3D11VideoProcessorOutputView *view,UINT frame_idx,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM *streams) {
+ return This->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_NegotiateCryptoSessionKeyExchange(ID3D11VideoContext1* This,ID3D11CryptoSession *session,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext1_EncryptionBlt(ID3D11VideoContext1* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,UINT iv_size,void *iv) {
+ This->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext1_DecryptionBlt(ID3D11VideoContext1* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,D3D11_ENCRYPTED_BLOCK_INFO *block_info,UINT key_size,const void *key,UINT iv_size,void *iv) {
+ This->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext1_StartSessionKeyRefresh(ID3D11VideoContext1* This,ID3D11CryptoSession *session,UINT random_number_size,void *random_number) {
+ This->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number);
+}
+static FORCEINLINE void ID3D11VideoContext1_FinishSessionKeyRefresh(ID3D11VideoContext1* This,ID3D11CryptoSession *session) {
+ This->lpVtbl->FinishSessionKeyRefresh(This,session);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_GetEncryptionBltKey(ID3D11VideoContext1* This,ID3D11CryptoSession *session,UINT key_size,void *key) {
+ return This->lpVtbl->GetEncryptionBltKey(This,session,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_NegotiateAuthenticatedChannelKeyExchange(ID3D11VideoContext1* This,ID3D11AuthenticatedChannel *channel,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_QueryAuthenticatedChannel(ID3D11VideoContext1* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,UINT output_size,void *output) {
+ return This->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_ConfigureAuthenticatedChannel(ID3D11VideoContext1* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) {
+ return This->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamRotation(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_ROTATION rotation) {
+ This->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamRotation(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enable,D3D11_VIDEO_PROCESSOR_ROTATION *rotation) {
+ This->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+/*** ID3D11VideoContext1 methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext1_SubmitDecoderBuffers1(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,UINT buffer_count,const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc) {
+ return This->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_GetDataForNewHardwareKey(ID3D11VideoContext1* This,ID3D11CryptoSession *session,UINT input_size,const void *input_data,UINT64 *output_data) {
+ return This->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_CheckCryptoSessionStatus(ID3D11VideoContext1* This,ID3D11CryptoSession *session,D3D11_CRYPTO_SESSION_STATUS *status) {
+ return This->lpVtbl->CheckCryptoSessionStatus(This,session,status);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_DecoderEnableDownsampling(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,DXGI_COLOR_SPACE_TYPE colour_space,const D3D11_VIDEO_SAMPLE_DESC *output_desc,UINT reference_frame_count) {
+ return This->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_DecoderUpdateDownsampling(ID3D11VideoContext1* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_SAMPLE_DESC *output_desc) {
+ return This->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputColorSpace1(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE colour_space) {
+ This->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetOutputShaderUsage(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL shader_usage) {
+ This->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputColorSpace1(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE *colour_space) {
+ This->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetOutputShaderUsage(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,WINBOOL *shader_usage) {
+ This->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamColorSpace1(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE colour_space) {
+ This->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorSetStreamMirror(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL enable,WINBOOL flip_horizontal,WINBOOL flip_vertical) {
+ This->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamColorSpace1(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE *colour_space) {
+ This->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext1_VideoProcessorGetStreamMirror(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL *enable,WINBOOL *flip_horizontal,WINBOOL *flip_vertical) {
+ This->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext1_VideoProcessorGetBehaviorHints(ID3D11VideoContext1* This,ID3D11VideoProcessor *processor,UINT output_width,UINT output_height,DXGI_FORMAT output_format,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,UINT *behaviour_hints) {
+ return This->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoContext1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoDevice1 interface
+ */
+#ifndef __ID3D11VideoDevice1_INTERFACE_DEFINED__
+#define __ID3D11VideoDevice1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoDevice1, 0x29da1d51, 0x1321, 0x4454, 0x80,0x4b, 0xf5,0xfc,0x9f,0x86,0x1f,0x0f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("29da1d51-1321-4454-804b-f5fc9f861f0f")
+ID3D11VideoDevice1 : public ID3D11VideoDevice
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCryptoSessionPrivateDataSize(
+ const GUID *crypto_type,
+ const GUID *decoder_profile,
+ const GUID *key_exchange_type,
+ UINT *input_size,
+ UINT *output_size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderCaps(
+ const GUID *decoder_profile,
+ UINT sample_width,
+ UINT sample_height,
+ const DXGI_RATIONAL *framerate,
+ UINT bitrate,
+ const GUID *crypto_type,
+ UINT *decoder_caps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderDownsampling(
+ const D3D11_VIDEO_DECODER_DESC *input_desc,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ const D3D11_VIDEO_DECODER_CONFIG *input_config,
+ const DXGI_RATIONAL *framerate,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+ WINBOOL *supported,
+ WINBOOL *real_time_hint) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RecommendVideoDecoderDownsampleParameters(
+ const D3D11_VIDEO_DECODER_DESC *input_desc,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ const D3D11_VIDEO_DECODER_CONFIG *input_config,
+ const DXGI_RATIONAL *framerate,
+ D3D11_VIDEO_SAMPLE_DESC *recommended_output_desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoDevice1, 0x29da1d51, 0x1321, 0x4454, 0x80,0x4b, 0xf5,0xfc,0x9f,0x86,0x1f,0x0f)
+#endif
+#else
+typedef struct ID3D11VideoDevice1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoDevice1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoDevice1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoDevice1 *This);
+
+ /*** ID3D11VideoDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
+ const D3D11_VIDEO_DECODER_CONFIG *pConfig,
+ ID3D11VideoDecoder **ppDecoder);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
+ ID3D11VideoDevice1 *This,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ UINT RateConversionIndex,
+ ID3D11VideoProcessor **ppVideoProcessor);
+
+ HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)(
+ ID3D11VideoDevice1 *This,
+ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
+ ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)(
+ ID3D11VideoDevice1 *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ const GUID *pKeyExchangeType,
+ ID3D11CryptoSession **ppCryptoSession);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)(
+ ID3D11VideoDevice1 *This,
+ ID3D11Resource *pResource,
+ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoDecoderOutputView **ppVDOVView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)(
+ ID3D11VideoDevice1 *This,
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorInputView **ppVPIView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)(
+ ID3D11VideoDevice1 *This,
+ ID3D11Resource *pResource,
+ ID3D11VideoProcessorEnumerator *pEnum,
+ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
+ ID3D11VideoProcessorOutputView **ppVPOView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
+ ID3D11VideoProcessorEnumerator **ppEnum);
+
+ UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)(
+ ID3D11VideoDevice1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)(
+ ID3D11VideoDevice1 *This,
+ UINT Index,
+ GUID *pDecoderProfile);
+
+ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)(
+ ID3D11VideoDevice1 *This,
+ const GUID *pDecoderProfile,
+ DXGI_FORMAT Format,
+ WINBOOL *pSupported);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT *pCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_DECODER_DESC *pDesc,
+ UINT Index,
+ D3D11_VIDEO_DECODER_CONFIG *pConfig);
+
+ HRESULT (STDMETHODCALLTYPE *GetContentProtectionCaps)(
+ ID3D11VideoDevice1 *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCryptoKeyExchange)(
+ ID3D11VideoDevice1 *This,
+ const GUID *pCryptoType,
+ const GUID *pDecoderProfile,
+ UINT Index,
+ GUID *pKeyExchangeType);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoDevice1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoDevice1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoDevice1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCryptoSessionPrivateDataSize)(
+ ID3D11VideoDevice1 *This,
+ const GUID *crypto_type,
+ const GUID *decoder_profile,
+ const GUID *key_exchange_type,
+ UINT *input_size,
+ UINT *output_size);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderCaps)(
+ ID3D11VideoDevice1 *This,
+ const GUID *decoder_profile,
+ UINT sample_width,
+ UINT sample_height,
+ const DXGI_RATIONAL *framerate,
+ UINT bitrate,
+ const GUID *crypto_type,
+ UINT *decoder_caps);
+
+ HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderDownsampling)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_DECODER_DESC *input_desc,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ const D3D11_VIDEO_DECODER_CONFIG *input_config,
+ const DXGI_RATIONAL *framerate,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+ WINBOOL *supported,
+ WINBOOL *real_time_hint);
+
+ HRESULT (STDMETHODCALLTYPE *RecommendVideoDecoderDownsampleParameters)(
+ ID3D11VideoDevice1 *This,
+ const D3D11_VIDEO_DECODER_DESC *input_desc,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ const D3D11_VIDEO_DECODER_CONFIG *input_config,
+ const DXGI_RATIONAL *framerate,
+ D3D11_VIDEO_SAMPLE_DESC *recommended_output_desc);
+
+ END_INTERFACE
+} ID3D11VideoDevice1Vtbl;
+
+interface ID3D11VideoDevice1 {
+ CONST_VTBL ID3D11VideoDevice1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoDevice1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoDevice1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoDevice1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11VideoDevice methods ***/
+#define ID3D11VideoDevice1_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder)
+#define ID3D11VideoDevice1_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor)
+#define ID3D11VideoDevice1_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel)
+#define ID3D11VideoDevice1_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession)
+#define ID3D11VideoDevice1_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView)
+#define ID3D11VideoDevice1_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView)
+#define ID3D11VideoDevice1_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView)
+#define ID3D11VideoDevice1_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum)
+#define ID3D11VideoDevice1_GetVideoDecoderProfileCount(This) (This)->lpVtbl->GetVideoDecoderProfileCount(This)
+#define ID3D11VideoDevice1_GetVideoDecoderProfile(This,Index,pDecoderProfile) (This)->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile)
+#define ID3D11VideoDevice1_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported)
+#define ID3D11VideoDevice1_GetVideoDecoderConfigCount(This,pDesc,pCount) (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount)
+#define ID3D11VideoDevice1_GetVideoDecoderConfig(This,pDesc,Index,pConfig) (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig)
+#define ID3D11VideoDevice1_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) (This)->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps)
+#define ID3D11VideoDevice1_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) (This)->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType)
+#define ID3D11VideoDevice1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoDevice1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoDevice1 methods ***/
+#define ID3D11VideoDevice1_GetCryptoSessionPrivateDataSize(This,crypto_type,decoder_profile,key_exchange_type,input_size,output_size) (This)->lpVtbl->GetCryptoSessionPrivateDataSize(This,crypto_type,decoder_profile,key_exchange_type,input_size,output_size)
+#define ID3D11VideoDevice1_GetVideoDecoderCaps(This,decoder_profile,sample_width,sample_height,framerate,bitrate,crypto_type,decoder_caps) (This)->lpVtbl->GetVideoDecoderCaps(This,decoder_profile,sample_width,sample_height,framerate,bitrate,crypto_type,decoder_caps)
+#define ID3D11VideoDevice1_CheckVideoDecoderDownsampling(This,input_desc,input_colour_space,input_config,framerate,output_desc,supported,real_time_hint) (This)->lpVtbl->CheckVideoDecoderDownsampling(This,input_desc,input_colour_space,input_config,framerate,output_desc,supported,real_time_hint)
+#define ID3D11VideoDevice1_RecommendVideoDecoderDownsampleParameters(This,input_desc,input_colour_space,input_config,framerate,recommended_output_desc) (This)->lpVtbl->RecommendVideoDecoderDownsampleParameters(This,input_desc,input_colour_space,input_config,framerate,recommended_output_desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDevice1_QueryInterface(ID3D11VideoDevice1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoDevice1_AddRef(ID3D11VideoDevice1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoDevice1_Release(ID3D11VideoDevice1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11VideoDevice methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoDecoder(ID3D11VideoDevice1* This,const D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG *pConfig,ID3D11VideoDecoder **ppDecoder) {
+ return This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoProcessor(ID3D11VideoDevice1* This,ID3D11VideoProcessorEnumerator *pEnum,UINT RateConversionIndex,ID3D11VideoProcessor **ppVideoProcessor) {
+ return This->lpVtbl->CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateAuthenticatedChannel(ID3D11VideoDevice1* This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,ID3D11AuthenticatedChannel **ppAuthenticatedChannel) {
+ return This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateCryptoSession(ID3D11VideoDevice1* This,const GUID *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,ID3D11CryptoSession **ppCryptoSession) {
+ return This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoDecoderOutputView(ID3D11VideoDevice1* This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoDecoderOutputView **ppVDOVView) {
+ return This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoProcessorInputView(ID3D11VideoDevice1* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorInputView **ppVPIView) {
+ return This->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoProcessorOutputView(ID3D11VideoDevice1* This,ID3D11Resource *pResource,ID3D11VideoProcessorEnumerator *pEnum,const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,ID3D11VideoProcessorOutputView **ppVPOView) {
+ return This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CreateVideoProcessorEnumerator(ID3D11VideoDevice1* This,const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,ID3D11VideoProcessorEnumerator **ppEnum) {
+ return This->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum);
+}
+static FORCEINLINE UINT ID3D11VideoDevice1_GetVideoDecoderProfileCount(ID3D11VideoDevice1* This) {
+ return This->lpVtbl->GetVideoDecoderProfileCount(This);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetVideoDecoderProfile(ID3D11VideoDevice1* This,UINT Index,GUID *pDecoderProfile) {
+ return This->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CheckVideoDecoderFormat(ID3D11VideoDevice1* This,const GUID *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) {
+ return This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetVideoDecoderConfigCount(ID3D11VideoDevice1* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) {
+ return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetVideoDecoderConfig(ID3D11VideoDevice1* This,const D3D11_VIDEO_DECODER_DESC *pDesc,UINT Index,D3D11_VIDEO_DECODER_CONFIG *pConfig) {
+ return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetContentProtectionCaps(ID3D11VideoDevice1* This,const GUID *pCryptoType,const GUID *pDecoderProfile,D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) {
+ return This->lpVtbl->GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CheckCryptoKeyExchange(ID3D11VideoDevice1* This,const GUID *pCryptoType,const GUID *pDecoderProfile,UINT Index,GUID *pKeyExchangeType) {
+ return This->lpVtbl->CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_SetPrivateData(ID3D11VideoDevice1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_SetPrivateDataInterface(ID3D11VideoDevice1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoDevice1 methods ***/
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetCryptoSessionPrivateDataSize(ID3D11VideoDevice1* This,const GUID *crypto_type,const GUID *decoder_profile,const GUID *key_exchange_type,UINT *input_size,UINT *output_size) {
+ return This->lpVtbl->GetCryptoSessionPrivateDataSize(This,crypto_type,decoder_profile,key_exchange_type,input_size,output_size);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_GetVideoDecoderCaps(ID3D11VideoDevice1* This,const GUID *decoder_profile,UINT sample_width,UINT sample_height,const DXGI_RATIONAL *framerate,UINT bitrate,const GUID *crypto_type,UINT *decoder_caps) {
+ return This->lpVtbl->GetVideoDecoderCaps(This,decoder_profile,sample_width,sample_height,framerate,bitrate,crypto_type,decoder_caps);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_CheckVideoDecoderDownsampling(ID3D11VideoDevice1* This,const D3D11_VIDEO_DECODER_DESC *input_desc,DXGI_COLOR_SPACE_TYPE input_colour_space,const D3D11_VIDEO_DECODER_CONFIG *input_config,const DXGI_RATIONAL *framerate,const D3D11_VIDEO_SAMPLE_DESC *output_desc,WINBOOL *supported,WINBOOL *real_time_hint) {
+ return This->lpVtbl->CheckVideoDecoderDownsampling(This,input_desc,input_colour_space,input_config,framerate,output_desc,supported,real_time_hint);
+}
+static FORCEINLINE HRESULT ID3D11VideoDevice1_RecommendVideoDecoderDownsampleParameters(ID3D11VideoDevice1* This,const D3D11_VIDEO_DECODER_DESC *input_desc,DXGI_COLOR_SPACE_TYPE input_colour_space,const D3D11_VIDEO_DECODER_CONFIG *input_config,const DXGI_RATIONAL *framerate,D3D11_VIDEO_SAMPLE_DESC *recommended_output_desc) {
+ return This->lpVtbl->RecommendVideoDecoderDownsampleParameters(This,input_desc,input_colour_space,input_config,framerate,recommended_output_desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoDevice1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoProcessorEnumerator1 interface
+ */
+#ifndef __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__
+#define __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoProcessorEnumerator1, 0x465217f2, 0x5568, 0x43cf, 0xb5,0xb9, 0xf6,0x1d,0x54,0x53,0x1c,0xa1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("465217f2-5568-43cf-b5b9-f61d54531ca1")
+ID3D11VideoProcessorEnumerator1 : public ID3D11VideoProcessorEnumerator
+{
+ virtual HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormatConversion(
+ DXGI_FORMAT input_format,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ DXGI_FORMAT output_format,
+ DXGI_COLOR_SPACE_TYPE output_colour_space,
+ WINBOOL *supported) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoProcessorEnumerator1, 0x465217f2, 0x5568, 0x43cf, 0xb5,0xb9, 0xf6,0x1d,0x54,0x53,0x1c,0xa1)
+#endif
+#else
+typedef struct ID3D11VideoProcessorEnumerator1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoProcessorEnumerator1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoProcessorEnumerator1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoProcessorEnumerator methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorContentDesc)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckVideoProcessorFormat)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ DXGI_FORMAT Format,
+ UINT *pFlags);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorRateConversionCaps)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ UINT TypeIndex,
+ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRate)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ UINT TypeIndex,
+ UINT CustomRateIndex,
+ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
+
+ /*** ID3D11VideoProcessorEnumerator1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckVideoProcessorFormatConversion)(
+ ID3D11VideoProcessorEnumerator1 *This,
+ DXGI_FORMAT input_format,
+ DXGI_COLOR_SPACE_TYPE input_colour_space,
+ DXGI_FORMAT output_format,
+ DXGI_COLOR_SPACE_TYPE output_colour_space,
+ WINBOOL *supported);
+
+ END_INTERFACE
+} ID3D11VideoProcessorEnumerator1Vtbl;
+
+interface ID3D11VideoProcessorEnumerator1 {
+ CONST_VTBL ID3D11VideoProcessorEnumerator1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoProcessorEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoProcessorEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoProcessorEnumerator1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoProcessorEnumerator1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoProcessorEnumerator1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoProcessorEnumerator1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoProcessorEnumerator1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoProcessorEnumerator methods ***/
+#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorContentDesc(This,pContentDesc) (This)->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc)
+#define ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormat(This,Format,pFlags) (This)->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags)
+#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps)
+#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) (This)->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps)
+#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) (This)->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate)
+#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
+/*** ID3D11VideoProcessorEnumerator1 methods ***/
+#define ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormatConversion(This,input_format,input_colour_space,output_format,output_colour_space,supported) (This)->lpVtbl->CheckVideoProcessorFormatConversion(This,input_format,input_colour_space,output_format,output_colour_space,supported)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_QueryInterface(ID3D11VideoProcessorEnumerator1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorEnumerator1_AddRef(ID3D11VideoProcessorEnumerator1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoProcessorEnumerator1_Release(ID3D11VideoProcessorEnumerator1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoProcessorEnumerator1_GetDevice(ID3D11VideoProcessorEnumerator1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetPrivateData(ID3D11VideoProcessorEnumerator1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_SetPrivateData(ID3D11VideoProcessorEnumerator1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_SetPrivateDataInterface(ID3D11VideoProcessorEnumerator1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoProcessorEnumerator methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetVideoProcessorContentDesc(ID3D11VideoProcessorEnumerator1* This,D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) {
+ return This->lpVtbl->GetVideoProcessorContentDesc(This,pContentDesc);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormat(ID3D11VideoProcessorEnumerator1* This,DXGI_FORMAT Format,UINT *pFlags) {
+ return This->lpVtbl->CheckVideoProcessorFormat(This,Format,pFlags);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetVideoProcessorCaps(ID3D11VideoProcessorEnumerator1* This,D3D11_VIDEO_PROCESSOR_CAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetVideoProcessorRateConversionCaps(ID3D11VideoProcessorEnumerator1* This,UINT TypeIndex,D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetVideoProcessorCustomRate(ID3D11VideoProcessorEnumerator1* This,UINT TypeIndex,UINT CustomRateIndex,D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) {
+ return This->lpVtbl->GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate);
+}
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_GetVideoProcessorFilterRange(ID3D11VideoProcessorEnumerator1* This,D3D11_VIDEO_PROCESSOR_FILTER Filter,D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) {
+ return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
+}
+/*** ID3D11VideoProcessorEnumerator1 methods ***/
+static FORCEINLINE HRESULT ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormatConversion(ID3D11VideoProcessorEnumerator1* This,DXGI_FORMAT input_format,DXGI_COLOR_SPACE_TYPE input_colour_space,DXGI_FORMAT output_format,DXGI_COLOR_SPACE_TYPE output_colour_space,WINBOOL *supported) {
+ return This->lpVtbl->CheckVideoProcessorFormatConversion(This,input_format,input_colour_space,output_format,output_colour_space,supported);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3DUserDefinedAnnotation interface
+ */
+#ifndef __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__
+#define __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3DUserDefinedAnnotation, 0xb2daad8b, 0x03d4, 0x4dbf, 0x95,0xeb, 0x32,0xab,0x4b,0x63,0xd0,0xab);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab")
+ID3DUserDefinedAnnotation : public IUnknown
+{
+ virtual INT STDMETHODCALLTYPE BeginEvent(
+ LPCWSTR Name) = 0;
+
+ virtual INT STDMETHODCALLTYPE EndEvent(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMarker(
+ LPCWSTR Name) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetStatus(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3DUserDefinedAnnotation, 0xb2daad8b, 0x03d4, 0x4dbf, 0x95,0xeb, 0x32,0xab,0x4b,0x63,0xd0,0xab)
+#endif
+#else
+typedef struct ID3DUserDefinedAnnotationVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3DUserDefinedAnnotation *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3DUserDefinedAnnotation *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3DUserDefinedAnnotation *This);
+
+ /*** ID3DUserDefinedAnnotation methods ***/
+ INT (STDMETHODCALLTYPE *BeginEvent)(
+ ID3DUserDefinedAnnotation *This,
+ LPCWSTR Name);
+
+ INT (STDMETHODCALLTYPE *EndEvent)(
+ ID3DUserDefinedAnnotation *This);
+
+ void (STDMETHODCALLTYPE *SetMarker)(
+ ID3DUserDefinedAnnotation *This,
+ LPCWSTR Name);
+
+ WINBOOL (STDMETHODCALLTYPE *GetStatus)(
+ ID3DUserDefinedAnnotation *This);
+
+ END_INTERFACE
+} ID3DUserDefinedAnnotationVtbl;
+
+interface ID3DUserDefinedAnnotation {
+ CONST_VTBL ID3DUserDefinedAnnotationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3DUserDefinedAnnotation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3DUserDefinedAnnotation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3DUserDefinedAnnotation_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3DUserDefinedAnnotation methods ***/
+#define ID3DUserDefinedAnnotation_BeginEvent(This,Name) (This)->lpVtbl->BeginEvent(This,Name)
+#define ID3DUserDefinedAnnotation_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3DUserDefinedAnnotation_SetMarker(This,Name) (This)->lpVtbl->SetMarker(This,Name)
+#define ID3DUserDefinedAnnotation_GetStatus(This) (This)->lpVtbl->GetStatus(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3DUserDefinedAnnotation_QueryInterface(ID3DUserDefinedAnnotation* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3DUserDefinedAnnotation_AddRef(ID3DUserDefinedAnnotation* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3DUserDefinedAnnotation_Release(ID3DUserDefinedAnnotation* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3DUserDefinedAnnotation methods ***/
+static FORCEINLINE INT ID3DUserDefinedAnnotation_BeginEvent(ID3DUserDefinedAnnotation* This,LPCWSTR Name) {
+ return This->lpVtbl->BeginEvent(This,Name);
+}
+static FORCEINLINE INT ID3DUserDefinedAnnotation_EndEvent(ID3DUserDefinedAnnotation* This) {
+ return This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3DUserDefinedAnnotation_SetMarker(ID3DUserDefinedAnnotation* This,LPCWSTR Name) {
+ This->lpVtbl->SetMarker(This,Name);
+}
+static FORCEINLINE WINBOOL ID3DUserDefinedAnnotation_GetStatus(ID3DUserDefinedAnnotation* This) {
+ return This->lpVtbl->GetStatus(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11RasterizerState1 interface
+ */
+#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__
+#define __ID3D11RasterizerState1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e")
+ID3D11RasterizerState1 : public ID3D11RasterizerState
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_RASTERIZER_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RasterizerState1, 0x1217d7a6, 0x5039, 0x418c, 0xb0,0x42, 0x9c,0xbe,0x25,0x6a,0xfd,0x6e)
+#endif
+#else
+typedef struct ID3D11RasterizerState1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RasterizerState1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RasterizerState1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RasterizerState1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RasterizerState1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RasterizerState1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RasterizerState1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RasterizerState1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11RasterizerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RasterizerState1 *This,
+ D3D11_RASTERIZER_DESC *pDesc);
+
+ /*** ID3D11RasterizerState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11RasterizerState1 *This,
+ D3D11_RASTERIZER_DESC1 *pDesc);
+
+ END_INTERFACE
+} ID3D11RasterizerState1Vtbl;
+
+interface ID3D11RasterizerState1 {
+ CONST_VTBL ID3D11RasterizerState1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RasterizerState1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RasterizerState1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RasterizerState1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11RasterizerState methods ***/
+#define ID3D11RasterizerState1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11RasterizerState1 methods ***/
+#define ID3D11RasterizerState1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RasterizerState1_QueryInterface(ID3D11RasterizerState1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState1_AddRef(ID3D11RasterizerState1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState1_Release(ID3D11RasterizerState1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDevice(ID3D11RasterizerState1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_GetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateData(ID3D11RasterizerState1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState1_SetPrivateDataInterface(ID3D11RasterizerState1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11RasterizerState methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDesc(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11RasterizerState1 methods ***/
+static FORCEINLINE void ID3D11RasterizerState1_GetDesc1(ID3D11RasterizerState1* This,D3D11_RASTERIZER_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device1 interface
+ */
+#ifndef __ID3D11Device1_INTERFACE_DEFINED__
+#define __ID3D11Device1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686")
+ID3D11Device1 : public ID3D11Device
+{
+ virtual void STDMETHODCALLTYPE GetImmediateContext1(
+ ID3D11DeviceContext1 **ppImmediateContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1(
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateBlendState1(
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1(
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState(
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1(
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName(
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device1, 0xa04bfb29, 0x08ef, 0x43d6, 0xa4,0x9c, 0xa9,0xbd,0xbd,0xcb,0xe6,0x86)
+#endif
+#else
+typedef struct ID3D11Device1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device1 *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device1 *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device1 *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device1 *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device1 *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device1 *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device1 *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device1 *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device1 *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device1 *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device1 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device1 *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device1 *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device1 *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device1 *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device1 *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device1 *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device1 *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device1 *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device1 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device1 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device1 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device1 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device1 *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device1 *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device1 *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device1 *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device1 *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device1 *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device1 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device1 *This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device1 *This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device1 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device1 *This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device1 *This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device1 *This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device1 *This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device1 *This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ END_INTERFACE
+} ID3D11Device1Vtbl;
+
+interface ID3D11Device1 {
+ CONST_VTBL ID3D11Device1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device1_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device1_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device1_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device1_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device1_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device1_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device1_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device1_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device1_QueryInterface(ID3D11Device1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device1_AddRef(ID3D11Device1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device1_Release(ID3D11Device1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device1_CreateBuffer(ID3D11Device1* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture1D(ID3D11Device1* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture2D(ID3D11Device1* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateTexture3D(ID3D11Device1* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateShaderResourceView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateUnorderedAccessView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRenderTargetView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilView(ID3D11Device1* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateInputLayout(ID3D11Device1* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateVertexShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateGeometryShaderWithStreamOutput(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreatePixelShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateHullShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDomainShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateComputeShader(ID3D11Device1* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateClassLinkage(ID3D11Device1* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState(ID3D11Device1* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDepthStencilState(ID3D11Device1* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState(ID3D11Device1* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateSamplerState(ID3D11Device1* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateQuery(ID3D11Device1* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreatePredicate(ID3D11Device1* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource(ID3D11Device1* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckFormatSupport(ID3D11Device1* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckMultisampleQualityLevels(ID3D11Device1* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device1_CheckCounterInfo(ID3D11Device1* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckCounter(ID3D11Device1* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CheckFeatureSupport(ID3D11Device1* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device1_GetPrivateData(ID3D11Device1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateData(ID3D11Device1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetPrivateDataInterface(ID3D11Device1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device1_GetFeatureLevel(ID3D11Device1* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device1_GetCreationFlags(ID3D11Device1* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device1_GetDeviceRemovedReason(ID3D11Device1* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device1_GetImmediateContext(ID3D11Device1* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_SetExceptionMode(ID3D11Device1* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device1_GetExceptionMode(ID3D11Device1* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device1_GetImmediateContext1(ID3D11Device1* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeferredContext1(ID3D11Device1* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateBlendState1(ID3D11Device1* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateRasterizerState1(ID3D11Device1* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_CreateDeviceContextState(ID3D11Device1* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResource1(ID3D11Device1* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device1_OpenSharedResourceByName(ID3D11Device1* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11_1_h__ */
diff --git a/d3d11_2.h b/d3d11_2.h
new file mode 100644
index 0000000..97c34e0
--- /dev/null
+++ b/d3d11_2.h
@@ -0,0 +1,2249 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11_2.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11_2_h__
+#define __d3d11_2_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11DeviceContext2_FWD_DEFINED__
+#define __ID3D11DeviceContext2_FWD_DEFINED__
+typedef interface ID3D11DeviceContext2 ID3D11DeviceContext2;
+#ifdef __cplusplus
+interface ID3D11DeviceContext2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Device2_FWD_DEFINED__
+#define __ID3D11Device2_FWD_DEFINED__
+typedef interface ID3D11Device2 ID3D11Device2;
+#ifdef __cplusplus
+interface ID3D11Device2;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi1_3.h>
+#include <d3dcommon.h>
+#include <d3d11_1.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define D3D11_PACKED_TILE (0xffffffff)
+
+typedef enum D3D11_TILE_MAPPING_FLAG {
+ D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1
+} D3D11_TILE_MAPPING_FLAG;
+typedef enum D3D11_TILE_RANGE_FLAG {
+ D3D11_TILE_RANGE_NULL = 0x1,
+ D3D11_TILE_RANGE_SKIP = 0x2,
+ D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4
+} D3D11_TILE_RANGE_FLAG;
+typedef enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG {
+ D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1
+} D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG;
+typedef enum D3D11_TILE_COPY_FLAG {
+ D3D11_TILE_COPY_NO_OVERWRITE = 0x1,
+ D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
+ D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
+} D3D11_TILE_COPY_FLAG;
+typedef struct D3D11_TILED_RESOURCE_COORDINATE {
+ UINT X;
+ UINT Y;
+ UINT Z;
+ UINT Subresource;
+} D3D11_TILED_RESOURCE_COORDINATE;
+typedef struct D3D11_TILE_REGION_SIZE {
+ UINT NumTiles;
+ WINBOOL bUseBox;
+ UINT Width;
+ UINT16 Height;
+ UINT16 Depth;
+} D3D11_TILE_REGION_SIZE;
+typedef struct D3D11_SUBRESOURCE_TILING {
+ UINT WidthInTiles;
+ UINT16 HeightInTiles;
+ UINT16 DepthInTiles;
+ UINT StartTileIndexInOverallResource;
+} D3D11_SUBRESOURCE_TILING;
+typedef struct D3D11_TILE_SHAPE {
+ UINT WidthInTexels;
+ UINT HeightInTexels;
+ UINT DepthInTexels;
+} D3D11_TILE_SHAPE;
+typedef struct D3D11_PACKED_MIP_DESC {
+ UINT8 NumStandardMips;
+ UINT8 NumPackedMips;
+ UINT NumTilesForPackedMips;
+ UINT StartTileIndexInOverallResource;
+} D3D11_PACKED_MIP_DESC;
+/*****************************************************************************
+ * ID3D11DeviceContext2 interface
+ */
+#ifndef __ID3D11DeviceContext2_INTERFACE_DEFINED__
+#define __ID3D11DeviceContext2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceContext2, 0x420d5b32, 0xb90c, 0x4da4, 0xbe,0xf0, 0x35,0x9f,0x6a,0x24,0xa8,0x3a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("420d5b32-b90c-4da4-bef0-359f6a24a83a")
+ID3D11DeviceContext2 : public ID3D11DeviceContext1
+{
+ virtual HRESULT STDMETHODCALLTYPE UpdateTileMappings(
+ ID3D11Resource *resource,
+ UINT region_count,
+ const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D11_TILE_REGION_SIZE *region_sizes,
+ ID3D11Buffer *pool,
+ UINT range_count,
+ const UINT *range_flags,
+ const UINT *pool_start_offsets,
+ const UINT *range_tile_counts,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CopyTileMappings(
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ ID3D11Resource *src_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *region_size,
+ UINT flags) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyTiles(
+ ID3D11Resource *resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,
+ const D3D11_TILE_REGION_SIZE *size,
+ ID3D11Buffer *buffer,
+ UINT64 start_offset,
+ UINT flags) = 0;
+
+ virtual void STDMETHODCALLTYPE UpdateTiles(
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *dst_region_size,
+ const void *src_data,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResizeTilePool(
+ ID3D11Buffer *pool,
+ UINT64 size) = 0;
+
+ virtual void STDMETHODCALLTYPE TiledResourceBarrier(
+ ID3D11DeviceChild *before_barrier,
+ ID3D11DeviceChild *after_barrier) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE IsAnnotationEnabled(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMarkerInt(
+ const WCHAR *label,
+ int data) = 0;
+
+ virtual void STDMETHODCALLTYPE BeginEventInt(
+ const WCHAR *label,
+ int data) = 0;
+
+ virtual void STDMETHODCALLTYPE EndEvent(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceContext2, 0x420d5b32, 0xb90c, 0x4da4, 0xbe,0xf0, 0x35,0x9f,0x6a,0x24,0xa8,0x3a)
+#endif
+#else
+typedef struct ID3D11DeviceContext2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceContext2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceContext2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceContext2 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceContext2 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceContext2 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceContext2 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DeviceContext methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D11DeviceContext2 *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D11DeviceContext2 *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D11DeviceContext2 *This,
+ ID3D11InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D11DeviceContext2 *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D11DeviceContext2 *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D11DeviceContext2 *This,
+ D3D11_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Asynchronous *pAsync);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Asynchronous *pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D11DeviceContext2 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext2 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D11DeviceContext2 *This,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D11DeviceContext2 *This);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D11DeviceContext2 *This,
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ);
+
+ void (STDMETHODCALLTYPE *DispatchIndirect)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D11DeviceContext2 *This,
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D11DeviceContext2 *This,
+ UINT NumRects,
+ const D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *CopyStructureCount)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D11DeviceContext2 *This,
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D11DeviceContext2 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D11DeviceContext2 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D11DeviceContext2 *This,
+ ID3D11ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *SetResourceMinLOD)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pResource,
+ FLOAT MinLOD);
+
+ FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandList)(
+ ID3D11DeviceContext2 *This,
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState);
+
+ void (STDMETHODCALLTYPE *HSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSSetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *CSSetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSSetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D11DeviceContext2 *This,
+ ID3D11InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D11DeviceContext2 *This,
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D11DeviceContext2 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext2 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D11DeviceContext2 *This,
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D11DeviceContext2 *This,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D11DeviceContext2 *This,
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D11DeviceContext2 *This,
+ UINT *pNumRects,
+ D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *HSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSGetShaderResources)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *CSGetShader)(
+ ID3D11DeviceContext2 *This,
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSGetSamplers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D11DeviceContext2 *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D11DeviceContext2 *This);
+
+ D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D11DeviceContext2 *This);
+
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11DeviceContext2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
+ ID3D11DeviceContext2 *This,
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList);
+
+ /*** ID3D11DeviceContext1 methods ***/
+ void (STDMETHODCALLTYPE *CopySubresourceRegion1)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource1)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *DiscardView)(
+ ID3D11DeviceContext2 *This,
+ ID3D11View *pResourceView);
+
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers1)(
+ ID3D11DeviceContext2 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *SwapDeviceContextState)(
+ ID3D11DeviceContext2 *This,
+ ID3DDeviceContextState *pState,
+ ID3DDeviceContextState **ppPreviousState);
+
+ void (STDMETHODCALLTYPE *ClearView)(
+ ID3D11DeviceContext2 *This,
+ ID3D11View *pView,
+ const FLOAT Color[4],
+ const D3D11_RECT *pRect,
+ UINT NumRects);
+
+ void (STDMETHODCALLTYPE *DiscardView1)(
+ ID3D11DeviceContext2 *This,
+ ID3D11View *pResourceView,
+ const D3D11_RECT *pRects,
+ UINT NumRects);
+
+ /*** ID3D11DeviceContext2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *UpdateTileMappings)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *resource,
+ UINT region_count,
+ const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D11_TILE_REGION_SIZE *region_sizes,
+ ID3D11Buffer *pool,
+ UINT range_count,
+ const UINT *range_flags,
+ const UINT *pool_start_offsets,
+ const UINT *range_tile_counts,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *CopyTileMappings)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ ID3D11Resource *src_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *region_size,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,
+ const D3D11_TILE_REGION_SIZE *size,
+ ID3D11Buffer *buffer,
+ UINT64 start_offset,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *UpdateTiles)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *dst_region_size,
+ const void *src_data,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTilePool)(
+ ID3D11DeviceContext2 *This,
+ ID3D11Buffer *pool,
+ UINT64 size);
+
+ void (STDMETHODCALLTYPE *TiledResourceBarrier)(
+ ID3D11DeviceContext2 *This,
+ ID3D11DeviceChild *before_barrier,
+ ID3D11DeviceChild *after_barrier);
+
+ WINBOOL (STDMETHODCALLTYPE *IsAnnotationEnabled)(
+ ID3D11DeviceContext2 *This);
+
+ void (STDMETHODCALLTYPE *SetMarkerInt)(
+ ID3D11DeviceContext2 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *BeginEventInt)(
+ ID3D11DeviceContext2 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D11DeviceContext2 *This);
+
+ END_INTERFACE
+} ID3D11DeviceContext2Vtbl;
+
+interface ID3D11DeviceContext2 {
+ CONST_VTBL ID3D11DeviceContext2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceContext2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceContext2_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceContext2_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceContext2_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceContext2_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DeviceContext methods ***/
+#define ID3D11DeviceContext2_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D11DeviceContext2_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D11DeviceContext2_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
+#define ID3D11DeviceContext2_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
+#define ID3D11DeviceContext2_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D11DeviceContext2_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext2_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext2_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D11DeviceContext2_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
+#define ID3D11DeviceContext2_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
+#define ID3D11DeviceContext2_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
+#define ID3D11DeviceContext2_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D11DeviceContext2_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D11DeviceContext2_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext2_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D11DeviceContext2_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D11DeviceContext2_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D11DeviceContext2_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D11DeviceContext2_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext2_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
+#define ID3D11DeviceContext2_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext2_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D11DeviceContext2_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D11DeviceContext2_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D11DeviceContext2_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D11DeviceContext2_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D11DeviceContext2_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D11DeviceContext2_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
+#define ID3D11DeviceContext2_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D11DeviceContext2_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext2_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext2_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D11DeviceContext2_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D11DeviceContext2_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
+#define ID3D11DeviceContext2_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
+#define ID3D11DeviceContext2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D11DeviceContext2_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
+#define ID3D11DeviceContext2_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext2_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext2_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D11DeviceContext2_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext2_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext2_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D11DeviceContext2_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D11DeviceContext2_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D11DeviceContext2_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext2_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D11DeviceContext2_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D11DeviceContext2_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
+#define ID3D11DeviceContext2_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D11DeviceContext2_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
+#define ID3D11DeviceContext2_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
+#define ID3D11DeviceContext2_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext2_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext2_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext2_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext2_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext2_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D11DeviceContext2_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D11DeviceContext2_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D11DeviceContext2_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#define ID3D11DeviceContext2_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
+/*** ID3D11DeviceContext1 methods ***/
+#define ID3D11DeviceContext2_CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) (This)->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags)
+#define ID3D11DeviceContext2_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) (This)->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags)
+#define ID3D11DeviceContext2_DiscardResource(This,pResource) (This)->lpVtbl->DiscardResource(This,pResource)
+#define ID3D11DeviceContext2_DiscardView(This,pResourceView) (This)->lpVtbl->DiscardView(This,pResourceView)
+#define ID3D11DeviceContext2_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext2_SwapDeviceContextState(This,pState,ppPreviousState) (This)->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState)
+#define ID3D11DeviceContext2_ClearView(This,pView,Color,pRect,NumRects) (This)->lpVtbl->ClearView(This,pView,Color,pRect,NumRects)
+#define ID3D11DeviceContext2_DiscardView1(This,pResourceView,pRects,NumRects) (This)->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects)
+/*** ID3D11DeviceContext2 methods ***/
+#define ID3D11DeviceContext2_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags)
+#define ID3D11DeviceContext2_CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags)
+#define ID3D11DeviceContext2_CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags) (This)->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags)
+#define ID3D11DeviceContext2_UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags) (This)->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags)
+#define ID3D11DeviceContext2_ResizeTilePool(This,pool,size) (This)->lpVtbl->ResizeTilePool(This,pool,size)
+#define ID3D11DeviceContext2_TiledResourceBarrier(This,before_barrier,after_barrier) (This)->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier)
+#define ID3D11DeviceContext2_IsAnnotationEnabled(This) (This)->lpVtbl->IsAnnotationEnabled(This)
+#define ID3D11DeviceContext2_SetMarkerInt(This,label,data) (This)->lpVtbl->SetMarkerInt(This,label,data)
+#define ID3D11DeviceContext2_BeginEventInt(This,label,data) (This)->lpVtbl->BeginEventInt(This,label,data)
+#define ID3D11DeviceContext2_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext2_QueryInterface(ID3D11DeviceContext2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext2_AddRef(ID3D11DeviceContext2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext2_Release(ID3D11DeviceContext2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceContext2_GetDevice(ID3D11DeviceContext2* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_GetPrivateData(ID3D11DeviceContext2* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_SetPrivateData(ID3D11DeviceContext2* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_SetPrivateDataInterface(ID3D11DeviceContext2* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DeviceContext methods ***/
+static FORCEINLINE void ID3D11DeviceContext2_VSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSSetShader(ID3D11DeviceContext2* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSSetShader(ID3D11DeviceContext2* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawIndexed(ID3D11DeviceContext2* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext2_Draw(ID3D11DeviceContext2* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_Map(ID3D11DeviceContext2* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
+ return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
+}
+static FORCEINLINE void ID3D11DeviceContext2_Unmap(ID3D11DeviceContext2* This,ID3D11Resource *pResource,UINT Subresource) {
+ This->lpVtbl->Unmap(This,pResource,Subresource);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IASetInputLayout(ID3D11DeviceContext2* This,ID3D11InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IASetVertexBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IASetIndexBuffer(ID3D11DeviceContext2* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawIndexedInstanced(ID3D11DeviceContext2* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawInstanced(ID3D11DeviceContext2* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSSetShader(ID3D11DeviceContext2* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IASetPrimitiveTopology(ID3D11DeviceContext2* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_Begin(ID3D11DeviceContext2* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->Begin(This,pAsync);
+}
+static FORCEINLINE void ID3D11DeviceContext2_End(ID3D11DeviceContext2* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->End(This,pAsync);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_GetData(ID3D11DeviceContext2* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SetPredication(ID3D11DeviceContext2* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMSetRenderTargets(ID3D11DeviceContext2* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext2* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMSetBlendState(ID3D11DeviceContext2* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMSetDepthStencilState(ID3D11DeviceContext2* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SOSetTargets(ID3D11DeviceContext2* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawAuto(ID3D11DeviceContext2* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawIndexedInstancedIndirect(ID3D11DeviceContext2* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DrawInstancedIndirect(ID3D11DeviceContext2* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext2_Dispatch(ID3D11DeviceContext2* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
+ This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DispatchIndirect(ID3D11DeviceContext2* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSSetState(ID3D11DeviceContext2* This,ID3D11RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSSetViewports(ID3D11DeviceContext2* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSSetScissorRects(ID3D11DeviceContext2* This,UINT NumRects,const D3D11_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CopySubresourceRegion(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CopyResource(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D11DeviceContext2_UpdateSubresource(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CopyStructureCount(ID3D11DeviceContext2* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
+ This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearRenderTargetView(ID3D11DeviceContext2* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearUnorderedAccessViewUint(ID3D11DeviceContext2* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearUnorderedAccessViewFloat(ID3D11DeviceContext2* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearDepthStencilView(ID3D11DeviceContext2* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GenerateMips(ID3D11DeviceContext2* This,ID3D11ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SetResourceMinLOD(ID3D11DeviceContext2* This,ID3D11Resource *pResource,FLOAT MinLOD) {
+ This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
+}
+static FORCEINLINE FLOAT ID3D11DeviceContext2_GetResourceMinLOD(ID3D11DeviceContext2* This,ID3D11Resource *pResource) {
+ return This->lpVtbl->GetResourceMinLOD(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ResolveSubresource(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ExecuteCommandList(ID3D11DeviceContext2* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
+ This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSSetShader(ID3D11DeviceContext2* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSSetShader(ID3D11DeviceContext2* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetUnorderedAccessViews(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetShader(ID3D11DeviceContext2* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSGetShader(ID3D11DeviceContext2* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSGetShader(ID3D11DeviceContext2* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IAGetInputLayout(ID3D11DeviceContext2* This,ID3D11InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IAGetVertexBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IAGetIndexBuffer(ID3D11DeviceContext2* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSGetShader(ID3D11DeviceContext2* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_IAGetPrimitiveTopology(ID3D11DeviceContext2* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GetPredication(ID3D11DeviceContext2* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMGetRenderTargets(ID3D11DeviceContext2* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext2* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMGetBlendState(ID3D11DeviceContext2* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext2_OMGetDepthStencilState(ID3D11DeviceContext2* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SOGetTargets(ID3D11DeviceContext2* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSGetState(ID3D11DeviceContext2* This,ID3D11RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSGetViewports(ID3D11DeviceContext2* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext2_RSGetScissorRects(ID3D11DeviceContext2* This,UINT *pNumRects,D3D11_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSGetShader(ID3D11DeviceContext2* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSGetShader(ID3D11DeviceContext2* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetShaderResources(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetUnorderedAccessViews(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetShader(ID3D11DeviceContext2* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetSamplers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetConstantBuffers(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearState(ID3D11DeviceContext2* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D11DeviceContext2_Flush(ID3D11DeviceContext2* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext2_GetType(ID3D11DeviceContext2* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE UINT ID3D11DeviceContext2_GetContextFlags(ID3D11DeviceContext2* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_FinishCommandList(ID3D11DeviceContext2* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
+ return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
+}
+/*** ID3D11DeviceContext1 methods ***/
+static FORCEINLINE void ID3D11DeviceContext2_CopySubresourceRegion1(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox,UINT CopyFlags) {
+ This->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext2_UpdateSubresource1(ID3D11DeviceContext2* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch,UINT CopyFlags) {
+ This->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DiscardResource(ID3D11DeviceContext2* This,ID3D11Resource *pResource) {
+ This->lpVtbl->DiscardResource(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DiscardView(ID3D11DeviceContext2* This,ID3D11View *pResourceView) {
+ This->lpVtbl->DiscardView(This,pResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSSetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_VSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_HSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_GSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_PSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CSGetConstantBuffers1(ID3D11DeviceContext2* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SwapDeviceContextState(ID3D11DeviceContext2* This,ID3DDeviceContextState *pState,ID3DDeviceContextState **ppPreviousState) {
+ This->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState);
+}
+static FORCEINLINE void ID3D11DeviceContext2_ClearView(ID3D11DeviceContext2* This,ID3D11View *pView,const FLOAT Color[4],const D3D11_RECT *pRect,UINT NumRects) {
+ This->lpVtbl->ClearView(This,pView,Color,pRect,NumRects);
+}
+static FORCEINLINE void ID3D11DeviceContext2_DiscardView1(ID3D11DeviceContext2* This,ID3D11View *pResourceView,const D3D11_RECT *pRects,UINT NumRects) {
+ This->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects);
+}
+/*** ID3D11DeviceContext2 methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext2_UpdateTileMappings(ID3D11DeviceContext2* This,ID3D11Resource *resource,UINT region_count,const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D11_TILE_REGION_SIZE *region_sizes,ID3D11Buffer *pool,UINT range_count,const UINT *range_flags,const UINT *pool_start_offsets,const UINT *range_tile_counts,UINT flags) {
+ return This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_CopyTileMappings(ID3D11DeviceContext2* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,ID3D11Resource *src_resource,const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,const D3D11_TILE_REGION_SIZE *region_size,UINT flags) {
+ return This->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext2_CopyTiles(ID3D11DeviceContext2* This,ID3D11Resource *resource,const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,const D3D11_TILE_REGION_SIZE *size,ID3D11Buffer *buffer,UINT64 start_offset,UINT flags) {
+ This->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext2_UpdateTiles(ID3D11DeviceContext2* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,const D3D11_TILE_REGION_SIZE *dst_region_size,const void *src_data,UINT flags) {
+ This->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext2_ResizeTilePool(ID3D11DeviceContext2* This,ID3D11Buffer *pool,UINT64 size) {
+ return This->lpVtbl->ResizeTilePool(This,pool,size);
+}
+static FORCEINLINE void ID3D11DeviceContext2_TiledResourceBarrier(ID3D11DeviceContext2* This,ID3D11DeviceChild *before_barrier,ID3D11DeviceChild *after_barrier) {
+ This->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier);
+}
+static FORCEINLINE WINBOOL ID3D11DeviceContext2_IsAnnotationEnabled(ID3D11DeviceContext2* This) {
+ return This->lpVtbl->IsAnnotationEnabled(This);
+}
+static FORCEINLINE void ID3D11DeviceContext2_SetMarkerInt(ID3D11DeviceContext2* This,const WCHAR *label,int data) {
+ This->lpVtbl->SetMarkerInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext2_BeginEventInt(ID3D11DeviceContext2* This,const WCHAR *label,int data) {
+ This->lpVtbl->BeginEventInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext2_EndEvent(ID3D11DeviceContext2* This) {
+ This->lpVtbl->EndEvent(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceContext2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device2 interface
+ */
+#ifndef __ID3D11Device2_INTERFACE_DEFINED__
+#define __ID3D11Device2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device2, 0x9d06dffa, 0xd1e5, 0x4d07, 0x83,0xa8, 0x1b,0xb1,0x23,0xf2,0xf8,0x41);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9d06dffa-d1e5-4d07-83a8-1bb123f2f841")
+ID3D11Device2 : public ID3D11Device1
+{
+ virtual void STDMETHODCALLTYPE GetImmediateContext2(
+ ID3D11DeviceContext2 **context) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext2(
+ UINT flags,
+ ID3D11DeviceContext2 **context) = 0;
+
+ virtual void STDMETHODCALLTYPE GetResourceTiling(
+ ID3D11Resource *resource,
+ UINT *tile_count,
+ D3D11_PACKED_MIP_DESC *mip_desc,
+ D3D11_TILE_SHAPE *tile_shape,
+ UINT *subresource_tiling_count,
+ UINT first_subresource_tiling,
+ D3D11_SUBRESOURCE_TILING *subresource_tiling) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels1(
+ DXGI_FORMAT format,
+ UINT sample_count,
+ UINT flags,
+ UINT *quality_level_count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device2, 0x9d06dffa, 0xd1e5, 0x4d07, 0x83,0xa8, 0x1b,0xb1,0x23,0xf2,0xf8,0x41)
+#endif
+#else
+typedef struct ID3D11Device2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device2 *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device2 *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device2 *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device2 *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device2 *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device2 *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device2 *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device2 *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device2 *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device2 *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device2 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device2 *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device2 *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device2 *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device2 *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device2 *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device2 *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device2 *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device2 *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device2 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device2 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device2 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device2 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device2 *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device2 *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device2 *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device2 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device2 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device2 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device2 *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device2 *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device2 *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device2 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device2 *This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device2 *This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device2 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device2 *This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device2 *This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device2 *This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device2 *This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device2 *This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ /*** ID3D11Device2 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext2)(
+ ID3D11Device2 *This,
+ ID3D11DeviceContext2 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
+ ID3D11Device2 *This,
+ UINT flags,
+ ID3D11DeviceContext2 **context);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D11Device2 *This,
+ ID3D11Resource *resource,
+ UINT *tile_count,
+ D3D11_PACKED_MIP_DESC *mip_desc,
+ D3D11_TILE_SHAPE *tile_shape,
+ UINT *subresource_tiling_count,
+ UINT first_subresource_tiling,
+ D3D11_SUBRESOURCE_TILING *subresource_tiling);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
+ ID3D11Device2 *This,
+ DXGI_FORMAT format,
+ UINT sample_count,
+ UINT flags,
+ UINT *quality_level_count);
+
+ END_INTERFACE
+} ID3D11Device2Vtbl;
+
+interface ID3D11Device2 {
+ CONST_VTBL ID3D11Device2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device2_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device2_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device2_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device2_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device2_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device2_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device2_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device2_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device2_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device2_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device2_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device2_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device2_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device2_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device2_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device2_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device2_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device2_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device2_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device2_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device2_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device2_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device2_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device2_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device2_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device2_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device2_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device2_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device2_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device2_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device2_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device2_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device2_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device2_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device2_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device2_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device2_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device2_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device2_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device2_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device2_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device2_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device2_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device2_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device2_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device2_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+/*** ID3D11Device2 methods ***/
+#define ID3D11Device2_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
+#define ID3D11Device2_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
+#define ID3D11Device2_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
+#define ID3D11Device2_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device2_QueryInterface(ID3D11Device2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device2_AddRef(ID3D11Device2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device2_Release(ID3D11Device2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device2_CreateBuffer(ID3D11Device2* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateTexture1D(ID3D11Device2* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateTexture2D(ID3D11Device2* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateTexture3D(ID3D11Device2* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateShaderResourceView(ID3D11Device2* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateUnorderedAccessView(ID3D11Device2* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateRenderTargetView(ID3D11Device2* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDepthStencilView(ID3D11Device2* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateInputLayout(ID3D11Device2* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateVertexShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateGeometryShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateGeometryShaderWithStreamOutput(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreatePixelShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateHullShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDomainShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateComputeShader(ID3D11Device2* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateClassLinkage(ID3D11Device2* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateBlendState(ID3D11Device2* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDepthStencilState(ID3D11Device2* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateRasterizerState(ID3D11Device2* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateSamplerState(ID3D11Device2* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateQuery(ID3D11Device2* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreatePredicate(ID3D11Device2* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateCounter(ID3D11Device2* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDeferredContext(ID3D11Device2* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device2_OpenSharedResource(ID3D11Device2* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CheckFormatSupport(ID3D11Device2* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CheckMultisampleQualityLevels(ID3D11Device2* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device2_CheckCounterInfo(ID3D11Device2* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CheckCounter(ID3D11Device2* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CheckFeatureSupport(ID3D11Device2* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device2_GetPrivateData(ID3D11Device2* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device2_SetPrivateData(ID3D11Device2* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device2_SetPrivateDataInterface(ID3D11Device2* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device2_GetFeatureLevel(ID3D11Device2* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device2_GetCreationFlags(ID3D11Device2* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device2_GetDeviceRemovedReason(ID3D11Device2* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device2_GetImmediateContext(ID3D11Device2* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device2_SetExceptionMode(ID3D11Device2* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device2_GetExceptionMode(ID3D11Device2* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device2_GetImmediateContext1(ID3D11Device2* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDeferredContext1(ID3D11Device2* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateBlendState1(ID3D11Device2* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateRasterizerState1(ID3D11Device2* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDeviceContextState(ID3D11Device2* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device2_OpenSharedResource1(ID3D11Device2* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device2_OpenSharedResourceByName(ID3D11Device2* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+/*** ID3D11Device2 methods ***/
+static FORCEINLINE void ID3D11Device2_GetImmediateContext2(ID3D11Device2* This,ID3D11DeviceContext2 **context) {
+ This->lpVtbl->GetImmediateContext2(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CreateDeferredContext2(ID3D11Device2* This,UINT flags,ID3D11DeviceContext2 **context) {
+ return This->lpVtbl->CreateDeferredContext2(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device2_GetResourceTiling(ID3D11Device2* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
+ This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
+}
+static FORCEINLINE HRESULT ID3D11Device2_CheckMultisampleQualityLevels1(ID3D11Device2* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
+ return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device2_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11_2_h__ */
diff --git a/d3d11_3.h b/d3d11_3.h
new file mode 100644
index 0000000..b0401b1
--- /dev/null
+++ b/d3d11_3.h
@@ -0,0 +1,5238 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11_3.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11_3_h__
+#define __d3d11_3_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11Texture2D1_FWD_DEFINED__
+#define __ID3D11Texture2D1_FWD_DEFINED__
+typedef interface ID3D11Texture2D1 ID3D11Texture2D1;
+#ifdef __cplusplus
+interface ID3D11Texture2D1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Texture3D1_FWD_DEFINED__
+#define __ID3D11Texture3D1_FWD_DEFINED__
+typedef interface ID3D11Texture3D1 ID3D11Texture3D1;
+#ifdef __cplusplus
+interface ID3D11Texture3D1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11RasterizerState2_FWD_DEFINED__
+#define __ID3D11RasterizerState2_FWD_DEFINED__
+typedef interface ID3D11RasterizerState2 ID3D11RasterizerState2;
+#ifdef __cplusplus
+interface ID3D11RasterizerState2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11ShaderResourceView1_FWD_DEFINED__
+#define __ID3D11ShaderResourceView1_FWD_DEFINED__
+typedef interface ID3D11ShaderResourceView1 ID3D11ShaderResourceView1;
+#ifdef __cplusplus
+interface ID3D11ShaderResourceView1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11RenderTargetView1_FWD_DEFINED__
+#define __ID3D11RenderTargetView1_FWD_DEFINED__
+typedef interface ID3D11RenderTargetView1 ID3D11RenderTargetView1;
+#ifdef __cplusplus
+interface ID3D11RenderTargetView1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11UnorderedAccessView1_FWD_DEFINED__
+#define __ID3D11UnorderedAccessView1_FWD_DEFINED__
+typedef interface ID3D11UnorderedAccessView1 ID3D11UnorderedAccessView1;
+#ifdef __cplusplus
+interface ID3D11UnorderedAccessView1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Query1_FWD_DEFINED__
+#define __ID3D11Query1_FWD_DEFINED__
+typedef interface ID3D11Query1 ID3D11Query1;
+#ifdef __cplusplus
+interface ID3D11Query1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DeviceContext3_FWD_DEFINED__
+#define __ID3D11DeviceContext3_FWD_DEFINED__
+typedef interface ID3D11DeviceContext3 ID3D11DeviceContext3;
+#ifdef __cplusplus
+interface ID3D11DeviceContext3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Fence_FWD_DEFINED__
+#define __ID3D11Fence_FWD_DEFINED__
+typedef interface ID3D11Fence ID3D11Fence;
+#ifdef __cplusplus
+interface ID3D11Fence;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11DeviceContext4_FWD_DEFINED__
+#define __ID3D11DeviceContext4_FWD_DEFINED__
+typedef interface ID3D11DeviceContext4 ID3D11DeviceContext4;
+#ifdef __cplusplus
+interface ID3D11DeviceContext4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Device3_FWD_DEFINED__
+#define __ID3D11Device3_FWD_DEFINED__
+typedef interface ID3D11Device3 ID3D11Device3;
+#ifdef __cplusplus
+interface ID3D11Device3;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi1_3.h>
+#include <d3dcommon.h>
+#include <d3d11_2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum D3D11_CONTEXT_TYPE {
+ D3D11_CONTEXT_TYPE_ALL = 0x0,
+ D3D11_CONTEXT_TYPE_3D = 0x1,
+ D3D11_CONTEXT_TYPE_COMPUTE = 0x2,
+ D3D11_CONTEXT_TYPE_COPY = 0x3,
+ D3D11_CONTEXT_TYPE_VIDEO = 0x4
+} D3D11_CONTEXT_TYPE;
+typedef enum D3D11_TEXTURE_LAYOUT {
+ D3D11_TEXTURE_LAYOUT_UNDEFINED = 0x0,
+ D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 0x1,
+ D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 0x2
+} D3D11_TEXTURE_LAYOUT;
+typedef enum D3D11_CONSERVATIVE_RASTERIZATION_MODE {
+ D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0x0,
+ D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON = 0x1
+} D3D11_CONSERVATIVE_RASTERIZATION_MODE;
+typedef enum D3D11_FENCE_FLAG {
+ D3D11_FENCE_FLAG_NONE = 0x1,
+ D3D11_FENCE_FLAG_SHARED = 0x2,
+ D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4,
+ D3D11_FENCE_FLAG_NON_MONITORED = 0x8
+} D3D11_FENCE_FLAG;
+typedef struct D3D11_TEXTURE2D_DESC1 {
+ UINT Width;
+ UINT Height;
+ UINT MipLevels;
+ UINT ArraySize;
+ DXGI_FORMAT Format;
+ DXGI_SAMPLE_DESC SampleDesc;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+ D3D11_TEXTURE_LAYOUT TextureLayout;
+} D3D11_TEXTURE2D_DESC1;
+typedef struct D3D11_TEXTURE3D_DESC1 {
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT MipLevels;
+ DXGI_FORMAT Format;
+ D3D11_USAGE Usage;
+ UINT BindFlags;
+ UINT CPUAccessFlags;
+ UINT MiscFlags;
+ D3D11_TEXTURE_LAYOUT TextureLayout;
+} D3D11_TEXTURE3D_DESC1;
+typedef struct D3D11_RASTERIZER_DESC2 {
+ D3D11_FILL_MODE FillMode;
+ D3D11_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ int DepthBias;
+ float DepthBiasClamp;
+ float SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL ScissorEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+ UINT ForcedSampleCount;
+ D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
+} D3D11_RASTERIZER_DESC2;
+typedef struct D3D11_TEX2D_SRV1 {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT PlaneSlice;
+} D3D11_TEX2D_SRV1;
+typedef struct D3D11_TEX2D_ARRAY_SRV1 {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+} D3D11_TEX2D_ARRAY_SRV1;
+typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC1 {
+ DXGI_FORMAT Format;
+ D3D11_SRV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_SRV Buffer;
+ D3D11_TEX1D_SRV Texture1D;
+ D3D11_TEX1D_ARRAY_SRV Texture1DArray;
+ D3D11_TEX2D_SRV1 Texture2D;
+ D3D11_TEX2D_ARRAY_SRV1 Texture2DArray;
+ D3D11_TEX2DMS_SRV Texture2DMS;
+ D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
+ D3D11_TEX3D_SRV Texture3D;
+ D3D11_TEXCUBE_SRV TextureCube;
+ D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
+ D3D11_BUFFEREX_SRV BufferEx;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_SHADER_RESOURCE_VIEW_DESC1;
+typedef struct D3D11_TEX2D_RTV1 {
+ UINT MipSlice;
+ UINT PlaneSlice;
+} D3D11_TEX2D_RTV1;
+typedef struct D3D11_TEX2D_ARRAY_RTV1 {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+} D3D11_TEX2D_ARRAY_RTV1;
+typedef struct D3D11_RENDER_TARGET_VIEW_DESC1 {
+ DXGI_FORMAT Format;
+ D3D11_RTV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_RTV Buffer;
+ D3D11_TEX1D_RTV Texture1D;
+ D3D11_TEX1D_ARRAY_RTV Texture1DArray;
+ D3D11_TEX2D_RTV1 Texture2D;
+ D3D11_TEX2D_ARRAY_RTV1 Texture2DArray;
+ D3D11_TEX2DMS_RTV Texture2DMS;
+ D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
+ D3D11_TEX3D_RTV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_RENDER_TARGET_VIEW_DESC1;
+typedef struct D3D11_TEX2D_UAV1 {
+ UINT MipSlice;
+ UINT PlaneSlice;
+} D3D11_TEX2D_UAV1;
+typedef struct D3D11_TEX2D_ARRAY_UAV1 {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+} D3D11_TEX2D_ARRAY_UAV1;
+typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC1 {
+ DXGI_FORMAT Format;
+ D3D11_UAV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D11_BUFFER_UAV Buffer;
+ D3D11_TEX1D_UAV Texture1D;
+ D3D11_TEX1D_ARRAY_UAV Texture1DArray;
+ D3D11_TEX2D_UAV1 Texture2D;
+ D3D11_TEX2D_ARRAY_UAV1 Texture2DArray;
+ D3D11_TEX3D_UAV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D11_UNORDERED_ACCESS_VIEW_DESC1;
+typedef struct D3D11_QUERY_DESC1 {
+ D3D11_QUERY Query;
+ UINT MiscFlags;
+ D3D11_CONTEXT_TYPE ContextType;
+} D3D11_QUERY_DESC1;
+/*****************************************************************************
+ * ID3D11Texture2D1 interface
+ */
+#ifndef __ID3D11Texture2D1_INTERFACE_DEFINED__
+#define __ID3D11Texture2D1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Texture2D1, 0x51218251, 0x1e33, 0x4617, 0x9c,0xcb, 0x4d,0x3a,0x43,0x67,0xe7,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51218251-1e33-4617-9ccb-4d3a4367e7bb")
+ID3D11Texture2D1 : public ID3D11Texture2D
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_TEXTURE2D_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Texture2D1, 0x51218251, 0x1e33, 0x4617, 0x9c,0xcb, 0x4d,0x3a,0x43,0x67,0xe7,0xbb)
+#endif
+#else
+typedef struct ID3D11Texture2D1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Texture2D1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Texture2D1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Texture2D1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Texture2D1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Texture2D1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Texture2D1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Texture2D1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Texture2D1 *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Texture2D1 *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Texture2D1 *This);
+
+ /*** ID3D11Texture2D methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Texture2D1 *This,
+ D3D11_TEXTURE2D_DESC *pDesc);
+
+ /*** ID3D11Texture2D1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11Texture2D1 *This,
+ D3D11_TEXTURE2D_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11Texture2D1Vtbl;
+
+interface ID3D11Texture2D1 {
+ CONST_VTBL ID3D11Texture2D1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Texture2D1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Texture2D1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Texture2D1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Texture2D1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Texture2D1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Texture2D1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Texture2D1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Texture2D1_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Texture2D1_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Texture2D1_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Texture2D methods ***/
+#define ID3D11Texture2D1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11Texture2D1 methods ***/
+#define ID3D11Texture2D1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Texture2D1_QueryInterface(ID3D11Texture2D1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Texture2D1_AddRef(ID3D11Texture2D1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Texture2D1_Release(ID3D11Texture2D1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Texture2D1_GetDevice(ID3D11Texture2D1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D1_GetPrivateData(ID3D11Texture2D1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D1_SetPrivateData(ID3D11Texture2D1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture2D1_SetPrivateDataInterface(ID3D11Texture2D1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Texture2D1_GetType(ID3D11Texture2D1* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Texture2D1_SetEvictionPriority(ID3D11Texture2D1* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Texture2D1_GetEvictionPriority(ID3D11Texture2D1* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Texture2D methods ***/
+static FORCEINLINE void ID3D11Texture2D1_GetDesc(ID3D11Texture2D1* This,D3D11_TEXTURE2D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11Texture2D1 methods ***/
+static FORCEINLINE void ID3D11Texture2D1_GetDesc1(ID3D11Texture2D1* This,D3D11_TEXTURE2D_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Texture2D1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Texture3D1 interface
+ */
+#ifndef __ID3D11Texture3D1_INTERFACE_DEFINED__
+#define __ID3D11Texture3D1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Texture3D1, 0x0c711683, 0x2853, 0x4846, 0x9b,0xb0, 0xf3,0xe6,0x06,0x39,0xe4,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0c711683-2853-4846-9bb0-f3e60639e46a")
+ID3D11Texture3D1 : public ID3D11Texture3D
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_TEXTURE3D_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Texture3D1, 0x0c711683, 0x2853, 0x4846, 0x9b,0xb0, 0xf3,0xe6,0x06,0x39,0xe4,0x6a)
+#endif
+#else
+typedef struct ID3D11Texture3D1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Texture3D1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Texture3D1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Texture3D1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Texture3D1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Texture3D1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Texture3D1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Texture3D1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Resource methods ***/
+ void (STDMETHODCALLTYPE *GetType)(
+ ID3D11Texture3D1 *This,
+ D3D11_RESOURCE_DIMENSION *pResourceDimension);
+
+ void (STDMETHODCALLTYPE *SetEvictionPriority)(
+ ID3D11Texture3D1 *This,
+ UINT EvictionPriority);
+
+ UINT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ ID3D11Texture3D1 *This);
+
+ /*** ID3D11Texture3D methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Texture3D1 *This,
+ D3D11_TEXTURE3D_DESC *pDesc);
+
+ /*** ID3D11Texture3D1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11Texture3D1 *This,
+ D3D11_TEXTURE3D_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11Texture3D1Vtbl;
+
+interface ID3D11Texture3D1 {
+ CONST_VTBL ID3D11Texture3D1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Texture3D1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Texture3D1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Texture3D1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Texture3D1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Texture3D1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Texture3D1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Texture3D1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Resource methods ***/
+#define ID3D11Texture3D1_GetType(This,pResourceDimension) (This)->lpVtbl->GetType(This,pResourceDimension)
+#define ID3D11Texture3D1_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define ID3D11Texture3D1_GetEvictionPriority(This) (This)->lpVtbl->GetEvictionPriority(This)
+/*** ID3D11Texture3D methods ***/
+#define ID3D11Texture3D1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11Texture3D1 methods ***/
+#define ID3D11Texture3D1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Texture3D1_QueryInterface(ID3D11Texture3D1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Texture3D1_AddRef(ID3D11Texture3D1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Texture3D1_Release(ID3D11Texture3D1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Texture3D1_GetDevice(ID3D11Texture3D1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D1_GetPrivateData(ID3D11Texture3D1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D1_SetPrivateData(ID3D11Texture3D1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Texture3D1_SetPrivateDataInterface(ID3D11Texture3D1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Resource methods ***/
+static FORCEINLINE void ID3D11Texture3D1_GetType(ID3D11Texture3D1* This,D3D11_RESOURCE_DIMENSION *pResourceDimension) {
+ This->lpVtbl->GetType(This,pResourceDimension);
+}
+static FORCEINLINE void ID3D11Texture3D1_SetEvictionPriority(ID3D11Texture3D1* This,UINT EvictionPriority) {
+ This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE UINT ID3D11Texture3D1_GetEvictionPriority(ID3D11Texture3D1* This) {
+ return This->lpVtbl->GetEvictionPriority(This);
+}
+/*** ID3D11Texture3D methods ***/
+static FORCEINLINE void ID3D11Texture3D1_GetDesc(ID3D11Texture3D1* This,D3D11_TEXTURE3D_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11Texture3D1 methods ***/
+static FORCEINLINE void ID3D11Texture3D1_GetDesc1(ID3D11Texture3D1* This,D3D11_TEXTURE3D_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Texture3D1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11RasterizerState2 interface
+ */
+#ifndef __ID3D11RasterizerState2_INTERFACE_DEFINED__
+#define __ID3D11RasterizerState2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RasterizerState2, 0x6fbd02fb, 0x209f, 0x46c4, 0xb0,0x59, 0x2e,0xd1,0x55,0x86,0xa6,0xac);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6fbd02fb-209f-46c4-b059-2ed15586a6ac")
+ID3D11RasterizerState2 : public ID3D11RasterizerState1
+{
+ virtual void STDMETHODCALLTYPE GetDesc2(
+ D3D11_RASTERIZER_DESC2 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RasterizerState2, 0x6fbd02fb, 0x209f, 0x46c4, 0xb0,0x59, 0x2e,0xd1,0x55,0x86,0xa6,0xac)
+#endif
+#else
+typedef struct ID3D11RasterizerState2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RasterizerState2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RasterizerState2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RasterizerState2 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RasterizerState2 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RasterizerState2 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RasterizerState2 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RasterizerState2 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11RasterizerState methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RasterizerState2 *This,
+ D3D11_RASTERIZER_DESC *pDesc);
+
+ /*** ID3D11RasterizerState1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11RasterizerState2 *This,
+ D3D11_RASTERIZER_DESC1 *pDesc);
+
+ /*** ID3D11RasterizerState2 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc2)(
+ ID3D11RasterizerState2 *This,
+ D3D11_RASTERIZER_DESC2 *desc);
+
+ END_INTERFACE
+} ID3D11RasterizerState2Vtbl;
+
+interface ID3D11RasterizerState2 {
+ CONST_VTBL ID3D11RasterizerState2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RasterizerState2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RasterizerState2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RasterizerState2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RasterizerState2_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RasterizerState2_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RasterizerState2_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RasterizerState2_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11RasterizerState methods ***/
+#define ID3D11RasterizerState2_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11RasterizerState1 methods ***/
+#define ID3D11RasterizerState2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+/*** ID3D11RasterizerState2 methods ***/
+#define ID3D11RasterizerState2_GetDesc2(This,desc) (This)->lpVtbl->GetDesc2(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RasterizerState2_QueryInterface(ID3D11RasterizerState2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState2_AddRef(ID3D11RasterizerState2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RasterizerState2_Release(ID3D11RasterizerState2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RasterizerState2_GetDevice(ID3D11RasterizerState2* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState2_GetPrivateData(ID3D11RasterizerState2* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState2_SetPrivateData(ID3D11RasterizerState2* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RasterizerState2_SetPrivateDataInterface(ID3D11RasterizerState2* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11RasterizerState methods ***/
+static FORCEINLINE void ID3D11RasterizerState2_GetDesc(ID3D11RasterizerState2* This,D3D11_RASTERIZER_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11RasterizerState1 methods ***/
+static FORCEINLINE void ID3D11RasterizerState2_GetDesc1(ID3D11RasterizerState2* This,D3D11_RASTERIZER_DESC1 *pDesc) {
+ This->lpVtbl->GetDesc1(This,pDesc);
+}
+/*** ID3D11RasterizerState2 methods ***/
+static FORCEINLINE void ID3D11RasterizerState2_GetDesc2(ID3D11RasterizerState2* This,D3D11_RASTERIZER_DESC2 *desc) {
+ This->lpVtbl->GetDesc2(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11RasterizerState2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11ShaderResourceView1 interface
+ */
+#ifndef __ID3D11ShaderResourceView1_INTERFACE_DEFINED__
+#define __ID3D11ShaderResourceView1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11ShaderResourceView1, 0x91308b87, 0x9040, 0x411d, 0x8c,0x67, 0xc3,0x92,0x53,0xce,0x38,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("91308b87-9040-411d-8c67-c39253ce3802")
+ID3D11ShaderResourceView1 : public ID3D11ShaderResourceView
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11ShaderResourceView1, 0x91308b87, 0x9040, 0x411d, 0x8c,0x67, 0xc3,0x92,0x53,0xce,0x38,0x02)
+#endif
+#else
+typedef struct ID3D11ShaderResourceView1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11ShaderResourceView1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11ShaderResourceView1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11ShaderResourceView1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11ShaderResourceView1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11ShaderResourceView1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11ShaderResourceView1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11ShaderResourceView1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11ShaderResourceView1 *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11ShaderResourceView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11ShaderResourceView1 *This,
+ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
+
+ /*** ID3D11ShaderResourceView1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11ShaderResourceView1 *This,
+ D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11ShaderResourceView1Vtbl;
+
+interface ID3D11ShaderResourceView1 {
+ CONST_VTBL ID3D11ShaderResourceView1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11ShaderResourceView1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11ShaderResourceView1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11ShaderResourceView1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11ShaderResourceView1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11ShaderResourceView1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11ShaderResourceView1_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11ShaderResourceView methods ***/
+#define ID3D11ShaderResourceView1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11ShaderResourceView1 methods ***/
+#define ID3D11ShaderResourceView1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11ShaderResourceView1_QueryInterface(ID3D11ShaderResourceView1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11ShaderResourceView1_AddRef(ID3D11ShaderResourceView1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11ShaderResourceView1_Release(ID3D11ShaderResourceView1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView1_GetDevice(ID3D11ShaderResourceView1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView1_GetPrivateData(ID3D11ShaderResourceView1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView1_SetPrivateData(ID3D11ShaderResourceView1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11ShaderResourceView1_SetPrivateDataInterface(ID3D11ShaderResourceView1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView1_GetResource(ID3D11ShaderResourceView1* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11ShaderResourceView methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView1_GetDesc(ID3D11ShaderResourceView1* This,D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11ShaderResourceView1 methods ***/
+static FORCEINLINE void ID3D11ShaderResourceView1_GetDesc1(ID3D11ShaderResourceView1* This,D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11ShaderResourceView1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11RenderTargetView1 interface
+ */
+#ifndef __ID3D11RenderTargetView1_INTERFACE_DEFINED__
+#define __ID3D11RenderTargetView1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11RenderTargetView1, 0xffbe2e23, 0xf011, 0x418a, 0xac,0x56, 0x5c,0xee,0xd7,0xc5,0xb9,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ffbe2e23-f011-418a-ac56-5ceed7c5b94b")
+ID3D11RenderTargetView1 : public ID3D11RenderTargetView
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_RENDER_TARGET_VIEW_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11RenderTargetView1, 0xffbe2e23, 0xf011, 0x418a, 0xac,0x56, 0x5c,0xee,0xd7,0xc5,0xb9,0x4b)
+#endif
+#else
+typedef struct ID3D11RenderTargetView1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11RenderTargetView1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11RenderTargetView1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11RenderTargetView1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11RenderTargetView1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11RenderTargetView1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11RenderTargetView1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11RenderTargetView1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11RenderTargetView1 *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11RenderTargetView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11RenderTargetView1 *This,
+ D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
+
+ /*** ID3D11RenderTargetView1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11RenderTargetView1 *This,
+ D3D11_RENDER_TARGET_VIEW_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11RenderTargetView1Vtbl;
+
+interface ID3D11RenderTargetView1 {
+ CONST_VTBL ID3D11RenderTargetView1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11RenderTargetView1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11RenderTargetView1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11RenderTargetView1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11RenderTargetView1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11RenderTargetView1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11RenderTargetView1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11RenderTargetView1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11RenderTargetView1_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11RenderTargetView methods ***/
+#define ID3D11RenderTargetView1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11RenderTargetView1 methods ***/
+#define ID3D11RenderTargetView1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11RenderTargetView1_QueryInterface(ID3D11RenderTargetView1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11RenderTargetView1_AddRef(ID3D11RenderTargetView1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11RenderTargetView1_Release(ID3D11RenderTargetView1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11RenderTargetView1_GetDevice(ID3D11RenderTargetView1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView1_GetPrivateData(ID3D11RenderTargetView1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView1_SetPrivateData(ID3D11RenderTargetView1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11RenderTargetView1_SetPrivateDataInterface(ID3D11RenderTargetView1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11RenderTargetView1_GetResource(ID3D11RenderTargetView1* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11RenderTargetView methods ***/
+static FORCEINLINE void ID3D11RenderTargetView1_GetDesc(ID3D11RenderTargetView1* This,D3D11_RENDER_TARGET_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11RenderTargetView1 methods ***/
+static FORCEINLINE void ID3D11RenderTargetView1_GetDesc1(ID3D11RenderTargetView1* This,D3D11_RENDER_TARGET_VIEW_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11RenderTargetView1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11UnorderedAccessView1 interface
+ */
+#ifndef __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__
+#define __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11UnorderedAccessView1, 0x7b3b6153, 0xa886, 0x4544, 0xab,0x37, 0x65,0x37,0xc8,0x50,0x04,0x03);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7b3b6153-a886-4544-ab37-6537c8500403")
+ID3D11UnorderedAccessView1 : public ID3D11UnorderedAccessView
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11UnorderedAccessView1, 0x7b3b6153, 0xa886, 0x4544, 0xab,0x37, 0x65,0x37,0xc8,0x50,0x04,0x03)
+#endif
+#else
+typedef struct ID3D11UnorderedAccessView1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11UnorderedAccessView1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11UnorderedAccessView1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11UnorderedAccessView1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11UnorderedAccessView1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11UnorderedAccessView1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11UnorderedAccessView1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11UnorderedAccessView1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11View methods ***/
+ void (STDMETHODCALLTYPE *GetResource)(
+ ID3D11UnorderedAccessView1 *This,
+ ID3D11Resource **ppResource);
+
+ /*** ID3D11UnorderedAccessView methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11UnorderedAccessView1 *This,
+ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
+
+ /*** ID3D11UnorderedAccessView1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11UnorderedAccessView1 *This,
+ D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11UnorderedAccessView1Vtbl;
+
+interface ID3D11UnorderedAccessView1 {
+ CONST_VTBL ID3D11UnorderedAccessView1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11UnorderedAccessView1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11UnorderedAccessView1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11UnorderedAccessView1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11UnorderedAccessView1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11UnorderedAccessView1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11UnorderedAccessView1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11UnorderedAccessView1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11View methods ***/
+#define ID3D11UnorderedAccessView1_GetResource(This,ppResource) (This)->lpVtbl->GetResource(This,ppResource)
+/*** ID3D11UnorderedAccessView methods ***/
+#define ID3D11UnorderedAccessView1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11UnorderedAccessView1 methods ***/
+#define ID3D11UnorderedAccessView1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView1_QueryInterface(ID3D11UnorderedAccessView1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11UnorderedAccessView1_AddRef(ID3D11UnorderedAccessView1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11UnorderedAccessView1_Release(ID3D11UnorderedAccessView1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView1_GetDevice(ID3D11UnorderedAccessView1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView1_GetPrivateData(ID3D11UnorderedAccessView1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView1_SetPrivateData(ID3D11UnorderedAccessView1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11UnorderedAccessView1_SetPrivateDataInterface(ID3D11UnorderedAccessView1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11View methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView1_GetResource(ID3D11UnorderedAccessView1* This,ID3D11Resource **ppResource) {
+ This->lpVtbl->GetResource(This,ppResource);
+}
+/*** ID3D11UnorderedAccessView methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView1_GetDesc(ID3D11UnorderedAccessView1* This,D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11UnorderedAccessView1 methods ***/
+static FORCEINLINE void ID3D11UnorderedAccessView1_GetDesc1(ID3D11UnorderedAccessView1* This,D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Query1 interface
+ */
+#ifndef __ID3D11Query1_INTERFACE_DEFINED__
+#define __ID3D11Query1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Query1, 0x631b4766, 0x36dc, 0x461d, 0x8d,0xb6, 0xc4,0x7e,0x13,0xe6,0x09,0x16);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("631b4766-36dc-461d-8db6-c47e13e60916")
+ID3D11Query1 : public ID3D11Query
+{
+ virtual void STDMETHODCALLTYPE GetDesc1(
+ D3D11_QUERY_DESC1 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Query1, 0x631b4766, 0x36dc, 0x461d, 0x8d,0xb6, 0xc4,0x7e,0x13,0xe6,0x09,0x16)
+#endif
+#else
+typedef struct ID3D11Query1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Query1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Query1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Query1 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Query1 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Query1 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Query1 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Query1 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Asynchronous methods ***/
+ UINT (STDMETHODCALLTYPE *GetDataSize)(
+ ID3D11Query1 *This);
+
+ /*** ID3D11Query methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ ID3D11Query1 *This,
+ D3D11_QUERY_DESC *pDesc);
+
+ /*** ID3D11Query1 methods ***/
+ void (STDMETHODCALLTYPE *GetDesc1)(
+ ID3D11Query1 *This,
+ D3D11_QUERY_DESC1 *desc);
+
+ END_INTERFACE
+} ID3D11Query1Vtbl;
+
+interface ID3D11Query1 {
+ CONST_VTBL ID3D11Query1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Query1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Query1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Query1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Query1_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Query1_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Query1_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Query1_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Asynchronous methods ***/
+#define ID3D11Query1_GetDataSize(This) (This)->lpVtbl->GetDataSize(This)
+/*** ID3D11Query methods ***/
+#define ID3D11Query1_GetDesc(This,pDesc) (This)->lpVtbl->GetDesc(This,pDesc)
+/*** ID3D11Query1 methods ***/
+#define ID3D11Query1_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Query1_QueryInterface(ID3D11Query1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Query1_AddRef(ID3D11Query1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Query1_Release(ID3D11Query1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Query1_GetDevice(ID3D11Query1* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Query1_GetPrivateData(ID3D11Query1* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Query1_SetPrivateData(ID3D11Query1* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Query1_SetPrivateDataInterface(ID3D11Query1* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Asynchronous methods ***/
+static FORCEINLINE UINT ID3D11Query1_GetDataSize(ID3D11Query1* This) {
+ return This->lpVtbl->GetDataSize(This);
+}
+/*** ID3D11Query methods ***/
+static FORCEINLINE void ID3D11Query1_GetDesc(ID3D11Query1* This,D3D11_QUERY_DESC *pDesc) {
+ This->lpVtbl->GetDesc(This,pDesc);
+}
+/*** ID3D11Query1 methods ***/
+static FORCEINLINE void ID3D11Query1_GetDesc1(ID3D11Query1* This,D3D11_QUERY_DESC1 *desc) {
+ This->lpVtbl->GetDesc1(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Query1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DeviceContext3 interface
+ */
+#ifndef __ID3D11DeviceContext3_INTERFACE_DEFINED__
+#define __ID3D11DeviceContext3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceContext3, 0xb4e3c01d, 0xe79e, 0x4637, 0x91,0xb2, 0x51,0x0e,0x9f,0x4c,0x9b,0x8f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b4e3c01d-e79e-4637-91b2-510e9f4c9b8f")
+ID3D11DeviceContext3 : public ID3D11DeviceContext2
+{
+ virtual void STDMETHODCALLTYPE Flush1(
+ D3D11_CONTEXT_TYPE type,
+ HANDLE event) = 0;
+
+ virtual void STDMETHODCALLTYPE SetHardwareProtectionState(
+ WINBOOL enable) = 0;
+
+ virtual void STDMETHODCALLTYPE GetHardwareProtectionState(
+ WINBOOL *enable) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceContext3, 0xb4e3c01d, 0xe79e, 0x4637, 0x91,0xb2, 0x51,0x0e,0x9f,0x4c,0x9b,0x8f)
+#endif
+#else
+typedef struct ID3D11DeviceContext3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceContext3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceContext3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceContext3 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceContext3 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceContext3 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceContext3 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DeviceContext methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D11DeviceContext3 *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D11DeviceContext3 *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D11DeviceContext3 *This,
+ ID3D11InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D11DeviceContext3 *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D11DeviceContext3 *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D11DeviceContext3 *This,
+ D3D11_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Asynchronous *pAsync);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Asynchronous *pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D11DeviceContext3 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext3 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D11DeviceContext3 *This,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D11DeviceContext3 *This);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D11DeviceContext3 *This,
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ);
+
+ void (STDMETHODCALLTYPE *DispatchIndirect)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D11DeviceContext3 *This,
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D11DeviceContext3 *This,
+ UINT NumRects,
+ const D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *CopyStructureCount)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D11DeviceContext3 *This,
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D11DeviceContext3 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D11DeviceContext3 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D11DeviceContext3 *This,
+ ID3D11ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *SetResourceMinLOD)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pResource,
+ FLOAT MinLOD);
+
+ FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandList)(
+ ID3D11DeviceContext3 *This,
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState);
+
+ void (STDMETHODCALLTYPE *HSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSSetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *CSSetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSSetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D11DeviceContext3 *This,
+ ID3D11InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D11DeviceContext3 *This,
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D11DeviceContext3 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext3 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D11DeviceContext3 *This,
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D11DeviceContext3 *This,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D11DeviceContext3 *This,
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D11DeviceContext3 *This,
+ UINT *pNumRects,
+ D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *HSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSGetShaderResources)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *CSGetShader)(
+ ID3D11DeviceContext3 *This,
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSGetSamplers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D11DeviceContext3 *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D11DeviceContext3 *This);
+
+ D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D11DeviceContext3 *This);
+
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11DeviceContext3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
+ ID3D11DeviceContext3 *This,
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList);
+
+ /*** ID3D11DeviceContext1 methods ***/
+ void (STDMETHODCALLTYPE *CopySubresourceRegion1)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource1)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *DiscardView)(
+ ID3D11DeviceContext3 *This,
+ ID3D11View *pResourceView);
+
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers1)(
+ ID3D11DeviceContext3 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *SwapDeviceContextState)(
+ ID3D11DeviceContext3 *This,
+ ID3DDeviceContextState *pState,
+ ID3DDeviceContextState **ppPreviousState);
+
+ void (STDMETHODCALLTYPE *ClearView)(
+ ID3D11DeviceContext3 *This,
+ ID3D11View *pView,
+ const FLOAT Color[4],
+ const D3D11_RECT *pRect,
+ UINT NumRects);
+
+ void (STDMETHODCALLTYPE *DiscardView1)(
+ ID3D11DeviceContext3 *This,
+ ID3D11View *pResourceView,
+ const D3D11_RECT *pRects,
+ UINT NumRects);
+
+ /*** ID3D11DeviceContext2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *UpdateTileMappings)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *resource,
+ UINT region_count,
+ const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D11_TILE_REGION_SIZE *region_sizes,
+ ID3D11Buffer *pool,
+ UINT range_count,
+ const UINT *range_flags,
+ const UINT *pool_start_offsets,
+ const UINT *range_tile_counts,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *CopyTileMappings)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ ID3D11Resource *src_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *region_size,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,
+ const D3D11_TILE_REGION_SIZE *size,
+ ID3D11Buffer *buffer,
+ UINT64 start_offset,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *UpdateTiles)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *dst_region_size,
+ const void *src_data,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTilePool)(
+ ID3D11DeviceContext3 *This,
+ ID3D11Buffer *pool,
+ UINT64 size);
+
+ void (STDMETHODCALLTYPE *TiledResourceBarrier)(
+ ID3D11DeviceContext3 *This,
+ ID3D11DeviceChild *before_barrier,
+ ID3D11DeviceChild *after_barrier);
+
+ WINBOOL (STDMETHODCALLTYPE *IsAnnotationEnabled)(
+ ID3D11DeviceContext3 *This);
+
+ void (STDMETHODCALLTYPE *SetMarkerInt)(
+ ID3D11DeviceContext3 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *BeginEventInt)(
+ ID3D11DeviceContext3 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D11DeviceContext3 *This);
+
+ /*** ID3D11DeviceContext3 methods ***/
+ void (STDMETHODCALLTYPE *Flush1)(
+ ID3D11DeviceContext3 *This,
+ D3D11_CONTEXT_TYPE type,
+ HANDLE event);
+
+ void (STDMETHODCALLTYPE *SetHardwareProtectionState)(
+ ID3D11DeviceContext3 *This,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *GetHardwareProtectionState)(
+ ID3D11DeviceContext3 *This,
+ WINBOOL *enable);
+
+ END_INTERFACE
+} ID3D11DeviceContext3Vtbl;
+
+interface ID3D11DeviceContext3 {
+ CONST_VTBL ID3D11DeviceContext3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceContext3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceContext3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceContext3_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceContext3_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceContext3_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceContext3_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceContext3_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DeviceContext methods ***/
+#define ID3D11DeviceContext3_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D11DeviceContext3_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D11DeviceContext3_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
+#define ID3D11DeviceContext3_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
+#define ID3D11DeviceContext3_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D11DeviceContext3_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext3_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext3_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D11DeviceContext3_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
+#define ID3D11DeviceContext3_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
+#define ID3D11DeviceContext3_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
+#define ID3D11DeviceContext3_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D11DeviceContext3_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D11DeviceContext3_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext3_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D11DeviceContext3_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D11DeviceContext3_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D11DeviceContext3_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D11DeviceContext3_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext3_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
+#define ID3D11DeviceContext3_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext3_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D11DeviceContext3_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D11DeviceContext3_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D11DeviceContext3_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D11DeviceContext3_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D11DeviceContext3_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D11DeviceContext3_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
+#define ID3D11DeviceContext3_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D11DeviceContext3_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext3_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext3_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D11DeviceContext3_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D11DeviceContext3_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
+#define ID3D11DeviceContext3_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
+#define ID3D11DeviceContext3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D11DeviceContext3_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
+#define ID3D11DeviceContext3_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext3_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext3_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D11DeviceContext3_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext3_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext3_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D11DeviceContext3_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D11DeviceContext3_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D11DeviceContext3_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext3_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D11DeviceContext3_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D11DeviceContext3_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
+#define ID3D11DeviceContext3_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D11DeviceContext3_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
+#define ID3D11DeviceContext3_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
+#define ID3D11DeviceContext3_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext3_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext3_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext3_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext3_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext3_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D11DeviceContext3_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D11DeviceContext3_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D11DeviceContext3_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#define ID3D11DeviceContext3_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
+/*** ID3D11DeviceContext1 methods ***/
+#define ID3D11DeviceContext3_CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) (This)->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags)
+#define ID3D11DeviceContext3_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) (This)->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags)
+#define ID3D11DeviceContext3_DiscardResource(This,pResource) (This)->lpVtbl->DiscardResource(This,pResource)
+#define ID3D11DeviceContext3_DiscardView(This,pResourceView) (This)->lpVtbl->DiscardView(This,pResourceView)
+#define ID3D11DeviceContext3_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext3_SwapDeviceContextState(This,pState,ppPreviousState) (This)->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState)
+#define ID3D11DeviceContext3_ClearView(This,pView,Color,pRect,NumRects) (This)->lpVtbl->ClearView(This,pView,Color,pRect,NumRects)
+#define ID3D11DeviceContext3_DiscardView1(This,pResourceView,pRects,NumRects) (This)->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects)
+/*** ID3D11DeviceContext2 methods ***/
+#define ID3D11DeviceContext3_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags)
+#define ID3D11DeviceContext3_CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags)
+#define ID3D11DeviceContext3_CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags) (This)->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags)
+#define ID3D11DeviceContext3_UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags) (This)->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags)
+#define ID3D11DeviceContext3_ResizeTilePool(This,pool,size) (This)->lpVtbl->ResizeTilePool(This,pool,size)
+#define ID3D11DeviceContext3_TiledResourceBarrier(This,before_barrier,after_barrier) (This)->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier)
+#define ID3D11DeviceContext3_IsAnnotationEnabled(This) (This)->lpVtbl->IsAnnotationEnabled(This)
+#define ID3D11DeviceContext3_SetMarkerInt(This,label,data) (This)->lpVtbl->SetMarkerInt(This,label,data)
+#define ID3D11DeviceContext3_BeginEventInt(This,label,data) (This)->lpVtbl->BeginEventInt(This,label,data)
+#define ID3D11DeviceContext3_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+/*** ID3D11DeviceContext3 methods ***/
+#define ID3D11DeviceContext3_Flush1(This,type,event) (This)->lpVtbl->Flush1(This,type,event)
+#define ID3D11DeviceContext3_SetHardwareProtectionState(This,enable) (This)->lpVtbl->SetHardwareProtectionState(This,enable)
+#define ID3D11DeviceContext3_GetHardwareProtectionState(This,enable) (This)->lpVtbl->GetHardwareProtectionState(This,enable)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext3_QueryInterface(ID3D11DeviceContext3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext3_AddRef(ID3D11DeviceContext3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext3_Release(ID3D11DeviceContext3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceContext3_GetDevice(ID3D11DeviceContext3* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_GetPrivateData(ID3D11DeviceContext3* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_SetPrivateData(ID3D11DeviceContext3* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_SetPrivateDataInterface(ID3D11DeviceContext3* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DeviceContext methods ***/
+static FORCEINLINE void ID3D11DeviceContext3_VSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSSetShader(ID3D11DeviceContext3* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSSetShader(ID3D11DeviceContext3* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawIndexed(ID3D11DeviceContext3* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext3_Draw(ID3D11DeviceContext3* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_Map(ID3D11DeviceContext3* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
+ return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
+}
+static FORCEINLINE void ID3D11DeviceContext3_Unmap(ID3D11DeviceContext3* This,ID3D11Resource *pResource,UINT Subresource) {
+ This->lpVtbl->Unmap(This,pResource,Subresource);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IASetInputLayout(ID3D11DeviceContext3* This,ID3D11InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IASetVertexBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IASetIndexBuffer(ID3D11DeviceContext3* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawIndexedInstanced(ID3D11DeviceContext3* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawInstanced(ID3D11DeviceContext3* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSSetShader(ID3D11DeviceContext3* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IASetPrimitiveTopology(ID3D11DeviceContext3* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_Begin(ID3D11DeviceContext3* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->Begin(This,pAsync);
+}
+static FORCEINLINE void ID3D11DeviceContext3_End(ID3D11DeviceContext3* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->End(This,pAsync);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_GetData(ID3D11DeviceContext3* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SetPredication(ID3D11DeviceContext3* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMSetRenderTargets(ID3D11DeviceContext3* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext3* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMSetBlendState(ID3D11DeviceContext3* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMSetDepthStencilState(ID3D11DeviceContext3* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SOSetTargets(ID3D11DeviceContext3* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawAuto(ID3D11DeviceContext3* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawIndexedInstancedIndirect(ID3D11DeviceContext3* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DrawInstancedIndirect(ID3D11DeviceContext3* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext3_Dispatch(ID3D11DeviceContext3* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
+ This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DispatchIndirect(ID3D11DeviceContext3* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSSetState(ID3D11DeviceContext3* This,ID3D11RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSSetViewports(ID3D11DeviceContext3* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSSetScissorRects(ID3D11DeviceContext3* This,UINT NumRects,const D3D11_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CopySubresourceRegion(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CopyResource(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D11DeviceContext3_UpdateSubresource(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CopyStructureCount(ID3D11DeviceContext3* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
+ This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearRenderTargetView(ID3D11DeviceContext3* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearUnorderedAccessViewUint(ID3D11DeviceContext3* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearUnorderedAccessViewFloat(ID3D11DeviceContext3* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearDepthStencilView(ID3D11DeviceContext3* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GenerateMips(ID3D11DeviceContext3* This,ID3D11ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SetResourceMinLOD(ID3D11DeviceContext3* This,ID3D11Resource *pResource,FLOAT MinLOD) {
+ This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
+}
+static FORCEINLINE FLOAT ID3D11DeviceContext3_GetResourceMinLOD(ID3D11DeviceContext3* This,ID3D11Resource *pResource) {
+ return This->lpVtbl->GetResourceMinLOD(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ResolveSubresource(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ExecuteCommandList(ID3D11DeviceContext3* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
+ This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSSetShader(ID3D11DeviceContext3* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSSetShader(ID3D11DeviceContext3* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetUnorderedAccessViews(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetShader(ID3D11DeviceContext3* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSGetShader(ID3D11DeviceContext3* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSGetShader(ID3D11DeviceContext3* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IAGetInputLayout(ID3D11DeviceContext3* This,ID3D11InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IAGetVertexBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IAGetIndexBuffer(ID3D11DeviceContext3* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSGetShader(ID3D11DeviceContext3* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_IAGetPrimitiveTopology(ID3D11DeviceContext3* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GetPredication(ID3D11DeviceContext3* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMGetRenderTargets(ID3D11DeviceContext3* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext3* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMGetBlendState(ID3D11DeviceContext3* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext3_OMGetDepthStencilState(ID3D11DeviceContext3* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SOGetTargets(ID3D11DeviceContext3* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSGetState(ID3D11DeviceContext3* This,ID3D11RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSGetViewports(ID3D11DeviceContext3* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext3_RSGetScissorRects(ID3D11DeviceContext3* This,UINT *pNumRects,D3D11_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSGetShader(ID3D11DeviceContext3* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSGetShader(ID3D11DeviceContext3* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetShaderResources(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetUnorderedAccessViews(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetShader(ID3D11DeviceContext3* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetSamplers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetConstantBuffers(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearState(ID3D11DeviceContext3* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D11DeviceContext3_Flush(ID3D11DeviceContext3* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext3_GetType(ID3D11DeviceContext3* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE UINT ID3D11DeviceContext3_GetContextFlags(ID3D11DeviceContext3* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_FinishCommandList(ID3D11DeviceContext3* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
+ return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
+}
+/*** ID3D11DeviceContext1 methods ***/
+static FORCEINLINE void ID3D11DeviceContext3_CopySubresourceRegion1(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox,UINT CopyFlags) {
+ This->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext3_UpdateSubresource1(ID3D11DeviceContext3* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch,UINT CopyFlags) {
+ This->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DiscardResource(ID3D11DeviceContext3* This,ID3D11Resource *pResource) {
+ This->lpVtbl->DiscardResource(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DiscardView(ID3D11DeviceContext3* This,ID3D11View *pResourceView) {
+ This->lpVtbl->DiscardView(This,pResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSSetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_VSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_HSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_PSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CSGetConstantBuffers1(ID3D11DeviceContext3* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SwapDeviceContextState(ID3D11DeviceContext3* This,ID3DDeviceContextState *pState,ID3DDeviceContextState **ppPreviousState) {
+ This->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState);
+}
+static FORCEINLINE void ID3D11DeviceContext3_ClearView(ID3D11DeviceContext3* This,ID3D11View *pView,const FLOAT Color[4],const D3D11_RECT *pRect,UINT NumRects) {
+ This->lpVtbl->ClearView(This,pView,Color,pRect,NumRects);
+}
+static FORCEINLINE void ID3D11DeviceContext3_DiscardView1(ID3D11DeviceContext3* This,ID3D11View *pResourceView,const D3D11_RECT *pRects,UINT NumRects) {
+ This->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects);
+}
+/*** ID3D11DeviceContext2 methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext3_UpdateTileMappings(ID3D11DeviceContext3* This,ID3D11Resource *resource,UINT region_count,const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D11_TILE_REGION_SIZE *region_sizes,ID3D11Buffer *pool,UINT range_count,const UINT *range_flags,const UINT *pool_start_offsets,const UINT *range_tile_counts,UINT flags) {
+ return This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_CopyTileMappings(ID3D11DeviceContext3* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,ID3D11Resource *src_resource,const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,const D3D11_TILE_REGION_SIZE *region_size,UINT flags) {
+ return This->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext3_CopyTiles(ID3D11DeviceContext3* This,ID3D11Resource *resource,const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,const D3D11_TILE_REGION_SIZE *size,ID3D11Buffer *buffer,UINT64 start_offset,UINT flags) {
+ This->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext3_UpdateTiles(ID3D11DeviceContext3* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,const D3D11_TILE_REGION_SIZE *dst_region_size,const void *src_data,UINT flags) {
+ This->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext3_ResizeTilePool(ID3D11DeviceContext3* This,ID3D11Buffer *pool,UINT64 size) {
+ return This->lpVtbl->ResizeTilePool(This,pool,size);
+}
+static FORCEINLINE void ID3D11DeviceContext3_TiledResourceBarrier(ID3D11DeviceContext3* This,ID3D11DeviceChild *before_barrier,ID3D11DeviceChild *after_barrier) {
+ This->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier);
+}
+static FORCEINLINE WINBOOL ID3D11DeviceContext3_IsAnnotationEnabled(ID3D11DeviceContext3* This) {
+ return This->lpVtbl->IsAnnotationEnabled(This);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SetMarkerInt(ID3D11DeviceContext3* This,const WCHAR *label,int data) {
+ This->lpVtbl->SetMarkerInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext3_BeginEventInt(ID3D11DeviceContext3* This,const WCHAR *label,int data) {
+ This->lpVtbl->BeginEventInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext3_EndEvent(ID3D11DeviceContext3* This) {
+ This->lpVtbl->EndEvent(This);
+}
+/*** ID3D11DeviceContext3 methods ***/
+static FORCEINLINE void ID3D11DeviceContext3_Flush1(ID3D11DeviceContext3* This,D3D11_CONTEXT_TYPE type,HANDLE event) {
+ This->lpVtbl->Flush1(This,type,event);
+}
+static FORCEINLINE void ID3D11DeviceContext3_SetHardwareProtectionState(ID3D11DeviceContext3* This,WINBOOL enable) {
+ This->lpVtbl->SetHardwareProtectionState(This,enable);
+}
+static FORCEINLINE void ID3D11DeviceContext3_GetHardwareProtectionState(ID3D11DeviceContext3* This,WINBOOL *enable) {
+ This->lpVtbl->GetHardwareProtectionState(This,enable);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceContext3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Fence interface
+ */
+#ifndef __ID3D11Fence_INTERFACE_DEFINED__
+#define __ID3D11Fence_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Fence, 0xaffde9d1, 0x1df7, 0x4bb7, 0x8a,0x34, 0x0f,0x46,0x25,0x1d,0xab,0x80);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("affde9d1-1df7-4bb7-8a34-0f46251dab80")
+ID3D11Fence : public ID3D11DeviceChild
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
+ UINT64 value,
+ HANDLE event) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Fence, 0xaffde9d1, 0x1df7, 0x4bb7, 0x8a,0x34, 0x0f,0x46,0x25,0x1d,0xab,0x80)
+#endif
+#else
+typedef struct ID3D11FenceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Fence *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Fence *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Fence *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11Fence *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Fence *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Fence *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Fence *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11Fence methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
+ ID3D11Fence *This,
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle);
+
+ UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
+ ID3D11Fence *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
+ ID3D11Fence *This,
+ UINT64 value,
+ HANDLE event);
+
+ END_INTERFACE
+} ID3D11FenceVtbl;
+
+interface ID3D11Fence {
+ CONST_VTBL ID3D11FenceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Fence_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11Fence_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11Fence_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Fence_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Fence_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11Fence methods ***/
+#define ID3D11Fence_CreateSharedHandle(This,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle)
+#define ID3D11Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
+#define ID3D11Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Fence_QueryInterface(ID3D11Fence* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Fence_AddRef(ID3D11Fence* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Fence_Release(ID3D11Fence* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11Fence_GetDevice(ID3D11Fence* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11Fence_GetPrivateData(ID3D11Fence* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Fence_SetPrivateData(ID3D11Fence* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Fence_SetPrivateDataInterface(ID3D11Fence* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11Fence methods ***/
+static FORCEINLINE HRESULT ID3D11Fence_CreateSharedHandle(ID3D11Fence* This,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+ return This->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle);
+}
+static FORCEINLINE UINT64 ID3D11Fence_GetCompletedValue(ID3D11Fence* This) {
+ return This->lpVtbl->GetCompletedValue(This);
+}
+static FORCEINLINE HRESULT ID3D11Fence_SetEventOnCompletion(ID3D11Fence* This,UINT64 value,HANDLE event) {
+ return This->lpVtbl->SetEventOnCompletion(This,value,event);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Fence_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11DeviceContext4 interface
+ */
+#ifndef __ID3D11DeviceContext4_INTERFACE_DEFINED__
+#define __ID3D11DeviceContext4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11DeviceContext4, 0x917600da, 0xf58c, 0x4c33, 0x98,0xd8, 0x3e,0x15,0xb3,0x90,0xfa,0x24);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("917600da-f58c-4c33-98d8-3e15b390fa24")
+ID3D11DeviceContext4 : public ID3D11DeviceContext3
+{
+ virtual HRESULT STDMETHODCALLTYPE Signal(
+ ID3D11Fence *fence,
+ UINT64 value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Wait(
+ ID3D11Fence *fence,
+ UINT64 value) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11DeviceContext4, 0x917600da, 0xf58c, 0x4c33, 0x98,0xd8, 0x3e,0x15,0xb3,0x90,0xfa,0x24)
+#endif
+#else
+typedef struct ID3D11DeviceContext4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11DeviceContext4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11DeviceContext4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11DeviceContext4 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11DeviceContext4 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11DeviceContext4 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11DeviceContext4 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11DeviceContext methods ***/
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11PixelShader *pPixelShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11VertexShader *pVertexShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DrawIndexed)(
+ ID3D11DeviceContext4 *This,
+ UINT IndexCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation);
+
+ void (STDMETHODCALLTYPE *Draw)(
+ ID3D11DeviceContext4 *This,
+ UINT VertexCount,
+ UINT StartVertexLocation);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource,
+ D3D11_MAP MapType,
+ UINT MapFlags,
+ D3D11_MAPPED_SUBRESOURCE *pMappedResource);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pResource,
+ UINT Subresource);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IASetInputLayout)(
+ ID3D11DeviceContext4 *This,
+ ID3D11InputLayout *pInputLayout);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppVertexBuffers,
+ const UINT *pStrides,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pIndexBuffer,
+ DXGI_FORMAT Format,
+ UINT Offset);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D11DeviceContext4 *This,
+ UINT IndexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartIndexLocation,
+ INT BaseVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D11DeviceContext4 *This,
+ UINT VertexCountPerInstance,
+ UINT InstanceCount,
+ UINT StartVertexLocation,
+ UINT StartInstanceLocation);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11GeometryShader *pShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D11DeviceContext4 *This,
+ D3D11_PRIMITIVE_TOPOLOGY Topology);
+
+ void (STDMETHODCALLTYPE *VSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *Begin)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Asynchronous *pAsync);
+
+ void (STDMETHODCALLTYPE *End)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Asynchronous *pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetData)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Asynchronous *pAsync,
+ void *pData,
+ UINT DataSize,
+ UINT GetDataFlags);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Predicate *pPredicate,
+ WINBOOL PredicateValue);
+
+ void (STDMETHODCALLTYPE *GSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D11DeviceContext4 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext4 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView *const *ppRenderTargetViews,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *OMSetBlendState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11BlendState *pBlendState,
+ const FLOAT BlendFactor[4],
+ UINT SampleMask);
+
+ void (STDMETHODCALLTYPE *OMSetDepthStencilState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DepthStencilState *pDepthStencilState,
+ UINT StencilRef);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D11DeviceContext4 *This,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppSOTargets,
+ const UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *DrawAuto)(
+ ID3D11DeviceContext4 *This);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstancedIndirect)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *DrawInstancedIndirect)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D11DeviceContext4 *This,
+ UINT ThreadGroupCountX,
+ UINT ThreadGroupCountY,
+ UINT ThreadGroupCountZ);
+
+ void (STDMETHODCALLTYPE *DispatchIndirect)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pBufferForArgs,
+ UINT AlignedByteOffsetForArgs);
+
+ void (STDMETHODCALLTYPE *RSSetState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11RasterizerState *pRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D11DeviceContext4 *This,
+ UINT NumViewports,
+ const D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D11DeviceContext4 *This,
+ UINT NumRects,
+ const D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *CopySubresourceRegion)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ ID3D11Resource *pSrcResource);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch);
+
+ void (STDMETHODCALLTYPE *CopyStructureCount)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pDstBuffer,
+ UINT DstAlignedByteOffset,
+ ID3D11UnorderedAccessView *pSrcView);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D11DeviceContext4 *This,
+ ID3D11RenderTargetView *pRenderTargetView,
+ const FLOAT ColorRGBA[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D11DeviceContext4 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const UINT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D11DeviceContext4 *This,
+ ID3D11UnorderedAccessView *pUnorderedAccessView,
+ const FLOAT Values[4]);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DepthStencilView *pDepthStencilView,
+ UINT ClearFlags,
+ FLOAT Depth,
+ UINT8 Stencil);
+
+ void (STDMETHODCALLTYPE *GenerateMips)(
+ ID3D11DeviceContext4 *This,
+ ID3D11ShaderResourceView *pShaderResourceView);
+
+ void (STDMETHODCALLTYPE *SetResourceMinLOD)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pResource,
+ FLOAT MinLOD);
+
+ FLOAT (STDMETHODCALLTYPE *GetResourceMinLOD)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ DXGI_FORMAT Format);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandList)(
+ ID3D11DeviceContext4 *This,
+ ID3D11CommandList *pCommandList,
+ WINBOOL RestoreContextState);
+
+ void (STDMETHODCALLTYPE *HSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11HullShader *pHullShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DomainShader *pDomainShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSSetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView *const *ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSSetUnorderedAccessViews)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
+ const UINT *pUAVInitialCounts);
+
+ void (STDMETHODCALLTYPE *CSSetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11ComputeShader *pComputeShader,
+ ID3D11ClassInstance *const *ppClassInstances,
+ UINT NumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSSetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState *const *ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *PSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *PSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11PixelShader **ppPixelShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *VSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11VertexShader **ppVertexShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *IAGetInputLayout)(
+ ID3D11DeviceContext4 *This,
+ ID3D11InputLayout **ppInputLayout);
+
+ void (STDMETHODCALLTYPE *IAGetVertexBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppVertexBuffers,
+ UINT *pStrides,
+ UINT *pOffsets);
+
+ void (STDMETHODCALLTYPE *IAGetIndexBuffer)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer **pIndexBuffer,
+ DXGI_FORMAT *Format,
+ UINT *Offset);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *GSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11GeometryShader **ppGeometryShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *IAGetPrimitiveTopology)(
+ ID3D11DeviceContext4 *This,
+ D3D11_PRIMITIVE_TOPOLOGY *pTopology);
+
+ void (STDMETHODCALLTYPE *VSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *VSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *GetPredication)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Predicate **ppPredicate,
+ WINBOOL *pPredicateValue);
+
+ void (STDMETHODCALLTYPE *GSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *GSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargets)(
+ ID3D11DeviceContext4 *This,
+ UINT NumViews,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ void (STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews)(
+ ID3D11DeviceContext4 *This,
+ UINT NumRTVs,
+ ID3D11RenderTargetView **ppRenderTargetViews,
+ ID3D11DepthStencilView **ppDepthStencilView,
+ UINT UAVStartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *OMGetBlendState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11BlendState **ppBlendState,
+ FLOAT BlendFactor[4],
+ UINT *pSampleMask);
+
+ void (STDMETHODCALLTYPE *OMGetDepthStencilState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DepthStencilState **ppDepthStencilState,
+ UINT *pStencilRef);
+
+ void (STDMETHODCALLTYPE *SOGetTargets)(
+ ID3D11DeviceContext4 *This,
+ UINT NumBuffers,
+ ID3D11Buffer **ppSOTargets);
+
+ void (STDMETHODCALLTYPE *RSGetState)(
+ ID3D11DeviceContext4 *This,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ void (STDMETHODCALLTYPE *RSGetViewports)(
+ ID3D11DeviceContext4 *This,
+ UINT *pNumViewports,
+ D3D11_VIEWPORT *pViewports);
+
+ void (STDMETHODCALLTYPE *RSGetScissorRects)(
+ ID3D11DeviceContext4 *This,
+ UINT *pNumRects,
+ D3D11_RECT *pRects);
+
+ void (STDMETHODCALLTYPE *HSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *HSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11HullShader **ppHullShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *HSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *DSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *DSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DomainShader **ppDomainShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *DSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *CSGetShaderResources)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumViews,
+ ID3D11ShaderResourceView **ppShaderResourceViews);
+
+ void (STDMETHODCALLTYPE *CSGetUnorderedAccessViews)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumUAVs,
+ ID3D11UnorderedAccessView **ppUnorderedAccessViews);
+
+ void (STDMETHODCALLTYPE *CSGetShader)(
+ ID3D11DeviceContext4 *This,
+ ID3D11ComputeShader **ppComputeShader,
+ ID3D11ClassInstance **ppClassInstances,
+ UINT *pNumClassInstances);
+
+ void (STDMETHODCALLTYPE *CSGetSamplers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumSamplers,
+ ID3D11SamplerState **ppSamplers);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D11DeviceContext4 *This);
+
+ void (STDMETHODCALLTYPE *Flush)(
+ ID3D11DeviceContext4 *This);
+
+ D3D11_DEVICE_CONTEXT_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D11DeviceContext4 *This);
+
+ UINT (STDMETHODCALLTYPE *GetContextFlags)(
+ ID3D11DeviceContext4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *FinishCommandList)(
+ ID3D11DeviceContext4 *This,
+ WINBOOL RestoreDeferredContextState,
+ ID3D11CommandList **ppCommandList);
+
+ /*** ID3D11DeviceContext1 methods ***/
+ void (STDMETHODCALLTYPE *CopySubresourceRegion1)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ UINT DstX,
+ UINT DstY,
+ UINT DstZ,
+ ID3D11Resource *pSrcResource,
+ UINT SrcSubresource,
+ const D3D11_BOX *pSrcBox,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *UpdateSubresource1)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pDstResource,
+ UINT DstSubresource,
+ const D3D11_BOX *pDstBox,
+ const void *pSrcData,
+ UINT SrcRowPitch,
+ UINT SrcDepthPitch,
+ UINT CopyFlags);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *pResource);
+
+ void (STDMETHODCALLTYPE *DiscardView)(
+ ID3D11DeviceContext4 *This,
+ ID3D11View *pResourceView);
+
+ void (STDMETHODCALLTYPE *VSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSSetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer *const *ppConstantBuffers,
+ const UINT *pFirstConstant,
+ const UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *VSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *HSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *DSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *GSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *PSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *CSGetConstantBuffers1)(
+ ID3D11DeviceContext4 *This,
+ UINT StartSlot,
+ UINT NumBuffers,
+ ID3D11Buffer **ppConstantBuffers,
+ UINT *pFirstConstant,
+ UINT *pNumConstants);
+
+ void (STDMETHODCALLTYPE *SwapDeviceContextState)(
+ ID3D11DeviceContext4 *This,
+ ID3DDeviceContextState *pState,
+ ID3DDeviceContextState **ppPreviousState);
+
+ void (STDMETHODCALLTYPE *ClearView)(
+ ID3D11DeviceContext4 *This,
+ ID3D11View *pView,
+ const FLOAT Color[4],
+ const D3D11_RECT *pRect,
+ UINT NumRects);
+
+ void (STDMETHODCALLTYPE *DiscardView1)(
+ ID3D11DeviceContext4 *This,
+ ID3D11View *pResourceView,
+ const D3D11_RECT *pRects,
+ UINT NumRects);
+
+ /*** ID3D11DeviceContext2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *UpdateTileMappings)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *resource,
+ UINT region_count,
+ const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D11_TILE_REGION_SIZE *region_sizes,
+ ID3D11Buffer *pool,
+ UINT range_count,
+ const UINT *range_flags,
+ const UINT *pool_start_offsets,
+ const UINT *range_tile_counts,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *CopyTileMappings)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ ID3D11Resource *src_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *region_size,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,
+ const D3D11_TILE_REGION_SIZE *size,
+ ID3D11Buffer *buffer,
+ UINT64 start_offset,
+ UINT flags);
+
+ void (STDMETHODCALLTYPE *UpdateTiles)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Resource *dst_resource,
+ const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
+ const D3D11_TILE_REGION_SIZE *dst_region_size,
+ const void *src_data,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTilePool)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Buffer *pool,
+ UINT64 size);
+
+ void (STDMETHODCALLTYPE *TiledResourceBarrier)(
+ ID3D11DeviceContext4 *This,
+ ID3D11DeviceChild *before_barrier,
+ ID3D11DeviceChild *after_barrier);
+
+ WINBOOL (STDMETHODCALLTYPE *IsAnnotationEnabled)(
+ ID3D11DeviceContext4 *This);
+
+ void (STDMETHODCALLTYPE *SetMarkerInt)(
+ ID3D11DeviceContext4 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *BeginEventInt)(
+ ID3D11DeviceContext4 *This,
+ const WCHAR *label,
+ int data);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D11DeviceContext4 *This);
+
+ /*** ID3D11DeviceContext3 methods ***/
+ void (STDMETHODCALLTYPE *Flush1)(
+ ID3D11DeviceContext4 *This,
+ D3D11_CONTEXT_TYPE type,
+ HANDLE event);
+
+ void (STDMETHODCALLTYPE *SetHardwareProtectionState)(
+ ID3D11DeviceContext4 *This,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *GetHardwareProtectionState)(
+ ID3D11DeviceContext4 *This,
+ WINBOOL *enable);
+
+ /*** ID3D11DeviceContext4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *Signal)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Fence *fence,
+ UINT64 value);
+
+ HRESULT (STDMETHODCALLTYPE *Wait)(
+ ID3D11DeviceContext4 *This,
+ ID3D11Fence *fence,
+ UINT64 value);
+
+ END_INTERFACE
+} ID3D11DeviceContext4Vtbl;
+
+interface ID3D11DeviceContext4 {
+ CONST_VTBL ID3D11DeviceContext4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11DeviceContext4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11DeviceContext4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11DeviceContext4_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11DeviceContext4_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11DeviceContext4_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11DeviceContext4_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11DeviceContext4_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11DeviceContext methods ***/
+#define ID3D11DeviceContext4_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) (This)->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)
+#define ID3D11DeviceContext4_Draw(This,VertexCount,StartVertexLocation) (This)->lpVtbl->Draw(This,VertexCount,StartVertexLocation)
+#define ID3D11DeviceContext4_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) (This)->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)
+#define ID3D11DeviceContext4_Unmap(This,pResource,Subresource) (This)->lpVtbl->Unmap(This,pResource,Subresource)
+#define ID3D11DeviceContext4_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_IASetInputLayout(This,pInputLayout) (This)->lpVtbl->IASetInputLayout(This,pInputLayout)
+#define ID3D11DeviceContext4_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext4_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) (This)->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)
+#define ID3D11DeviceContext4_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_IASetPrimitiveTopology(This,Topology) (This)->lpVtbl->IASetPrimitiveTopology(This,Topology)
+#define ID3D11DeviceContext4_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_Begin(This,pAsync) (This)->lpVtbl->Begin(This,pAsync)
+#define ID3D11DeviceContext4_End(This,pAsync) (This)->lpVtbl->End(This,pAsync)
+#define ID3D11DeviceContext4_GetData(This,pAsync,pData,DataSize,GetDataFlags) (This)->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags)
+#define ID3D11DeviceContext4_SetPredication(This,pPredicate,PredicateValue) (This)->lpVtbl->SetPredication(This,pPredicate,PredicateValue)
+#define ID3D11DeviceContext4_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) (This)->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)
+#define ID3D11DeviceContext4_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext4_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) (This)->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)
+#define ID3D11DeviceContext4_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) (This)->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef)
+#define ID3D11DeviceContext4_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) (This)->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)
+#define ID3D11DeviceContext4_DrawAuto(This) (This)->lpVtbl->DrawAuto(This)
+#define ID3D11DeviceContext4_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext4_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) (This)->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)
+#define ID3D11DeviceContext4_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) (This)->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)
+#define ID3D11DeviceContext4_RSSetState(This,pRasterizerState) (This)->lpVtbl->RSSetState(This,pRasterizerState)
+#define ID3D11DeviceContext4_RSSetViewports(This,NumViewports,pViewports) (This)->lpVtbl->RSSetViewports(This,NumViewports,pViewports)
+#define ID3D11DeviceContext4_RSSetScissorRects(This,NumRects,pRects) (This)->lpVtbl->RSSetScissorRects(This,NumRects,pRects)
+#define ID3D11DeviceContext4_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) (This)->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)
+#define ID3D11DeviceContext4_CopyResource(This,pDstResource,pSrcResource) (This)->lpVtbl->CopyResource(This,pDstResource,pSrcResource)
+#define ID3D11DeviceContext4_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) (This)->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)
+#define ID3D11DeviceContext4_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) (This)->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)
+#define ID3D11DeviceContext4_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) (This)->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)
+#define ID3D11DeviceContext4_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext4_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)
+#define ID3D11DeviceContext4_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) (This)->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)
+#define ID3D11DeviceContext4_GenerateMips(This,pShaderResourceView) (This)->lpVtbl->GenerateMips(This,pShaderResourceView)
+#define ID3D11DeviceContext4_SetResourceMinLOD(This,pResource,MinLOD) (This)->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD)
+#define ID3D11DeviceContext4_GetResourceMinLOD(This,pResource) (This)->lpVtbl->GetResourceMinLOD(This,pResource)
+#define ID3D11DeviceContext4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) (This)->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)
+#define ID3D11DeviceContext4_ExecuteCommandList(This,pCommandList,RestoreContextState) (This)->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState)
+#define ID3D11DeviceContext4_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) (This)->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)
+#define ID3D11DeviceContext4_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) (This)->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)
+#define ID3D11DeviceContext4_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_IAGetInputLayout(This,ppInputLayout) (This)->lpVtbl->IAGetInputLayout(This,ppInputLayout)
+#define ID3D11DeviceContext4_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) (This)->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)
+#define ID3D11DeviceContext4_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) (This)->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)
+#define ID3D11DeviceContext4_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_IAGetPrimitiveTopology(This,pTopology) (This)->lpVtbl->IAGetPrimitiveTopology(This,pTopology)
+#define ID3D11DeviceContext4_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_GetPredication(This,ppPredicate,pPredicateValue) (This)->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue)
+#define ID3D11DeviceContext4_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) (This)->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)
+#define ID3D11DeviceContext4_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext4_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) (This)->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)
+#define ID3D11DeviceContext4_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) (This)->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)
+#define ID3D11DeviceContext4_SOGetTargets(This,NumBuffers,ppSOTargets) (This)->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets)
+#define ID3D11DeviceContext4_RSGetState(This,ppRasterizerState) (This)->lpVtbl->RSGetState(This,ppRasterizerState)
+#define ID3D11DeviceContext4_RSGetViewports(This,pNumViewports,pViewports) (This)->lpVtbl->RSGetViewports(This,pNumViewports,pViewports)
+#define ID3D11DeviceContext4_RSGetScissorRects(This,pNumRects,pRects) (This)->lpVtbl->RSGetScissorRects(This,pNumRects,pRects)
+#define ID3D11DeviceContext4_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) (This)->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)
+#define ID3D11DeviceContext4_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) (This)->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)
+#define ID3D11DeviceContext4_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) (This)->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)
+#define ID3D11DeviceContext4_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) (This)->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)
+#define ID3D11DeviceContext4_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) (This)->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)
+#define ID3D11DeviceContext4_ClearState(This) (This)->lpVtbl->ClearState(This)
+#define ID3D11DeviceContext4_Flush(This) (This)->lpVtbl->Flush(This)
+#define ID3D11DeviceContext4_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D11DeviceContext4_GetContextFlags(This) (This)->lpVtbl->GetContextFlags(This)
+#define ID3D11DeviceContext4_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) (This)->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList)
+/*** ID3D11DeviceContext1 methods ***/
+#define ID3D11DeviceContext4_CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) (This)->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags)
+#define ID3D11DeviceContext4_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) (This)->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags)
+#define ID3D11DeviceContext4_DiscardResource(This,pResource) (This)->lpVtbl->DiscardResource(This,pResource)
+#define ID3D11DeviceContext4_DiscardView(This,pResourceView) (This)->lpVtbl->DiscardView(This,pResourceView)
+#define ID3D11DeviceContext4_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) (This)->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants)
+#define ID3D11DeviceContext4_SwapDeviceContextState(This,pState,ppPreviousState) (This)->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState)
+#define ID3D11DeviceContext4_ClearView(This,pView,Color,pRect,NumRects) (This)->lpVtbl->ClearView(This,pView,Color,pRect,NumRects)
+#define ID3D11DeviceContext4_DiscardView1(This,pResourceView,pRects,NumRects) (This)->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects)
+/*** ID3D11DeviceContext2 methods ***/
+#define ID3D11DeviceContext4_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags)
+#define ID3D11DeviceContext4_CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags)
+#define ID3D11DeviceContext4_CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags) (This)->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags)
+#define ID3D11DeviceContext4_UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags) (This)->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags)
+#define ID3D11DeviceContext4_ResizeTilePool(This,pool,size) (This)->lpVtbl->ResizeTilePool(This,pool,size)
+#define ID3D11DeviceContext4_TiledResourceBarrier(This,before_barrier,after_barrier) (This)->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier)
+#define ID3D11DeviceContext4_IsAnnotationEnabled(This) (This)->lpVtbl->IsAnnotationEnabled(This)
+#define ID3D11DeviceContext4_SetMarkerInt(This,label,data) (This)->lpVtbl->SetMarkerInt(This,label,data)
+#define ID3D11DeviceContext4_BeginEventInt(This,label,data) (This)->lpVtbl->BeginEventInt(This,label,data)
+#define ID3D11DeviceContext4_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+/*** ID3D11DeviceContext3 methods ***/
+#define ID3D11DeviceContext4_Flush1(This,type,event) (This)->lpVtbl->Flush1(This,type,event)
+#define ID3D11DeviceContext4_SetHardwareProtectionState(This,enable) (This)->lpVtbl->SetHardwareProtectionState(This,enable)
+#define ID3D11DeviceContext4_GetHardwareProtectionState(This,enable) (This)->lpVtbl->GetHardwareProtectionState(This,enable)
+/*** ID3D11DeviceContext4 methods ***/
+#define ID3D11DeviceContext4_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
+#define ID3D11DeviceContext4_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext4_QueryInterface(ID3D11DeviceContext4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext4_AddRef(ID3D11DeviceContext4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11DeviceContext4_Release(ID3D11DeviceContext4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11DeviceContext4_GetDevice(ID3D11DeviceContext4* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_GetPrivateData(ID3D11DeviceContext4* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_SetPrivateData(ID3D11DeviceContext4* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_SetPrivateDataInterface(ID3D11DeviceContext4* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11DeviceContext methods ***/
+static FORCEINLINE void ID3D11DeviceContext4_VSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSSetShader(ID3D11DeviceContext4* This,ID3D11PixelShader *pPixelShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSSetShader(ID3D11DeviceContext4* This,ID3D11VertexShader *pVertexShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawIndexed(ID3D11DeviceContext4* This,UINT IndexCount,UINT StartIndexLocation,INT BaseVertexLocation) {
+ This->lpVtbl->DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext4_Draw(ID3D11DeviceContext4* This,UINT VertexCount,UINT StartVertexLocation) {
+ This->lpVtbl->Draw(This,VertexCount,StartVertexLocation);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_Map(ID3D11DeviceContext4* This,ID3D11Resource *pResource,UINT Subresource,D3D11_MAP MapType,UINT MapFlags,D3D11_MAPPED_SUBRESOURCE *pMappedResource) {
+ return This->lpVtbl->Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource);
+}
+static FORCEINLINE void ID3D11DeviceContext4_Unmap(ID3D11DeviceContext4* This,ID3D11Resource *pResource,UINT Subresource) {
+ This->lpVtbl->Unmap(This,pResource,Subresource);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IASetInputLayout(ID3D11DeviceContext4* This,ID3D11InputLayout *pInputLayout) {
+ This->lpVtbl->IASetInputLayout(This,pInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IASetVertexBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppVertexBuffers,const UINT *pStrides,const UINT *pOffsets) {
+ This->lpVtbl->IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IASetIndexBuffer(ID3D11DeviceContext4* This,ID3D11Buffer *pIndexBuffer,DXGI_FORMAT Format,UINT Offset) {
+ This->lpVtbl->IASetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawIndexedInstanced(ID3D11DeviceContext4* This,UINT IndexCountPerInstance,UINT InstanceCount,UINT StartIndexLocation,INT BaseVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawInstanced(ID3D11DeviceContext4* This,UINT VertexCountPerInstance,UINT InstanceCount,UINT StartVertexLocation,UINT StartInstanceLocation) {
+ This->lpVtbl->DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSSetShader(ID3D11DeviceContext4* This,ID3D11GeometryShader *pShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->GSSetShader(This,pShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IASetPrimitiveTopology(ID3D11DeviceContext4* This,D3D11_PRIMITIVE_TOPOLOGY Topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,Topology);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_Begin(ID3D11DeviceContext4* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->Begin(This,pAsync);
+}
+static FORCEINLINE void ID3D11DeviceContext4_End(ID3D11DeviceContext4* This,ID3D11Asynchronous *pAsync) {
+ This->lpVtbl->End(This,pAsync);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_GetData(ID3D11DeviceContext4* This,ID3D11Asynchronous *pAsync,void *pData,UINT DataSize,UINT GetDataFlags) {
+ return This->lpVtbl->GetData(This,pAsync,pData,DataSize,GetDataFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SetPredication(ID3D11DeviceContext4* This,ID3D11Predicate *pPredicate,WINBOOL PredicateValue) {
+ This->lpVtbl->SetPredication(This,pPredicate,PredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMSetRenderTargets(ID3D11DeviceContext4* This,UINT NumViews,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView) {
+ This->lpVtbl->OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMSetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext4* This,UINT NumRTVs,ID3D11RenderTargetView *const *ppRenderTargetViews,ID3D11DepthStencilView *pDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMSetBlendState(ID3D11DeviceContext4* This,ID3D11BlendState *pBlendState,const FLOAT BlendFactor[4],UINT SampleMask) {
+ This->lpVtbl->OMSetBlendState(This,pBlendState,BlendFactor,SampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMSetDepthStencilState(ID3D11DeviceContext4* This,ID3D11DepthStencilState *pDepthStencilState,UINT StencilRef) {
+ This->lpVtbl->OMSetDepthStencilState(This,pDepthStencilState,StencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SOSetTargets(ID3D11DeviceContext4* This,UINT NumBuffers,ID3D11Buffer *const *ppSOTargets,const UINT *pOffsets) {
+ This->lpVtbl->SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawAuto(ID3D11DeviceContext4* This) {
+ This->lpVtbl->DrawAuto(This);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawIndexedInstancedIndirect(ID3D11DeviceContext4* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DrawInstancedIndirect(ID3D11DeviceContext4* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext4_Dispatch(ID3D11DeviceContext4* This,UINT ThreadGroupCountX,UINT ThreadGroupCountY,UINT ThreadGroupCountZ) {
+ This->lpVtbl->Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DispatchIndirect(ID3D11DeviceContext4* This,ID3D11Buffer *pBufferForArgs,UINT AlignedByteOffsetForArgs) {
+ This->lpVtbl->DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSSetState(ID3D11DeviceContext4* This,ID3D11RasterizerState *pRasterizerState) {
+ This->lpVtbl->RSSetState(This,pRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSSetViewports(ID3D11DeviceContext4* This,UINT NumViewports,const D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSSetViewports(This,NumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSSetScissorRects(ID3D11DeviceContext4* This,UINT NumRects,const D3D11_RECT *pRects) {
+ This->lpVtbl->RSSetScissorRects(This,NumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CopySubresourceRegion(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox) {
+ This->lpVtbl->CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CopyResource(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,ID3D11Resource *pSrcResource) {
+ This->lpVtbl->CopyResource(This,pDstResource,pSrcResource);
+}
+static FORCEINLINE void ID3D11DeviceContext4_UpdateSubresource(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch) {
+ This->lpVtbl->UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CopyStructureCount(ID3D11DeviceContext4* This,ID3D11Buffer *pDstBuffer,UINT DstAlignedByteOffset,ID3D11UnorderedAccessView *pSrcView) {
+ This->lpVtbl->CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearRenderTargetView(ID3D11DeviceContext4* This,ID3D11RenderTargetView *pRenderTargetView,const FLOAT ColorRGBA[4]) {
+ This->lpVtbl->ClearRenderTargetView(This,pRenderTargetView,ColorRGBA);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearUnorderedAccessViewUint(ID3D11DeviceContext4* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const UINT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearUnorderedAccessViewFloat(ID3D11DeviceContext4* This,ID3D11UnorderedAccessView *pUnorderedAccessView,const FLOAT Values[4]) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearDepthStencilView(ID3D11DeviceContext4* This,ID3D11DepthStencilView *pDepthStencilView,UINT ClearFlags,FLOAT Depth,UINT8 Stencil) {
+ This->lpVtbl->ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GenerateMips(ID3D11DeviceContext4* This,ID3D11ShaderResourceView *pShaderResourceView) {
+ This->lpVtbl->GenerateMips(This,pShaderResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SetResourceMinLOD(ID3D11DeviceContext4* This,ID3D11Resource *pResource,FLOAT MinLOD) {
+ This->lpVtbl->SetResourceMinLOD(This,pResource,MinLOD);
+}
+static FORCEINLINE FLOAT ID3D11DeviceContext4_GetResourceMinLOD(ID3D11DeviceContext4* This,ID3D11Resource *pResource) {
+ return This->lpVtbl->GetResourceMinLOD(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ResolveSubresource(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,UINT DstSubresource,ID3D11Resource *pSrcResource,UINT SrcSubresource,DXGI_FORMAT Format) {
+ This->lpVtbl->ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ExecuteCommandList(ID3D11DeviceContext4* This,ID3D11CommandList *pCommandList,WINBOOL RestoreContextState) {
+ This->lpVtbl->ExecuteCommandList(This,pCommandList,RestoreContextState);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSSetShader(ID3D11DeviceContext4* This,ID3D11HullShader *pHullShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSSetShader(ID3D11DeviceContext4* This,ID3D11DomainShader *pDomainShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView *const *ppShaderResourceViews) {
+ This->lpVtbl->CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetUnorderedAccessViews(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,const UINT *pUAVInitialCounts) {
+ This->lpVtbl->CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetShader(ID3D11DeviceContext4* This,ID3D11ComputeShader *pComputeShader,ID3D11ClassInstance *const *ppClassInstances,UINT NumClassInstances) {
+ This->lpVtbl->CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState *const *ppSamplers) {
+ This->lpVtbl->CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers) {
+ This->lpVtbl->CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSGetShader(ID3D11DeviceContext4* This,ID3D11PixelShader **ppPixelShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSGetShader(ID3D11DeviceContext4* This,ID3D11VertexShader **ppVertexShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IAGetInputLayout(ID3D11DeviceContext4* This,ID3D11InputLayout **ppInputLayout) {
+ This->lpVtbl->IAGetInputLayout(This,ppInputLayout);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IAGetVertexBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppVertexBuffers,UINT *pStrides,UINT *pOffsets) {
+ This->lpVtbl->IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IAGetIndexBuffer(ID3D11DeviceContext4* This,ID3D11Buffer **pIndexBuffer,DXGI_FORMAT *Format,UINT *Offset) {
+ This->lpVtbl->IAGetIndexBuffer(This,pIndexBuffer,Format,Offset);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSGetShader(ID3D11DeviceContext4* This,ID3D11GeometryShader **ppGeometryShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_IAGetPrimitiveTopology(ID3D11DeviceContext4* This,D3D11_PRIMITIVE_TOPOLOGY *pTopology) {
+ This->lpVtbl->IAGetPrimitiveTopology(This,pTopology);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GetPredication(ID3D11DeviceContext4* This,ID3D11Predicate **ppPredicate,WINBOOL *pPredicateValue) {
+ This->lpVtbl->GetPredication(This,ppPredicate,pPredicateValue);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMGetRenderTargets(ID3D11DeviceContext4* This,UINT NumViews,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView) {
+ This->lpVtbl->OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMGetRenderTargetsAndUnorderedAccessViews(ID3D11DeviceContext4* This,UINT NumRTVs,ID3D11RenderTargetView **ppRenderTargetViews,ID3D11DepthStencilView **ppDepthStencilView,UINT UAVStartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMGetBlendState(ID3D11DeviceContext4* This,ID3D11BlendState **ppBlendState,FLOAT BlendFactor[4],UINT *pSampleMask) {
+ This->lpVtbl->OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask);
+}
+static FORCEINLINE void ID3D11DeviceContext4_OMGetDepthStencilState(ID3D11DeviceContext4* This,ID3D11DepthStencilState **ppDepthStencilState,UINT *pStencilRef) {
+ This->lpVtbl->OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SOGetTargets(ID3D11DeviceContext4* This,UINT NumBuffers,ID3D11Buffer **ppSOTargets) {
+ This->lpVtbl->SOGetTargets(This,NumBuffers,ppSOTargets);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSGetState(ID3D11DeviceContext4* This,ID3D11RasterizerState **ppRasterizerState) {
+ This->lpVtbl->RSGetState(This,ppRasterizerState);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSGetViewports(ID3D11DeviceContext4* This,UINT *pNumViewports,D3D11_VIEWPORT *pViewports) {
+ This->lpVtbl->RSGetViewports(This,pNumViewports,pViewports);
+}
+static FORCEINLINE void ID3D11DeviceContext4_RSGetScissorRects(ID3D11DeviceContext4* This,UINT *pNumRects,D3D11_RECT *pRects) {
+ This->lpVtbl->RSGetScissorRects(This,pNumRects,pRects);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSGetShader(ID3D11DeviceContext4* This,ID3D11HullShader **ppHullShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSGetShader(ID3D11DeviceContext4* This,ID3D11DomainShader **ppDomainShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetShaderResources(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumViews,ID3D11ShaderResourceView **ppShaderResourceViews) {
+ This->lpVtbl->CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetUnorderedAccessViews(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumUAVs,ID3D11UnorderedAccessView **ppUnorderedAccessViews) {
+ This->lpVtbl->CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetShader(ID3D11DeviceContext4* This,ID3D11ComputeShader **ppComputeShader,ID3D11ClassInstance **ppClassInstances,UINT *pNumClassInstances) {
+ This->lpVtbl->CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetSamplers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumSamplers,ID3D11SamplerState **ppSamplers) {
+ This->lpVtbl->CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetConstantBuffers(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers) {
+ This->lpVtbl->CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearState(ID3D11DeviceContext4* This) {
+ This->lpVtbl->ClearState(This);
+}
+static FORCEINLINE void ID3D11DeviceContext4_Flush(ID3D11DeviceContext4* This) {
+ This->lpVtbl->Flush(This);
+}
+static FORCEINLINE D3D11_DEVICE_CONTEXT_TYPE ID3D11DeviceContext4_GetType(ID3D11DeviceContext4* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE UINT ID3D11DeviceContext4_GetContextFlags(ID3D11DeviceContext4* This) {
+ return This->lpVtbl->GetContextFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_FinishCommandList(ID3D11DeviceContext4* This,WINBOOL RestoreDeferredContextState,ID3D11CommandList **ppCommandList) {
+ return This->lpVtbl->FinishCommandList(This,RestoreDeferredContextState,ppCommandList);
+}
+/*** ID3D11DeviceContext1 methods ***/
+static FORCEINLINE void ID3D11DeviceContext4_CopySubresourceRegion1(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,UINT DstSubresource,UINT DstX,UINT DstY,UINT DstZ,ID3D11Resource *pSrcResource,UINT SrcSubresource,const D3D11_BOX *pSrcBox,UINT CopyFlags) {
+ This->lpVtbl->CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext4_UpdateSubresource1(ID3D11DeviceContext4* This,ID3D11Resource *pDstResource,UINT DstSubresource,const D3D11_BOX *pDstBox,const void *pSrcData,UINT SrcRowPitch,UINT SrcDepthPitch,UINT CopyFlags) {
+ This->lpVtbl->UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DiscardResource(ID3D11DeviceContext4* This,ID3D11Resource *pResource) {
+ This->lpVtbl->DiscardResource(This,pResource);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DiscardView(ID3D11DeviceContext4* This,ID3D11View *pResourceView) {
+ This->lpVtbl->DiscardView(This,pResourceView);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSSetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer *const *ppConstantBuffers,const UINT *pFirstConstant,const UINT *pNumConstants) {
+ This->lpVtbl->CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_VSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_HSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_PSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CSGetConstantBuffers1(ID3D11DeviceContext4* This,UINT StartSlot,UINT NumBuffers,ID3D11Buffer **ppConstantBuffers,UINT *pFirstConstant,UINT *pNumConstants) {
+ This->lpVtbl->CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SwapDeviceContextState(ID3D11DeviceContext4* This,ID3DDeviceContextState *pState,ID3DDeviceContextState **ppPreviousState) {
+ This->lpVtbl->SwapDeviceContextState(This,pState,ppPreviousState);
+}
+static FORCEINLINE void ID3D11DeviceContext4_ClearView(ID3D11DeviceContext4* This,ID3D11View *pView,const FLOAT Color[4],const D3D11_RECT *pRect,UINT NumRects) {
+ This->lpVtbl->ClearView(This,pView,Color,pRect,NumRects);
+}
+static FORCEINLINE void ID3D11DeviceContext4_DiscardView1(ID3D11DeviceContext4* This,ID3D11View *pResourceView,const D3D11_RECT *pRects,UINT NumRects) {
+ This->lpVtbl->DiscardView1(This,pResourceView,pRects,NumRects);
+}
+/*** ID3D11DeviceContext2 methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext4_UpdateTileMappings(ID3D11DeviceContext4* This,ID3D11Resource *resource,UINT region_count,const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D11_TILE_REGION_SIZE *region_sizes,ID3D11Buffer *pool,UINT range_count,const UINT *range_flags,const UINT *pool_start_offsets,const UINT *range_tile_counts,UINT flags) {
+ return This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,pool,range_count,range_flags,pool_start_offsets,range_tile_counts,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_CopyTileMappings(ID3D11DeviceContext4* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,ID3D11Resource *src_resource,const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,const D3D11_TILE_REGION_SIZE *region_size,UINT flags) {
+ return This->lpVtbl->CopyTileMappings(This,dst_resource,dst_start_coordinate,src_resource,src_start_coordinate,region_size,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext4_CopyTiles(ID3D11DeviceContext4* This,ID3D11Resource *resource,const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,const D3D11_TILE_REGION_SIZE *size,ID3D11Buffer *buffer,UINT64 start_offset,UINT flags) {
+ This->lpVtbl->CopyTiles(This,resource,start_coordinate,size,buffer,start_offset,flags);
+}
+static FORCEINLINE void ID3D11DeviceContext4_UpdateTiles(ID3D11DeviceContext4* This,ID3D11Resource *dst_resource,const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,const D3D11_TILE_REGION_SIZE *dst_region_size,const void *src_data,UINT flags) {
+ This->lpVtbl->UpdateTiles(This,dst_resource,dst_start_coordinate,dst_region_size,src_data,flags);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_ResizeTilePool(ID3D11DeviceContext4* This,ID3D11Buffer *pool,UINT64 size) {
+ return This->lpVtbl->ResizeTilePool(This,pool,size);
+}
+static FORCEINLINE void ID3D11DeviceContext4_TiledResourceBarrier(ID3D11DeviceContext4* This,ID3D11DeviceChild *before_barrier,ID3D11DeviceChild *after_barrier) {
+ This->lpVtbl->TiledResourceBarrier(This,before_barrier,after_barrier);
+}
+static FORCEINLINE WINBOOL ID3D11DeviceContext4_IsAnnotationEnabled(ID3D11DeviceContext4* This) {
+ return This->lpVtbl->IsAnnotationEnabled(This);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SetMarkerInt(ID3D11DeviceContext4* This,const WCHAR *label,int data) {
+ This->lpVtbl->SetMarkerInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext4_BeginEventInt(ID3D11DeviceContext4* This,const WCHAR *label,int data) {
+ This->lpVtbl->BeginEventInt(This,label,data);
+}
+static FORCEINLINE void ID3D11DeviceContext4_EndEvent(ID3D11DeviceContext4* This) {
+ This->lpVtbl->EndEvent(This);
+}
+/*** ID3D11DeviceContext3 methods ***/
+static FORCEINLINE void ID3D11DeviceContext4_Flush1(ID3D11DeviceContext4* This,D3D11_CONTEXT_TYPE type,HANDLE event) {
+ This->lpVtbl->Flush1(This,type,event);
+}
+static FORCEINLINE void ID3D11DeviceContext4_SetHardwareProtectionState(ID3D11DeviceContext4* This,WINBOOL enable) {
+ This->lpVtbl->SetHardwareProtectionState(This,enable);
+}
+static FORCEINLINE void ID3D11DeviceContext4_GetHardwareProtectionState(ID3D11DeviceContext4* This,WINBOOL *enable) {
+ This->lpVtbl->GetHardwareProtectionState(This,enable);
+}
+/*** ID3D11DeviceContext4 methods ***/
+static FORCEINLINE HRESULT ID3D11DeviceContext4_Signal(ID3D11DeviceContext4* This,ID3D11Fence *fence,UINT64 value) {
+ return This->lpVtbl->Signal(This,fence,value);
+}
+static FORCEINLINE HRESULT ID3D11DeviceContext4_Wait(ID3D11DeviceContext4* This,ID3D11Fence *fence,UINT64 value) {
+ return This->lpVtbl->Wait(This,fence,value);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11DeviceContext4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device3 interface
+ */
+#ifndef __ID3D11Device3_INTERFACE_DEFINED__
+#define __ID3D11Device3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device3, 0xa05c8c37, 0xd2c6, 0x4732, 0xb3,0xa0, 0x9c,0xe0,0xb0,0xdc,0x9a,0xe6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a05c8c37-d2c6-4732-b3a0-9ce0b0dc9ae6")
+ID3D11Device3 : public ID3D11Device2
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture2D1(
+ const D3D11_TEXTURE2D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture2D1 **texture) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateTexture3D1(
+ const D3D11_TEXTURE3D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture3D1 **texture) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState2(
+ const D3D11_RASTERIZER_DESC2 *desc,
+ ID3D11RasterizerState2 **state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1(
+ ID3D11Resource *resource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
+ ID3D11ShaderResourceView1 **view) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView1(
+ ID3D11Resource *resource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
+ ID3D11UnorderedAccessView1 **view) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView1(
+ ID3D11Resource *resource,
+ const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
+ ID3D11RenderTargetView1 **view) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateQuery1(
+ const D3D11_QUERY_DESC1 *desc,
+ ID3D11Query1 **query) = 0;
+
+ virtual void STDMETHODCALLTYPE GetImmediateContext3(
+ ID3D11DeviceContext3 **context) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext3(
+ UINT flags,
+ ID3D11DeviceContext3 **context) = 0;
+
+ virtual void STDMETHODCALLTYPE WriteToSubresource(
+ ID3D11Resource *dst_resource,
+ UINT dst_subresource,
+ const D3D11_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_depth_pitch) = 0;
+
+ virtual void STDMETHODCALLTYPE ReadFromSubresource(
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_depth_pitch,
+ ID3D11Resource *src_resource,
+ UINT src_subresource,
+ const D3D11_BOX *src_box) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device3, 0xa05c8c37, 0xd2c6, 0x4732, 0xb3,0xa0, 0x9c,0xe0,0xb0,0xdc,0x9a,0xe6)
+#endif
+#else
+typedef struct ID3D11Device3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device3 *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device3 *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device3 *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device3 *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device3 *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device3 *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device3 *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device3 *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device3 *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device3 *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device3 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device3 *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device3 *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device3 *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device3 *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device3 *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device3 *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device3 *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device3 *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device3 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device3 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device3 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device3 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device3 *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device3 *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device3 *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device3 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device3 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device3 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device3 *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device3 *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device3 *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device3 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device3 *This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device3 *This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device3 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device3 *This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device3 *This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device3 *This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device3 *This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device3 *This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ /*** ID3D11Device2 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext2)(
+ ID3D11Device3 *This,
+ ID3D11DeviceContext2 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
+ ID3D11Device3 *This,
+ UINT flags,
+ ID3D11DeviceContext2 **context);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D11Device3 *This,
+ ID3D11Resource *resource,
+ UINT *tile_count,
+ D3D11_PACKED_MIP_DESC *mip_desc,
+ D3D11_TILE_SHAPE *tile_shape,
+ UINT *subresource_tiling_count,
+ UINT first_subresource_tiling,
+ D3D11_SUBRESOURCE_TILING *subresource_tiling);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
+ ID3D11Device3 *This,
+ DXGI_FORMAT format,
+ UINT sample_count,
+ UINT flags,
+ UINT *quality_level_count);
+
+ /*** ID3D11Device3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D1)(
+ ID3D11Device3 *This,
+ const D3D11_TEXTURE2D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture2D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D1)(
+ ID3D11Device3 *This,
+ const D3D11_TEXTURE3D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture3D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState2)(
+ ID3D11Device3 *This,
+ const D3D11_RASTERIZER_DESC2 *desc,
+ ID3D11RasterizerState2 **state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
+ ID3D11Device3 *This,
+ ID3D11Resource *resource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
+ ID3D11ShaderResourceView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView1)(
+ ID3D11Device3 *This,
+ ID3D11Resource *resource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
+ ID3D11UnorderedAccessView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView1)(
+ ID3D11Device3 *This,
+ ID3D11Resource *resource,
+ const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
+ ID3D11RenderTargetView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery1)(
+ ID3D11Device3 *This,
+ const D3D11_QUERY_DESC1 *desc,
+ ID3D11Query1 **query);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext3)(
+ ID3D11Device3 *This,
+ ID3D11DeviceContext3 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext3)(
+ ID3D11Device3 *This,
+ UINT flags,
+ ID3D11DeviceContext3 **context);
+
+ void (STDMETHODCALLTYPE *WriteToSubresource)(
+ ID3D11Device3 *This,
+ ID3D11Resource *dst_resource,
+ UINT dst_subresource,
+ const D3D11_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_depth_pitch);
+
+ void (STDMETHODCALLTYPE *ReadFromSubresource)(
+ ID3D11Device3 *This,
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_depth_pitch,
+ ID3D11Resource *src_resource,
+ UINT src_subresource,
+ const D3D11_BOX *src_box);
+
+ END_INTERFACE
+} ID3D11Device3Vtbl;
+
+interface ID3D11Device3 {
+ CONST_VTBL ID3D11Device3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device3_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device3_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device3_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device3_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device3_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device3_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device3_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device3_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device3_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device3_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device3_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device3_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device3_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device3_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device3_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device3_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device3_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device3_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device3_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device3_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device3_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device3_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device3_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device3_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device3_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device3_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device3_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device3_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device3_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device3_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device3_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device3_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device3_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device3_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device3_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device3_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device3_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device3_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device3_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device3_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device3_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device3_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device3_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device3_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device3_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device3_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device3_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+/*** ID3D11Device2 methods ***/
+#define ID3D11Device3_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
+#define ID3D11Device3_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
+#define ID3D11Device3_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
+#define ID3D11Device3_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
+/*** ID3D11Device3 methods ***/
+#define ID3D11Device3_CreateTexture2D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture)
+#define ID3D11Device3_CreateTexture3D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture)
+#define ID3D11Device3_CreateRasterizerState2(This,desc,state) (This)->lpVtbl->CreateRasterizerState2(This,desc,state)
+#define ID3D11Device3_CreateShaderResourceView1(This,resource,desc,view) (This)->lpVtbl->CreateShaderResourceView1(This,resource,desc,view)
+#define ID3D11Device3_CreateUnorderedAccessView1(This,resource,desc,view) (This)->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view)
+#define ID3D11Device3_CreateRenderTargetView1(This,resource,desc,view) (This)->lpVtbl->CreateRenderTargetView1(This,resource,desc,view)
+#define ID3D11Device3_CreateQuery1(This,desc,query) (This)->lpVtbl->CreateQuery1(This,desc,query)
+#define ID3D11Device3_GetImmediateContext3(This,context) (This)->lpVtbl->GetImmediateContext3(This,context)
+#define ID3D11Device3_CreateDeferredContext3(This,flags,context) (This)->lpVtbl->CreateDeferredContext3(This,flags,context)
+#define ID3D11Device3_WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch)
+#define ID3D11Device3_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device3_QueryInterface(ID3D11Device3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device3_AddRef(ID3D11Device3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device3_Release(ID3D11Device3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device3_CreateBuffer(ID3D11Device3* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateTexture1D(ID3D11Device3* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateTexture2D(ID3D11Device3* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateTexture3D(ID3D11Device3* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateShaderResourceView(ID3D11Device3* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateUnorderedAccessView(ID3D11Device3* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateRenderTargetView(ID3D11Device3* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDepthStencilView(ID3D11Device3* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateInputLayout(ID3D11Device3* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateVertexShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateGeometryShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateGeometryShaderWithStreamOutput(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreatePixelShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateHullShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDomainShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateComputeShader(ID3D11Device3* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateClassLinkage(ID3D11Device3* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateBlendState(ID3D11Device3* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDepthStencilState(ID3D11Device3* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateRasterizerState(ID3D11Device3* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateSamplerState(ID3D11Device3* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateQuery(ID3D11Device3* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreatePredicate(ID3D11Device3* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateCounter(ID3D11Device3* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDeferredContext(ID3D11Device3* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device3_OpenSharedResource(ID3D11Device3* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CheckFormatSupport(ID3D11Device3* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CheckMultisampleQualityLevels(ID3D11Device3* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device3_CheckCounterInfo(ID3D11Device3* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CheckCounter(ID3D11Device3* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CheckFeatureSupport(ID3D11Device3* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device3_GetPrivateData(ID3D11Device3* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device3_SetPrivateData(ID3D11Device3* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device3_SetPrivateDataInterface(ID3D11Device3* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device3_GetFeatureLevel(ID3D11Device3* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device3_GetCreationFlags(ID3D11Device3* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device3_GetDeviceRemovedReason(ID3D11Device3* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device3_GetImmediateContext(ID3D11Device3* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device3_SetExceptionMode(ID3D11Device3* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device3_GetExceptionMode(ID3D11Device3* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device3_GetImmediateContext1(ID3D11Device3* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDeferredContext1(ID3D11Device3* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateBlendState1(ID3D11Device3* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateRasterizerState1(ID3D11Device3* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDeviceContextState(ID3D11Device3* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device3_OpenSharedResource1(ID3D11Device3* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device3_OpenSharedResourceByName(ID3D11Device3* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+/*** ID3D11Device2 methods ***/
+static FORCEINLINE void ID3D11Device3_GetImmediateContext2(ID3D11Device3* This,ID3D11DeviceContext2 **context) {
+ This->lpVtbl->GetImmediateContext2(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDeferredContext2(ID3D11Device3* This,UINT flags,ID3D11DeviceContext2 **context) {
+ return This->lpVtbl->CreateDeferredContext2(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device3_GetResourceTiling(ID3D11Device3* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
+ This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CheckMultisampleQualityLevels1(ID3D11Device3* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
+ return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
+}
+/*** ID3D11Device3 methods ***/
+static FORCEINLINE HRESULT ID3D11Device3_CreateTexture2D1(ID3D11Device3* This,const D3D11_TEXTURE2D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture2D1 **texture) {
+ return This->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateTexture3D1(ID3D11Device3* This,const D3D11_TEXTURE3D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture3D1 **texture) {
+ return This->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateRasterizerState2(ID3D11Device3* This,const D3D11_RASTERIZER_DESC2 *desc,ID3D11RasterizerState2 **state) {
+ return This->lpVtbl->CreateRasterizerState2(This,desc,state);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateShaderResourceView1(ID3D11Device3* This,ID3D11Resource *resource,const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,ID3D11ShaderResourceView1 **view) {
+ return This->lpVtbl->CreateShaderResourceView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateUnorderedAccessView1(ID3D11Device3* This,ID3D11Resource *resource,const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,ID3D11UnorderedAccessView1 **view) {
+ return This->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateRenderTargetView1(ID3D11Device3* This,ID3D11Resource *resource,const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,ID3D11RenderTargetView1 **view) {
+ return This->lpVtbl->CreateRenderTargetView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateQuery1(ID3D11Device3* This,const D3D11_QUERY_DESC1 *desc,ID3D11Query1 **query) {
+ return This->lpVtbl->CreateQuery1(This,desc,query);
+}
+static FORCEINLINE void ID3D11Device3_GetImmediateContext3(ID3D11Device3* This,ID3D11DeviceContext3 **context) {
+ This->lpVtbl->GetImmediateContext3(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device3_CreateDeferredContext3(ID3D11Device3* This,UINT flags,ID3D11DeviceContext3 **context) {
+ return This->lpVtbl->CreateDeferredContext3(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device3_WriteToSubresource(ID3D11Device3* This,ID3D11Resource *dst_resource,UINT dst_subresource,const D3D11_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_depth_pitch) {
+ This->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch);
+}
+static FORCEINLINE void ID3D11Device3_ReadFromSubresource(ID3D11Device3* This,void *dst_data,UINT dst_row_pitch,UINT dst_depth_pitch,ID3D11Resource *src_resource,UINT src_subresource,const D3D11_BOX *src_box) {
+ This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device3_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11_3_h__ */
diff --git a/d3d11_4.h b/d3d11_4.h
new file mode 100644
index 0000000..bfa4d34
--- /dev/null
+++ b/d3d11_4.h
@@ -0,0 +1,2596 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11_4.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11_4_h__
+#define __d3d11_4_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11Device4_FWD_DEFINED__
+#define __ID3D11Device4_FWD_DEFINED__
+typedef interface ID3D11Device4 ID3D11Device4;
+#ifdef __cplusplus
+interface ID3D11Device4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Device5_FWD_DEFINED__
+#define __ID3D11Device5_FWD_DEFINED__
+typedef interface ID3D11Device5 ID3D11Device5;
+#ifdef __cplusplus
+interface ID3D11Device5;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11Multithread_FWD_DEFINED__
+#define __ID3D11Multithread_FWD_DEFINED__
+typedef interface ID3D11Multithread ID3D11Multithread;
+#ifdef __cplusplus
+interface ID3D11Multithread;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11VideoContext2_FWD_DEFINED__
+#define __ID3D11VideoContext2_FWD_DEFINED__
+typedef interface ID3D11VideoContext2 ID3D11VideoContext2;
+#ifdef __cplusplus
+interface ID3D11VideoContext2;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi1_5.h>
+#include <d3dcommon.h>
+#include <d3d11_3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4 {
+ WINBOOL ExtendedNV12SharedTextureSupported;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS4;
+/*****************************************************************************
+ * ID3D11Device4 interface
+ */
+#ifndef __ID3D11Device4_INTERFACE_DEFINED__
+#define __ID3D11Device4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device4, 0x8992ab71, 0x02e6, 0x4b8d, 0xba,0x48, 0xb0,0x56,0xdc,0xda,0x42,0xc4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8992ab71-02e6-4b8d-ba48-b056dcda42c4")
+ID3D11Device4 : public ID3D11Device3
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterDeviceRemovedEvent(
+ HANDLE event,
+ DWORD *cookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterDeviceRemoved(
+ DWORD cookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device4, 0x8992ab71, 0x02e6, 0x4b8d, 0xba,0x48, 0xb0,0x56,0xdc,0xda,0x42,0xc4)
+#endif
+#else
+typedef struct ID3D11Device4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device4 *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device4 *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device4 *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device4 *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device4 *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device4 *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device4 *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device4 *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device4 *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device4 *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device4 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device4 *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device4 *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device4 *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device4 *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device4 *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device4 *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device4 *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device4 *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device4 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device4 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device4 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device4 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device4 *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device4 *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device4 *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device4 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device4 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device4 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device4 *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device4 *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device4 *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device4 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device4 *This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device4 *This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device4 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device4 *This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device4 *This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device4 *This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device4 *This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device4 *This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ /*** ID3D11Device2 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext2)(
+ ID3D11Device4 *This,
+ ID3D11DeviceContext2 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
+ ID3D11Device4 *This,
+ UINT flags,
+ ID3D11DeviceContext2 **context);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D11Device4 *This,
+ ID3D11Resource *resource,
+ UINT *tile_count,
+ D3D11_PACKED_MIP_DESC *mip_desc,
+ D3D11_TILE_SHAPE *tile_shape,
+ UINT *subresource_tiling_count,
+ UINT first_subresource_tiling,
+ D3D11_SUBRESOURCE_TILING *subresource_tiling);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
+ ID3D11Device4 *This,
+ DXGI_FORMAT format,
+ UINT sample_count,
+ UINT flags,
+ UINT *quality_level_count);
+
+ /*** ID3D11Device3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D1)(
+ ID3D11Device4 *This,
+ const D3D11_TEXTURE2D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture2D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D1)(
+ ID3D11Device4 *This,
+ const D3D11_TEXTURE3D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture3D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState2)(
+ ID3D11Device4 *This,
+ const D3D11_RASTERIZER_DESC2 *desc,
+ ID3D11RasterizerState2 **state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
+ ID3D11Device4 *This,
+ ID3D11Resource *resource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
+ ID3D11ShaderResourceView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView1)(
+ ID3D11Device4 *This,
+ ID3D11Resource *resource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
+ ID3D11UnorderedAccessView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView1)(
+ ID3D11Device4 *This,
+ ID3D11Resource *resource,
+ const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
+ ID3D11RenderTargetView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery1)(
+ ID3D11Device4 *This,
+ const D3D11_QUERY_DESC1 *desc,
+ ID3D11Query1 **query);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext3)(
+ ID3D11Device4 *This,
+ ID3D11DeviceContext3 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext3)(
+ ID3D11Device4 *This,
+ UINT flags,
+ ID3D11DeviceContext3 **context);
+
+ void (STDMETHODCALLTYPE *WriteToSubresource)(
+ ID3D11Device4 *This,
+ ID3D11Resource *dst_resource,
+ UINT dst_subresource,
+ const D3D11_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_depth_pitch);
+
+ void (STDMETHODCALLTYPE *ReadFromSubresource)(
+ ID3D11Device4 *This,
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_depth_pitch,
+ ID3D11Resource *src_resource,
+ UINT src_subresource,
+ const D3D11_BOX *src_box);
+
+ /*** ID3D11Device4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterDeviceRemovedEvent)(
+ ID3D11Device4 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterDeviceRemoved)(
+ ID3D11Device4 *This,
+ DWORD cookie);
+
+ END_INTERFACE
+} ID3D11Device4Vtbl;
+
+interface ID3D11Device4 {
+ CONST_VTBL ID3D11Device4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device4_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device4_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device4_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device4_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device4_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device4_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device4_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device4_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device4_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device4_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device4_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device4_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device4_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device4_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device4_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device4_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device4_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device4_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device4_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device4_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device4_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device4_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device4_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device4_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device4_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device4_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device4_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device4_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device4_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device4_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device4_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device4_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device4_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device4_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device4_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device4_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device4_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device4_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device4_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device4_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device4_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device4_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device4_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device4_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device4_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device4_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device4_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+/*** ID3D11Device2 methods ***/
+#define ID3D11Device4_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
+#define ID3D11Device4_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
+#define ID3D11Device4_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
+#define ID3D11Device4_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
+/*** ID3D11Device3 methods ***/
+#define ID3D11Device4_CreateTexture2D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture)
+#define ID3D11Device4_CreateTexture3D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture)
+#define ID3D11Device4_CreateRasterizerState2(This,desc,state) (This)->lpVtbl->CreateRasterizerState2(This,desc,state)
+#define ID3D11Device4_CreateShaderResourceView1(This,resource,desc,view) (This)->lpVtbl->CreateShaderResourceView1(This,resource,desc,view)
+#define ID3D11Device4_CreateUnorderedAccessView1(This,resource,desc,view) (This)->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view)
+#define ID3D11Device4_CreateRenderTargetView1(This,resource,desc,view) (This)->lpVtbl->CreateRenderTargetView1(This,resource,desc,view)
+#define ID3D11Device4_CreateQuery1(This,desc,query) (This)->lpVtbl->CreateQuery1(This,desc,query)
+#define ID3D11Device4_GetImmediateContext3(This,context) (This)->lpVtbl->GetImmediateContext3(This,context)
+#define ID3D11Device4_CreateDeferredContext3(This,flags,context) (This)->lpVtbl->CreateDeferredContext3(This,flags,context)
+#define ID3D11Device4_WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch)
+#define ID3D11Device4_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box)
+/*** ID3D11Device4 methods ***/
+#define ID3D11Device4_RegisterDeviceRemovedEvent(This,event,cookie) (This)->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie)
+#define ID3D11Device4_UnregisterDeviceRemoved(This,cookie) (This)->lpVtbl->UnregisterDeviceRemoved(This,cookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device4_QueryInterface(ID3D11Device4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device4_AddRef(ID3D11Device4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device4_Release(ID3D11Device4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device4_CreateBuffer(ID3D11Device4* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateTexture1D(ID3D11Device4* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateTexture2D(ID3D11Device4* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateTexture3D(ID3D11Device4* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateShaderResourceView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateUnorderedAccessView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateRenderTargetView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDepthStencilView(ID3D11Device4* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateInputLayout(ID3D11Device4* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateVertexShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateGeometryShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateGeometryShaderWithStreamOutput(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreatePixelShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateHullShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDomainShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateComputeShader(ID3D11Device4* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateClassLinkage(ID3D11Device4* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateBlendState(ID3D11Device4* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDepthStencilState(ID3D11Device4* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateRasterizerState(ID3D11Device4* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateSamplerState(ID3D11Device4* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateQuery(ID3D11Device4* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreatePredicate(ID3D11Device4* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateCounter(ID3D11Device4* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDeferredContext(ID3D11Device4* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device4_OpenSharedResource(ID3D11Device4* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CheckFormatSupport(ID3D11Device4* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CheckMultisampleQualityLevels(ID3D11Device4* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device4_CheckCounterInfo(ID3D11Device4* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CheckCounter(ID3D11Device4* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CheckFeatureSupport(ID3D11Device4* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device4_GetPrivateData(ID3D11Device4* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device4_SetPrivateData(ID3D11Device4* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device4_SetPrivateDataInterface(ID3D11Device4* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device4_GetFeatureLevel(ID3D11Device4* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device4_GetCreationFlags(ID3D11Device4* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device4_GetDeviceRemovedReason(ID3D11Device4* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device4_GetImmediateContext(ID3D11Device4* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device4_SetExceptionMode(ID3D11Device4* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device4_GetExceptionMode(ID3D11Device4* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device4_GetImmediateContext1(ID3D11Device4* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDeferredContext1(ID3D11Device4* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateBlendState1(ID3D11Device4* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateRasterizerState1(ID3D11Device4* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDeviceContextState(ID3D11Device4* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device4_OpenSharedResource1(ID3D11Device4* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device4_OpenSharedResourceByName(ID3D11Device4* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+/*** ID3D11Device2 methods ***/
+static FORCEINLINE void ID3D11Device4_GetImmediateContext2(ID3D11Device4* This,ID3D11DeviceContext2 **context) {
+ This->lpVtbl->GetImmediateContext2(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDeferredContext2(ID3D11Device4* This,UINT flags,ID3D11DeviceContext2 **context) {
+ return This->lpVtbl->CreateDeferredContext2(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device4_GetResourceTiling(ID3D11Device4* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
+ This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CheckMultisampleQualityLevels1(ID3D11Device4* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
+ return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
+}
+/*** ID3D11Device3 methods ***/
+static FORCEINLINE HRESULT ID3D11Device4_CreateTexture2D1(ID3D11Device4* This,const D3D11_TEXTURE2D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture2D1 **texture) {
+ return This->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateTexture3D1(ID3D11Device4* This,const D3D11_TEXTURE3D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture3D1 **texture) {
+ return This->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateRasterizerState2(ID3D11Device4* This,const D3D11_RASTERIZER_DESC2 *desc,ID3D11RasterizerState2 **state) {
+ return This->lpVtbl->CreateRasterizerState2(This,desc,state);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateShaderResourceView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,ID3D11ShaderResourceView1 **view) {
+ return This->lpVtbl->CreateShaderResourceView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateUnorderedAccessView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,ID3D11UnorderedAccessView1 **view) {
+ return This->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateRenderTargetView1(ID3D11Device4* This,ID3D11Resource *resource,const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,ID3D11RenderTargetView1 **view) {
+ return This->lpVtbl->CreateRenderTargetView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateQuery1(ID3D11Device4* This,const D3D11_QUERY_DESC1 *desc,ID3D11Query1 **query) {
+ return This->lpVtbl->CreateQuery1(This,desc,query);
+}
+static FORCEINLINE void ID3D11Device4_GetImmediateContext3(ID3D11Device4* This,ID3D11DeviceContext3 **context) {
+ This->lpVtbl->GetImmediateContext3(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device4_CreateDeferredContext3(ID3D11Device4* This,UINT flags,ID3D11DeviceContext3 **context) {
+ return This->lpVtbl->CreateDeferredContext3(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device4_WriteToSubresource(ID3D11Device4* This,ID3D11Resource *dst_resource,UINT dst_subresource,const D3D11_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_depth_pitch) {
+ This->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch);
+}
+static FORCEINLINE void ID3D11Device4_ReadFromSubresource(ID3D11Device4* This,void *dst_data,UINT dst_row_pitch,UINT dst_depth_pitch,ID3D11Resource *src_resource,UINT src_subresource,const D3D11_BOX *src_box) {
+ This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box);
+}
+/*** ID3D11Device4 methods ***/
+static FORCEINLINE HRESULT ID3D11Device4_RegisterDeviceRemovedEvent(ID3D11Device4* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie);
+}
+static FORCEINLINE void ID3D11Device4_UnregisterDeviceRemoved(ID3D11Device4* This,DWORD cookie) {
+ This->lpVtbl->UnregisterDeviceRemoved(This,cookie);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Device5 interface
+ */
+#ifndef __ID3D11Device5_INTERFACE_DEFINED__
+#define __ID3D11Device5_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Device5, 0x8ffde202, 0xa0e7, 0x45df, 0x9e,0x01, 0xe8,0x37,0x80,0x1b,0x5e,0xa0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8ffde202-a0e7-45df-9e01-e837801b5ea0")
+ID3D11Device5 : public ID3D11Device4
+{
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedFence(
+ HANDLE handle,
+ REFIID iid,
+ void **fence) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateFence(
+ UINT64 initial_value,
+ D3D11_FENCE_FLAG flags,
+ REFIID iid,
+ void **fence) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Device5, 0x8ffde202, 0xa0e7, 0x45df, 0x9e,0x01, 0xe8,0x37,0x80,0x1b,0x5e,0xa0)
+#endif
+#else
+typedef struct ID3D11Device5Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Device5 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Device5 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Device5 *This);
+
+ /*** ID3D11Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateBuffer)(
+ ID3D11Device5 *This,
+ const D3D11_BUFFER_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Buffer **ppBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture1D)(
+ ID3D11Device5 *This,
+ const D3D11_TEXTURE1D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D)(
+ ID3D11Device5 *This,
+ const D3D11_TEXTURE2D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D)(
+ ID3D11Device5 *This,
+ const D3D11_TEXTURE3D_DESC *pDesc,
+ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D11Device5 *This,
+ ID3D11Resource *pResource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D11Device5 *This,
+ ID3D11Resource *pResource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D11Device5 *This,
+ ID3D11Resource *pResource,
+ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D11Device5 *This,
+ ID3D11Resource *pResource,
+ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT (STDMETHODCALLTYPE *CreateInputLayout)(
+ ID3D11Device5 *This,
+ const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ UINT NumElements,
+ const void *pShaderBytecodeWithInputSignature,
+ SIZE_T BytecodeLength,
+ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVertexShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ UINT NumEntries,
+ const UINT *pBufferStrides,
+ UINT NumStrides,
+ UINT RasterizedStream,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePixelShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHullShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11HullShader **ppHullShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDomainShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputeShader)(
+ ID3D11Device5 *This,
+ const void *pShaderBytecode,
+ SIZE_T BytecodeLength,
+ ID3D11ClassLinkage *pClassLinkage,
+ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT (STDMETHODCALLTYPE *CreateClassLinkage)(
+ ID3D11Device5 *This,
+ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState)(
+ ID3D11Device5 *This,
+ const D3D11_BLEND_DESC *pBlendStateDesc,
+ ID3D11BlendState **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDepthStencilState)(
+ ID3D11Device5 *This,
+ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState)(
+ ID3D11Device5 *This,
+ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSamplerState)(
+ ID3D11Device5 *This,
+ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery)(
+ ID3D11Device5 *This,
+ const D3D11_QUERY_DESC *pQueryDesc,
+ ID3D11Query **ppQuery);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePredicate)(
+ ID3D11Device5 *This,
+ const D3D11_QUERY_DESC *pPredicateDesc,
+ ID3D11Predicate **ppPredicate);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCounter)(
+ ID3D11Device5 *This,
+ const D3D11_COUNTER_DESC *pCounterDesc,
+ ID3D11Counter **ppCounter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext)(
+ ID3D11Device5 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource)(
+ ID3D11Device5 *This,
+ HANDLE hResource,
+ REFIID ReturnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFormatSupport)(
+ ID3D11Device5 *This,
+ DXGI_FORMAT Format,
+ UINT *pFormatSupport);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels)(
+ ID3D11Device5 *This,
+ DXGI_FORMAT Format,
+ UINT SampleCount,
+ UINT *pNumQualityLevels);
+
+ void (STDMETHODCALLTYPE *CheckCounterInfo)(
+ ID3D11Device5 *This,
+ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCounter)(
+ ID3D11Device5 *This,
+ const D3D11_COUNTER_DESC *pDesc,
+ D3D11_COUNTER_TYPE *pType,
+ UINT *pActiveCounters,
+ LPSTR szName,
+ UINT *pNameLength,
+ LPSTR szUnits,
+ UINT *pUnitsLength,
+ LPSTR szDescription,
+ UINT *pDescriptionLength);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D11Device5 *This,
+ D3D11_FEATURE Feature,
+ void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11Device5 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11Device5 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11Device5 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL (STDMETHODCALLTYPE *GetFeatureLevel)(
+ ID3D11Device5 *This);
+
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ ID3D11Device5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D11Device5 *This);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext)(
+ ID3D11Device5 *This,
+ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetExceptionMode)(
+ ID3D11Device5 *This,
+ UINT RaiseFlags);
+
+ UINT (STDMETHODCALLTYPE *GetExceptionMode)(
+ ID3D11Device5 *This);
+
+ /*** ID3D11Device1 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext1)(
+ ID3D11Device5 *This,
+ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext1)(
+ ID3D11Device5 *This,
+ UINT ContextFlags,
+ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT (STDMETHODCALLTYPE *CreateBlendState1)(
+ ID3D11Device5 *This,
+ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState1)(
+ ID3D11Device5 *This,
+ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeviceContextState)(
+ ID3D11Device5 *This,
+ UINT Flags,
+ const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ ID3DDeviceContextState **ppContextState);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResource1)(
+ ID3D11Device5 *This,
+ HANDLE hResource,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedResourceByName)(
+ ID3D11Device5 *This,
+ LPCWSTR lpName,
+ DWORD dwDesiredAccess,
+ REFIID returnedInterface,
+ void **ppResource);
+
+ /*** ID3D11Device2 methods ***/
+ void (STDMETHODCALLTYPE *GetImmediateContext2)(
+ ID3D11Device5 *This,
+ ID3D11DeviceContext2 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext2)(
+ ID3D11Device5 *This,
+ UINT flags,
+ ID3D11DeviceContext2 **context);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D11Device5 *This,
+ ID3D11Resource *resource,
+ UINT *tile_count,
+ D3D11_PACKED_MIP_DESC *mip_desc,
+ D3D11_TILE_SHAPE *tile_shape,
+ UINT *subresource_tiling_count,
+ UINT first_subresource_tiling,
+ D3D11_SUBRESOURCE_TILING *subresource_tiling);
+
+ HRESULT (STDMETHODCALLTYPE *CheckMultisampleQualityLevels1)(
+ ID3D11Device5 *This,
+ DXGI_FORMAT format,
+ UINT sample_count,
+ UINT flags,
+ UINT *quality_level_count);
+
+ /*** ID3D11Device3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateTexture2D1)(
+ ID3D11Device5 *This,
+ const D3D11_TEXTURE2D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture2D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateTexture3D1)(
+ ID3D11Device5 *This,
+ const D3D11_TEXTURE3D_DESC1 *desc,
+ const D3D11_SUBRESOURCE_DATA *initial_data,
+ ID3D11Texture3D1 **texture);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRasterizerState2)(
+ ID3D11Device5 *This,
+ const D3D11_RASTERIZER_DESC2 *desc,
+ ID3D11RasterizerState2 **state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateShaderResourceView1)(
+ ID3D11Device5 *This,
+ ID3D11Resource *resource,
+ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
+ ID3D11ShaderResourceView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateUnorderedAccessView1)(
+ ID3D11Device5 *This,
+ ID3D11Resource *resource,
+ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
+ ID3D11UnorderedAccessView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRenderTargetView1)(
+ ID3D11Device5 *This,
+ ID3D11Resource *resource,
+ const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
+ ID3D11RenderTargetView1 **view);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQuery1)(
+ ID3D11Device5 *This,
+ const D3D11_QUERY_DESC1 *desc,
+ ID3D11Query1 **query);
+
+ void (STDMETHODCALLTYPE *GetImmediateContext3)(
+ ID3D11Device5 *This,
+ ID3D11DeviceContext3 **context);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDeferredContext3)(
+ ID3D11Device5 *This,
+ UINT flags,
+ ID3D11DeviceContext3 **context);
+
+ void (STDMETHODCALLTYPE *WriteToSubresource)(
+ ID3D11Device5 *This,
+ ID3D11Resource *dst_resource,
+ UINT dst_subresource,
+ const D3D11_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_depth_pitch);
+
+ void (STDMETHODCALLTYPE *ReadFromSubresource)(
+ ID3D11Device5 *This,
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_depth_pitch,
+ ID3D11Resource *src_resource,
+ UINT src_subresource,
+ const D3D11_BOX *src_box);
+
+ /*** ID3D11Device4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterDeviceRemovedEvent)(
+ ID3D11Device5 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterDeviceRemoved)(
+ ID3D11Device5 *This,
+ DWORD cookie);
+
+ /*** ID3D11Device5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OpenSharedFence)(
+ ID3D11Device5 *This,
+ HANDLE handle,
+ REFIID iid,
+ void **fence);
+
+ HRESULT (STDMETHODCALLTYPE *CreateFence)(
+ ID3D11Device5 *This,
+ UINT64 initial_value,
+ D3D11_FENCE_FLAG flags,
+ REFIID iid,
+ void **fence);
+
+ END_INTERFACE
+} ID3D11Device5Vtbl;
+
+interface ID3D11Device5 {
+ CONST_VTBL ID3D11Device5Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Device5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Device5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Device5_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Device methods ***/
+#define ID3D11Device5_CreateBuffer(This,pDesc,pInitialData,ppBuffer) (This)->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer)
+#define ID3D11Device5_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) (This)->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)
+#define ID3D11Device5_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) (This)->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)
+#define ID3D11Device5_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) (This)->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)
+#define ID3D11Device5_CreateShaderResourceView(This,pResource,pDesc,ppSRView) (This)->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView)
+#define ID3D11Device5_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) (This)->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)
+#define ID3D11Device5_CreateRenderTargetView(This,pResource,pDesc,ppRTView) (This)->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView)
+#define ID3D11Device5_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) (This)->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)
+#define ID3D11Device5_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) (This)->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)
+#define ID3D11Device5_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) (This)->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)
+#define ID3D11Device5_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)
+#define ID3D11Device5_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) (This)->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)
+#define ID3D11Device5_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) (This)->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)
+#define ID3D11Device5_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) (This)->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)
+#define ID3D11Device5_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) (This)->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)
+#define ID3D11Device5_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) (This)->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)
+#define ID3D11Device5_CreateClassLinkage(This,ppLinkage) (This)->lpVtbl->CreateClassLinkage(This,ppLinkage)
+#define ID3D11Device5_CreateBlendState(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device5_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) (This)->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)
+#define ID3D11Device5_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device5_CreateSamplerState(This,pSamplerDesc,ppSamplerState) (This)->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState)
+#define ID3D11Device5_CreateQuery(This,pQueryDesc,ppQuery) (This)->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery)
+#define ID3D11Device5_CreatePredicate(This,pPredicateDesc,ppPredicate) (This)->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate)
+#define ID3D11Device5_CreateCounter(This,pCounterDesc,ppCounter) (This)->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter)
+#define ID3D11Device5_CreateDeferredContext(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device5_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+#define ID3D11Device5_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+#define ID3D11Device5_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+#define ID3D11Device5_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+#define ID3D11Device5_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
+#define ID3D11Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) (This)->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)
+#define ID3D11Device5_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11Device5_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11Device5_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+#define ID3D11Device5_GetFeatureLevel(This) (This)->lpVtbl->GetFeatureLevel(This)
+#define ID3D11Device5_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#define ID3D11Device5_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D11Device5_GetImmediateContext(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext(This,ppImmediateContext)
+#define ID3D11Device5_SetExceptionMode(This,RaiseFlags) (This)->lpVtbl->SetExceptionMode(This,RaiseFlags)
+#define ID3D11Device5_GetExceptionMode(This) (This)->lpVtbl->GetExceptionMode(This)
+/*** ID3D11Device1 methods ***/
+#define ID3D11Device5_GetImmediateContext1(This,ppImmediateContext) (This)->lpVtbl->GetImmediateContext1(This,ppImmediateContext)
+#define ID3D11Device5_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) (This)->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext)
+#define ID3D11Device5_CreateBlendState1(This,pBlendStateDesc,ppBlendState) (This)->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState)
+#define ID3D11Device5_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) (This)->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState)
+#define ID3D11Device5_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) (This)->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState)
+#define ID3D11Device5_OpenSharedResource1(This,hResource,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource)
+#define ID3D11Device5_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) (This)->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource)
+/*** ID3D11Device2 methods ***/
+#define ID3D11Device5_GetImmediateContext2(This,context) (This)->lpVtbl->GetImmediateContext2(This,context)
+#define ID3D11Device5_CreateDeferredContext2(This,flags,context) (This)->lpVtbl->CreateDeferredContext2(This,flags,context)
+#define ID3D11Device5_GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling) (This)->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling)
+#define ID3D11Device5_CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count) (This)->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count)
+/*** ID3D11Device3 methods ***/
+#define ID3D11Device5_CreateTexture2D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture)
+#define ID3D11Device5_CreateTexture3D1(This,desc,initial_data,texture) (This)->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture)
+#define ID3D11Device5_CreateRasterizerState2(This,desc,state) (This)->lpVtbl->CreateRasterizerState2(This,desc,state)
+#define ID3D11Device5_CreateShaderResourceView1(This,resource,desc,view) (This)->lpVtbl->CreateShaderResourceView1(This,resource,desc,view)
+#define ID3D11Device5_CreateUnorderedAccessView1(This,resource,desc,view) (This)->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view)
+#define ID3D11Device5_CreateRenderTargetView1(This,resource,desc,view) (This)->lpVtbl->CreateRenderTargetView1(This,resource,desc,view)
+#define ID3D11Device5_CreateQuery1(This,desc,query) (This)->lpVtbl->CreateQuery1(This,desc,query)
+#define ID3D11Device5_GetImmediateContext3(This,context) (This)->lpVtbl->GetImmediateContext3(This,context)
+#define ID3D11Device5_CreateDeferredContext3(This,flags,context) (This)->lpVtbl->CreateDeferredContext3(This,flags,context)
+#define ID3D11Device5_WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch)
+#define ID3D11Device5_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box)
+/*** ID3D11Device4 methods ***/
+#define ID3D11Device5_RegisterDeviceRemovedEvent(This,event,cookie) (This)->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie)
+#define ID3D11Device5_UnregisterDeviceRemoved(This,cookie) (This)->lpVtbl->UnregisterDeviceRemoved(This,cookie)
+/*** ID3D11Device5 methods ***/
+#define ID3D11Device5_OpenSharedFence(This,handle,iid,fence) (This)->lpVtbl->OpenSharedFence(This,handle,iid,fence)
+#define ID3D11Device5_CreateFence(This,initial_value,flags,iid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,iid,fence)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Device5_QueryInterface(ID3D11Device5* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Device5_AddRef(ID3D11Device5* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Device5_Release(ID3D11Device5* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Device methods ***/
+static FORCEINLINE HRESULT ID3D11Device5_CreateBuffer(ID3D11Device5* This,const D3D11_BUFFER_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Buffer **ppBuffer) {
+ return This->lpVtbl->CreateBuffer(This,pDesc,pInitialData,ppBuffer);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateTexture1D(ID3D11Device5* This,const D3D11_TEXTURE1D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture1D **ppTexture1D) {
+ return This->lpVtbl->CreateTexture1D(This,pDesc,pInitialData,ppTexture1D);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateTexture2D(ID3D11Device5* This,const D3D11_TEXTURE2D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture2D **ppTexture2D) {
+ return This->lpVtbl->CreateTexture2D(This,pDesc,pInitialData,ppTexture2D);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateTexture3D(ID3D11Device5* This,const D3D11_TEXTURE3D_DESC *pDesc,const D3D11_SUBRESOURCE_DATA *pInitialData,ID3D11Texture3D **ppTexture3D) {
+ return This->lpVtbl->CreateTexture3D(This,pDesc,pInitialData,ppTexture3D);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateShaderResourceView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,ID3D11ShaderResourceView **ppSRView) {
+ return This->lpVtbl->CreateShaderResourceView(This,pResource,pDesc,ppSRView);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateUnorderedAccessView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,ID3D11UnorderedAccessView **ppUAView) {
+ return This->lpVtbl->CreateUnorderedAccessView(This,pResource,pDesc,ppUAView);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateRenderTargetView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,ID3D11RenderTargetView **ppRTView) {
+ return This->lpVtbl->CreateRenderTargetView(This,pResource,pDesc,ppRTView);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDepthStencilView(ID3D11Device5* This,ID3D11Resource *pResource,const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,ID3D11DepthStencilView **ppDepthStencilView) {
+ return This->lpVtbl->CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateInputLayout(ID3D11Device5* This,const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,UINT NumElements,const void *pShaderBytecodeWithInputSignature,SIZE_T BytecodeLength,ID3D11InputLayout **ppInputLayout) {
+ return This->lpVtbl->CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateVertexShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11VertexShader **ppVertexShader) {
+ return This->lpVtbl->CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateGeometryShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateGeometryShaderWithStreamOutput(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,UINT NumEntries,const UINT *pBufferStrides,UINT NumStrides,UINT RasterizedStream,ID3D11ClassLinkage *pClassLinkage,ID3D11GeometryShader **ppGeometryShader) {
+ return This->lpVtbl->CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreatePixelShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11PixelShader **ppPixelShader) {
+ return This->lpVtbl->CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateHullShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11HullShader **ppHullShader) {
+ return This->lpVtbl->CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDomainShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11DomainShader **ppDomainShader) {
+ return This->lpVtbl->CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateComputeShader(ID3D11Device5* This,const void *pShaderBytecode,SIZE_T BytecodeLength,ID3D11ClassLinkage *pClassLinkage,ID3D11ComputeShader **ppComputeShader) {
+ return This->lpVtbl->CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateClassLinkage(ID3D11Device5* This,ID3D11ClassLinkage **ppLinkage) {
+ return This->lpVtbl->CreateClassLinkage(This,ppLinkage);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateBlendState(ID3D11Device5* This,const D3D11_BLEND_DESC *pBlendStateDesc,ID3D11BlendState **ppBlendState) {
+ return This->lpVtbl->CreateBlendState(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDepthStencilState(ID3D11Device5* This,const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,ID3D11DepthStencilState **ppDepthStencilState) {
+ return This->lpVtbl->CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateRasterizerState(ID3D11Device5* This,const D3D11_RASTERIZER_DESC *pRasterizerDesc,ID3D11RasterizerState **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateSamplerState(ID3D11Device5* This,const D3D11_SAMPLER_DESC *pSamplerDesc,ID3D11SamplerState **ppSamplerState) {
+ return This->lpVtbl->CreateSamplerState(This,pSamplerDesc,ppSamplerState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateQuery(ID3D11Device5* This,const D3D11_QUERY_DESC *pQueryDesc,ID3D11Query **ppQuery) {
+ return This->lpVtbl->CreateQuery(This,pQueryDesc,ppQuery);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreatePredicate(ID3D11Device5* This,const D3D11_QUERY_DESC *pPredicateDesc,ID3D11Predicate **ppPredicate) {
+ return This->lpVtbl->CreatePredicate(This,pPredicateDesc,ppPredicate);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateCounter(ID3D11Device5* This,const D3D11_COUNTER_DESC *pCounterDesc,ID3D11Counter **ppCounter) {
+ return This->lpVtbl->CreateCounter(This,pCounterDesc,ppCounter);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDeferredContext(ID3D11Device5* This,UINT ContextFlags,ID3D11DeviceContext **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device5_OpenSharedResource(ID3D11Device5* This,HANDLE hResource,REFIID ReturnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CheckFormatSupport(ID3D11Device5* This,DXGI_FORMAT Format,UINT *pFormatSupport) {
+ return This->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CheckMultisampleQualityLevels(ID3D11Device5* This,DXGI_FORMAT Format,UINT SampleCount,UINT *pNumQualityLevels) {
+ return This->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels);
+}
+static FORCEINLINE void ID3D11Device5_CheckCounterInfo(ID3D11Device5* This,D3D11_COUNTER_INFO *pCounterInfo) {
+ This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CheckCounter(ID3D11Device5* This,const D3D11_COUNTER_DESC *pDesc,D3D11_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+ return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CheckFeatureSupport(ID3D11Device5* This,D3D11_FEATURE Feature,void *pFeatureSupportData,UINT FeatureSupportDataSize) {
+ return This->lpVtbl->CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize);
+}
+static FORCEINLINE HRESULT ID3D11Device5_GetPrivateData(ID3D11Device5* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device5_SetPrivateData(ID3D11Device5* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11Device5_SetPrivateDataInterface(ID3D11Device5* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+static FORCEINLINE D3D_FEATURE_LEVEL ID3D11Device5_GetFeatureLevel(ID3D11Device5* This) {
+ return This->lpVtbl->GetFeatureLevel(This);
+}
+static FORCEINLINE UINT ID3D11Device5_GetCreationFlags(ID3D11Device5* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+static FORCEINLINE HRESULT ID3D11Device5_GetDeviceRemovedReason(ID3D11Device5* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D11Device5_GetImmediateContext(ID3D11Device5* This,ID3D11DeviceContext **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device5_SetExceptionMode(ID3D11Device5* This,UINT RaiseFlags) {
+ return This->lpVtbl->SetExceptionMode(This,RaiseFlags);
+}
+static FORCEINLINE UINT ID3D11Device5_GetExceptionMode(ID3D11Device5* This) {
+ return This->lpVtbl->GetExceptionMode(This);
+}
+/*** ID3D11Device1 methods ***/
+static FORCEINLINE void ID3D11Device5_GetImmediateContext1(ID3D11Device5* This,ID3D11DeviceContext1 **ppImmediateContext) {
+ This->lpVtbl->GetImmediateContext1(This,ppImmediateContext);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDeferredContext1(ID3D11Device5* This,UINT ContextFlags,ID3D11DeviceContext1 **ppDeferredContext) {
+ return This->lpVtbl->CreateDeferredContext1(This,ContextFlags,ppDeferredContext);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateBlendState1(ID3D11Device5* This,const D3D11_BLEND_DESC1 *pBlendStateDesc,ID3D11BlendState1 **ppBlendState) {
+ return This->lpVtbl->CreateBlendState1(This,pBlendStateDesc,ppBlendState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateRasterizerState1(ID3D11Device5* This,const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,ID3D11RasterizerState1 **ppRasterizerState) {
+ return This->lpVtbl->CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDeviceContextState(ID3D11Device5* This,UINT Flags,const D3D_FEATURE_LEVEL *pFeatureLevels,UINT FeatureLevels,UINT SDKVersion,REFIID EmulatedInterface,D3D_FEATURE_LEVEL *pChosenFeatureLevel,ID3DDeviceContextState **ppContextState) {
+ return This->lpVtbl->CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState);
+}
+static FORCEINLINE HRESULT ID3D11Device5_OpenSharedResource1(ID3D11Device5* This,HANDLE hResource,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResource1(This,hResource,returnedInterface,ppResource);
+}
+static FORCEINLINE HRESULT ID3D11Device5_OpenSharedResourceByName(ID3D11Device5* This,LPCWSTR lpName,DWORD dwDesiredAccess,REFIID returnedInterface,void **ppResource) {
+ return This->lpVtbl->OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource);
+}
+/*** ID3D11Device2 methods ***/
+static FORCEINLINE void ID3D11Device5_GetImmediateContext2(ID3D11Device5* This,ID3D11DeviceContext2 **context) {
+ This->lpVtbl->GetImmediateContext2(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDeferredContext2(ID3D11Device5* This,UINT flags,ID3D11DeviceContext2 **context) {
+ return This->lpVtbl->CreateDeferredContext2(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device5_GetResourceTiling(ID3D11Device5* This,ID3D11Resource *resource,UINT *tile_count,D3D11_PACKED_MIP_DESC *mip_desc,D3D11_TILE_SHAPE *tile_shape,UINT *subresource_tiling_count,UINT first_subresource_tiling,D3D11_SUBRESOURCE_TILING *subresource_tiling) {
+ This->lpVtbl->GetResourceTiling(This,resource,tile_count,mip_desc,tile_shape,subresource_tiling_count,first_subresource_tiling,subresource_tiling);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CheckMultisampleQualityLevels1(ID3D11Device5* This,DXGI_FORMAT format,UINT sample_count,UINT flags,UINT *quality_level_count) {
+ return This->lpVtbl->CheckMultisampleQualityLevels1(This,format,sample_count,flags,quality_level_count);
+}
+/*** ID3D11Device3 methods ***/
+static FORCEINLINE HRESULT ID3D11Device5_CreateTexture2D1(ID3D11Device5* This,const D3D11_TEXTURE2D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture2D1 **texture) {
+ return This->lpVtbl->CreateTexture2D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateTexture3D1(ID3D11Device5* This,const D3D11_TEXTURE3D_DESC1 *desc,const D3D11_SUBRESOURCE_DATA *initial_data,ID3D11Texture3D1 **texture) {
+ return This->lpVtbl->CreateTexture3D1(This,desc,initial_data,texture);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateRasterizerState2(ID3D11Device5* This,const D3D11_RASTERIZER_DESC2 *desc,ID3D11RasterizerState2 **state) {
+ return This->lpVtbl->CreateRasterizerState2(This,desc,state);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateShaderResourceView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,ID3D11ShaderResourceView1 **view) {
+ return This->lpVtbl->CreateShaderResourceView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateUnorderedAccessView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,ID3D11UnorderedAccessView1 **view) {
+ return This->lpVtbl->CreateUnorderedAccessView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateRenderTargetView1(ID3D11Device5* This,ID3D11Resource *resource,const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,ID3D11RenderTargetView1 **view) {
+ return This->lpVtbl->CreateRenderTargetView1(This,resource,desc,view);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateQuery1(ID3D11Device5* This,const D3D11_QUERY_DESC1 *desc,ID3D11Query1 **query) {
+ return This->lpVtbl->CreateQuery1(This,desc,query);
+}
+static FORCEINLINE void ID3D11Device5_GetImmediateContext3(ID3D11Device5* This,ID3D11DeviceContext3 **context) {
+ This->lpVtbl->GetImmediateContext3(This,context);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateDeferredContext3(ID3D11Device5* This,UINT flags,ID3D11DeviceContext3 **context) {
+ return This->lpVtbl->CreateDeferredContext3(This,flags,context);
+}
+static FORCEINLINE void ID3D11Device5_WriteToSubresource(ID3D11Device5* This,ID3D11Resource *dst_resource,UINT dst_subresource,const D3D11_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_depth_pitch) {
+ This->lpVtbl->WriteToSubresource(This,dst_resource,dst_subresource,dst_box,src_data,src_row_pitch,src_depth_pitch);
+}
+static FORCEINLINE void ID3D11Device5_ReadFromSubresource(ID3D11Device5* This,void *dst_data,UINT dst_row_pitch,UINT dst_depth_pitch,ID3D11Resource *src_resource,UINT src_subresource,const D3D11_BOX *src_box) {
+ This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_depth_pitch,src_resource,src_subresource,src_box);
+}
+/*** ID3D11Device4 methods ***/
+static FORCEINLINE HRESULT ID3D11Device5_RegisterDeviceRemovedEvent(ID3D11Device5* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterDeviceRemovedEvent(This,event,cookie);
+}
+static FORCEINLINE void ID3D11Device5_UnregisterDeviceRemoved(ID3D11Device5* This,DWORD cookie) {
+ This->lpVtbl->UnregisterDeviceRemoved(This,cookie);
+}
+/*** ID3D11Device5 methods ***/
+static FORCEINLINE HRESULT ID3D11Device5_OpenSharedFence(ID3D11Device5* This,HANDLE handle,REFIID iid,void **fence) {
+ return This->lpVtbl->OpenSharedFence(This,handle,iid,fence);
+}
+static FORCEINLINE HRESULT ID3D11Device5_CreateFence(ID3D11Device5* This,UINT64 initial_value,D3D11_FENCE_FLAG flags,REFIID iid,void **fence) {
+ return This->lpVtbl->CreateFence(This,initial_value,flags,iid,fence);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Device5_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11Multithread interface
+ */
+#ifndef __ID3D11Multithread_INTERFACE_DEFINED__
+#define __ID3D11Multithread_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e00-342c-4106-a19f-4f2704f689f0")
+ID3D11Multithread : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE Enter(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE Leave(
+ ) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE SetMultithreadProtected(
+ WINBOOL enable) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetMultithreadProtected(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Multithread, 0x9b7e4e00, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D11MultithreadVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Multithread *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Multithread *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Multithread *This);
+
+ /*** ID3D11Multithread methods ***/
+ void (STDMETHODCALLTYPE *Enter)(
+ ID3D11Multithread *This);
+
+ void (STDMETHODCALLTYPE *Leave)(
+ ID3D11Multithread *This);
+
+ WINBOOL (STDMETHODCALLTYPE *SetMultithreadProtected)(
+ ID3D11Multithread *This,
+ WINBOOL enable);
+
+ WINBOOL (STDMETHODCALLTYPE *GetMultithreadProtected)(
+ ID3D11Multithread *This);
+
+ END_INTERFACE
+} ID3D11MultithreadVtbl;
+
+interface ID3D11Multithread {
+ CONST_VTBL ID3D11MultithreadVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Multithread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Multithread_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Multithread_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Multithread methods ***/
+#define ID3D11Multithread_Enter(This) (This)->lpVtbl->Enter(This)
+#define ID3D11Multithread_Leave(This) (This)->lpVtbl->Leave(This)
+#define ID3D11Multithread_SetMultithreadProtected(This,enable) (This)->lpVtbl->SetMultithreadProtected(This,enable)
+#define ID3D11Multithread_GetMultithreadProtected(This) (This)->lpVtbl->GetMultithreadProtected(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Multithread_QueryInterface(ID3D11Multithread* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Multithread_AddRef(ID3D11Multithread* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Multithread_Release(ID3D11Multithread* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Multithread methods ***/
+static FORCEINLINE void ID3D11Multithread_Enter(ID3D11Multithread* This) {
+ This->lpVtbl->Enter(This);
+}
+static FORCEINLINE void ID3D11Multithread_Leave(ID3D11Multithread* This) {
+ This->lpVtbl->Leave(This);
+}
+static FORCEINLINE WINBOOL ID3D11Multithread_SetMultithreadProtected(ID3D11Multithread* This,WINBOOL enable) {
+ return This->lpVtbl->SetMultithreadProtected(This,enable);
+}
+static FORCEINLINE WINBOOL ID3D11Multithread_GetMultithreadProtected(ID3D11Multithread* This) {
+ return This->lpVtbl->GetMultithreadProtected(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Multithread_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11VideoContext2 interface
+ */
+#ifndef __ID3D11VideoContext2_INTERFACE_DEFINED__
+#define __ID3D11VideoContext2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoContext2, 0xc4e7374c, 0x6243, 0x4d1b, 0xae,0x87, 0x52,0xb4,0xf7,0x40,0xe2,0x61);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c4e7374c-6243-4d1b-ae87-52b4f740e261")
+ID3D11VideoContext2 : public ID3D11VideoContext1
+{
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputHDRMetaData(
+ ID3D11VideoProcessor *processor,
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ const void *meta_data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputHDRMetaData(
+ ID3D11VideoProcessor *processor,
+ DXGI_HDR_METADATA_TYPE *type,
+ UINT size,
+ void *meta_data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamHDRMetaData(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ const void *meta_data) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamHDRMetaData(
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_HDR_METADATA_TYPE *type,
+ UINT size,
+ void *meta_data) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoContext2, 0xc4e7374c, 0x6243, 0x4d1b, 0xae,0x87, 0x52,0xb4,0xf7,0x40,0xe2,0x61)
+#endif
+#else
+typedef struct ID3D11VideoContext2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11VideoContext2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11VideoContext2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11VideoContext2 *This);
+
+ /*** ID3D11DeviceChild methods ***/
+ void (STDMETHODCALLTYPE *GetDevice)(
+ ID3D11VideoContext2 *This,
+ ID3D11Device **ppDevice);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D11VideoContext2 *This,
+ REFGUID guid,
+ UINT *pDataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D11VideoContext2 *This,
+ REFGUID guid,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D11VideoContext2 *This,
+ REFGUID guid,
+ const IUnknown *pData);
+
+ /*** ID3D11VideoContext methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type,
+ UINT *buffer_size,
+ void **buffer);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE type);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ ID3D11VideoDecoderOutputView *view,
+ UINT key_size,
+ const void *key);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder);
+
+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ UINT buffers_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderExtension)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_DECODER_EXTENSION *extension);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL y_cb_cr,
+ const D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
+ UINT stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable,
+ SIZE size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetOutputExtension)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *y_cb_cr,
+ D3D11_VIDEO_COLOR *color);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
+ UINT *stream_idx);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled,
+ SIZE *size);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *enabled);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetOutputExtension)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
+ WINBOOL repeat,
+ const DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPalette)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ const UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ const DXGI_RATIONAL *src_aspect_ratio,
+ const DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ float lower,
+ float upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
+ WINBOOL left_view_frame0,
+ WINBOOL base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
+ int mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamFilter)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL enable,
+ int level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorSetStreamExtension)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_FRAME_FORMAT *format);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
+ WINBOOL *repeat,
+ DXGI_RATIONAL *custom_rate);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ RECT *rect);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *alpha);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPalette)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ UINT entry_count,
+ UINT *entries);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ DXGI_RATIONAL *src_aspect_ratio,
+ DXGI_RATIONAL *dst_aspect_ratio);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ float *lower,
+ float *upper);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled,
+ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
+ WINBOOL *left_view_frame0,
+ WINBOOL *base_view_frame0,
+ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
+ int *mono_offset);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enabled);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamFilter)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ D3D11_VIDEO_PROCESSOR_FILTER filter,
+ WINBOOL *enabled,
+ int *level);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetStreamExtension)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ const GUID *guid,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorBlt)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ ID3D11VideoProcessorOutputView *view,
+ UINT frame_idx,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM *streams);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ UINT data_size,
+ void *data);
+
+ void (STDMETHODCALLTYPE *EncryptionBlt)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *DecryptionBlt)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ ID3D11Texture2D *src_surface,
+ ID3D11Texture2D *dst_surface,
+ D3D11_ENCRYPTED_BLOCK_INFO *block_info,
+ UINT key_size,
+ const void *key,
+ UINT iv_size,
+ void *iv);
+
+ void (STDMETHODCALLTYPE *StartSessionKeyRefresh)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ UINT random_number_size,
+ void *random_number);
+
+ void (STDMETHODCALLTYPE *FinishSessionKeyRefresh)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session);
+
+ HRESULT (STDMETHODCALLTYPE *GetEncryptionBltKey)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ UINT key_size,
+ void *key);
+
+ HRESULT (STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange)(
+ ID3D11VideoContext2 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *QueryAuthenticatedChannel)(
+ ID3D11VideoContext2 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ UINT output_size,
+ void *output);
+
+ HRESULT (STDMETHODCALLTYPE *ConfigureAuthenticatedChannel)(
+ ID3D11VideoContext2 *This,
+ ID3D11AuthenticatedChannel *channel,
+ UINT input_size,
+ const void *input,
+ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamRotation)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION rotation);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamRotation)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_idx,
+ WINBOOL *enable,
+ D3D11_VIDEO_PROCESSOR_ROTATION *rotation);
+
+ /*** ID3D11VideoContext1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers1)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ UINT buffer_count,
+ const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDataForNewHardwareKey)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ UINT input_size,
+ const void *input_data,
+ UINT64 *output_data);
+
+ HRESULT (STDMETHODCALLTYPE *CheckCryptoSessionStatus)(
+ ID3D11VideoContext2 *This,
+ ID3D11CryptoSession *session,
+ D3D11_CRYPTO_SESSION_STATUS *status);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderEnableDownsampling)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+ UINT reference_frame_count);
+
+ HRESULT (STDMETHODCALLTYPE *DecoderUpdateDownsampling)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoDecoder *decoder,
+ const D3D11_VIDEO_SAMPLE_DESC *output_desc);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL shader_usage);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_COLOR_SPACE_TYPE *colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ WINBOOL *shader_usage);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamMirror)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL enable,
+ WINBOOL flip_horizontal,
+ WINBOOL flip_vertical);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_COLOR_SPACE_TYPE *colour_space);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamMirror)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ WINBOOL *enable,
+ WINBOOL *flip_horizontal,
+ WINBOOL *flip_vertical);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT output_width,
+ UINT output_height,
+ DXGI_FORMAT output_format,
+ UINT stream_count,
+ const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
+ UINT *behaviour_hints);
+
+ /*** ID3D11VideoContext2 methods ***/
+ void (STDMETHODCALLTYPE *VideoProcessorSetOutputHDRMetaData)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ const void *meta_data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetOutputHDRMetaData)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ DXGI_HDR_METADATA_TYPE *type,
+ UINT size,
+ void *meta_data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorSetStreamHDRMetaData)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ const void *meta_data);
+
+ void (STDMETHODCALLTYPE *VideoProcessorGetStreamHDRMetaData)(
+ ID3D11VideoContext2 *This,
+ ID3D11VideoProcessor *processor,
+ UINT stream_index,
+ DXGI_HDR_METADATA_TYPE *type,
+ UINT size,
+ void *meta_data);
+
+ END_INTERFACE
+} ID3D11VideoContext2Vtbl;
+
+interface ID3D11VideoContext2 {
+ CONST_VTBL ID3D11VideoContext2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11VideoContext2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoContext2_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice)
+#define ID3D11VideoContext2_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoContext2_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData)
+#define ID3D11VideoContext2_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData)
+/*** ID3D11VideoContext methods ***/
+#define ID3D11VideoContext2_GetDecoderBuffer(This,decoder,type,buffer_size,buffer) (This)->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer)
+#define ID3D11VideoContext2_ReleaseDecoderBuffer(This,decoder,type) (This)->lpVtbl->ReleaseDecoderBuffer(This,decoder,type)
+#define ID3D11VideoContext2_DecoderBeginFrame(This,decoder,view,key_size,key) (This)->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key)
+#define ID3D11VideoContext2_DecoderEndFrame(This,decoder) (This)->lpVtbl->DecoderEndFrame(This,decoder)
+#define ID3D11VideoContext2_SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc)
+#define ID3D11VideoContext2_DecoderExtension(This,decoder,extension) (This)->lpVtbl->DecoderExtension(This,decoder,extension)
+#define ID3D11VideoContext2_VideoProcessorSetOutputTargetRect(This,processor,enable,rect) (This)->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect)
+#define ID3D11VideoContext2_VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext2_VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext2_VideoProcessorSetOutputConstriction(This,processor,enable,size) (This)->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size)
+#define ID3D11VideoContext2_VideoProcessorSetOutputStereoMode(This,processor,enable) (This)->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable)
+#define ID3D11VideoContext2_VideoProcessorSetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext2_VideoProcessorGetOutputTargetRect(This,processor,enabled,rect) (This)->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect)
+#define ID3D11VideoContext2_VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color) (This)->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color)
+#define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace(This,processor,color_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space)
+#define ID3D11VideoContext2_VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx) (This)->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx)
+#define ID3D11VideoContext2_VideoProcessorGetOutputConstriction(This,processor,enabled,size) (This)->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size)
+#define ID3D11VideoContext2_VideoProcessorGetOutputStereoMode(This,processor,enabled) (This)->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled)
+#define ID3D11VideoContext2_VideoProcessorGetOutputExtension(This,processor,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data)
+#define ID3D11VideoContext2_VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext2_VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext2_VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext2_VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect) (This)->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect)
+#define ID3D11VideoContext2_VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha) (This)->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha)
+#define ID3D11VideoContext2_VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext2_VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext2_VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper) (This)->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper)
+#define ID3D11VideoContext2_VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext2_VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable) (This)->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable)
+#define ID3D11VideoContext2_VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level) (This)->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level)
+#define ID3D11VideoContext2_VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext2_VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format) (This)->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format)
+#define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space)
+#define ID3D11VideoContext2_VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate) (This)->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate)
+#define ID3D11VideoContext2_VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext2_VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect) (This)->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect)
+#define ID3D11VideoContext2_VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha) (This)->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha)
+#define ID3D11VideoContext2_VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries) (This)->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries)
+#define ID3D11VideoContext2_VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio) (This)->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio)
+#define ID3D11VideoContext2_VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper) (This)->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper)
+#define ID3D11VideoContext2_VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset) (This)->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset)
+#define ID3D11VideoContext2_VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled) (This)->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled)
+#define ID3D11VideoContext2_VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level) (This)->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level)
+#define ID3D11VideoContext2_VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data) (This)->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data)
+#define ID3D11VideoContext2_VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams) (This)->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams)
+#define ID3D11VideoContext2_NegotiateCryptoSessionKeyExchange(This,session,data_size,data) (This)->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data)
+#define ID3D11VideoContext2_EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv) (This)->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv)
+#define ID3D11VideoContext2_DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv) (This)->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv)
+#define ID3D11VideoContext2_StartSessionKeyRefresh(This,session,random_number_size,random_number) (This)->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number)
+#define ID3D11VideoContext2_FinishSessionKeyRefresh(This,session) (This)->lpVtbl->FinishSessionKeyRefresh(This,session)
+#define ID3D11VideoContext2_GetEncryptionBltKey(This,session,key_size,key) (This)->lpVtbl->GetEncryptionBltKey(This,session,key_size,key)
+#define ID3D11VideoContext2_NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data) (This)->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data)
+#define ID3D11VideoContext2_QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output) (This)->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output)
+#define ID3D11VideoContext2_ConfigureAuthenticatedChannel(This,channel,input_size,input,output) (This)->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output)
+#define ID3D11VideoContext2_VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation)
+#define ID3D11VideoContext2_VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation) (This)->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation)
+/*** ID3D11VideoContext1 methods ***/
+#define ID3D11VideoContext2_SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc) (This)->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc)
+#define ID3D11VideoContext2_GetDataForNewHardwareKey(This,session,input_size,input_data,output_data) (This)->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data)
+#define ID3D11VideoContext2_CheckCryptoSessionStatus(This,session,status) (This)->lpVtbl->CheckCryptoSessionStatus(This,session,status)
+#define ID3D11VideoContext2_DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count) (This)->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count)
+#define ID3D11VideoContext2_DecoderUpdateDownsampling(This,decoder,output_desc) (This)->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc)
+#define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space)
+#define ID3D11VideoContext2_VideoProcessorSetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage)
+#define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace1(This,processor,colour_space) (This)->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space)
+#define ID3D11VideoContext2_VideoProcessorGetOutputShaderUsage(This,processor,shader_usage) (This)->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage)
+#define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space)
+#define ID3D11VideoContext2_VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
+#define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space) (This)->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space)
+#define ID3D11VideoContext2_VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical) (This)->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical)
+#define ID3D11VideoContext2_VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints) (This)->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints)
+/*** ID3D11VideoContext2 methods ***/
+#define ID3D11VideoContext2_VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data) (This)->lpVtbl->VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data)
+#define ID3D11VideoContext2_VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data) (This)->lpVtbl->VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data)
+#define ID3D11VideoContext2_VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data) (This)->lpVtbl->VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data)
+#define ID3D11VideoContext2_VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data) (This)->lpVtbl->VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext2_QueryInterface(ID3D11VideoContext2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11VideoContext2_AddRef(ID3D11VideoContext2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11VideoContext2_Release(ID3D11VideoContext2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11DeviceChild methods ***/
+static FORCEINLINE void ID3D11VideoContext2_GetDevice(ID3D11VideoContext2* This,ID3D11Device **ppDevice) {
+ This->lpVtbl->GetDevice(This,ppDevice);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_GetPrivateData(ID3D11VideoContext2* This,REFGUID guid,UINT *pDataSize,void *pData) {
+ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_SetPrivateData(ID3D11VideoContext2* This,REFGUID guid,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_SetPrivateDataInterface(ID3D11VideoContext2* This,REFGUID guid,const IUnknown *pData) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData);
+}
+/*** ID3D11VideoContext methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext2_GetDecoderBuffer(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type,UINT *buffer_size,void **buffer) {
+ return This->lpVtbl->GetDecoderBuffer(This,decoder,type,buffer_size,buffer);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_ReleaseDecoderBuffer(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,D3D11_VIDEO_DECODER_BUFFER_TYPE type) {
+ return This->lpVtbl->ReleaseDecoderBuffer(This,decoder,type);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_DecoderBeginFrame(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,ID3D11VideoDecoderOutputView *view,UINT key_size,const void *key) {
+ return This->lpVtbl->DecoderBeginFrame(This,decoder,view,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_DecoderEndFrame(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder) {
+ return This->lpVtbl->DecoderEndFrame(This,decoder);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_SubmitDecoderBuffers(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,UINT buffers_count,const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc) {
+ return This->lpVtbl->SubmitDecoderBuffers(This,decoder,buffers_count,buffer_desc);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_DecoderExtension(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_DECODER_EXTENSION *extension) {
+ return This->lpVtbl->DecoderExtension(This,decoder,extension);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputTargetRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetOutputTargetRect(This,processor,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputBackgroundColor(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL y_cb_cr,const D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorSetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputAlphaFillMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,UINT stream_idx) {
+ This->lpVtbl->VideoProcessorSetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputConstriction(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable,SIZE size) {
+ This->lpVtbl->VideoProcessorSetOutputConstriction(This,processor,enable,size);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputStereoMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetOutputStereoMode(This,processor,enable);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorSetOutputExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputTargetRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetOutputTargetRect(This,processor,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputBackgroundColor(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *y_cb_cr,D3D11_VIDEO_COLOR *color) {
+ This->lpVtbl->VideoProcessorGetOutputBackgroundColor(This,processor,y_cb_cr,color);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetOutputColorSpace(This,processor,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputAlphaFillMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,UINT *stream_idx) {
+ This->lpVtbl->VideoProcessorGetOutputAlphaFillMode(This,processor,alpha_fill_mode,stream_idx);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputConstriction(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled,SIZE *size) {
+ This->lpVtbl->VideoProcessorGetOutputConstriction(This,processor,enabled,size);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputStereoMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetOutputStereoMode(This,processor,enabled);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorGetOutputExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetOutputExtension(This,processor,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamFrameFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT format) {
+ This->lpVtbl->VideoProcessorSetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorSetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamOutputRate(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,WINBOOL repeat,const DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorSetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamSourceRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamSourceRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamDestRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const RECT *rect) {
+ This->lpVtbl->VideoProcessorSetStreamDestRect(This,processor,stream_idx,enable,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamAlpha(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float alpha) {
+ This->lpVtbl->VideoProcessorSetStreamAlpha(This,processor,stream_idx,enable,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamPalette(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,const UINT *entries) {
+ This->lpVtbl->VideoProcessorSetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,const DXGI_RATIONAL *src_aspect_ratio,const DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorSetStreamPixelAspectRatio(This,processor,stream_idx,enable,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamLumaKey(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,float lower,float upper) {
+ This->lpVtbl->VideoProcessorSetStreamLumaKey(This,processor,stream_idx,enable,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamStereoFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,WINBOOL left_view_frame0,WINBOOL base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,int mono_offset) {
+ This->lpVtbl->VideoProcessorSetStreamStereoFormat(This,processor,stream_idx,enable,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable) {
+ This->lpVtbl->VideoProcessorSetStreamAutoProcessingMode(This,processor,stream_idx,enable);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamFilter(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL enable,int level) {
+ This->lpVtbl->VideoProcessorSetStreamFilter(This,processor,stream_idx,filter,enable,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorSetStreamExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorSetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamFrameFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_FRAME_FORMAT *format) {
+ This->lpVtbl->VideoProcessorGetStreamFrameFormat(This,processor,stream_idx,format);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamColorSpace(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space) {
+ This->lpVtbl->VideoProcessorGetStreamColorSpace(This,processor,stream_idx,color_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamOutputRate(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,WINBOOL *repeat,DXGI_RATIONAL *custom_rate) {
+ This->lpVtbl->VideoProcessorGetStreamOutputRate(This,processor,stream_idx,rate,repeat,custom_rate);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamSourceRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamSourceRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamDestRect(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,RECT *rect) {
+ This->lpVtbl->VideoProcessorGetStreamDestRect(This,processor,stream_idx,enabled,rect);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamAlpha(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *alpha) {
+ This->lpVtbl->VideoProcessorGetStreamAlpha(This,processor,stream_idx,enabled,alpha);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamPalette(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,UINT entry_count,UINT *entries) {
+ This->lpVtbl->VideoProcessorGetStreamPalette(This,processor,stream_idx,entry_count,entries);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,DXGI_RATIONAL *src_aspect_ratio,DXGI_RATIONAL *dst_aspect_ratio) {
+ This->lpVtbl->VideoProcessorGetStreamPixelAspectRatio(This,processor,stream_idx,enabled,src_aspect_ratio,dst_aspect_ratio);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamLumaKey(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,float *lower,float *upper) {
+ This->lpVtbl->VideoProcessorGetStreamLumaKey(This,processor,stream_idx,enabled,lower,upper);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamStereoFormat(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled,D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,WINBOOL *left_view_frame0,WINBOOL *base_view_frame0,D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,int *mono_offset) {
+ This->lpVtbl->VideoProcessorGetStreamStereoFormat(This,processor,stream_idx,enabled,format,left_view_frame0,base_view_frame0,flip_mode,mono_offset);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enabled) {
+ This->lpVtbl->VideoProcessorGetStreamAutoProcessingMode(This,processor,stream_idx,enabled);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamFilter(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,D3D11_VIDEO_PROCESSOR_FILTER filter,WINBOOL *enabled,int *level) {
+ This->lpVtbl->VideoProcessorGetStreamFilter(This,processor,stream_idx,filter,enabled,level);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorGetStreamExtension(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,const GUID *guid,UINT data_size,void *data) {
+ return This->lpVtbl->VideoProcessorGetStreamExtension(This,processor,stream_idx,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorBlt(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,ID3D11VideoProcessorOutputView *view,UINT frame_idx,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM *streams) {
+ return This->lpVtbl->VideoProcessorBlt(This,processor,view,frame_idx,stream_count,streams);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_NegotiateCryptoSessionKeyExchange(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateCryptoSessionKeyExchange(This,session,data_size,data);
+}
+static FORCEINLINE void ID3D11VideoContext2_EncryptionBlt(ID3D11VideoContext2* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,UINT iv_size,void *iv) {
+ This->lpVtbl->EncryptionBlt(This,session,src_surface,dst_surface,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext2_DecryptionBlt(ID3D11VideoContext2* This,ID3D11CryptoSession *session,ID3D11Texture2D *src_surface,ID3D11Texture2D *dst_surface,D3D11_ENCRYPTED_BLOCK_INFO *block_info,UINT key_size,const void *key,UINT iv_size,void *iv) {
+ This->lpVtbl->DecryptionBlt(This,session,src_surface,dst_surface,block_info,key_size,key,iv_size,iv);
+}
+static FORCEINLINE void ID3D11VideoContext2_StartSessionKeyRefresh(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT random_number_size,void *random_number) {
+ This->lpVtbl->StartSessionKeyRefresh(This,session,random_number_size,random_number);
+}
+static FORCEINLINE void ID3D11VideoContext2_FinishSessionKeyRefresh(ID3D11VideoContext2* This,ID3D11CryptoSession *session) {
+ This->lpVtbl->FinishSessionKeyRefresh(This,session);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_GetEncryptionBltKey(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT key_size,void *key) {
+ return This->lpVtbl->GetEncryptionBltKey(This,session,key_size,key);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_NegotiateAuthenticatedChannelKeyExchange(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT data_size,void *data) {
+ return This->lpVtbl->NegotiateAuthenticatedChannelKeyExchange(This,channel,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_QueryAuthenticatedChannel(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,UINT output_size,void *output) {
+ return This->lpVtbl->QueryAuthenticatedChannel(This,channel,input_size,input,output_size,output);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_ConfigureAuthenticatedChannel(ID3D11VideoContext2* This,ID3D11AuthenticatedChannel *channel,UINT input_size,const void *input,D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output) {
+ return This->lpVtbl->ConfigureAuthenticatedChannel(This,channel,input_size,input,output);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamRotation(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL enable,D3D11_VIDEO_PROCESSOR_ROTATION rotation) {
+ This->lpVtbl->VideoProcessorSetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamRotation(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_idx,WINBOOL *enable,D3D11_VIDEO_PROCESSOR_ROTATION *rotation) {
+ This->lpVtbl->VideoProcessorGetStreamRotation(This,processor,stream_idx,enable,rotation);
+}
+/*** ID3D11VideoContext1 methods ***/
+static FORCEINLINE HRESULT ID3D11VideoContext2_SubmitDecoderBuffers1(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,UINT buffer_count,const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc) {
+ return This->lpVtbl->SubmitDecoderBuffers1(This,decoder,buffer_count,buffer_desc);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_GetDataForNewHardwareKey(ID3D11VideoContext2* This,ID3D11CryptoSession *session,UINT input_size,const void *input_data,UINT64 *output_data) {
+ return This->lpVtbl->GetDataForNewHardwareKey(This,session,input_size,input_data,output_data);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_CheckCryptoSessionStatus(ID3D11VideoContext2* This,ID3D11CryptoSession *session,D3D11_CRYPTO_SESSION_STATUS *status) {
+ return This->lpVtbl->CheckCryptoSessionStatus(This,session,status);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_DecoderEnableDownsampling(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,DXGI_COLOR_SPACE_TYPE colour_space,const D3D11_VIDEO_SAMPLE_DESC *output_desc,UINT reference_frame_count) {
+ return This->lpVtbl->DecoderEnableDownsampling(This,decoder,colour_space,output_desc,reference_frame_count);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_DecoderUpdateDownsampling(ID3D11VideoContext2* This,ID3D11VideoDecoder *decoder,const D3D11_VIDEO_SAMPLE_DESC *output_desc) {
+ return This->lpVtbl->DecoderUpdateDownsampling(This,decoder,output_desc);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE colour_space) {
+ This->lpVtbl->VideoProcessorSetOutputColorSpace1(This,processor,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputShaderUsage(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL shader_usage) {
+ This->lpVtbl->VideoProcessorSetOutputShaderUsage(This,processor,shader_usage);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_COLOR_SPACE_TYPE *colour_space) {
+ This->lpVtbl->VideoProcessorGetOutputColorSpace1(This,processor,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputShaderUsage(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,WINBOOL *shader_usage) {
+ This->lpVtbl->VideoProcessorGetOutputShaderUsage(This,processor,shader_usage);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE colour_space) {
+ This->lpVtbl->VideoProcessorSetStreamColorSpace1(This,processor,stream_index,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamMirror(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL enable,WINBOOL flip_horizontal,WINBOOL flip_vertical) {
+ This->lpVtbl->VideoProcessorSetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamColorSpace1(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_COLOR_SPACE_TYPE *colour_space) {
+ This->lpVtbl->VideoProcessorGetStreamColorSpace1(This,processor,stream_index,colour_space);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamMirror(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,WINBOOL *enable,WINBOOL *flip_horizontal,WINBOOL *flip_vertical) {
+ This->lpVtbl->VideoProcessorGetStreamMirror(This,processor,stream_index,enable,flip_horizontal,flip_vertical);
+}
+static FORCEINLINE HRESULT ID3D11VideoContext2_VideoProcessorGetBehaviorHints(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT output_width,UINT output_height,DXGI_FORMAT output_format,UINT stream_count,const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,UINT *behaviour_hints) {
+ return This->lpVtbl->VideoProcessorGetBehaviorHints(This,processor,output_width,output_height,output_format,stream_count,streams,behaviour_hints);
+}
+/*** ID3D11VideoContext2 methods ***/
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetOutputHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_HDR_METADATA_TYPE type,UINT size,const void *meta_data) {
+ This->lpVtbl->VideoProcessorSetOutputHDRMetaData(This,processor,type,size,meta_data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetOutputHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,DXGI_HDR_METADATA_TYPE *type,UINT size,void *meta_data) {
+ This->lpVtbl->VideoProcessorGetOutputHDRMetaData(This,processor,type,size,meta_data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorSetStreamHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_HDR_METADATA_TYPE type,UINT size,const void *meta_data) {
+ This->lpVtbl->VideoProcessorSetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data);
+}
+static FORCEINLINE void ID3D11VideoContext2_VideoProcessorGetStreamHDRMetaData(ID3D11VideoContext2* This,ID3D11VideoProcessor *processor,UINT stream_index,DXGI_HDR_METADATA_TYPE *type,UINT size,void *meta_data) {
+ This->lpVtbl->VideoProcessorGetStreamHDRMetaData(This,processor,stream_index,type,size,meta_data);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11VideoContext2_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11_4_h__ */
diff --git a/d3d11on12.h b/d3d11on12.h
new file mode 100644
index 0000000..a4bda77
--- /dev/null
+++ b/d3d11on12.h
@@ -0,0 +1,171 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11on12.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11on12_h__
+#define __d3d11on12_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11On12Device_FWD_DEFINED__
+#define __ID3D11On12Device_FWD_DEFINED__
+typedef interface ID3D11On12Device ID3D11On12Device;
+#ifdef __cplusplus
+interface ID3D11On12Device;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <d3d11.h>
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct D3D11_RESOURCE_FLAGS {
+ UINT BindFlags;
+ UINT MiscFlags;
+ UINT CPUAccessFlags;
+ UINT StructureByteStride;
+} D3D11_RESOURCE_FLAGS;
+/*****************************************************************************
+ * ID3D11On12Device interface
+ */
+#ifndef __ID3D11On12Device_INTERFACE_DEFINED__
+#define __ID3D11On12Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("85611e73-70a9-490e-9614-a9e302777904")
+ID3D11On12Device : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateWrappedResource(
+ IUnknown *d3d12_resource,
+ const D3D11_RESOURCE_FLAGS *flags,
+ D3D12_RESOURCE_STATES input_state,
+ D3D12_RESOURCE_STATES output_state,
+ REFIID iid,
+ void **d3d11_resource) = 0;
+
+ virtual void STDMETHODCALLTYPE ReleaseWrappedResources(
+ ID3D11Resource *const *resources,
+ UINT count) = 0;
+
+ virtual void STDMETHODCALLTYPE AcquireWrappedResources(
+ ID3D11Resource *const *resources,
+ UINT count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04)
+#endif
+#else
+typedef struct ID3D11On12DeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11On12Device *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11On12Device *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11On12Device *This);
+
+ /*** ID3D11On12Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *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);
+
+ void (STDMETHODCALLTYPE *ReleaseWrappedResources)(
+ ID3D11On12Device *This,
+ ID3D11Resource *const *resources,
+ UINT count);
+
+ void (STDMETHODCALLTYPE *AcquireWrappedResources)(
+ ID3D11On12Device *This,
+ ID3D11Resource *const *resources,
+ UINT count);
+
+ END_INTERFACE
+} ID3D11On12DeviceVtbl;
+
+interface ID3D11On12Device {
+ CONST_VTBL ID3D11On12DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11On12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11On12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11On12Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11On12Device methods ***/
+#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)
+#define ID3D11On12Device_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count)
+#define ID3D11On12Device_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11On12Device_QueryInterface(ID3D11On12Device* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11On12Device_AddRef(ID3D11On12Device* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11On12Device_Release(ID3D11On12Device* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11On12Device methods ***/
+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) {
+ return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource);
+}
+static FORCEINLINE void ID3D11On12Device_ReleaseWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
+ This->lpVtbl->ReleaseWrappedResources(This,resources,count);
+}
+static FORCEINLINE void ID3D11On12Device_AcquireWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
+ This->lpVtbl->AcquireWrappedResources(This,resources,count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11On12Device_INTERFACE_DEFINED__ */
+
+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);
+
+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);
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11on12_h__ */
diff --git a/d3d11sdklayers.h b/d3d11sdklayers.h
new file mode 100644
index 0000000..d2113d9
--- /dev/null
+++ b/d3d11sdklayers.h
@@ -0,0 +1,1968 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d11sdklayers.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11sdklayers_h__
+#define __d3d11sdklayers_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11Debug_FWD_DEFINED__
+#define __ID3D11Debug_FWD_DEFINED__
+typedef interface ID3D11Debug ID3D11Debug;
+#ifdef __cplusplus
+interface ID3D11Debug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11SwitchToRef_FWD_DEFINED__
+#define __ID3D11SwitchToRef_FWD_DEFINED__
+typedef interface ID3D11SwitchToRef ID3D11SwitchToRef;
+#ifdef __cplusplus
+interface ID3D11SwitchToRef;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D11InfoQueue_FWD_DEFINED__
+#define __ID3D11InfoQueue_FWD_DEFINED__
+typedef interface ID3D11InfoQueue ID3D11InfoQueue;
+#ifdef __cplusplus
+interface ID3D11InfoQueue;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <d3d11.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1)
+
+#define D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2)
+
+#define D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4)
+
+#define D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE (0x8)
+
+#define D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE (0x10)
+
+#define D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS (0x40)
+
+#define D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION (0x80)
+
+typedef enum D3D11_MESSAGE_CATEGORY {
+ D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0,
+ D3D11_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
+ D3D11_MESSAGE_CATEGORY_INITIALIZATION = 2,
+ D3D11_MESSAGE_CATEGORY_CLEANUP = 3,
+ D3D11_MESSAGE_CATEGORY_COMPILATION = 4,
+ D3D11_MESSAGE_CATEGORY_STATE_CREATION = 5,
+ D3D11_MESSAGE_CATEGORY_STATE_SETTING = 6,
+ D3D11_MESSAGE_CATEGORY_STATE_GETTING = 7,
+ D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 8,
+ D3D11_MESSAGE_CATEGORY_EXECUTION = 9,
+ D3D11_MESSAGE_CATEGORY_SHADER = 10
+} D3D11_MESSAGE_CATEGORY;
+typedef enum D3D11_MESSAGE_SEVERITY {
+ D3D11_MESSAGE_SEVERITY_CORRUPTION = 0,
+ D3D11_MESSAGE_SEVERITY_ERROR = 1,
+ D3D11_MESSAGE_SEVERITY_WARNING = 2,
+ D3D11_MESSAGE_SEVERITY_INFO = 3,
+ D3D11_MESSAGE_SEVERITY_MESSAGE = 4
+} D3D11_MESSAGE_SEVERITY;
+typedef enum D3D11_MESSAGE_ID {
+ D3D11_MESSAGE_ID_UNKNOWN = 0,
+ D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD = 1,
+ D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD = 2,
+ D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD = 3,
+ D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD = 4,
+ D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD = 5,
+ D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD = 6,
+ D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD = 7,
+ D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD = 8,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD = 9,
+ D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD = 10,
+ D3D11_MESSAGE_ID_STRING_FROM_APPLICATION = 11,
+ D3D11_MESSAGE_ID_CORRUPTED_THIS = 12,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 = 13,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 = 14,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 = 15,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 = 16,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 = 17,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 = 18,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 = 19,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 = 20,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 = 21,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 = 22,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 = 23,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 = 24,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 = 25,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 = 26,
+ D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 = 27,
+ D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING = 28,
+ D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 29,
+ D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = 30,
+ D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = 31,
+ D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT = 32,
+ D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT = 33,
+ D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 34,
+ D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 35,
+ D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT = 36,
+ D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT = 37,
+ D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 38,
+ D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 39,
+ D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT = 40,
+ D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT = 41,
+ D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT = 42,
+ D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 43,
+ D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 44,
+ D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT = 45,
+ D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT = 46,
+ D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT = 47,
+ D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = 48,
+ D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = 49,
+ D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT = 50,
+ D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 51,
+ D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 52,
+ D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = 53,
+ D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = 54,
+ D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 55,
+ D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 56,
+ D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT = 57,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES = 58,
+ D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE = 59,
+ D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = 60,
+ D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = 61,
+ D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = 62,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS = 63,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS = 64,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA = 65,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS = 66,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS = 67,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS = 68,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN = 69,
+ D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN = 70,
+ D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC = 71,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = 72,
+ D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION = 73,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT = 74,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT = 75,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES = 76,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE = 77,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = 78,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = 79,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = 80,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = 81,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS = 82,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA = 83,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS = 84,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS = 85,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS = 86,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN = 87,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN = 88,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC = 89,
+ D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION = 90,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT = 91,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT = 92,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES = 93,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE = 94,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = 95,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = 96,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = 97,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = 98,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS = 99,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA = 100,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS = 101,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS = 102,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS = 103,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN = 104,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN = 105,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC = 106,
+ D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION = 107,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT = 108,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT = 109,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES = 110,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE = 111,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = 112,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = 113,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = 114,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = 115,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS = 116,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA = 117,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS = 118,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS = 119,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS = 120,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN = 121,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN = 122,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC = 123,
+ D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION = 124,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 125,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 126,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 127,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 128,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 129,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = 130,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = 131,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = 132,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 133,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 134,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 135,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 136,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 137,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 138,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS = 139,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = 140,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = 141,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 142,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 143,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 144,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 145,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 146,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = 147,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = 148,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = 149,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 150,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 151,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 152,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 153,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 154,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 155,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 156,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 157,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 158,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 159,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 160,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 161,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 162,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 163,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC = 164,
+ D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 165,
+ D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 166,
+ D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 167,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 168,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 169,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 170,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 171,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 172,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 173,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 174,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 175,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = 176,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = 177,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 178,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 179,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 180,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 181,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 182,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 183,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 184,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 185,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 186,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 187,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 188,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 189,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 190,
+ D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 191,
+ D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 192,
+ D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 193,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 194,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 195,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 196,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 197,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS = 198,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = 199,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 200,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 201,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 202,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 203,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 204,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 205,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 206,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 207,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 208,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 209,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = 210,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = 211,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 212,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 213,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 214,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 215,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 216,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 217,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 218,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS = 219,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = 220,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = 221,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = 222,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = 223,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = 224,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = 225,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = 226,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = 227,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = 228,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = 229,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS = 230,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = 231,
+ D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY = 232,
+ D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = 233,
+ D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = 234,
+ D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC = 235,
+ D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = 236,
+ D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = 237,
+ D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER = 238,
+ D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = 239,
+ D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = 240,
+ D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER = 241,
+ D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = 242,
+ D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = 243,
+ D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = 244,
+ D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = 245,
+ D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER = 246,
+ D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 247,
+ D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = 248,
+ D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = 249,
+ D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER = 250,
+ D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 251,
+ D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = 252,
+ D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER = 253,
+ D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = 254,
+ D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = 255,
+ D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER = 256,
+ D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 257,
+ D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = 258,
+ D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = 259,
+ D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = 260,
+ D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = 261,
+ D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = 262,
+ D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 263,
+ D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = 264,
+ D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = 265,
+ D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 266,
+ D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = 267,
+ D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = 268,
+ D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 269,
+ D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = 270,
+ D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY = 271,
+ D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = 272,
+ D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 273,
+ D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = 274,
+ D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = 275,
+ D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = 276,
+ D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID = 277,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = 278,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = 279,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = 280,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE = 281,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = 282,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = 283,
+ D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = 284,
+ D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = 285,
+ D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = 286,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = 287,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = 288,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = 289,
+ D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = 290,
+ D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = 291,
+ D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = 292,
+ D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = 293,
+ D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = 294,
+ D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = 295,
+ D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = 296,
+ D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = 297,
+ D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = 298,
+ D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = 299,
+ D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = 300,
+ D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = 301,
+ D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = 302,
+ D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = 303,
+ D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = 304,
+ D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = 305,
+ D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = 306,
+ D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = 307,
+ D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = 308,
+ D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = 309,
+ D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = 310,
+ D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = 311,
+ D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = 312,
+ D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = 313,
+ D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = 314,
+ D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = 315,
+ D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = 316,
+ D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = 317,
+ D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = 318,
+ D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = 319,
+ D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = 320,
+ D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = 321,
+ D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = 322,
+ D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = 323,
+ D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = 324,
+ D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = 325,
+ D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = 326,
+ D3D11_MESSAGE_ID_REF_THREADING_MODE = 327,
+ D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = 328,
+ D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = 329,
+ D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION = 330,
+ D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = 331,
+ D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = 332,
+ D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY = 333,
+ D3D11_MESSAGE_ID_REF_INFO = 334,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = 335,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = 336,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = 337,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = 338,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = 339,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = 340,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = 341,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 342,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = 343,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = 344,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = 345,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = 346,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 347,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = 348,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET = 349,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = 350,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = 351,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET = 352,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = 353,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = 354,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 355,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = 356,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET = 357,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = 358,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = 359,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = 360,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = 361,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT = 362,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = 363,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED = 364,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = 365,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = 366,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = 367,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = 368,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = 369,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = 370,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = 371,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = 372,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = 373,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = 374,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = 375,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 376,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 377,
+ D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 378,
+ D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 379,
+ D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 380,
+ D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = 381,
+ D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = 382,
+ D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = 383,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = 384,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 385,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 386,
+ D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = 387,
+ D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = 388,
+ D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = 389,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = 390,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 391,
+ D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = 392,
+ D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = 393,
+ D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN = 394,
+ D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN = 395,
+ D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER = 396,
+ D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = 397,
+ D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 398,
+ D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN = 399,
+ D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN = 400,
+ D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC = 401,
+ D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER = 402,
+ D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 403,
+ D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE = 404,
+ D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED = 405,
+ D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION = 406,
+ D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE = 407,
+ D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = 408,
+ D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION = 409,
+ D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS = 410,
+ D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN = 411,
+ D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE = 412,
+ D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS = 413,
+ D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL = 414,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = 415,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = 416,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 417,
+ D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = 418,
+ D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = 419,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 420,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = 421,
+ D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 422,
+ D3D11_MESSAGE_ID_LIVE_BUFFER = 423,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE1D = 424,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE2D = 425,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE3D = 426,
+ D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = 427,
+ D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW = 428,
+ D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = 429,
+ D3D11_MESSAGE_ID_LIVE_VERTEXSHADER = 430,
+ D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER = 431,
+ D3D11_MESSAGE_ID_LIVE_PIXELSHADER = 432,
+ D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT = 433,
+ D3D11_MESSAGE_ID_LIVE_SAMPLER = 434,
+ D3D11_MESSAGE_ID_LIVE_BLENDSTATE = 435,
+ D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = 436,
+ D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE = 437,
+ D3D11_MESSAGE_ID_LIVE_QUERY = 438,
+ D3D11_MESSAGE_ID_LIVE_PREDICATE = 439,
+ D3D11_MESSAGE_ID_LIVE_COUNTER = 440,
+ D3D11_MESSAGE_ID_LIVE_DEVICE = 441,
+ D3D11_MESSAGE_ID_LIVE_SWAPCHAIN = 442,
+ D3D11_MESSAGE_ID_D3D10_MESSAGES_END = 443,
+ D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x100000,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = 0x100001,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = 0x100002,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = 0x100003,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = 0x100004,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = 0x100005,
+ D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED = 0x100006,
+ D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100007,
+ D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100008,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS = 0x100009,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND = 0x10000a,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D = 0x10000b,
+ D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE = 0x10000c,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = 0x10000d,
+ D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = 0x10000e,
+ D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = 0x10000f,
+ D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = 0x100010,
+ D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = 0x100011,
+ D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = 0x100012,
+ D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = 0x100013,
+ D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = 0x100014,
+ D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK = 0x100015,
+ D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = 0x100016,
+ D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = 0x100017,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = 0x100018,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = 0x100019,
+ D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = 0x10001a,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = 0x10001b,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = 0x10001c,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = 0x10001d,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = 0x10001e,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = 0x10001f,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = 0x100020,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER = 0x100021,
+ D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = 0x100022,
+ D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = 0x100023,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = 0x100024,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = 0x100025,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT = 0x100026,
+ D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = 0x100027,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = 0x100028,
+ D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = 0x100029,
+ D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED = 0x10002a,
+ D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED = 0x10002b,
+ D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED = 0x10002c,
+ D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED = 0x10002d,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = 0x10002e,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND = 0x10002f,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = 0x100030,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE = 0x100031,
+ D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED = 0x100032,
+ D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = 0x100033,
+ D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED = 0x100034,
+ D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = 0x100035,
+ D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = 0x100036,
+ D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = 0x100037,
+ D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = 0x100038,
+ D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = 0x100039,
+ D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP = 0x10003a,
+ D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = 0x10003b,
+ D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT = 0x10003c,
+ D3D11_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = 0x10003d,
+ D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END = 0x10003e,
+ D3D11_MESSAGE_ID_D3D11_MESSAGES_START = 0x200000,
+ D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 0x200001,
+ D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 0x200002,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 0x200003,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS = 0x200004,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 0x200005,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS = 0x200006,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE = 0x200007,
+ D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 0x200008,
+ D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS = 0x200009,
+ D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED = 0x20000a,
+ D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN = 0x20000b,
+ D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN = 0x20000c,
+ D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN = 0x20000d,
+ D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT = 0x20000e,
+ D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN = 0x20000f,
+ D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN = 0x200010,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 0x200011,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 0x200012,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 0x200013,
+ D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 0x200014,
+ D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD = 0x200015,
+ D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD = 0x200016,
+ D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x200017,
+ D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x200018,
+ D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL = 0x200019,
+ D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 0x20001a,
+ D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 0x20001b,
+ D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 0x20001c,
+ D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 0x20001d,
+ D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY = 0x20001e,
+ D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x20001f,
+ D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200020,
+ D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY = 0x200021,
+ D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY = 0x200022,
+ D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200023,
+ D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY = 0x200024,
+ D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD = 0x200025,
+ D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD = 0x200026,
+ D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x200027,
+ D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x200028,
+ D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL = 0x200029,
+ D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 0x20002a,
+ D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 0x20002b,
+ D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 0x20002c,
+ D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 0x20002d,
+ D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY = 0x20002e,
+ D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x20002f,
+ D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200030,
+ D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY = 0x200031,
+ D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY = 0x200032,
+ D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200033,
+ D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY = 0x200034,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH = 0x200035,
+ D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT = 0x200036,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER = 0x200037,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED = 0x200038,
+ D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW = 0x200039,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE = 0x20003a,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE = 0x20003b,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS = 0x20003c,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED = 0x20003d,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN = 0x20003e,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN = 0x20003f,
+ D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD = 0x200040,
+ D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE = 0x200041,
+ D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 0x200042,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS = 0x200043,
+ D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED = 0x200044,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH = 0x200045,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 0x200046,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 0x200047,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 0x200048,
+ D3D11_MESSAGE_ID_CREATE_CONTEXT = 0x200049,
+ D3D11_MESSAGE_ID_LIVE_CONTEXT = 0x20004a,
+ D3D11_MESSAGE_ID_DESTROY_CONTEXT = 0x20004b,
+ D3D11_MESSAGE_ID_CREATE_BUFFER = 0x20004c,
+ D3D11_MESSAGE_ID_LIVE_BUFFER_WIN7 = 0x20004d,
+ D3D11_MESSAGE_ID_DESTROY_BUFFER = 0x20004e,
+ D3D11_MESSAGE_ID_CREATE_TEXTURE1D = 0x20004f,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE1D_WIN7 = 0x200050,
+ D3D11_MESSAGE_ID_DESTROY_TEXTURE1D = 0x200051,
+ D3D11_MESSAGE_ID_CREATE_TEXTURE2D = 0x200052,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE2D_WIN7 = 0x200053,
+ D3D11_MESSAGE_ID_DESTROY_TEXTURE2D = 0x200054,
+ D3D11_MESSAGE_ID_CREATE_TEXTURE3D = 0x200055,
+ D3D11_MESSAGE_ID_LIVE_TEXTURE3D_WIN7 = 0x200056,
+ D3D11_MESSAGE_ID_DESTROY_TEXTURE3D = 0x200057,
+ D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW = 0x200058,
+ D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW_WIN7 = 0x200059,
+ D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW = 0x20005a,
+ D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW = 0x20005b,
+ D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW_WIN7 = 0x20005c,
+ D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW = 0x20005d,
+ D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW = 0x20005e,
+ D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW_WIN7 = 0x20005f,
+ D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW = 0x200060,
+ D3D11_MESSAGE_ID_CREATE_VERTEXSHADER = 0x200061,
+ D3D11_MESSAGE_ID_LIVE_VERTEXSHADER_WIN7 = 0x200062,
+ D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER = 0x200063,
+ D3D11_MESSAGE_ID_CREATE_HULLSHADER = 0x200064,
+ D3D11_MESSAGE_ID_LIVE_HULLSHADER = 0x200065,
+ D3D11_MESSAGE_ID_DESTROY_HULLSHADER = 0x200066,
+ D3D11_MESSAGE_ID_CREATE_DOMAINSHADER = 0x200067,
+ D3D11_MESSAGE_ID_LIVE_DOMAINSHADER = 0x200068,
+ D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER = 0x200069,
+ D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER = 0x20006a,
+ D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER_WIN7 = 0x20006b,
+ D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER = 0x20006c,
+ D3D11_MESSAGE_ID_CREATE_PIXELSHADER = 0x20006d,
+ D3D11_MESSAGE_ID_LIVE_PIXELSHADER_WIN7 = 0x20006e,
+ D3D11_MESSAGE_ID_DESTROY_PIXELSHADER = 0x20006f,
+ D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT = 0x200070,
+ D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT_WIN7 = 0x200071,
+ D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT = 0x200072,
+ D3D11_MESSAGE_ID_CREATE_SAMPLER = 0x200073,
+ D3D11_MESSAGE_ID_LIVE_SAMPLER_WIN7 = 0x200074,
+ D3D11_MESSAGE_ID_DESTROY_SAMPLER = 0x200075,
+ D3D11_MESSAGE_ID_CREATE_BLENDSTATE = 0x200076,
+ D3D11_MESSAGE_ID_LIVE_BLENDSTATE_WIN7 = 0x200077,
+ D3D11_MESSAGE_ID_DESTROY_BLENDSTATE = 0x200078,
+ D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE = 0x200079,
+ D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE_WIN7 = 0x20007a,
+ D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE = 0x20007b,
+ D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE = 0x20007c,
+ D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE_WIN7 = 0x20007d,
+ D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE = 0x20007e,
+ D3D11_MESSAGE_ID_CREATE_QUERY = 0x20007f,
+ D3D11_MESSAGE_ID_LIVE_QUERY_WIN7 = 0x200080,
+ D3D11_MESSAGE_ID_DESTROY_QUERY = 0x200081,
+ D3D11_MESSAGE_ID_CREATE_PREDICATE = 0x200082,
+ D3D11_MESSAGE_ID_LIVE_PREDICATE_WIN7 = 0x200083,
+ D3D11_MESSAGE_ID_DESTROY_PREDICATE = 0x200084,
+ D3D11_MESSAGE_ID_CREATE_COUNTER = 0x200085,
+ D3D11_MESSAGE_ID_DESTROY_COUNTER = 0x200086,
+ D3D11_MESSAGE_ID_CREATE_COMMANDLIST = 0x200087,
+ D3D11_MESSAGE_ID_LIVE_COMMANDLIST = 0x200088,
+ D3D11_MESSAGE_ID_DESTROY_COMMANDLIST = 0x200089,
+ D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE = 0x20008a,
+ D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE = 0x20008b,
+ D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE = 0x20008c,
+ D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE = 0x20008d,
+ D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE = 0x20008e,
+ D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE = 0x20008f,
+ D3D11_MESSAGE_ID_LIVE_DEVICE_WIN7 = 0x200090,
+ D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY_WIN7 = 0x200091,
+ D3D11_MESSAGE_ID_CREATE_COMPUTESHADER = 0x200092,
+ D3D11_MESSAGE_ID_LIVE_COMPUTESHADER = 0x200093,
+ D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER = 0x200094,
+ D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW = 0x200095,
+ D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW = 0x200096,
+ D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW = 0x200097,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL = 0x200098,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH = 0x200099,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE = 0x20009a,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX = 0x20009b,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE = 0x20009c,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA = 0x20009d,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA = 0x20009e,
+ D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS = 0x20009f,
+ D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL = 0x2000a0,
+ D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE = 0x2000a1,
+ D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 0x2000a2,
+ D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN = 0x2000a3,
+ D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD = 0x2000a4,
+ D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD = 0x2000a5,
+ D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x2000a6,
+ D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x2000a7,
+ D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL = 0x2000a8,
+ D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 0x2000a9,
+ D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 0x2000aa,
+ D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE = 0x2000ab,
+ D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 0x2000ac,
+ D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY = 0x2000ad,
+ D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x2000ae,
+ D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x2000af,
+ D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY = 0x2000b0,
+ D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY = 0x2000b1,
+ D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x2000b2,
+ D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY = 0x2000b3,
+ D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b4,
+ D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b5,
+ D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b6,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b7,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b8,
+ D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b9,
+ D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000ba,
+ D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE = 0x2000bb,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS = 0x2000bc,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 0x2000bd,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 0x2000be,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 0x2000bf,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 0x2000c0,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 0x2000c1,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD = 0x2000c2,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS = 0x2000c3,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP = 0x2000c4,
+ D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = 0x2000c5,
+ D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = 0x2000c6,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN = 0x2000c7,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN = 0x2000c8,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS = 0x2000c9,
+ D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD = 0x2000ca,
+ D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH = 0x2000cb,
+ D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY = 0x2000cc,
+ D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY = 0x2000cd,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 0x2000ce,
+ D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS = 0x2000cf,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER = 0x2000d0,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED = 0x2000d1,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW = 0x2000d2,
+ D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT = 0x2000d3,
+ D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE = 0x2000d4,
+ D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD = 0x2000d5,
+ D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT = 0x2000d6,
+ D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE = 0x2000d7,
+ D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT = 0x2000d8,
+ D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY = 0x2000d9,
+ D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY = 0x2000da,
+ D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED = 0x2000db,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH = 0x2000dc,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET = 0x2000dd,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP = 0x2000de,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH = 0x2000df,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED = 0x2000e0,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED = 0x2000e1,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH = 0x2000e2,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH = 0x2000e3,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED = 0x2000e4,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED = 0x2000e5,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED = 0x2000e6,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED = 0x2000e7,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED = 0x2000e8,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED = 0x2000e9,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED = 0x2000ea,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED = 0x2000eb,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED = 0x2000ec,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED = 0x2000ed,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW = 0x2000ee,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO = 0x2000ef,
+ D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH = 0x2000f0,
+ D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH = 0x2000f1,
+ D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED = 0x2000f2,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED = 0x2000f3,
+ D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED = 0x2000f4,
+ D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET = 0x2000f5,
+ D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET = 0x2000f6,
+ D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE = 0x2000f7,
+ D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE = 0x2000f8,
+ D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED = 0x2000f9,
+ D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW = 0x2000fa,
+ D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET = 0x2000fb,
+ D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS = 0x2000fc,
+ D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT = 0x2000fd,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED = 0x2000fe,
+ D3D11_MESSAGE_ID_REF_WARNING = 0x2000ff,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV = 0x200100,
+ D3D11_MESSAGE_ID_SHADER_ABORT = 0x200101,
+ D3D11_MESSAGE_ID_SHADER_MESSAGE = 0x200102,
+ D3D11_MESSAGE_ID_SHADER_ERROR = 0x200103,
+ D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE = 0x200104,
+ D3D11_MESSAGE_ID_HSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200105,
+ D3D11_MESSAGE_ID_DSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200106,
+ D3D11_MESSAGE_ID_CSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200107,
+ D3D11_MESSAGE_ID_HSSETSHADER_UNBINDDELETINGOBJECT = 0x200108,
+ D3D11_MESSAGE_ID_DSSETSHADER_UNBINDDELETINGOBJECT = 0x200109,
+ D3D11_MESSAGE_ID_CSSETSHADER_UNBINDDELETINGOBJECT = 0x20010a,
+ D3D11_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN = 0x20010b,
+ D3D11_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN = 0x20010c,
+ D3D11_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN = 0x20010d,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NUMUAVS_INVALIDRANGE = 0x20010e,
+ D3D11_MESSAGE_ID_D3D11_MESSAGES_END = 0x20010f,
+ D3D11_MESSAGE_ID_D3D11_1_MESSAGES_START = 0x300000,
+ D3D11_MESSAGE_ID_CREATE_VIDEODECODER = 0x300001,
+ D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSORENUM = 0x300002,
+ D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 0x300003,
+ D3D11_MESSAGE_ID_CREATE_DECODEROUTPUTVIEW = 0x300004,
+ D3D11_MESSAGE_ID_CREATE_PROCESSORINPUTVIEW = 0x300005,
+ D3D11_MESSAGE_ID_CREATE_PROCESSOROUTPUTVIEW = 0x300006,
+ D3D11_MESSAGE_ID_CREATE_DEVICECONTEXTSTATE = 0x300007,
+ D3D11_MESSAGE_ID_LIVE_VIDEODECODER = 0x300008,
+ D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSORENUM = 0x300009,
+ D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 0x30000a,
+ D3D11_MESSAGE_ID_LIVE_DECODEROUTPUTVIEW = 0x30000b,
+ D3D11_MESSAGE_ID_LIVE_PROCESSORINPUTVIEW = 0x30000c,
+ D3D11_MESSAGE_ID_LIVE_PROCESSOROUTPUTVIEW = 0x30000d,
+ D3D11_MESSAGE_ID_LIVE_DEVICECONTEXTSTATE = 0x30000e,
+ D3D11_MESSAGE_ID_DESTROY_VIDEODECODER = 0x30000f,
+ D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSORENUM = 0x300010,
+ D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 0x300011,
+ D3D11_MESSAGE_ID_DESTROY_DECODEROUTPUTVIEW = 0x300012,
+ D3D11_MESSAGE_ID_DESTROY_PROCESSORINPUTVIEW = 0x300013,
+ D3D11_MESSAGE_ID_DESTROY_PROCESSOROUTPUTVIEW = 0x300014,
+ D3D11_MESSAGE_ID_DESTROY_DEVICECONTEXTSTATE = 0x300015,
+ D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFLAGS = 0x300016,
+ D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFEATURELEVEL = 0x300017,
+ D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_FEATURELEVELS_NOT_SUPPORTED = 0x300018,
+ D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDREFIID = 0x300019,
+ D3D11_MESSAGE_ID_DEVICE_DISCARDVIEW_INVALIDVIEW = 0x30001a,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION1_INVALIDCOPYFLAGS = 0x30001b,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE1_INVALIDCOPYFLAGS = 0x30001c,
+ D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 0x30001d,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_OUTOFMEMORY_RETURN = 0x30001e,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_NULLPARAM = 0x30001f,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_INVALIDFORMAT = 0x300020,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_ZEROWIDTHHEIGHT = 0x300021,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERSIZE = 0x300022,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERUSAGE = 0x300023,
+ D3D11_MESSAGE_ID_GETVIDEODECODERPROFILECOUNT_OUTOFMEMORY = 0x300024,
+ D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_NULLPARAM = 0x300025,
+ D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_INVALIDINDEX = 0x300026,
+ D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_OUTOFMEMORY_RETURN = 0x300027,
+ D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_NULLPARAM = 0x300028,
+ D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_OUTOFMEMORY_RETURN = 0x300029,
+ D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_NULLPARAM = 0x30002a,
+ D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_OUTOFMEMORY_RETURN = 0x30002b,
+ D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_NULLPARAM = 0x30002c,
+ D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_INVALIDINDEX = 0x30002d,
+ D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_OUTOFMEMORY_RETURN = 0x30002e,
+ D3D11_MESSAGE_ID_GETDECODERCREATIONPARAMS_NULLPARAM = 0x30002f,
+ D3D11_MESSAGE_ID_GETDECODERDRIVERHANDLE_NULLPARAM = 0x300030,
+ D3D11_MESSAGE_ID_GETDECODERBUFFER_NULLPARAM = 0x300031,
+ D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDBUFFER = 0x300032,
+ D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDTYPE = 0x300033,
+ D3D11_MESSAGE_ID_GETDECODERBUFFER_LOCKED = 0x300034,
+ D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NULLPARAM = 0x300035,
+ D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_INVALIDTYPE = 0x300036,
+ D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NOTLOCKED = 0x300037,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM = 0x300038,
+ D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD = 0x300039,
+ D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM = 0x30003a,
+ D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_NULLPARAM = 0x30003b,
+ D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_INVALIDTYPE = 0x30003c,
+ D3D11_MESSAGE_ID_DECODEREXTENSION_NULLPARAM = 0x30003d,
+ D3D11_MESSAGE_ID_DECODEREXTENSION_INVALIDRESOURCE = 0x30003e,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_OUTOFMEMORY_RETURN = 0x30003f,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_NULLPARAM = 0x300040,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDFRAMEFORMAT = 0x300041,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDUSAGE = 0x300042,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDINPUTFRAMERATE = 0x300043,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDOUTPUTFRAMERATE = 0x300044,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDWIDTHHEIGHT = 0x300045,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORCONTENTDESC_NULLPARAM = 0x300046,
+ D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMAT_NULLPARAM = 0x300047,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORCAPS_NULLPARAM = 0x300048,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_NULLPARAM = 0x300049,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_INVALIDINDEX = 0x30004a,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_NULLPARAM = 0x30004b,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_INVALIDINDEX = 0x30004c,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_NULLPARAM = 0x30004d,
+ D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_UNSUPPORTED = 0x30004e,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_OUTOFMEMORY_RETURN = 0x30004f,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_NULLPARAM = 0x300050,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTTARGETRECT_NULLPARAM = 0x300051,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_NULLPARAM = 0x300052,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_INVALIDALPHA = 0x300053,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE_NULLPARAM = 0x300054,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_NULLPARAM = 0x300055,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_UNSUPPORTED = 0x300056,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDSTREAM = 0x300057,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDFILLMODE = 0x300058,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_NULLPARAM = 0x300059,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_NULLPARAM = 0x30005a,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_UNSUPPORTED = 0x30005b,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTEXTENSION_NULLPARAM = 0x30005c,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTTARGETRECT_NULLPARAM = 0x30005d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTBACKGROUNDCOLOR_NULLPARAM = 0x30005e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE_NULLPARAM = 0x30005f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTALPHAFILLMODE_NULLPARAM = 0x300060,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCONSTRICTION_NULLPARAM = 0x300061,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_UNSUPPORTED = 0x300062,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_INVALIDSIZE = 0x300063,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSTEREOMODE_NULLPARAM = 0x300064,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTEXTENSION_NULLPARAM = 0x300065,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_NULLPARAM = 0x300066,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDFORMAT = 0x300067,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDSTREAM = 0x300068,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_NULLPARAM = 0x300069,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_INVALIDSTREAM = 0x30006a,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_NULLPARAM = 0x30006b,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDRATE = 0x30006c,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDFLAG = 0x30006d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDSTREAM = 0x30006e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_NULLPARAM = 0x30006f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDSTREAM = 0x300070,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDRECT = 0x300071,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_NULLPARAM = 0x300072,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDSTREAM = 0x300073,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDRECT = 0x300074,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_NULLPARAM = 0x300075,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDSTREAM = 0x300076,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDALPHA = 0x300077,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_NULLPARAM = 0x300078,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDSTREAM = 0x300079,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDCOUNT = 0x30007a,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDALPHA = 0x30007b,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_NULLPARAM = 0x30007c,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDSTREAM = 0x30007d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDRATIO = 0x30007e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_NULLPARAM = 0x30007f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDSTREAM = 0x300080,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDRANGE = 0x300081,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_UNSUPPORTED = 0x300082,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_NULLPARAM = 0x300083,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDSTREAM = 0x300084,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_UNSUPPORTED = 0x300085,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FLIPUNSUPPORTED = 0x300086,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_MONOOFFSETUNSUPPORTED = 0x300087,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FORMATUNSUPPORTED = 0x300088,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDFORMAT = 0x300089,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_NULLPARAM = 0x30008a,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_INVALIDSTREAM = 0x30008b,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_NULLPARAM = 0x30008c,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDSTREAM = 0x30008d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDFILTER = 0x30008e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_UNSUPPORTED = 0x30008f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDLEVEL = 0x300090,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_NULLPARAM = 0x300091,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_INVALIDSTREAM = 0x300092,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFRAMEFORMAT_NULLPARAM = 0x300093,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE_NULLPARAM = 0x300094,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMOUTPUTRATE_NULLPARAM = 0x300095,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSOURCERECT_NULLPARAM = 0x300096,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMDESTRECT_NULLPARAM = 0x300097,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMALPHA_NULLPARAM = 0x300098,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPALETTE_NULLPARAM = 0x300099,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPIXELASPECTRATIO_NULLPARAM = 0x30009a,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMLUMAKEY_NULLPARAM = 0x30009b,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSTEREOFORMAT_NULLPARAM = 0x30009c,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMAUTOPROCESSINGMODE_NULLPARAM = 0x30009d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFILTER_NULLPARAM = 0x30009e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_NULLPARAM = 0x30009f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_INVALIDSTREAM = 0x3000a0,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NULLPARAM = 0x3000a1,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSTREAMCOUNT = 0x3000a2,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_TARGETRECT = 0x3000a3,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDOUTPUT = 0x3000a4,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDPASTFRAMES = 0x3000a5,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDFUTUREFRAMES = 0x3000a6,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSOURCERECT = 0x3000a7,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDDESTRECT = 0x3000a8,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDINPUTRESOURCE = 0x3000a9,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAYSIZE = 0x3000aa,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAY = 0x3000ab,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTEXPECTED = 0x3000ac,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTNOTEXPECTED = 0x3000ad,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_STEREONOTENABLED = 0x3000ae,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDRIGHTRESOURCE = 0x3000af,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NOSTEREOSTREAMS = 0x3000b0,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INPUTHAZARD = 0x3000b1,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_OUTPUTHAZARD = 0x3000b2,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_OUTOFMEMORY_RETURN = 0x3000b3,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_NULLPARAM = 0x3000b4,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDTYPE = 0x3000b5,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDBIND = 0x3000b6,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEDFORMAT = 0x3000b7,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDMIP = 0x3000b8,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEMIP = 0x3000b9,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAYSIZE = 0x3000ba,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAY = 0x3000bb,
+ D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDDIMENSION = 0x3000bc,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_OUTOFMEMORY_RETURN = 0x3000bd,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_NULLPARAM = 0x3000be,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDTYPE = 0x3000bf,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDBIND = 0x3000c0,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMISC = 0x3000c1,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDUSAGE = 0x3000c2,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFORMAT = 0x3000c3,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFOURCC = 0x3000c4,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMIP = 0x3000c5,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_UNSUPPORTEDMIP = 0x3000c6,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAYSIZE = 0x3000c7,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAY = 0x3000c8,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDDIMENSION = 0x3000c9,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_OUTOFMEMORY_RETURN = 0x3000ca,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_NULLPARAM = 0x3000cb,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDTYPE = 0x3000cc,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDBIND = 0x3000cd,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDFORMAT = 0x3000ce,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMIP = 0x3000cf,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDMIP = 0x3000d0,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDARRAY = 0x3000d1,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDARRAY = 0x3000d2,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDDIMENSION = 0x3000d3,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 0x3000d4,
+ D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 0x3000d5,
+ D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER = 0x3000d6,
+ D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER = 0x3000d7,
+ D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER = 0x3000d8,
+ D3D11_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = 0x3000d9,
+ D3D11_MESSAGE_ID_REF_WARNING_ATOMIC_INCONSISTENT = 0x3000da,
+ D3D11_MESSAGE_ID_REF_WARNING_READING_UNINITIALIZED_RESOURCE = 0x3000db,
+ D3D11_MESSAGE_ID_REF_WARNING_RAW_HAZARD = 0x3000dc,
+ D3D11_MESSAGE_ID_REF_WARNING_WAR_HAZARD = 0x3000dd,
+ D3D11_MESSAGE_ID_REF_WARNING_WAW_HAZARD = 0x3000de,
+ D3D11_MESSAGE_ID_CREATECRYPTOSESSION_NULLPARAM = 0x3000df,
+ D3D11_MESSAGE_ID_CREATECRYPTOSESSION_OUTOFMEMORY_RETURN = 0x3000e0,
+ D3D11_MESSAGE_ID_GETCRYPTOTYPE_NULLPARAM = 0x3000e1,
+ D3D11_MESSAGE_ID_GETDECODERPROFILE_NULLPARAM = 0x3000e2,
+ D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATESIZE_NULLPARAM = 0x3000e3,
+ D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_NULLPARAM = 0x3000e4,
+ D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_WRONGSIZE = 0x3000e5,
+ D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_WRONGSIZE = 0x3000e6,
+ D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_NULLPARAM = 0x3000e7,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_UNSUPPORTED = 0x3000e8,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_NULLPARAM = 0x3000e9,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_WRONGDEVICE = 0x3000ea,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_WRONGDEVICE = 0x3000eb,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_FORMAT_MISMATCH = 0x3000ec,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SIZE_MISMATCH = 0x3000ed,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MULTISAMPLED = 0x3000ee,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_NOT_STAGING = 0x3000ef,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MAPPED = 0x3000f0,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_MAPPED = 0x3000f1,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_OFFERED = 0x3000f2,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_OFFERED = 0x3000f3,
+ D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_CONTENT_UNDEFINED = 0x3000f4,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_UNSUPPORTED = 0x3000f5,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_NULLPARAM = 0x3000f6,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_WRONGDEVICE = 0x3000f7,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_WRONGDEVICE = 0x3000f8,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_FORMAT_MISMATCH = 0x3000f9,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SIZE_MISMATCH = 0x3000fa,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MULTISAMPLED = 0x3000fb,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_NOT_STAGING = 0x3000fc,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_NOT_RENDER_TARGET = 0x3000fd,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_MAPPED = 0x3000fe,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MAPPED = 0x3000ff,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_OFFERED = 0x300100,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_OFFERED = 0x300101,
+ D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_CONTENT_UNDEFINED = 0x300102,
+ D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_NULLPARAM = 0x300103,
+ D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_INVALIDSIZE = 0x300104,
+ D3D11_MESSAGE_ID_FINISHSESSIONKEYREFRESH_NULLPARAM = 0x300105,
+ D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_NULLPARAM = 0x300106,
+ D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_INVALIDSIZE = 0x300107,
+ D3D11_MESSAGE_ID_GETCONTENTPROTECTIONCAPS_NULLPARAM = 0x300108,
+ D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_NULLPARAM = 0x300109,
+ D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_INVALIDINDEX = 0x30010a,
+ D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_NULLPARAM = 0x30010b,
+ D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_UNSUPPORTED = 0x30010c,
+ D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_INVALIDTYPE = 0x30010d,
+ D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_OUTOFMEMORY_RETURN = 0x30010e,
+ D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_INVALIDCHANNEL = 0x30010f,
+ D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_NULLPARAM = 0x300110,
+ D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_INVALIDCHANNEL = 0x300111,
+ D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_NULLPARAM = 0x300112,
+ D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_WRONGSIZE = 0x300113,
+ D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDCHANNEL = 0x300114,
+ D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_NULLPARAM = 0x300115,
+ D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_NULLPARAM = 0x300116,
+ D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGCHANNEL = 0x300117,
+ D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_UNSUPPORTEDQUERY = 0x300118,
+ D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGSIZE = 0x300119,
+ D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_INVALIDPROCESSINDEX = 0x30011a,
+ D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_NULLPARAM = 0x30011b,
+ D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGCHANNEL = 0x30011c,
+ D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_UNSUPPORTEDCONFIGURE = 0x30011d,
+ D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGSIZE = 0x30011e,
+ D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_INVALIDPROCESSIDTYPE = 0x30011f,
+ D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300120,
+ D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300121,
+ D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300122,
+ D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300123,
+ D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300124,
+ D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300125,
+ D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_INVALIDSIZE = 0x300126,
+ D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDSIZE = 0x300127,
+ D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY = 0x300128,
+ D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_OUTOFMEMORY = 0x300129,
+ D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_NULLPARAM = 0x30012a,
+ D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDTYPE = 0x30012b,
+ D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDBIND = 0x30012c,
+ D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDARRAY = 0x30012d,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_NULLPARAM = 0x30012e,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALIDSTREAM = 0x30012f,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALID = 0x300130,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_UNSUPPORTED = 0x300131,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMROTATION_NULLPARAM = 0x300132,
+ D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW = 0x300133,
+ D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300134,
+ D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300135,
+ D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300136,
+ D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300137,
+ D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300138,
+ D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300139,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013a,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x30013b,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013c,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED = 0x30013d,
+ D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013e,
+ D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x30013f,
+ D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300140,
+ D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300141,
+ D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION = 0x300142,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_UNSUPPORTED = 0x300143,
+ D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_UNSUPPORTED = 0x300144,
+ D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 0x300145,
+ D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 0x300146,
+ D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 0x300147,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 0x300148,
+ D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 0x300149,
+ D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 0x30014a,
+ D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 0x30014b,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET = 0x30014c,
+ D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS = 0x30014d,
+ D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED = 0x30014e,
+ D3D11_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED = 0x30014f,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 = 0x300150,
+ D3D11_MESSAGE_ID_GETDC_INACCESSIBLE = 0x300151,
+ D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT = 0x300152,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 = 0x300153,
+ D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED = 0x300154,
+ D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED = 0x300155,
+ D3D11_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED = 0x300156,
+ D3D11_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED = 0x300157,
+ D3D11_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE = 0x300158,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA = 0x300159,
+ D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA = 0x30015a,
+ D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 0x30015b,
+ D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 0x30015c,
+ D3D11_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX = 0x30015d,
+ D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX = 0x30015e,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 0x30015f,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET = 0x300160,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET = 0x300161,
+ D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = 0x300162,
+ D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = 0x300163,
+ D3D11_MESSAGE_ID_D3D11_1_MESSAGES_END = 0x300164
+} D3D11_MESSAGE_ID;
+typedef enum D3D11_RLDO_FLAGS {
+ D3D11_RLDO_SUMMARY = 1,
+ D3D11_RLDO_DETAIL = 2
+} D3D11_RLDO_FLAGS;
+typedef struct D3D11_MESSAGE {
+ D3D11_MESSAGE_CATEGORY Category;
+ D3D11_MESSAGE_SEVERITY Severity;
+ D3D11_MESSAGE_ID ID;
+ const char *pDescription;
+ SIZE_T DescriptionByteLength;
+} D3D11_MESSAGE;
+typedef struct D3D11_INFO_QUEUE_FILTER_DESC {
+ UINT NumCategories;
+ D3D11_MESSAGE_CATEGORY *pCategoryList;
+ UINT NumSeverities;
+ D3D11_MESSAGE_SEVERITY *pSeverityList;
+ UINT NumIDs;
+ D3D11_MESSAGE_ID *pIDList;
+} D3D11_INFO_QUEUE_FILTER_DESC;
+typedef struct D3D11_INFO_QUEUE_FILTER {
+ D3D11_INFO_QUEUE_FILTER_DESC AllowList;
+ D3D11_INFO_QUEUE_FILTER_DESC DenyList;
+} D3D11_INFO_QUEUE_FILTER;
+#define D3D11_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
+/*****************************************************************************
+ * ID3D11Debug interface
+ */
+#ifndef __ID3D11Debug_INTERFACE_DEFINED__
+#define __ID3D11Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11Debug, 0x79cf2233, 0x7536, 0x4948, 0x9d,0x36, 0x1e,0x46,0x92,0xdc,0x57,0x60);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("79cf2233-7536-4948-9d36-1e4692dc5760")
+ID3D11Debug : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetFeatureMask(
+ UINT Mask) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetFeatureMask(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPresentPerRenderOpDelay(
+ UINT Milliseconds) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetPresentPerRenderOpDelay(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSwapChain(
+ IDXGISwapChain *pSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSwapChain(
+ IDXGISwapChain **ppSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ValidateContext(
+ ID3D11DeviceContext *pContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects(
+ D3D11_RLDO_FLAGS Flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ValidateContextForDispatch(
+ ID3D11DeviceContext *pContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11Debug, 0x79cf2233, 0x7536, 0x4948, 0x9d,0x36, 0x1e,0x46,0x92,0xdc,0x57,0x60)
+#endif
+#else
+typedef struct ID3D11DebugVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11Debug *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11Debug *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11Debug *This);
+
+ /*** ID3D11Debug methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetFeatureMask)(
+ ID3D11Debug *This,
+ UINT Mask);
+
+ UINT (STDMETHODCALLTYPE *GetFeatureMask)(
+ ID3D11Debug *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetPresentPerRenderOpDelay)(
+ ID3D11Debug *This,
+ UINT Milliseconds);
+
+ UINT (STDMETHODCALLTYPE *GetPresentPerRenderOpDelay)(
+ ID3D11Debug *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetSwapChain)(
+ ID3D11Debug *This,
+ IDXGISwapChain *pSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSwapChain)(
+ ID3D11Debug *This,
+ IDXGISwapChain **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *ValidateContext)(
+ ID3D11Debug *This,
+ ID3D11DeviceContext *pContext);
+
+ HRESULT (STDMETHODCALLTYPE *ReportLiveDeviceObjects)(
+ ID3D11Debug *This,
+ D3D11_RLDO_FLAGS Flags);
+
+ HRESULT (STDMETHODCALLTYPE *ValidateContextForDispatch)(
+ ID3D11Debug *This,
+ ID3D11DeviceContext *pContext);
+
+ END_INTERFACE
+} ID3D11DebugVtbl;
+
+interface ID3D11Debug {
+ CONST_VTBL ID3D11DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11Debug methods ***/
+#define ID3D11Debug_SetFeatureMask(This,Mask) (This)->lpVtbl->SetFeatureMask(This,Mask)
+#define ID3D11Debug_GetFeatureMask(This) (This)->lpVtbl->GetFeatureMask(This)
+#define ID3D11Debug_SetPresentPerRenderOpDelay(This,Milliseconds) (This)->lpVtbl->SetPresentPerRenderOpDelay(This,Milliseconds)
+#define ID3D11Debug_GetPresentPerRenderOpDelay(This) (This)->lpVtbl->GetPresentPerRenderOpDelay(This)
+#define ID3D11Debug_SetSwapChain(This,pSwapChain) (This)->lpVtbl->SetSwapChain(This,pSwapChain)
+#define ID3D11Debug_GetSwapChain(This,ppSwapChain) (This)->lpVtbl->GetSwapChain(This,ppSwapChain)
+#define ID3D11Debug_ValidateContext(This,pContext) (This)->lpVtbl->ValidateContext(This,pContext)
+#define ID3D11Debug_ReportLiveDeviceObjects(This,Flags) (This)->lpVtbl->ReportLiveDeviceObjects(This,Flags)
+#define ID3D11Debug_ValidateContextForDispatch(This,pContext) (This)->lpVtbl->ValidateContextForDispatch(This,pContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11Debug_QueryInterface(ID3D11Debug* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11Debug_AddRef(ID3D11Debug* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11Debug_Release(ID3D11Debug* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11Debug methods ***/
+static FORCEINLINE HRESULT ID3D11Debug_SetFeatureMask(ID3D11Debug* This,UINT Mask) {
+ return This->lpVtbl->SetFeatureMask(This,Mask);
+}
+static FORCEINLINE UINT ID3D11Debug_GetFeatureMask(ID3D11Debug* This) {
+ return This->lpVtbl->GetFeatureMask(This);
+}
+static FORCEINLINE HRESULT ID3D11Debug_SetPresentPerRenderOpDelay(ID3D11Debug* This,UINT Milliseconds) {
+ return This->lpVtbl->SetPresentPerRenderOpDelay(This,Milliseconds);
+}
+static FORCEINLINE UINT ID3D11Debug_GetPresentPerRenderOpDelay(ID3D11Debug* This) {
+ return This->lpVtbl->GetPresentPerRenderOpDelay(This);
+}
+static FORCEINLINE HRESULT ID3D11Debug_SetSwapChain(ID3D11Debug* This,IDXGISwapChain *pSwapChain) {
+ return This->lpVtbl->SetSwapChain(This,pSwapChain);
+}
+static FORCEINLINE HRESULT ID3D11Debug_GetSwapChain(ID3D11Debug* This,IDXGISwapChain **ppSwapChain) {
+ return This->lpVtbl->GetSwapChain(This,ppSwapChain);
+}
+static FORCEINLINE HRESULT ID3D11Debug_ValidateContext(ID3D11Debug* This,ID3D11DeviceContext *pContext) {
+ return This->lpVtbl->ValidateContext(This,pContext);
+}
+static FORCEINLINE HRESULT ID3D11Debug_ReportLiveDeviceObjects(ID3D11Debug* This,D3D11_RLDO_FLAGS Flags) {
+ return This->lpVtbl->ReportLiveDeviceObjects(This,Flags);
+}
+static FORCEINLINE HRESULT ID3D11Debug_ValidateContextForDispatch(ID3D11Debug* This,ID3D11DeviceContext *pContext) {
+ return This->lpVtbl->ValidateContextForDispatch(This,pContext);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11Debug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11SwitchToRef interface
+ */
+#ifndef __ID3D11SwitchToRef_INTERFACE_DEFINED__
+#define __ID3D11SwitchToRef_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11SwitchToRef, 0x1ef337e3, 0x58e7, 0x4f83, 0xa6,0x92, 0xdb,0x22,0x1f,0x5e,0xd4,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1ef337e3-58e7-4f83-a692-db221f5ed47e")
+ID3D11SwitchToRef : public IUnknown
+{
+ virtual WINBOOL STDMETHODCALLTYPE SetUseRef(
+ WINBOOL useref) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetUseRef(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11SwitchToRef, 0x1ef337e3, 0x58e7, 0x4f83, 0xa6,0x92, 0xdb,0x22,0x1f,0x5e,0xd4,0x7e)
+#endif
+#else
+typedef struct ID3D11SwitchToRefVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11SwitchToRef *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11SwitchToRef *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11SwitchToRef *This);
+
+ /*** ID3D11SwitchToRef methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SetUseRef)(
+ ID3D11SwitchToRef *This,
+ WINBOOL useref);
+
+ WINBOOL (STDMETHODCALLTYPE *GetUseRef)(
+ ID3D11SwitchToRef *This);
+
+ END_INTERFACE
+} ID3D11SwitchToRefVtbl;
+
+interface ID3D11SwitchToRef {
+ CONST_VTBL ID3D11SwitchToRefVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11SwitchToRef_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11SwitchToRef_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11SwitchToRef_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11SwitchToRef methods ***/
+#define ID3D11SwitchToRef_SetUseRef(This,useref) (This)->lpVtbl->SetUseRef(This,useref)
+#define ID3D11SwitchToRef_GetUseRef(This) (This)->lpVtbl->GetUseRef(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11SwitchToRef_QueryInterface(ID3D11SwitchToRef* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11SwitchToRef_AddRef(ID3D11SwitchToRef* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11SwitchToRef_Release(ID3D11SwitchToRef* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11SwitchToRef methods ***/
+static FORCEINLINE WINBOOL ID3D11SwitchToRef_SetUseRef(ID3D11SwitchToRef* This,WINBOOL useref) {
+ return This->lpVtbl->SetUseRef(This,useref);
+}
+static FORCEINLINE WINBOOL ID3D11SwitchToRef_GetUseRef(ID3D11SwitchToRef* This) {
+ return This->lpVtbl->GetUseRef(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11SwitchToRef_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D11InfoQueue interface
+ */
+#ifndef __ID3D11InfoQueue_INTERFACE_DEFINED__
+#define __ID3D11InfoQueue_INTERFACE_DEFINED__
+
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetMessage
+#endif
+DEFINE_GUID(IID_ID3D11InfoQueue, 0x6543dbb6, 0x1b48, 0x42f5, 0xab,0x82, 0xe9,0x7e,0xc7,0x43,0x26,0xf6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6543dbb6-1b48-42f5-ab82-e97ec74326f6")
+ID3D11InfoQueue : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
+ UINT64 MessageCountLimit) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStoredMessages(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMessage(
+ UINT64 MessageIndex,
+ D3D11_MESSAGE *pMessage,
+ SIZE_T *pMessageByteLength) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
+ D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
+ D3D11_INFO_QUEUE_FILTER *pFilter,
+ SIZE_T *pFilterByteLength) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
+ D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopStorageFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
+ D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
+ D3D11_INFO_QUEUE_FILTER *pFilter,
+ SIZE_T *pFilterByteLength) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
+ D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopRetrievalFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddMessage(
+ D3D11_MESSAGE_CATEGORY Category,
+ D3D11_MESSAGE_SEVERITY Severity,
+ D3D11_MESSAGE_ID ID,
+ LPCSTR pDescription) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
+ D3D11_MESSAGE_SEVERITY Severity,
+ LPCSTR pDescription) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
+ D3D11_MESSAGE_CATEGORY Category,
+ WINBOOL bEnable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
+ D3D11_MESSAGE_SEVERITY Severity,
+ WINBOOL bEnable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
+ D3D11_MESSAGE_ID ID,
+ WINBOOL bEnable) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnCategory(
+ D3D11_MESSAGE_CATEGORY Category) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnSeverity(
+ D3D11_MESSAGE_SEVERITY Severity) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnID(
+ D3D11_MESSAGE_ID ID) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
+ WINBOOL bMute) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetMuteDebugOutput(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11InfoQueue, 0x6543dbb6, 0x1b48, 0x42f5, 0xab,0x82, 0xe9,0x7e,0xc7,0x43,0x26,0xf6)
+#endif
+#else
+typedef struct ID3D11InfoQueueVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D11InfoQueue *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D11InfoQueue *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D11InfoQueue *This);
+
+ /*** ID3D11InfoQueue methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMessageCountLimit)(
+ ID3D11InfoQueue *This,
+ UINT64 MessageCountLimit);
+
+ void (STDMETHODCALLTYPE *ClearStoredMessages)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetMessage)(
+ ID3D11InfoQueue *This,
+ UINT64 MessageIndex,
+ D3D11_MESSAGE *pMessage,
+ SIZE_T *pMessageByteLength);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessages)(
+ ID3D11InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter)(
+ ID3D11InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit)(
+ ID3D11InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetMessageCountLimit)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddStorageFilterEntries)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter);
+
+ HRESULT (STDMETHODCALLTYPE *GetStorageFilter)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter,
+ SIZE_T *pFilterByteLength);
+
+ void (STDMETHODCALLTYPE *ClearStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushStorageFilter)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter);
+
+ void (STDMETHODCALLTYPE *PopStorageFilter)(
+ ID3D11InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetStorageFilterStackSize)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddRetrievalFilterEntries)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter);
+
+ HRESULT (STDMETHODCALLTYPE *GetRetrievalFilter)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter,
+ SIZE_T *pFilterByteLength);
+
+ void (STDMETHODCALLTYPE *ClearRetrievalFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyRetrievalFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfRetrievalFilter)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushRetrievalFilter)(
+ ID3D11InfoQueue *This,
+ D3D11_INFO_QUEUE_FILTER *pFilter);
+
+ void (STDMETHODCALLTYPE *PopRetrievalFilter)(
+ ID3D11InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetRetrievalFilterStackSize)(
+ ID3D11InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddMessage)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_CATEGORY Category,
+ D3D11_MESSAGE_SEVERITY Severity,
+ D3D11_MESSAGE_ID ID,
+ LPCSTR pDescription);
+
+ HRESULT (STDMETHODCALLTYPE *AddApplicationMessage)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_SEVERITY Severity,
+ LPCSTR pDescription);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnCategory)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_CATEGORY Category,
+ WINBOOL bEnable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnSeverity)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_SEVERITY Severity,
+ WINBOOL bEnable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnID)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_ID ID,
+ WINBOOL bEnable);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnCategory)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_CATEGORY Category);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnSeverity)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_SEVERITY Severity);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnID)(
+ ID3D11InfoQueue *This,
+ D3D11_MESSAGE_ID ID);
+
+ void (STDMETHODCALLTYPE *SetMuteDebugOutput)(
+ ID3D11InfoQueue *This,
+ WINBOOL bMute);
+
+ WINBOOL (STDMETHODCALLTYPE *GetMuteDebugOutput)(
+ ID3D11InfoQueue *This);
+
+ END_INTERFACE
+} ID3D11InfoQueueVtbl;
+
+interface ID3D11InfoQueue {
+ CONST_VTBL ID3D11InfoQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11InfoQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11InfoQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11InfoQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11InfoQueue methods ***/
+#define ID3D11InfoQueue_SetMessageCountLimit(This,MessageCountLimit) (This)->lpVtbl->SetMessageCountLimit(This,MessageCountLimit)
+#define ID3D11InfoQueue_ClearStoredMessages(This) (This)->lpVtbl->ClearStoredMessages(This)
+#define ID3D11InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) (This)->lpVtbl->GetMessage(This,MessageIndex,pMessage,pMessageByteLength)
+#define ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesAllowedByStorageFilter(This)
+#define ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesDeniedByStorageFilter(This)
+#define ID3D11InfoQueue_GetNumStoredMessages(This) (This)->lpVtbl->GetNumStoredMessages(This)
+#define ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) (This)->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This)
+#define ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) (This)->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This)
+#define ID3D11InfoQueue_GetMessageCountLimit(This) (This)->lpVtbl->GetMessageCountLimit(This)
+#define ID3D11InfoQueue_AddStorageFilterEntries(This,pFilter) (This)->lpVtbl->AddStorageFilterEntries(This,pFilter)
+#define ID3D11InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength) (This)->lpVtbl->GetStorageFilter(This,pFilter,pFilterByteLength)
+#define ID3D11InfoQueue_ClearStorageFilter(This) (This)->lpVtbl->ClearStorageFilter(This)
+#define ID3D11InfoQueue_PushEmptyStorageFilter(This) (This)->lpVtbl->PushEmptyStorageFilter(This)
+#define ID3D11InfoQueue_PushCopyOfStorageFilter(This) (This)->lpVtbl->PushCopyOfStorageFilter(This)
+#define ID3D11InfoQueue_PushStorageFilter(This,pFilter) (This)->lpVtbl->PushStorageFilter(This,pFilter)
+#define ID3D11InfoQueue_PopStorageFilter(This) (This)->lpVtbl->PopStorageFilter(This)
+#define ID3D11InfoQueue_GetStorageFilterStackSize(This) (This)->lpVtbl->GetStorageFilterStackSize(This)
+#define ID3D11InfoQueue_AddRetrievalFilterEntries(This,pFilter) (This)->lpVtbl->AddRetrievalFilterEntries(This,pFilter)
+#define ID3D11InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength) (This)->lpVtbl->GetRetrievalFilter(This,pFilter,pFilterByteLength)
+#define ID3D11InfoQueue_ClearRetrievalFilter(This) (This)->lpVtbl->ClearRetrievalFilter(This)
+#define ID3D11InfoQueue_PushEmptyRetrievalFilter(This) (This)->lpVtbl->PushEmptyRetrievalFilter(This)
+#define ID3D11InfoQueue_PushCopyOfRetrievalFilter(This) (This)->lpVtbl->PushCopyOfRetrievalFilter(This)
+#define ID3D11InfoQueue_PushRetrievalFilter(This,pFilter) (This)->lpVtbl->PushRetrievalFilter(This,pFilter)
+#define ID3D11InfoQueue_PopRetrievalFilter(This) (This)->lpVtbl->PopRetrievalFilter(This)
+#define ID3D11InfoQueue_GetRetrievalFilterStackSize(This) (This)->lpVtbl->GetRetrievalFilterStackSize(This)
+#define ID3D11InfoQueue_AddMessage(This,Category,Severity,ID,pDescription) (This)->lpVtbl->AddMessage(This,Category,Severity,ID,pDescription)
+#define ID3D11InfoQueue_AddApplicationMessage(This,Severity,pDescription) (This)->lpVtbl->AddApplicationMessage(This,Severity,pDescription)
+#define ID3D11InfoQueue_SetBreakOnCategory(This,Category,bEnable) (This)->lpVtbl->SetBreakOnCategory(This,Category,bEnable)
+#define ID3D11InfoQueue_SetBreakOnSeverity(This,Severity,bEnable) (This)->lpVtbl->SetBreakOnSeverity(This,Severity,bEnable)
+#define ID3D11InfoQueue_SetBreakOnID(This,ID,bEnable) (This)->lpVtbl->SetBreakOnID(This,ID,bEnable)
+#define ID3D11InfoQueue_GetBreakOnCategory(This,Category) (This)->lpVtbl->GetBreakOnCategory(This,Category)
+#define ID3D11InfoQueue_GetBreakOnSeverity(This,Severity) (This)->lpVtbl->GetBreakOnSeverity(This,Severity)
+#define ID3D11InfoQueue_GetBreakOnID(This,ID) (This)->lpVtbl->GetBreakOnID(This,ID)
+#define ID3D11InfoQueue_SetMuteDebugOutput(This,bMute) (This)->lpVtbl->SetMuteDebugOutput(This,bMute)
+#define ID3D11InfoQueue_GetMuteDebugOutput(This) (This)->lpVtbl->GetMuteDebugOutput(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11InfoQueue_QueryInterface(ID3D11InfoQueue* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11InfoQueue_AddRef(ID3D11InfoQueue* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11InfoQueue_Release(ID3D11InfoQueue* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D11InfoQueue methods ***/
+static FORCEINLINE HRESULT ID3D11InfoQueue_SetMessageCountLimit(ID3D11InfoQueue* This,UINT64 MessageCountLimit) {
+ return This->lpVtbl->SetMessageCountLimit(This,MessageCountLimit);
+}
+static FORCEINLINE void ID3D11InfoQueue_ClearStoredMessages(ID3D11InfoQueue* This) {
+ This->lpVtbl->ClearStoredMessages(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_GetMessage(ID3D11InfoQueue* This,UINT64 MessageIndex,D3D11_MESSAGE *pMessage,SIZE_T *pMessageByteLength) {
+ return This->lpVtbl->GetMessage(This,MessageIndex,pMessage,pMessageByteLength);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesAllowedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDeniedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumStoredMessages(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessages(This);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This);
+}
+static FORCEINLINE UINT64 ID3D11InfoQueue_GetMessageCountLimit(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetMessageCountLimit(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_AddStorageFilterEntries(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
+ return This->lpVtbl->AddStorageFilterEntries(This,pFilter);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_GetStorageFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter,SIZE_T *pFilterByteLength) {
+ return This->lpVtbl->GetStorageFilter(This,pFilter,pFilterByteLength);
+}
+static FORCEINLINE void ID3D11InfoQueue_ClearStorageFilter(ID3D11InfoQueue* This) {
+ This->lpVtbl->ClearStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushEmptyStorageFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->PushEmptyStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushCopyOfStorageFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushStorageFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
+ return This->lpVtbl->PushStorageFilter(This,pFilter);
+}
+static FORCEINLINE void ID3D11InfoQueue_PopStorageFilter(ID3D11InfoQueue* This) {
+ This->lpVtbl->PopStorageFilter(This);
+}
+static FORCEINLINE UINT ID3D11InfoQueue_GetStorageFilterStackSize(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetStorageFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_AddRetrievalFilterEntries(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
+ return This->lpVtbl->AddRetrievalFilterEntries(This,pFilter);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_GetRetrievalFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter,SIZE_T *pFilterByteLength) {
+ return This->lpVtbl->GetRetrievalFilter(This,pFilter,pFilterByteLength);
+}
+static FORCEINLINE void ID3D11InfoQueue_ClearRetrievalFilter(ID3D11InfoQueue* This) {
+ This->lpVtbl->ClearRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushEmptyRetrievalFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->PushEmptyRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushCopyOfRetrievalFilter(ID3D11InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_PushRetrievalFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
+ return This->lpVtbl->PushRetrievalFilter(This,pFilter);
+}
+static FORCEINLINE void ID3D11InfoQueue_PopRetrievalFilter(ID3D11InfoQueue* This) {
+ This->lpVtbl->PopRetrievalFilter(This);
+}
+static FORCEINLINE UINT ID3D11InfoQueue_GetRetrievalFilterStackSize(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetRetrievalFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_AddMessage(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category,D3D11_MESSAGE_SEVERITY Severity,D3D11_MESSAGE_ID ID,LPCSTR pDescription) {
+ return This->lpVtbl->AddMessage(This,Category,Severity,ID,pDescription);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_AddApplicationMessage(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity,LPCSTR pDescription) {
+ return This->lpVtbl->AddApplicationMessage(This,Severity,pDescription);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnCategory(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category,WINBOOL bEnable) {
+ return This->lpVtbl->SetBreakOnCategory(This,Category,bEnable);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnSeverity(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity,WINBOOL bEnable) {
+ return This->lpVtbl->SetBreakOnSeverity(This,Severity,bEnable);
+}
+static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnID(ID3D11InfoQueue* This,D3D11_MESSAGE_ID ID,WINBOOL bEnable) {
+ return This->lpVtbl->SetBreakOnID(This,ID,bEnable);
+}
+static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnCategory(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category) {
+ return This->lpVtbl->GetBreakOnCategory(This,Category);
+}
+static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnSeverity(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity) {
+ return This->lpVtbl->GetBreakOnSeverity(This,Severity);
+}
+static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnID(ID3D11InfoQueue* This,D3D11_MESSAGE_ID ID) {
+ return This->lpVtbl->GetBreakOnID(This,ID);
+}
+static FORCEINLINE void ID3D11InfoQueue_SetMuteDebugOutput(ID3D11InfoQueue* This,WINBOOL bMute) {
+ This->lpVtbl->SetMuteDebugOutput(This,bMute);
+}
+static FORCEINLINE WINBOOL ID3D11InfoQueue_GetMuteDebugOutput(ID3D11InfoQueue* This) {
+ return This->lpVtbl->GetMuteDebugOutput(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D11InfoQueue_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11sdklayers_h__ */
diff --git a/d3d11shader.h b/d3d11shader.h
new file mode 100644
index 0000000..d0a06f8
--- /dev/null
+++ b/d3d11shader.h
@@ -0,0 +1,265 @@
+#undef INTERFACE
+/*
+ * Copyright 2010 Matteo Bruni for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3D11SHADER_H__
+#define __D3D11SHADER_H__
+
+#include "d3dcommon.h"
+
+/* If not defined set d3dcompiler_47 by default. */
+#ifndef D3D_COMPILER_VERSION
+#define D3D_COMPILER_VERSION 47
+#endif
+
+/* These are defined as version-neutral in d3dcommon.h */
+typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
+
+typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE;
+
+typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN;
+
+typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING;
+
+typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE;
+
+typedef struct _D3D11_SHADER_DESC
+{
+ UINT Version;
+ const char *Creator;
+ UINT Flags;
+ UINT ConstantBuffers;
+ UINT BoundResources;
+ UINT InputParameters;
+ UINT OutputParameters;
+ UINT InstructionCount;
+ UINT TempRegisterCount;
+ UINT TempArrayCount;
+ UINT DefCount;
+ UINT DclCount;
+ UINT TextureNormalInstructions;
+ UINT TextureLoadInstructions;
+ UINT TextureCompInstructions;
+ UINT TextureBiasInstructions;
+ UINT TextureGradientInstructions;
+ UINT FloatInstructionCount;
+ UINT IntInstructionCount;
+ UINT UintInstructionCount;
+ UINT StaticFlowControlCount;
+ UINT DynamicFlowControlCount;
+ UINT MacroInstructionCount;
+ UINT ArrayInstructionCount;
+ UINT CutInstructionCount;
+ UINT EmitInstructionCount;
+ D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
+ UINT GSMaxOutputVertexCount;
+ D3D_PRIMITIVE InputPrimitive;
+ UINT PatchConstantParameters;
+ UINT cGSInstanceCount;
+ UINT cControlPoints;
+ D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
+ D3D_TESSELLATOR_PARTITIONING HSPartitioning;
+ D3D_TESSELLATOR_DOMAIN TessellatorDomain;
+ UINT cBarrierInstructions;
+ UINT cInterlockedInstructions;
+ UINT cTextureStoreInstructions;
+} D3D11_SHADER_DESC;
+
+typedef struct _D3D11_SHADER_VARIABLE_DESC
+{
+ const char *Name;
+ UINT StartOffset;
+ UINT Size;
+ UINT uFlags;
+ void *DefaultValue;
+ UINT StartTexture;
+ UINT TextureSize;
+ UINT StartSampler;
+ UINT SamplerSize;
+} D3D11_SHADER_VARIABLE_DESC;
+
+typedef struct _D3D11_SHADER_TYPE_DESC
+{
+ D3D_SHADER_VARIABLE_CLASS Class;
+ D3D_SHADER_VARIABLE_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT Members;
+ UINT Offset;
+ const char *Name;
+} D3D11_SHADER_TYPE_DESC;
+
+typedef struct _D3D11_SHADER_BUFFER_DESC
+{
+ const char *Name;
+ D3D_CBUFFER_TYPE Type;
+ UINT Variables;
+ UINT Size;
+ UINT uFlags;
+} D3D11_SHADER_BUFFER_DESC;
+
+typedef struct _D3D11_SHADER_INPUT_BIND_DESC
+{
+ const char *Name;
+ D3D_SHADER_INPUT_TYPE Type;
+ UINT BindPoint;
+ UINT BindCount;
+ UINT uFlags;
+ D3D_RESOURCE_RETURN_TYPE ReturnType;
+ D3D_SRV_DIMENSION Dimension;
+ UINT NumSamples;
+} D3D11_SHADER_INPUT_BIND_DESC;
+
+typedef struct _D3D11_SIGNATURE_PARAMETER_DESC
+{
+ const char *SemanticName;
+ UINT SemanticIndex;
+ UINT Register;
+ D3D_NAME SystemValueType;
+ D3D_REGISTER_COMPONENT_TYPE ComponentType;
+ BYTE Mask;
+ BYTE ReadWriteMask;
+ UINT Stream;
+#if D3D_COMPILER_VERSION >= 46
+ D3D_MIN_PRECISION MinPrecision;
+#endif
+} D3D11_SIGNATURE_PARAMETER_DESC;
+
+DEFINE_GUID(IID_ID3D11ShaderReflectionType, 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21);
+
+#define INTERFACE ID3D11ShaderReflectionType
+DECLARE_INTERFACE(ID3D11ShaderReflectionType)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_TYPE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE;
+ STDMETHOD(IsEqual)(THIS_ struct ID3D11ShaderReflectionType *type) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetSubType)(THIS) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetBaseClass)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetInterfaceByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD(IsOfType)(THIS_ struct ID3D11ShaderReflectionType *type) PURE;
+ STDMETHOD(ImplementsInterface)(THIS_ ID3D11ShaderReflectionType *base) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D11ShaderReflectionVariable, 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c);
+
+#define INTERFACE ID3D11ShaderReflectionVariable
+DECLARE_INTERFACE(ID3D11ShaderReflectionVariable)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_VARIABLE_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionType *, GetType)(THIS) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetBuffer)(THIS) PURE;
+ STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ UINT index) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer, 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8);
+
+#define INTERFACE ID3D11ShaderReflectionConstantBuffer
+DECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer)
+{
+ STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+};
+#undef INTERFACE
+
+#if D3D_COMPILER_VERSION <= 42
+DEFINE_GUID(IID_ID3D11ShaderReflection, 0x17f27486, 0xa342, 0x4d10, 0x88, 0x42, 0xab, 0x08, 0x74, 0xe7, 0xf6, 0x70);
+#elif D3D_COMPILER_VERSION == 43
+DEFINE_GUID(IID_ID3D11ShaderReflection, 0x0a233719, 0x3960, 0x4578, 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1);
+#else
+DEFINE_GUID(IID_ID3D11ShaderReflection, 0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84);
+#endif
+
+#define INTERFACE ID3D11ShaderReflection
+DECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown)
+{
+ /* IUnknown methods */
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* ID3D11ShaderReflection methods */
+ STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD(GetPatchConstantParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
+ STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE;
+ STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE;
+ STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE;
+ STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE;
+ STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE;
+ STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE;
+ STDMETHOD_(WINBOOL, IsSampleFrequencyShader)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE;
+ STDMETHOD(GetMinFeatureLevel)(THIS_ enum D3D_FEATURE_LEVEL *level) PURE;
+ STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ UINT *sizex, UINT *sizey, UINT *sizez) PURE;
+ STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D11ModuleInstance, 0x469e07f7, 0x45a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d);
+
+#define INTERFACE ID3D11ModuleInstance
+DECLARE_INTERFACE_(ID3D11ModuleInstance, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID3D11ModuleInstance methods */
+ STDMETHOD(BindConstantBuffer)(THIS_ UINT srcslot, UINT dstslot, UINT dstoffset) PURE;
+ STDMETHOD(BindConstantBufferByName)(THIS_ const char *name, UINT dstslot, UINT dstoffset) PURE;
+
+ STDMETHOD(BindResource)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE;
+ STDMETHOD(BindResourceByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE;
+
+ STDMETHOD(BindSampler)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE;
+ STDMETHOD(BindSamplerByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE;
+
+ STDMETHOD(BindUnorderedAccessView)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE;
+ STDMETHOD(BindUnorderedAccessViewByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE;
+
+ STDMETHOD(BindResourceAsUnorderedAccessView)(THIS_ UINT srcslot, UINT dstslot, UINT count) PURE;
+ STDMETHOD(BindResourceAsUnorderedAccessViewByName)(THIS_ const char *name, UINT dstslot, UINT count) PURE;
+};
+#undef INTERFACE
+
+DEFINE_GUID(IID_ID3D11Module, 0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34);
+
+#define INTERFACE ID3D11Module
+DECLARE_INTERFACE_(ID3D11Module, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /* ID3D11Module methods */
+ STDMETHOD(CreateInstance)(THIS_ const char *instnamespace, ID3D11ModuleInstance **moduleinstance) PURE;
+};
+#undef INTERFACE
+
+#endif
diff --git a/d3d12.h b/d3d12.h
new file mode 100644
index 0000000..2ccd363
--- /dev/null
+++ b/d3d12.h
@@ -0,0 +1,7794 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d12.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d12_h__
+#define __d3d12_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D12Object_FWD_DEFINED__
+#define __ID3D12Object_FWD_DEFINED__
+typedef interface ID3D12Object ID3D12Object;
+#ifdef __cplusplus
+interface ID3D12Object;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12DeviceChild_FWD_DEFINED__
+#define __ID3D12DeviceChild_FWD_DEFINED__
+typedef interface ID3D12DeviceChild ID3D12DeviceChild;
+#ifdef __cplusplus
+interface ID3D12DeviceChild;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Pageable_FWD_DEFINED__
+#define __ID3D12Pageable_FWD_DEFINED__
+typedef interface ID3D12Pageable ID3D12Pageable;
+#ifdef __cplusplus
+interface ID3D12Pageable;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Heap_FWD_DEFINED__
+#define __ID3D12Heap_FWD_DEFINED__
+typedef interface ID3D12Heap ID3D12Heap;
+#ifdef __cplusplus
+interface ID3D12Heap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Resource_FWD_DEFINED__
+#define __ID3D12Resource_FWD_DEFINED__
+typedef interface ID3D12Resource ID3D12Resource;
+#ifdef __cplusplus
+interface ID3D12Resource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandList_FWD_DEFINED__
+#define __ID3D12CommandList_FWD_DEFINED__
+typedef interface ID3D12CommandList ID3D12CommandList;
+#ifdef __cplusplus
+interface ID3D12CommandList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
+#define __ID3D12DescriptorHeap_FWD_DEFINED__
+typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
+#ifdef __cplusplus
+interface ID3D12DescriptorHeap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12QueryHeap_FWD_DEFINED__
+#define __ID3D12QueryHeap_FWD_DEFINED__
+typedef interface ID3D12QueryHeap ID3D12QueryHeap;
+#ifdef __cplusplus
+interface ID3D12QueryHeap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandSignature_FWD_DEFINED__
+#define __ID3D12CommandSignature_FWD_DEFINED__
+typedef interface ID3D12CommandSignature ID3D12CommandSignature;
+#ifdef __cplusplus
+interface ID3D12CommandSignature;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandQueue_FWD_DEFINED__
+#define __ID3D12CommandQueue_FWD_DEFINED__
+typedef interface ID3D12CommandQueue ID3D12CommandQueue;
+#ifdef __cplusplus
+interface ID3D12CommandQueue;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12RootSignature_FWD_DEFINED__
+#define __ID3D12RootSignature_FWD_DEFINED__
+typedef interface ID3D12RootSignature ID3D12RootSignature;
+#ifdef __cplusplus
+interface ID3D12RootSignature;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12PipelineState_FWD_DEFINED__
+#define __ID3D12PipelineState_FWD_DEFINED__
+typedef interface ID3D12PipelineState ID3D12PipelineState;
+#ifdef __cplusplus
+interface ID3D12PipelineState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Fence_FWD_DEFINED__
+#define __ID3D12Fence_FWD_DEFINED__
+typedef interface ID3D12Fence ID3D12Fence;
+#ifdef __cplusplus
+interface ID3D12Fence;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
+#define __ID3D12CommandAllocator_FWD_DEFINED__
+typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
+#ifdef __cplusplus
+interface ID3D12CommandAllocator;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Device_FWD_DEFINED__
+#define __ID3D12Device_FWD_DEFINED__
+typedef interface ID3D12Device ID3D12Device;
+#ifdef __cplusplus
+interface ID3D12Device;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Device1_FWD_DEFINED__
+#define __ID3D12Device1_FWD_DEFINED__
+typedef interface ID3D12Device1 ID3D12Device1;
+#ifdef __cplusplus
+interface ID3D12Device1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
+#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
+typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
+#ifdef __cplusplus
+interface ID3D12RootSignatureDeserializer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
+#ifdef __cplusplus
+interface ID3D12VersionedRootSignatureDeserializer;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgi.h>
+#include <d3dcommon.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _D3D12_CONSTANTS
+#define _D3D12_CONSTANTS
+#define D3D12_CS_TGSM_REGISTER_COUNT (8192)
+
+#define D3D12_MAX_ROOT_COST (64)
+
+#define D3D12_VIEWPORT_BOUNDS_MAX (32767)
+
+#define D3D12_VIEWPORT_BOUNDS_MIN (-32768)
+
+#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
+
+#define D3D12_APPEND_ALIGNED_ELEMENT (0xffffffff)
+
+#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)
+#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)
+#define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f)
+#define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f)
+#define D3D12_DEFAULT_DEPTH_BIAS (0)
+
+#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f)
+#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f)
+#define D3D12_DEFAULT_STENCIL_READ_MASK (0xff)
+
+#define D3D12_DEFAULT_STENCIL_WRITE_MASK (0xff)
+
+#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff)
+
+#define D3D12_FLOAT32_MAX (3.402823466e+38f)
+#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
+
+#define D3D12_UAV_SLOT_COUNT (64)
+
+#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D12_REQ_MIP_LEVELS (15)
+
+#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
+
+#define D3D12_REQ_TEXTURE1D_U_DIMENSION (16384)
+
+#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
+
+#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
+
+#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
+
+#define D3D12_REQ_TEXTURECUBE_DIMENSION (16384)
+
+#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES (0xffffffff)
+
+#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
+
+#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
+
+#define D3D12_SO_BUFFER_SLOT_COUNT (4)
+
+#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
+
+#define D3D12_SO_NO_RASTERIZED_STREAM (0xffffffff)
+
+#define D3D12_SO_OUTPUT_COMPONENT_COUNT (128)
+
+#define D3D12_SO_STREAM_COUNT (4)
+
+#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT (256)
+
+#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (4194304)
+
+#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT (65536)
+
+#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
+
+#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (65536)
+
+#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT (4096)
+
+#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
+
+#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT (256)
+
+#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT (512)
+
+#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT (4096)
+
+#define D3D12_VS_INPUT_REGISTER_COUNT (32)
+
+#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
+
+#endif
+#define D3D12_SHADER_COMPONENT_MAPPING_MASK (0x7)
+
+#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT (3)
+
+#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4))
+
+typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT {
+ D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
+ D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
+ D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
+} D3D12_SHADER_MIN_PRECISION_SUPPORT;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT);
+typedef enum D3D12_TILED_RESOURCES_TIER {
+ D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
+ D3D12_TILED_RESOURCES_TIER_1 = 1,
+ D3D12_TILED_RESOURCES_TIER_2 = 2,
+ D3D12_TILED_RESOURCES_TIER_3 = 3
+} D3D12_TILED_RESOURCES_TIER;
+typedef enum D3D12_RESOURCE_BINDING_TIER {
+ D3D12_RESOURCE_BINDING_TIER_1 = 1,
+ D3D12_RESOURCE_BINDING_TIER_2 = 2,
+ D3D12_RESOURCE_BINDING_TIER_3 = 3
+} D3D12_RESOURCE_BINDING_TIER;
+typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER {
+ D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
+ D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
+ D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
+ D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3
+} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
+typedef enum D3D12_CROSS_NODE_SHARING_TIER {
+ D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
+ D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
+ D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
+ D3D12_CROSS_NODE_SHARING_TIER_2 = 3
+} D3D12_CROSS_NODE_SHARING_TIER;
+typedef enum D3D12_RESOURCE_HEAP_TIER {
+ D3D12_RESOURCE_HEAP_TIER_1 = 1,
+ D3D12_RESOURCE_HEAP_TIER_2 = 2
+} D3D12_RESOURCE_HEAP_TIER;
+typedef enum D3D12_FORMAT_SUPPORT1 {
+ D3D12_FORMAT_SUPPORT1_NONE = 0x0,
+ D3D12_FORMAT_SUPPORT1_BUFFER = 0x1,
+ D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2,
+ D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4,
+ D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8,
+ D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10,
+ D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20,
+ D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40,
+ D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80,
+ D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100,
+ D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200,
+ D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400,
+ D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800,
+ D3D12_FORMAT_SUPPORT1_MIP = 0x1000,
+ D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000,
+ D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000,
+ D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000,
+ D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000,
+ D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000,
+ D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000,
+ D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000,
+ D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000,
+ D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000,
+ D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000,
+ D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
+ D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000,
+ D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000,
+ D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
+ D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
+ D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
+} D3D12_FORMAT_SUPPORT1;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1);
+typedef enum D3D12_FORMAT_SUPPORT2 {
+ D3D12_FORMAT_SUPPORT2_NONE = 0x0,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
+ D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
+ D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
+ D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
+ D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
+ D3D12_FORMAT_SUPPORT2_TILED = 0x200,
+ D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
+} D3D12_FORMAT_SUPPORT2;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);
+typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE {
+ D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
+ D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
+ D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
+} D3D12_WRITEBUFFERIMMEDIATE_MODE;
+typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
+ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
+ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
+ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2
+} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
+typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS {
+ D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
+ D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
+ D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
+ D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
+ D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8
+} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);
+typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS {
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
+ D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40
+} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS);
+typedef enum D3D12_VIEW_INSTANCING_TIER {
+ D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
+ D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
+ D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
+ D3D12_VIEW_INSTANCING_TIER_3 = 0x3
+} D3D12_VIEW_INSTANCING_TIER;
+typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
+ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0,
+ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1
+} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
+typedef enum D3D12_HEAP_SERIALIZATION_TIER {
+ D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
+ D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa
+} D3D12_HEAP_SERIALIZATION_TIER;
+typedef enum D3D12_RENDER_PASS_TIER {
+ D3D12_RENDER_PASS_TIER_0 = 0x0,
+ D3D12_RENDER_PASS_TIER_1 = 0x1,
+ D3D12_RENDER_PASS_TIER_2 = 0x2
+} D3D12_RENDER_PASS_TIER;
+typedef enum D3D12_RAYTRACING_TIER {
+ D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
+ D3D12_RAYTRACING_TIER_1_0 = 0xa
+} D3D12_RAYTRACING_TIER;
+#ifndef __ID3D12Fence_FWD_DEFINED__
+#define __ID3D12Fence_FWD_DEFINED__
+typedef interface ID3D12Fence ID3D12Fence;
+#ifdef __cplusplus
+interface ID3D12Fence;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12RootSignature_FWD_DEFINED__
+#define __ID3D12RootSignature_FWD_DEFINED__
+typedef interface ID3D12RootSignature ID3D12RootSignature;
+#ifdef __cplusplus
+interface ID3D12RootSignature;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Heap_FWD_DEFINED__
+#define __ID3D12Heap_FWD_DEFINED__
+typedef interface ID3D12Heap ID3D12Heap;
+#ifdef __cplusplus
+interface ID3D12Heap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
+#define __ID3D12DescriptorHeap_FWD_DEFINED__
+typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap;
+#ifdef __cplusplus
+interface ID3D12DescriptorHeap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Resource_FWD_DEFINED__
+#define __ID3D12Resource_FWD_DEFINED__
+typedef interface ID3D12Resource ID3D12Resource;
+#ifdef __cplusplus
+interface ID3D12Resource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandAllocator_FWD_DEFINED__
+#define __ID3D12CommandAllocator_FWD_DEFINED__
+typedef interface ID3D12CommandAllocator ID3D12CommandAllocator;
+#ifdef __cplusplus
+interface ID3D12CommandAllocator;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12CommandQueue_FWD_DEFINED__
+#define __ID3D12CommandQueue_FWD_DEFINED__
+typedef interface ID3D12CommandQueue ID3D12CommandQueue;
+#ifdef __cplusplus
+interface ID3D12CommandQueue;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12PipelineState_FWD_DEFINED__
+#define __ID3D12PipelineState_FWD_DEFINED__
+typedef interface ID3D12PipelineState ID3D12PipelineState;
+#ifdef __cplusplus
+interface ID3D12PipelineState;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Device_FWD_DEFINED__
+#define __ID3D12Device_FWD_DEFINED__
+typedef interface ID3D12Device ID3D12Device;
+#ifdef __cplusplus
+interface ID3D12Device;
+#endif /* __cplusplus */
+#endif
+
+typedef RECT D3D12_RECT;
+typedef struct D3D12_BOX {
+ UINT left;
+ UINT top;
+ UINT front;
+ UINT right;
+ UINT bottom;
+ UINT back;
+} D3D12_BOX;
+typedef struct D3D12_VIEWPORT {
+ FLOAT TopLeftX;
+ FLOAT TopLeftY;
+ FLOAT Width;
+ FLOAT Height;
+ FLOAT MinDepth;
+ FLOAT MaxDepth;
+} D3D12_VIEWPORT;
+typedef struct D3D12_RANGE {
+ SIZE_T Begin;
+ SIZE_T End;
+} D3D12_RANGE;
+typedef struct D3D12_RANGE_UINT64 {
+ UINT64 Begin;
+ UINT64 End;
+} D3D12_RANGE_UINT64;
+typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 {
+ UINT Subresource;
+ D3D12_RANGE_UINT64 Range;
+} D3D12_SUBRESOURCE_RANGE_UINT64;
+typedef struct D3D12_RESOURCE_ALLOCATION_INFO {
+ UINT64 SizeInBytes;
+ UINT64 Alignment;
+} D3D12_RESOURCE_ALLOCATION_INFO;
+typedef struct D3D12_DRAW_ARGUMENTS {
+ UINT VertexCountPerInstance;
+ UINT InstanceCount;
+ UINT StartVertexLocation;
+ UINT StartInstanceLocation;
+} D3D12_DRAW_ARGUMENTS;
+typedef struct D3D12_DRAW_INDEXED_ARGUMENTS {
+ UINT IndexCountPerInstance;
+ UINT InstanceCount;
+ UINT StartIndexLocation;
+ INT BaseVertexLocation;
+ UINT StartInstanceLocation;
+} D3D12_DRAW_INDEXED_ARGUMENTS;
+typedef struct D3D12_DISPATCH_ARGUMENTS {
+ UINT ThreadGroupCountX;
+ UINT ThreadGroupCountY;
+ UINT ThreadGroupCountZ;
+} D3D12_DISPATCH_ARGUMENTS;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
+ WINBOOL DoublePrecisionFloatShaderOps;
+ WINBOOL OutputMergerLogicOp;
+ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
+ D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
+ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
+ WINBOOL PSSpecifiedStencilRefSupported;
+ WINBOOL TypedUAVLoadAdditionalFormats;
+ WINBOOL ROVsSupported;
+ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
+ UINT MaxGPUVirtualAddressBitsPerResource;
+ WINBOOL StandardSwizzle64KBSupported;
+ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
+ WINBOOL CrossAdapterRowMajorTextureSupported;
+ WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
+ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS;
+typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
+ DXGI_FORMAT Format;
+ D3D12_FORMAT_SUPPORT1 Support1;
+ D3D12_FORMAT_SUPPORT2 Support2;
+} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
+typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
+ D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x0,
+ D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
+} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);
+typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
+ DXGI_FORMAT Format;
+ UINT SampleCount;
+ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
+ UINT NumQualityLevels;
+} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
+typedef enum D3D12_HEAP_TYPE {
+ D3D12_HEAP_TYPE_DEFAULT = 1,
+ D3D12_HEAP_TYPE_UPLOAD = 2,
+ D3D12_HEAP_TYPE_READBACK = 3,
+ D3D12_HEAP_TYPE_CUSTOM = 4
+} D3D12_HEAP_TYPE;
+typedef enum D3D12_CPU_PAGE_PROPERTY {
+ D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
+ D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
+ D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
+ D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
+} D3D12_CPU_PAGE_PROPERTY;
+typedef enum D3D12_MEMORY_POOL {
+ D3D12_MEMORY_POOL_UNKNOWN = 0,
+ D3D12_MEMORY_POOL_L0 = 1,
+ D3D12_MEMORY_POOL_L1 = 2
+} D3D12_MEMORY_POOL;
+typedef struct D3D12_HEAP_PROPERTIES {
+ D3D12_HEAP_TYPE Type;
+ D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
+ D3D12_MEMORY_POOL MemoryPoolPreference;
+ UINT CreationNodeMask;
+ UINT VisibleNodeMask;
+} D3D12_HEAP_PROPERTIES;
+typedef enum D3D12_HEAP_FLAGS {
+ D3D12_HEAP_FLAG_NONE = 0x0,
+ D3D12_HEAP_FLAG_SHARED = 0x1,
+ D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
+ D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
+ D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
+ D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
+ D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
+ D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0,
+ D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
+ D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
+ D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
+} D3D12_HEAP_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS);
+typedef struct D3D12_HEAP_DESC {
+ UINT64 SizeInBytes;
+ D3D12_HEAP_PROPERTIES Properties;
+ UINT64 Alignment;
+ D3D12_HEAP_FLAGS Flags;
+} D3D12_HEAP_DESC;
+typedef struct D3D12_TILED_RESOURCE_COORDINATE {
+ UINT X;
+ UINT Y;
+ UINT Z;
+ UINT Subresource;
+} D3D12_TILED_RESOURCE_COORDINATE;
+typedef struct D3D12_TILE_REGION_SIZE {
+ UINT NumTiles;
+ WINBOOL UseBox;
+ UINT Width;
+ UINT16 Height;
+ UINT16 Depth;
+} D3D12_TILE_REGION_SIZE;
+typedef struct D3D12_SUBRESOURCE_TILING {
+ UINT WidthInTiles;
+ UINT16 HeightInTiles;
+ UINT16 DepthInTiles;
+ UINT StartTileIndexInOverallResource;
+} D3D12_SUBRESOURCE_TILING;
+typedef struct D3D12_TILE_SHAPE {
+ UINT WidthInTexels;
+ UINT HeightInTexels;
+ UINT DepthInTexels;
+} D3D12_TILE_SHAPE;
+typedef struct D3D12_SHADER_BYTECODE {
+ const void *pShaderBytecode;
+ SIZE_T BytecodeLength;
+} D3D12_SHADER_BYTECODE;
+typedef struct D3D12_DEPTH_STENCIL_VALUE {
+ FLOAT Depth;
+ UINT8 Stencil;
+} D3D12_DEPTH_STENCIL_VALUE;
+typedef struct D3D12_CLEAR_VALUE {
+ DXGI_FORMAT Format;
+ __C89_NAMELESS union {
+ FLOAT Color[4];
+ D3D12_DEPTH_STENCIL_VALUE DepthStencil;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_CLEAR_VALUE;
+typedef struct D3D12_PACKED_MIP_INFO {
+ UINT8 NumStandardMips;
+ UINT8 NumPackedMips;
+ UINT NumTilesForPackedMips;
+ UINT StartTileIndexInOverallResource;
+} D3D12_PACKED_MIP_INFO;
+typedef enum D3D12_RESOURCE_STATES {
+ D3D12_RESOURCE_STATE_COMMON = 0,
+ D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
+ D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
+ D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
+ D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
+ D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
+ D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
+ D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
+ D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
+ D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
+ D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
+ D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
+ D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
+ D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
+ D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
+ D3D12_RESOURCE_STATE_GENERIC_READ = ((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800,
+ D3D12_RESOURCE_STATE_PRESENT = 0x0,
+ D3D12_RESOURCE_STATE_PREDICATION = 0x200,
+ D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
+ D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
+ D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
+ D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
+ D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
+ D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
+} D3D12_RESOURCE_STATES;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);
+typedef enum D3D12_RESOURCE_BARRIER_TYPE {
+ D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
+ D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1,
+ D3D12_RESOURCE_BARRIER_TYPE_UAV = 2
+} D3D12_RESOURCE_BARRIER_TYPE;
+typedef enum D3D12_RESOURCE_BARRIER_FLAGS {
+ D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
+ D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
+ D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
+} D3D12_RESOURCE_BARRIER_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS);
+typedef struct D3D12_RESOURCE_TRANSITION_BARRIER {
+ ID3D12Resource *pResource;
+ UINT Subresource;
+ D3D12_RESOURCE_STATES StateBefore;
+ D3D12_RESOURCE_STATES StateAfter;
+} D3D12_RESOURCE_TRANSITION_BARRIER;
+typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING {
+ ID3D12Resource *pResourceBefore;
+ ID3D12Resource *pResourceAfter;
+} D3D12_RESOURCE_ALIASING_BARRIER;
+typedef struct D3D12_RESOURCE_UAV_BARRIER {
+ ID3D12Resource *pResource;
+} D3D12_RESOURCE_UAV_BARRIER;
+typedef struct D3D12_RESOURCE_BARRIER {
+ D3D12_RESOURCE_BARRIER_TYPE Type;
+ D3D12_RESOURCE_BARRIER_FLAGS Flags;
+ __C89_NAMELESS union {
+ D3D12_RESOURCE_TRANSITION_BARRIER Transition;
+ D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
+ D3D12_RESOURCE_UAV_BARRIER UAV;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_RESOURCE_BARRIER;
+typedef enum D3D12_RESOURCE_DIMENSION {
+ D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
+ D3D12_RESOURCE_DIMENSION_BUFFER = 1,
+ D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
+ D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
+ D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
+} D3D12_RESOURCE_DIMENSION;
+typedef enum D3D12_TEXTURE_LAYOUT {
+ D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
+ D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
+ D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
+ D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3
+} D3D12_TEXTURE_LAYOUT;
+typedef enum D3D12_RESOURCE_FLAGS {
+ D3D12_RESOURCE_FLAG_NONE = 0x0,
+ D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
+ D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
+ D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
+ D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
+ D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
+ D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20
+} D3D12_RESOURCE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);
+typedef struct D3D12_RESOURCE_DESC {
+ D3D12_RESOURCE_DIMENSION Dimension;
+ UINT64 Alignment;
+ UINT64 Width;
+ UINT Height;
+ UINT16 DepthOrArraySize;
+ UINT16 MipLevels;
+ DXGI_FORMAT Format;
+ DXGI_SAMPLE_DESC SampleDesc;
+ D3D12_TEXTURE_LAYOUT Layout;
+ D3D12_RESOURCE_FLAGS Flags;
+} D3D12_RESOURCE_DESC;
+typedef enum D3D12_RESOLVE_MODE {
+ D3D12_RESOLVE_MODE_DECOMPRESS = 0,
+ D3D12_RESOLVE_MODE_MIN = 1,
+ D3D12_RESOLVE_MODE_MAX = 2,
+ D3D12_RESOLVE_MODE_AVERAGE = 3
+} D3D12_RESOLVE_MODE;
+typedef struct D3D12_SAMPLE_POSITION {
+ INT8 X;
+ INT8 Y;
+} D3D12_SAMPLE_POSITION;
+typedef enum D3D12_TEXTURE_COPY_TYPE {
+ D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
+ D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
+} D3D12_TEXTURE_COPY_TYPE;
+typedef struct D3D12_SUBRESOURCE_FOOTPRINT {
+ DXGI_FORMAT Format;
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT RowPitch;
+} D3D12_SUBRESOURCE_FOOTPRINT;
+typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
+ UINT64 Offset;
+ D3D12_SUBRESOURCE_FOOTPRINT Footprint;
+} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
+typedef struct D3D12_TEXTURE_COPY_LOCATION {
+ ID3D12Resource *pResource;
+ D3D12_TEXTURE_COPY_TYPE Type;
+ __C89_NAMELESS union {
+ D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
+ UINT SubresourceIndex;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_TEXTURE_COPY_LOCATION;
+typedef enum D3D12_DESCRIPTOR_RANGE_TYPE {
+ D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
+ D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1,
+ D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2,
+ D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3
+} D3D12_DESCRIPTOR_RANGE_TYPE;
+typedef struct D3D12_DESCRIPTOR_RANGE {
+ D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
+ UINT NumDescriptors;
+ UINT BaseShaderRegister;
+ UINT RegisterSpace;
+ UINT OffsetInDescriptorsFromTableStart;
+} D3D12_DESCRIPTOR_RANGE;
+typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
+ D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8
+} D3D12_DESCRIPTOR_RANGE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);
+typedef struct D3D12_DESCRIPTOR_RANGE1 {
+ D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
+ UINT NumDescriptors;
+ UINT BaseShaderRegister;
+ UINT RegisterSpace;
+ D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
+ UINT OffsetInDescriptorsFromTableStart;
+} D3D12_DESCRIPTOR_RANGE1;
+typedef struct D3D12_ROOT_DESCRIPTOR_TABLE {
+ UINT NumDescriptorRanges;
+ const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
+} D3D12_ROOT_DESCRIPTOR_TABLE;
+typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 {
+ UINT NumDescriptorRanges;
+ const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
+} D3D12_ROOT_DESCRIPTOR_TABLE1;
+typedef struct D3D12_ROOT_CONSTANTS {
+ UINT ShaderRegister;
+ UINT RegisterSpace;
+ UINT Num32BitValues;
+} D3D12_ROOT_CONSTANTS;
+typedef struct D3D12_ROOT_DESCRIPTOR {
+ UINT ShaderRegister;
+ UINT RegisterSpace;
+} D3D12_ROOT_DESCRIPTOR;
+typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS {
+ D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
+} D3D12_ROOT_DESCRIPTOR_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS);
+typedef struct D3D12_ROOT_DESCRIPTOR1 {
+ UINT ShaderRegister;
+ UINT RegisterSpace;
+ D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
+} D3D12_ROOT_DESCRIPTOR1;
+typedef enum D3D12_ROOT_PARAMETER_TYPE {
+ D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
+ D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1,
+ D3D12_ROOT_PARAMETER_TYPE_CBV = 2,
+ D3D12_ROOT_PARAMETER_TYPE_SRV = 3,
+ D3D12_ROOT_PARAMETER_TYPE_UAV = 4
+} D3D12_ROOT_PARAMETER_TYPE;
+typedef enum D3D12_SHADER_VISIBILITY {
+ D3D12_SHADER_VISIBILITY_ALL = 0,
+ D3D12_SHADER_VISIBILITY_VERTEX = 1,
+ D3D12_SHADER_VISIBILITY_HULL = 2,
+ D3D12_SHADER_VISIBILITY_DOMAIN = 3,
+ D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
+ D3D12_SHADER_VISIBILITY_PIXEL = 5
+} D3D12_SHADER_VISIBILITY;
+typedef struct D3D12_ROOT_PARAMETER {
+ D3D12_ROOT_PARAMETER_TYPE ParameterType;
+ __C89_NAMELESS union {
+ D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
+ D3D12_ROOT_CONSTANTS Constants;
+ D3D12_ROOT_DESCRIPTOR Descriptor;
+ } __C89_NAMELESSUNIONNAME;
+ D3D12_SHADER_VISIBILITY ShaderVisibility;
+} D3D12_ROOT_PARAMETER;
+typedef struct D3D12_ROOT_PARAMETER1 {
+ D3D12_ROOT_PARAMETER_TYPE ParameterType;
+ __C89_NAMELESS union {
+ D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
+ D3D12_ROOT_CONSTANTS Constants;
+ D3D12_ROOT_DESCRIPTOR1 Descriptor;
+ } __C89_NAMELESSUNIONNAME;
+ D3D12_SHADER_VISIBILITY ShaderVisibility;
+} D3D12_ROOT_PARAMETER1;
+typedef enum D3D12_STATIC_BORDER_COLOR {
+ D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
+ D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1,
+ D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2
+} D3D12_STATIC_BORDER_COLOR;
+typedef enum D3D12_FILTER {
+ D3D12_FILTER_MIN_MAG_MIP_POINT = 0x0,
+ D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
+ D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
+ D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
+ D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
+ D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
+ D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
+ D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
+ D3D12_FILTER_ANISOTROPIC = 0x55,
+ D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
+ D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
+ D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
+ D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
+ D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
+ D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
+ D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
+ D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
+ D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
+ D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
+ D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
+ D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
+ D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
+ D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
+ D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
+ D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
+ D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
+ D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
+ D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
+ D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
+ D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
+ D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
+ D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
+ D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
+ D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
+ D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
+ D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
+} D3D12_FILTER;
+typedef enum D3D12_FILTER_TYPE {
+ D3D12_FILTER_TYPE_POINT = 0,
+ D3D12_FILTER_TYPE_LINEAR = 1
+} D3D12_FILTER_TYPE;
+#define D3D12_MIP_FILTER_SHIFT (0)
+
+#define D3D12_MAG_FILTER_SHIFT (2)
+
+#define D3D12_MIN_FILTER_SHIFT (4)
+
+#define D3D12_FILTER_TYPE_MASK (0x3)
+
+#define D3D12_ANISOTROPIC_FILTERING_BIT (0x40)
+
+typedef enum D3D12_FILTER_REDUCTION_TYPE {
+ D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
+ D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
+ D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
+ D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3
+} D3D12_FILTER_REDUCTION_TYPE;
+#define D3D12_FILTER_REDUCTION_TYPE_MASK (0x3)
+
+#define D3D12_FILTER_REDUCTION_TYPE_SHIFT (7)
+
+#define D3D12_DECODE_MAG_FILTER(filter) \
+ ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
+#define D3D12_DECODE_MIN_FILTER(filter) \
+ ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
+#define D3D12_DECODE_MIP_FILTER(filter) \
+ ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))
+#define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter) \
+ (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \
+ && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
+ && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \
+ && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR))
+#define D3D12_DECODE_FILTER_REDUCTION(filter) \
+ ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \
+ & D3D12_FILTER_REDUCTION_TYPE_MASK))
+#define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \
+ (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON)
+typedef enum D3D12_TEXTURE_ADDRESS_MODE {
+ D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
+ D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
+ D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
+ D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
+ D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
+} D3D12_TEXTURE_ADDRESS_MODE;
+typedef enum D3D12_COMPARISON_FUNC {
+ D3D12_COMPARISON_FUNC_NEVER = 1,
+ D3D12_COMPARISON_FUNC_LESS = 2,
+ D3D12_COMPARISON_FUNC_EQUAL = 3,
+ D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
+ D3D12_COMPARISON_FUNC_GREATER = 5,
+ D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
+ D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
+ D3D12_COMPARISON_FUNC_ALWAYS = 8
+} D3D12_COMPARISON_FUNC;
+typedef struct D3D12_STATIC_SAMPLER_DESC {
+ D3D12_FILTER Filter;
+ D3D12_TEXTURE_ADDRESS_MODE AddressU;
+ D3D12_TEXTURE_ADDRESS_MODE AddressV;
+ D3D12_TEXTURE_ADDRESS_MODE AddressW;
+ FLOAT MipLODBias;
+ UINT MaxAnisotropy;
+ D3D12_COMPARISON_FUNC ComparisonFunc;
+ D3D12_STATIC_BORDER_COLOR BorderColor;
+ FLOAT MinLOD;
+ FLOAT MaxLOD;
+ UINT ShaderRegister;
+ UINT RegisterSpace;
+ D3D12_SHADER_VISIBILITY ShaderVisibility;
+} D3D12_STATIC_SAMPLER_DESC;
+typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
+ D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,
+ D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
+ D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
+ D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
+ D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
+ D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
+ D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
+ D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40
+} D3D12_ROOT_SIGNATURE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS);
+typedef struct D3D12_ROOT_SIGNATURE_DESC {
+ UINT NumParameters;
+ const D3D12_ROOT_PARAMETER *pParameters;
+ UINT NumStaticSamplers;
+ const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
+ D3D12_ROOT_SIGNATURE_FLAGS Flags;
+} D3D12_ROOT_SIGNATURE_DESC;
+typedef struct D3D12_ROOT_SIGNATURE_DESC1 {
+ UINT NumParameters;
+ const D3D12_ROOT_PARAMETER1 *pParameters;
+ UINT NumStaticSamplers;
+ const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
+ D3D12_ROOT_SIGNATURE_FLAGS Flags;
+} D3D12_ROOT_SIGNATURE_DESC1;
+typedef enum D3D_ROOT_SIGNATURE_VERSION {
+ D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
+ D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
+ D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
+} D3D_ROOT_SIGNATURE_VERSION;
+typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
+ D3D_ROOT_SIGNATURE_VERSION Version;
+ __C89_NAMELESS union {
+ D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
+ D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
+typedef enum D3D12_DESCRIPTOR_HEAP_TYPE {
+ D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0,
+ D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = 1,
+ D3D12_DESCRIPTOR_HEAP_TYPE_RTV = 2,
+ D3D12_DESCRIPTOR_HEAP_TYPE_DSV = 3,
+ D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = 4
+} D3D12_DESCRIPTOR_HEAP_TYPE;
+typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
+ D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
+ D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
+} D3D12_DESCRIPTOR_HEAP_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS);
+typedef struct D3D12_DESCRIPTOR_HEAP_DESC {
+ D3D12_DESCRIPTOR_HEAP_TYPE Type;
+ UINT NumDescriptors;
+ D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
+ UINT NodeMask;
+} D3D12_DESCRIPTOR_HEAP_DESC;
+typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
+typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC {
+ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
+ UINT SizeInBytes;
+} D3D12_CONSTANT_BUFFER_VIEW_DESC;
+typedef enum D3D12_SRV_DIMENSION {
+ D3D12_SRV_DIMENSION_UNKNOWN = 0,
+ D3D12_SRV_DIMENSION_BUFFER = 1,
+ D3D12_SRV_DIMENSION_TEXTURE1D = 2,
+ D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D12_SRV_DIMENSION_TEXTURE2D = 4,
+ D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
+ D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D12_SRV_DIMENSION_TEXTURE3D = 8,
+ D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
+ D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10
+} D3D12_SRV_DIMENSION;
+typedef enum D3D12_BUFFER_SRV_FLAGS {
+ D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
+ D3D12_BUFFER_SRV_FLAG_RAW = 0x1
+} D3D12_BUFFER_SRV_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS);
+typedef enum D3D12_SHADER_COMPONENT_MAPPING {
+ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
+ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
+ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
+ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
+ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
+ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
+} D3D12_SHADER_COMPONENT_MAPPING;
+#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \
+ (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \
+ | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
+ | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \
+ | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \
+ | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)
+#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
+#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \
+ ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
+ & D3D12_SHADER_COMPONENT_MAPPING_MASK))
+typedef struct D3D12_BUFFER_SRV {
+ UINT64 FirstElement;
+ UINT NumElements;
+ UINT StructureByteStride;
+ D3D12_BUFFER_SRV_FLAGS Flags;
+} D3D12_BUFFER_SRV;
+typedef struct D3D12_TEX1D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEX1D_SRV;
+typedef struct D3D12_TEX1D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEX1D_ARRAY_SRV;
+typedef struct D3D12_TEX2D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT PlaneSlice;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEX2D_SRV;
+typedef struct D3D12_TEX2D_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEX2D_ARRAY_SRV;
+typedef struct D3D12_TEX2DMS_SRV {
+ UINT UnusedField_NothingToDefine;
+} D3D12_TEX2DMS_SRV;
+typedef struct D3D12_TEX2DMS_ARRAY_SRV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX2DMS_ARRAY_SRV;
+typedef struct D3D12_TEX3D_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEX3D_SRV;
+typedef struct D3D12_TEXCUBE_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEXCUBE_SRV;
+typedef struct D3D12_TEXCUBE_ARRAY_SRV {
+ UINT MostDetailedMip;
+ UINT MipLevels;
+ UINT First2DArrayFace;
+ UINT NumCubes;
+ FLOAT ResourceMinLODClamp;
+} D3D12_TEXCUBE_ARRAY_SRV;
+typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D12_SRV_DIMENSION ViewDimension;
+ UINT Shader4ComponentMapping;
+ __C89_NAMELESS union {
+ D3D12_BUFFER_SRV Buffer;
+ D3D12_TEX1D_SRV Texture1D;
+ D3D12_TEX1D_ARRAY_SRV Texture1DArray;
+ D3D12_TEX2D_SRV Texture2D;
+ D3D12_TEX2D_ARRAY_SRV Texture2DArray;
+ D3D12_TEX2DMS_SRV Texture2DMS;
+ D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
+ D3D12_TEX3D_SRV Texture3D;
+ D3D12_TEXCUBE_SRV TextureCube;
+ D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_SHADER_RESOURCE_VIEW_DESC;
+typedef enum D3D12_UAV_DIMENSION {
+ D3D12_UAV_DIMENSION_UNKNOWN = 0,
+ D3D12_UAV_DIMENSION_BUFFER = 1,
+ D3D12_UAV_DIMENSION_TEXTURE1D = 2,
+ D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D12_UAV_DIMENSION_TEXTURE2D = 4,
+ D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D12_UAV_DIMENSION_TEXTURE3D = 8
+} D3D12_UAV_DIMENSION;
+typedef enum D3D12_BUFFER_UAV_FLAGS {
+ D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
+ D3D12_BUFFER_UAV_FLAG_RAW = 0x1
+} D3D12_BUFFER_UAV_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS);
+typedef struct D3D12_BUFFER_UAV {
+ UINT64 FirstElement;
+ UINT NumElements;
+ UINT StructureByteStride;
+ UINT64 CounterOffsetInBytes;
+ D3D12_BUFFER_UAV_FLAGS Flags;
+} D3D12_BUFFER_UAV;
+typedef struct D3D12_TEX1D_UAV {
+ UINT MipSlice;
+} D3D12_TEX1D_UAV;
+typedef struct D3D12_TEX1D_ARRAY_UAV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX1D_ARRAY_UAV;
+typedef struct D3D12_TEX2D_UAV {
+ UINT MipSlice;
+ UINT PlaneSlice;
+} D3D12_TEX2D_UAV;
+typedef struct D3D12_TEX2D_ARRAY_UAV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+} D3D12_TEX2D_ARRAY_UAV;
+typedef struct D3D12_TEX3D_UAV {
+ UINT MipSlice;
+ UINT FirstWSlice;
+ UINT WSize;
+} D3D12_TEX3D_UAV;
+typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D12_UAV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D12_BUFFER_UAV Buffer;
+ D3D12_TEX1D_UAV Texture1D;
+ D3D12_TEX1D_ARRAY_UAV Texture1DArray;
+ D3D12_TEX2D_UAV Texture2D;
+ D3D12_TEX2D_ARRAY_UAV Texture2DArray;
+ D3D12_TEX3D_UAV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_UNORDERED_ACCESS_VIEW_DESC;
+typedef enum D3D12_RTV_DIMENSION {
+ D3D12_RTV_DIMENSION_UNKNOWN = 0,
+ D3D12_RTV_DIMENSION_BUFFER = 1,
+ D3D12_RTV_DIMENSION_TEXTURE1D = 2,
+ D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D12_RTV_DIMENSION_TEXTURE2D = 4,
+ D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
+ D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D12_RTV_DIMENSION_TEXTURE3D = 8
+} D3D12_RTV_DIMENSION;
+typedef struct D3D12_BUFFER_RTV {
+ UINT64 FirstElement;
+ UINT NumElements;
+} D3D12_BUFFER_RTV;
+typedef struct D3D12_TEX1D_RTV {
+ UINT MipSlice;
+} D3D12_TEX1D_RTV;
+typedef struct D3D12_TEX1D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX1D_ARRAY_RTV;
+typedef struct D3D12_TEX2D_RTV {
+ UINT MipSlice;
+ UINT PlaneSlice;
+} D3D12_TEX2D_RTV;
+typedef struct D3D12_TEX2D_ARRAY_RTV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+ UINT PlaneSlice;
+} D3D12_TEX2D_ARRAY_RTV;
+typedef struct D3D12_TEX2DMS_RTV {
+ UINT UnusedField_NothingToDefine;
+} D3D12_TEX2DMS_RTV;
+typedef struct D3D12_TEX2DMS_ARRAY_RTV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX2DMS_ARRAY_RTV;
+typedef struct D3D12_TEX3D_RTV {
+ UINT MipSlice;
+ UINT FirstWSlice;
+ UINT WSize;
+} D3D12_TEX3D_RTV;
+typedef struct D3D12_RENDER_TARGET_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D12_RTV_DIMENSION ViewDimension;
+ __C89_NAMELESS union {
+ D3D12_BUFFER_RTV Buffer;
+ D3D12_TEX1D_RTV Texture1D;
+ D3D12_TEX1D_ARRAY_RTV Texture1DArray;
+ D3D12_TEX2D_RTV Texture2D;
+ D3D12_TEX2D_ARRAY_RTV Texture2DArray;
+ D3D12_TEX2DMS_RTV Texture2DMS;
+ D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
+ D3D12_TEX3D_RTV Texture3D;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_RENDER_TARGET_VIEW_DESC;
+typedef enum D3D12_DSV_DIMENSION {
+ D3D12_DSV_DIMENSION_UNKNOWN = 0,
+ D3D12_DSV_DIMENSION_TEXTURE1D = 1,
+ D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
+ D3D12_DSV_DIMENSION_TEXTURE2D = 3,
+ D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
+ D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
+ D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
+} D3D12_DSV_DIMENSION;
+typedef enum D3D12_DSV_FLAGS {
+ D3D12_DSV_FLAG_NONE = 0x0,
+ D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
+ D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2
+} D3D12_DSV_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS);
+typedef struct D3D12_TEX1D_DSV {
+ UINT MipSlice;
+} D3D12_TEX1D_DSV;
+typedef struct D3D12_TEX1D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX1D_ARRAY_DSV;
+typedef struct D3D12_TEX2D_DSV {
+ UINT MipSlice;
+} D3D12_TEX2D_DSV;
+typedef struct D3D12_TEX2D_ARRAY_DSV {
+ UINT MipSlice;
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX2D_ARRAY_DSV;
+typedef struct D3D12_TEX2DMS_DSV {
+ UINT UnusedField_NothingToDefine;
+} D3D12_TEX2DMS_DSV;
+typedef struct D3D12_TEX2DMS_ARRAY_DSV {
+ UINT FirstArraySlice;
+ UINT ArraySize;
+} D3D12_TEX2DMS_ARRAY_DSV;
+typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC {
+ DXGI_FORMAT Format;
+ D3D12_DSV_DIMENSION ViewDimension;
+ D3D12_DSV_FLAGS Flags;
+ __C89_NAMELESS union {
+ D3D12_TEX1D_DSV Texture1D;
+ D3D12_TEX1D_ARRAY_DSV Texture1DArray;
+ D3D12_TEX2D_DSV Texture2D;
+ D3D12_TEX2D_ARRAY_DSV Texture2DArray;
+ D3D12_TEX2DMS_DSV Texture2DMS;
+ D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_DEPTH_STENCIL_VIEW_DESC;
+typedef struct D3D12_SAMPLER_DESC {
+ D3D12_FILTER Filter;
+ D3D12_TEXTURE_ADDRESS_MODE AddressU;
+ D3D12_TEXTURE_ADDRESS_MODE AddressV;
+ D3D12_TEXTURE_ADDRESS_MODE AddressW;
+ FLOAT MipLODBias;
+ UINT MaxAnisotropy;
+ D3D12_COMPARISON_FUNC ComparisonFunc;
+ FLOAT BorderColor[4];
+ FLOAT MinLOD;
+ FLOAT MaxLOD;
+} D3D12_SAMPLER_DESC;
+typedef struct D3D12_CPU_DESCRIPTOR_HANDLE {
+ SIZE_T ptr;
+} D3D12_CPU_DESCRIPTOR_HANDLE;
+typedef struct D3D12_GPU_DESCRIPTOR_HANDLE {
+ UINT64 ptr;
+} D3D12_GPU_DESCRIPTOR_HANDLE;
+typedef enum D3D12_STENCIL_OP {
+ D3D12_STENCIL_OP_KEEP = 1,
+ D3D12_STENCIL_OP_ZERO = 2,
+ D3D12_STENCIL_OP_REPLACE = 3,
+ D3D12_STENCIL_OP_INCR_SAT = 4,
+ D3D12_STENCIL_OP_DECR_SAT = 5,
+ D3D12_STENCIL_OP_INVERT = 6,
+ D3D12_STENCIL_OP_INCR = 7,
+ D3D12_STENCIL_OP_DECR = 8
+} D3D12_STENCIL_OP;
+typedef struct D3D12_DEPTH_STENCILOP_DESC {
+ D3D12_STENCIL_OP StencilFailOp;
+ D3D12_STENCIL_OP StencilDepthFailOp;
+ D3D12_STENCIL_OP StencilPassOp;
+ D3D12_COMPARISON_FUNC StencilFunc;
+} D3D12_DEPTH_STENCILOP_DESC;
+typedef enum D3D12_DEPTH_WRITE_MASK {
+ D3D12_DEPTH_WRITE_MASK_ZERO = 0,
+ D3D12_DEPTH_WRITE_MASK_ALL = 1
+} D3D12_DEPTH_WRITE_MASK;
+typedef struct D3D12_DEPTH_STENCIL_DESC {
+ WINBOOL DepthEnable;
+ D3D12_DEPTH_WRITE_MASK DepthWriteMask;
+ D3D12_COMPARISON_FUNC DepthFunc;
+ WINBOOL StencilEnable;
+ UINT8 StencilReadMask;
+ UINT8 StencilWriteMask;
+ D3D12_DEPTH_STENCILOP_DESC FrontFace;
+ D3D12_DEPTH_STENCILOP_DESC BackFace;
+} D3D12_DEPTH_STENCIL_DESC;
+typedef enum D3D12_BLEND {
+ D3D12_BLEND_ZERO = 1,
+ D3D12_BLEND_ONE = 2,
+ D3D12_BLEND_SRC_COLOR = 3,
+ D3D12_BLEND_INV_SRC_COLOR = 4,
+ D3D12_BLEND_SRC_ALPHA = 5,
+ D3D12_BLEND_INV_SRC_ALPHA = 6,
+ D3D12_BLEND_DEST_ALPHA = 7,
+ D3D12_BLEND_INV_DEST_ALPHA = 8,
+ D3D12_BLEND_DEST_COLOR = 9,
+ D3D12_BLEND_INV_DEST_COLOR = 10,
+ D3D12_BLEND_SRC_ALPHA_SAT = 11,
+ D3D12_BLEND_BLEND_FACTOR = 14,
+ D3D12_BLEND_INV_BLEND_FACTOR = 15,
+ D3D12_BLEND_SRC1_COLOR = 16,
+ D3D12_BLEND_INV_SRC1_COLOR = 17,
+ D3D12_BLEND_SRC1_ALPHA = 18,
+ D3D12_BLEND_INV_SRC1_ALPHA = 19
+} D3D12_BLEND;
+typedef enum D3D12_BLEND_OP {
+ D3D12_BLEND_OP_ADD = 1,
+ D3D12_BLEND_OP_SUBTRACT = 2,
+ D3D12_BLEND_OP_REV_SUBTRACT = 3,
+ D3D12_BLEND_OP_MIN = 4,
+ D3D12_BLEND_OP_MAX = 5
+} D3D12_BLEND_OP;
+typedef enum D3D12_LOGIC_OP {
+ D3D12_LOGIC_OP_CLEAR = 0,
+ D3D12_LOGIC_OP_SET = 1,
+ D3D12_LOGIC_OP_COPY = 2,
+ D3D12_LOGIC_OP_COPY_INVERTED = 3,
+ D3D12_LOGIC_OP_NOOP = 4,
+ D3D12_LOGIC_OP_INVERT = 5,
+ D3D12_LOGIC_OP_AND = 6,
+ D3D12_LOGIC_OP_NAND = 7,
+ D3D12_LOGIC_OP_OR = 8,
+ D3D12_LOGIC_OP_NOR = 9,
+ D3D12_LOGIC_OP_XOR = 10,
+ D3D12_LOGIC_OP_EQUIV = 11,
+ D3D12_LOGIC_OP_AND_REVERSE = 12,
+ D3D12_LOGIC_OP_AND_INVERTED = 13,
+ D3D12_LOGIC_OP_OR_REVERSE = 14,
+ D3D12_LOGIC_OP_OR_INVERTED = 15
+} D3D12_LOGIC_OP;
+typedef enum D3D12_COLOR_WRITE_ENABLE {
+ D3D12_COLOR_WRITE_ENABLE_RED = 0x1,
+ D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2,
+ D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4,
+ D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8,
+ D3D12_COLOR_WRITE_ENABLE_ALL = ((D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN) | D3D12_COLOR_WRITE_ENABLE_BLUE) | D3D12_COLOR_WRITE_ENABLE_ALPHA
+} D3D12_COLOR_WRITE_ENABLE;
+typedef struct D3D12_RENDER_TARGET_BLEND_DESC {
+ WINBOOL BlendEnable;
+ WINBOOL LogicOpEnable;
+ D3D12_BLEND SrcBlend;
+ D3D12_BLEND DestBlend;
+ D3D12_BLEND_OP BlendOp;
+ D3D12_BLEND SrcBlendAlpha;
+ D3D12_BLEND DestBlendAlpha;
+ D3D12_BLEND_OP BlendOpAlpha;
+ D3D12_LOGIC_OP LogicOp;
+ UINT8 RenderTargetWriteMask;
+} D3D12_RENDER_TARGET_BLEND_DESC;
+typedef struct D3D12_BLEND_DESC {
+ WINBOOL AlphaToCoverageEnable;
+ WINBOOL IndependentBlendEnable;
+ D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8];
+} D3D12_BLEND_DESC;
+typedef enum D3D12_FILL_MODE {
+ D3D12_FILL_MODE_WIREFRAME = 2,
+ D3D12_FILL_MODE_SOLID = 3
+} D3D12_FILL_MODE;
+typedef enum D3D12_CULL_MODE {
+ D3D12_CULL_MODE_NONE = 1,
+ D3D12_CULL_MODE_FRONT = 2,
+ D3D12_CULL_MODE_BACK = 3
+} D3D12_CULL_MODE;
+typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE {
+ D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
+ D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1
+} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
+typedef struct D3D12_RASTERIZER_DESC {
+ D3D12_FILL_MODE FillMode;
+ D3D12_CULL_MODE CullMode;
+ WINBOOL FrontCounterClockwise;
+ INT DepthBias;
+ FLOAT DepthBiasClamp;
+ FLOAT SlopeScaledDepthBias;
+ WINBOOL DepthClipEnable;
+ WINBOOL MultisampleEnable;
+ WINBOOL AntialiasedLineEnable;
+ UINT ForcedSampleCount;
+ D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
+} D3D12_RASTERIZER_DESC;
+typedef struct D3D12_SO_DECLARATION_ENTRY {
+ UINT Stream;
+ const char *SemanticName;
+ UINT SemanticIndex;
+ BYTE StartComponent;
+ BYTE ComponentCount;
+ BYTE OutputSlot;
+} D3D12_SO_DECLARATION_ENTRY;
+typedef struct D3D12_STREAM_OUTPUT_DESC {
+ const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
+ UINT NumEntries;
+ const UINT *pBufferStrides;
+ UINT NumStrides;
+ UINT RasterizedStream;
+} D3D12_STREAM_OUTPUT_DESC;
+typedef enum D3D12_INPUT_CLASSIFICATION {
+ D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
+ D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
+} D3D12_INPUT_CLASSIFICATION;
+typedef struct D3D12_INPUT_ELEMENT_DESC {
+ const char *SemanticName;
+ UINT SemanticIndex;
+ DXGI_FORMAT Format;
+ UINT InputSlot;
+ UINT AlignedByteOffset;
+ D3D12_INPUT_CLASSIFICATION InputSlotClass;
+ UINT InstanceDataStepRate;
+} D3D12_INPUT_ELEMENT_DESC;
+typedef struct D3D12_INPUT_LAYOUT_DESC {
+ const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
+ UINT NumElements;
+} D3D12_INPUT_LAYOUT_DESC;
+typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
+ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
+ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
+ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
+} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
+typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
+typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE {
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
+} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
+typedef struct D3D12_CACHED_PIPELINE_STATE {
+ const void *pCachedBlob;
+ SIZE_T CachedBlobSizeInBytes;
+} D3D12_CACHED_PIPELINE_STATE;
+typedef enum D3D12_PIPELINE_STATE_FLAGS {
+ D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
+ D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1
+} D3D12_PIPELINE_STATE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS);
+typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
+ ID3D12RootSignature *pRootSignature;
+ D3D12_SHADER_BYTECODE VS;
+ D3D12_SHADER_BYTECODE PS;
+ D3D12_SHADER_BYTECODE DS;
+ D3D12_SHADER_BYTECODE HS;
+ D3D12_SHADER_BYTECODE GS;
+ D3D12_STREAM_OUTPUT_DESC StreamOutput;
+ D3D12_BLEND_DESC BlendState;
+ UINT SampleMask;
+ D3D12_RASTERIZER_DESC RasterizerState;
+ D3D12_DEPTH_STENCIL_DESC DepthStencilState;
+ D3D12_INPUT_LAYOUT_DESC InputLayout;
+ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
+ D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
+ UINT NumRenderTargets;
+ DXGI_FORMAT RTVFormats[8];
+ DXGI_FORMAT DSVFormat;
+ DXGI_SAMPLE_DESC SampleDesc;
+ UINT NodeMask;
+ D3D12_CACHED_PIPELINE_STATE CachedPSO;
+ D3D12_PIPELINE_STATE_FLAGS Flags;
+} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
+typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC {
+ ID3D12RootSignature *pRootSignature;
+ D3D12_SHADER_BYTECODE CS;
+ UINT NodeMask;
+ D3D12_CACHED_PIPELINE_STATE CachedPSO;
+ D3D12_PIPELINE_STATE_FLAGS Flags;
+} D3D12_COMPUTE_PIPELINE_STATE_DESC;
+typedef enum D3D12_COMMAND_LIST_TYPE {
+ D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
+ D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
+ D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
+ D3D12_COMMAND_LIST_TYPE_COPY = 3
+} D3D12_COMMAND_LIST_TYPE;
+typedef enum D3D12_COMMAND_QUEUE_PRIORITY {
+ D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
+ D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
+ D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
+} D3D12_COMMAND_QUEUE_PRIORITY;
+typedef enum D3D12_COMMAND_QUEUE_FLAGS {
+ D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
+ D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
+} D3D12_COMMAND_QUEUE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS);
+typedef struct D3D12_COMMAND_QUEUE_DESC {
+ D3D12_COMMAND_LIST_TYPE Type;
+ INT Priority;
+ D3D12_COMMAND_QUEUE_FLAGS Flags;
+ UINT NodeMask;
+} D3D12_COMMAND_QUEUE_DESC;
+typedef struct D3D12_FEATURE_DATA_ARCHITECTURE {
+ UINT NodeIndex;
+ WINBOOL TileBasedRenderer;
+ WINBOOL UMA;
+ WINBOOL CacheCoherentUMA;
+} D3D12_FEATURE_DATA_ARCHITECTURE;
+typedef struct D3D12_FEATURE_DATA_FORMAT_INFO {
+ DXGI_FORMAT Format;
+ UINT8 PlaneCount;
+} D3D12_FEATURE_DATA_FORMAT_INFO;
+typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
+ UINT NumFeatureLevels;
+ const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
+ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
+} D3D12_FEATURE_DATA_FEATURE_LEVELS;
+typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
+ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
+} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
+typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
+ UINT MaxGPUVirtualAddressBitsPerResource;
+ UINT MaxGPUVirtualAddressBitsPerProcess;
+} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
+typedef enum D3D_SHADER_MODEL {
+ D3D_SHADER_MODEL_5_1 = 0x51,
+ D3D_SHADER_MODEL_6_0 = 0x60
+} D3D_SHADER_MODEL;
+typedef struct D3D12_FEATURE_DATA_SHADER_MODEL {
+ D3D_SHADER_MODEL HighestShaderModel;
+} D3D12_FEATURE_DATA_SHADER_MODEL;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
+ WINBOOL WaveOps;
+ UINT WaveLaneCountMin;
+ UINT WaveLaneCountMax;
+ UINT TotalLaneCount;
+ WINBOOL ExpandedComputeResourceStates;
+ WINBOOL Int64ShaderOps;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
+typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
+ UINT NodeIndex;
+ WINBOOL TileBasedRenderer;
+ WINBOOL UMA;
+ WINBOOL CacheCoherentUMA;
+ WINBOOL IsolatedMMU;
+} D3D12_FEATURE_DATA_ARCHITECTURE1;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
+ WINBOOL DepthBoundsTestSupported;
+ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
+typedef struct D3D12_FEATURE_DATA_SHADER_CACHE {
+ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
+} D3D12_FEATURE_DATA_SHADER_CACHE;
+typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
+ D3D12_COMMAND_LIST_TYPE CommandListType;
+ UINT Priority;
+ WINBOOL PriorityForTypeIsSupported;
+} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
+ WINBOOL CopyQueueTimestampQueriesSupported;
+ WINBOOL CastingFullyTypedFormatSupported;
+ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
+ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
+ WINBOOL BarycentricsSupported;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
+typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
+ WINBOOL Supported;
+} D3D12_FEATURE_DATA_EXISTING_HEAPS;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
+ WINBOOL MSAA64KBAlignedTextureSupported;
+ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
+ WINBOOL Native16BitShaderOpsSupported;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
+typedef struct D3D12_FEATURE_DATA_SERIALIZATION {
+ UINT NodeIndex;
+ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
+} D3D12_FEATURE_DATA_SERIALIZATION;
+typedef struct D3D12_FEATURE_DATA_CROSS_NODE {
+ D3D12_CROSS_NODE_SHARING_TIER SharingTier;
+ WINBOOL AtomicShaderInstructions;
+} D3D12_FEATURE_DATA_CROSS_NODE;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
+ WINBOOL SRVOnlyTiledResourceTier3;
+ D3D12_RENDER_PASS_TIER RenderPassesTier;
+ D3D12_RAYTRACING_TIER RaytracingTier;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
+typedef enum D3D12_FEATURE {
+ D3D12_FEATURE_D3D12_OPTIONS = 0,
+ D3D12_FEATURE_ARCHITECTURE = 1,
+ D3D12_FEATURE_FEATURE_LEVELS = 2,
+ D3D12_FEATURE_FORMAT_SUPPORT = 3,
+ D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
+ D3D12_FEATURE_FORMAT_INFO = 5,
+ D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
+ D3D12_FEATURE_SHADER_MODEL = 7,
+ D3D12_FEATURE_D3D12_OPTIONS1 = 8,
+ D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
+ D3D12_FEATURE_ROOT_SIGNATURE = 12,
+ D3D12_FEATURE_ARCHITECTURE1 = 16,
+ D3D12_FEATURE_D3D12_OPTIONS2 = 18,
+ D3D12_FEATURE_SHADER_CACHE = 19,
+ D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
+ D3D12_FEATURE_D3D12_OPTIONS3 = 21,
+ D3D12_FEATURE_EXISTING_HEAPS = 22,
+ D3D12_FEATURE_D3D12_OPTIONS4 = 23,
+ D3D12_FEATURE_SERIALIZATION = 24,
+ D3D12_FEATURE_CROSS_NODE = 25,
+ D3D12_FEATURE_D3D12_OPTIONS5 = 27,
+ D3D12_FEATURE_D3D12_OPTIONS6 = 30,
+ D3D12_FEATURE_QUERY_META_COMMAND = 31,
+ D3D12_FEATURE_D3D12_OPTIONS7 = 32,
+ D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
+ D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34
+} D3D12_FEATURE;
+typedef struct D3D12_MEMCPY_DEST {
+ void *pData;
+ SIZE_T RowPitch;
+ SIZE_T SlicePitch;
+} D3D12_MEMCPY_DEST;
+typedef struct D3D12_SUBRESOURCE_DATA {
+ const void *pData;
+ LONG_PTR RowPitch;
+ LONG_PTR SlicePitch;
+} D3D12_SUBRESOURCE_DATA;
+typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0
+} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);
+typedef enum D3D12_RESIDENCY_PRIORITY {
+ D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
+ D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
+ D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
+ D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
+ D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
+} D3D12_RESIDENCY_PRIORITY;
+typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
+ D3D12_GPU_VIRTUAL_ADDRESS Dest;
+ UINT32 Value;
+} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
+/*****************************************************************************
+ * ID3D12Object interface
+ */
+#ifndef __ID3D12Object_INTERFACE_DEFINED__
+#define __ID3D12Object_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
+ID3D12Object : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *data_size,
+ void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT data_size,
+ const void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetName(
+ const WCHAR *name) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f,0x94, 0xf4,0x31,0xcb,0x56,0xc3,0xb8)
+#endif
+#else
+typedef struct ID3D12ObjectVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Object *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Object *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Object *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Object *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Object *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Object *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Object *This,
+ const WCHAR *name);
+
+ END_INTERFACE
+} ID3D12ObjectVtbl;
+
+interface ID3D12Object {
+ CONST_VTBL ID3D12ObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Object_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Object_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Object_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Object_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Object_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Object_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Object_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Object_QueryInterface(ID3D12Object* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Object_AddRef(ID3D12Object* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Object_Release(ID3D12Object* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Object_GetPrivateData(ID3D12Object* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Object_SetPrivateData(ID3D12Object* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Object_SetPrivateDataInterface(ID3D12Object* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Object_SetName(ID3D12Object* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Object_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12DeviceChild interface
+ */
+#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__
+#define __ID3D12DeviceChild_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
+ID3D12DeviceChild : public ID3D12Object
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDevice(
+ REFIID riid,
+ void **device) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d,0xf5, 0x2b,0x64,0xca,0x9e,0xa3,0x57)
+#endif
+#else
+typedef struct ID3D12DeviceChildVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12DeviceChild *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12DeviceChild *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12DeviceChild *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12DeviceChild *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12DeviceChild *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12DeviceChild *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12DeviceChild *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12DeviceChild *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} ID3D12DeviceChildVtbl;
+
+interface ID3D12DeviceChild {
+ CONST_VTBL ID3D12DeviceChildVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12DeviceChild_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12DeviceChild_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12DeviceChild_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12DeviceChild_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12DeviceChild_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12DeviceChild_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12DeviceChild_QueryInterface(ID3D12DeviceChild* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12DeviceChild_AddRef(ID3D12DeviceChild* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12DeviceChild_Release(ID3D12DeviceChild* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12DeviceChild_GetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12DeviceChild_SetPrivateData(ID3D12DeviceChild* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12DeviceChild_SetPrivateDataInterface(ID3D12DeviceChild* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12DeviceChild_SetName(ID3D12DeviceChild* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12DeviceChild_GetDevice(ID3D12DeviceChild* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Pageable interface
+ */
+#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
+#define __ID3D12Pageable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
+ID3D12Pageable : public ID3D12DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86,0xda, 0xf0,0x08,0xce,0x62,0xf0,0xd6)
+#endif
+#else
+typedef struct ID3D12PageableVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Pageable *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Pageable *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Pageable *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Pageable *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Pageable *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Pageable *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Pageable *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12Pageable *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} ID3D12PageableVtbl;
+
+interface ID3D12Pageable {
+ CONST_VTBL ID3D12PageableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Pageable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Pageable_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Pageable_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Pageable_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Pageable_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Pageable_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12Pageable_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Pageable_QueryInterface(ID3D12Pageable* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Pageable_AddRef(ID3D12Pageable* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Pageable_Release(ID3D12Pageable* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Pageable_GetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Pageable_SetPrivateData(ID3D12Pageable* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Pageable_SetPrivateDataInterface(ID3D12Pageable* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Pageable_SetName(ID3D12Pageable* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12Pageable_GetDevice(ID3D12Pageable* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Heap interface
+ */
+#ifndef __ID3D12Heap_INTERFACE_DEFINED__
+#define __ID3D12Heap_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
+ID3D12Heap : public ID3D12Pageable
+{
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
+ D3D12_HEAP_DESC *__ret) = 0;
+ D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+ )
+ {
+ D3D12_HEAP_DESC __ret;
+ return *GetDesc(&__ret);
+ }
+#else
+ virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+ ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3)
+#endif
+#else
+typedef struct ID3D12HeapVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Heap *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Heap *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Heap *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Heap *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Heap *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Heap *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Heap *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12Heap *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12Heap methods ***/
+ D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12Heap *This,
+ D3D12_HEAP_DESC *__ret);
+
+ END_INTERFACE
+} ID3D12HeapVtbl;
+
+interface ID3D12Heap {
+ CONST_VTBL ID3D12HeapVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Heap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Heap_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Heap_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Heap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Heap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Heap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Heap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12Heap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12Heap methods ***/
+#define ID3D12Heap_GetDesc(This) ID3D12Heap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_QueryInterface(ID3D12Heap* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Heap_AddRef(ID3D12Heap* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Heap_Release(ID3D12Heap* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_GetPrivateData(ID3D12Heap* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetPrivateData(ID3D12Heap* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetPrivateDataInterface(ID3D12Heap* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetName(ID3D12Heap* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_GetDevice(ID3D12Heap* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12Heap methods ***/
+static FORCEINLINE D3D12_HEAP_DESC ID3D12Heap_GetDesc(ID3D12Heap* This) {
+ D3D12_HEAP_DESC __ret;
+ return *This->lpVtbl->GetDesc(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Resource interface
+ */
+#ifndef __ID3D12Resource_INTERFACE_DEFINED__
+#define __ID3D12Resource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
+ID3D12Resource : public ID3D12Pageable
+{
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ UINT sub_resource,
+ const D3D12_RANGE *read_range,
+ void **data) = 0;
+
+ virtual void STDMETHODCALLTYPE Unmap(
+ UINT sub_resource,
+ const D3D12_RANGE *written_range) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_RESOURCE_DESC* STDMETHODCALLTYPE GetDesc(
+ D3D12_RESOURCE_DESC *__ret) = 0;
+ D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
+ )
+ {
+ D3D12_RESOURCE_DESC __ret;
+ return *GetDesc(&__ret);
+ }
+#else
+ virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc(
+ ) = 0;
+#endif
+
+ virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
+ UINT dst_sub_resource,
+ const D3D12_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_slice_pitch) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_slice_pitch,
+ UINT src_sub_resource,
+ const D3D12_BOX *src_box) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
+ D3D12_HEAP_PROPERTIES *heap_properties,
+ D3D12_HEAP_FLAGS *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc,0x79, 0x5b,0x5c,0x98,0x04,0x0f,0xad)
+#endif
+#else
+typedef struct ID3D12ResourceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Resource *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Resource *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Resource *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Resource *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Resource *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Resource *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Resource *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12Resource *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12Resource methods ***/
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ ID3D12Resource *This,
+ UINT sub_resource,
+ const D3D12_RANGE *read_range,
+ void **data);
+
+ void (STDMETHODCALLTYPE *Unmap)(
+ ID3D12Resource *This,
+ UINT sub_resource,
+ const D3D12_RANGE *written_range);
+
+ D3D12_RESOURCE_DESC * (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12Resource *This,
+ D3D12_RESOURCE_DESC *__ret);
+
+ D3D12_GPU_VIRTUAL_ADDRESS (STDMETHODCALLTYPE *GetGPUVirtualAddress)(
+ ID3D12Resource *This);
+
+ HRESULT (STDMETHODCALLTYPE *WriteToSubresource)(
+ ID3D12Resource *This,
+ UINT dst_sub_resource,
+ const D3D12_BOX *dst_box,
+ const void *src_data,
+ UINT src_row_pitch,
+ UINT src_slice_pitch);
+
+ HRESULT (STDMETHODCALLTYPE *ReadFromSubresource)(
+ ID3D12Resource *This,
+ void *dst_data,
+ UINT dst_row_pitch,
+ UINT dst_slice_pitch,
+ UINT src_sub_resource,
+ const D3D12_BOX *src_box);
+
+ HRESULT (STDMETHODCALLTYPE *GetHeapProperties)(
+ ID3D12Resource *This,
+ D3D12_HEAP_PROPERTIES *heap_properties,
+ D3D12_HEAP_FLAGS *flags);
+
+ END_INTERFACE
+} ID3D12ResourceVtbl;
+
+interface ID3D12Resource {
+ CONST_VTBL ID3D12ResourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Resource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Resource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Resource_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Resource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Resource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Resource_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Resource_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12Resource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12Resource methods ***/
+#define ID3D12Resource_Map(This,sub_resource,read_range,data) (This)->lpVtbl->Map(This,sub_resource,read_range,data)
+#define ID3D12Resource_Unmap(This,sub_resource,written_range) (This)->lpVtbl->Unmap(This,sub_resource,written_range)
+#define ID3D12Resource_GetDesc(This) ID3D12Resource_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Resource_GetGPUVirtualAddress(This) (This)->lpVtbl->GetGPUVirtualAddress(This)
+#define ID3D12Resource_WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch) (This)->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch)
+#define ID3D12Resource_ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box) (This)->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box)
+#define ID3D12Resource_GetHeapProperties(This,heap_properties,flags) (This)->lpVtbl->GetHeapProperties(This,heap_properties,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Resource_QueryInterface(ID3D12Resource* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Resource_AddRef(ID3D12Resource* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Resource_Release(ID3D12Resource* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Resource_GetPrivateData(ID3D12Resource* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Resource_SetPrivateData(ID3D12Resource* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Resource_SetPrivateDataInterface(ID3D12Resource* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Resource_SetName(ID3D12Resource* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12Resource_GetDevice(ID3D12Resource* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12Resource methods ***/
+static FORCEINLINE HRESULT ID3D12Resource_Map(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *read_range,void **data) {
+ return This->lpVtbl->Map(This,sub_resource,read_range,data);
+}
+static FORCEINLINE void ID3D12Resource_Unmap(ID3D12Resource* This,UINT sub_resource,const D3D12_RANGE *written_range) {
+ This->lpVtbl->Unmap(This,sub_resource,written_range);
+}
+static FORCEINLINE D3D12_RESOURCE_DESC ID3D12Resource_GetDesc(ID3D12Resource* This) {
+ D3D12_RESOURCE_DESC __ret;
+ return *This->lpVtbl->GetDesc(This,&__ret);
+}
+static FORCEINLINE D3D12_GPU_VIRTUAL_ADDRESS ID3D12Resource_GetGPUVirtualAddress(ID3D12Resource* This) {
+ return This->lpVtbl->GetGPUVirtualAddress(This);
+}
+static FORCEINLINE HRESULT ID3D12Resource_WriteToSubresource(ID3D12Resource* This,UINT dst_sub_resource,const D3D12_BOX *dst_box,const void *src_data,UINT src_row_pitch,UINT src_slice_pitch) {
+ return This->lpVtbl->WriteToSubresource(This,dst_sub_resource,dst_box,src_data,src_row_pitch,src_slice_pitch);
+}
+static FORCEINLINE HRESULT ID3D12Resource_ReadFromSubresource(ID3D12Resource* This,void *dst_data,UINT dst_row_pitch,UINT dst_slice_pitch,UINT src_sub_resource,const D3D12_BOX *src_box) {
+ return This->lpVtbl->ReadFromSubresource(This,dst_data,dst_row_pitch,dst_slice_pitch,src_sub_resource,src_box);
+}
+static FORCEINLINE HRESULT ID3D12Resource_GetHeapProperties(ID3D12Resource* This,D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS *flags) {
+ return This->lpVtbl->GetHeapProperties(This,heap_properties,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12CommandList interface
+ */
+#ifndef __ID3D12CommandList_INTERFACE_DEFINED__
+#define __ID3D12CommandList_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
+ID3D12CommandList : public ID3D12DeviceChild
+{
+ virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8,0xc6, 0xec,0x81,0x68,0xf4,0x37,0xe5)
+#endif
+#else
+typedef struct ID3D12CommandListVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12CommandList *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12CommandList *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12CommandList *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12CommandList *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12CommandList *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12CommandList *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12CommandList *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12CommandList *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandList methods ***/
+ D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D12CommandList *This);
+
+ END_INTERFACE
+} ID3D12CommandListVtbl;
+
+interface ID3D12CommandList {
+ CONST_VTBL ID3D12CommandListVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandList_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12CommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12CommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12CommandList_GetType(This) (This)->lpVtbl->GetType(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12CommandList_QueryInterface(ID3D12CommandList* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12CommandList_AddRef(ID3D12CommandList* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12CommandList_Release(ID3D12CommandList* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12CommandList_GetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandList_SetPrivateData(ID3D12CommandList* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandList_SetPrivateDataInterface(ID3D12CommandList* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandList_SetName(ID3D12CommandList* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12CommandList_GetDevice(ID3D12CommandList* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12CommandList_GetType(ID3D12CommandList* This) {
+ return This->lpVtbl->GetType(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_TILE_COPY_FLAGS {
+ D3D12_TILE_COPY_FLAG_NONE = 0x0,
+ D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
+ D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
+ D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
+} D3D12_TILE_COPY_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS);
+typedef struct D3D12_INDEX_BUFFER_VIEW {
+ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
+ UINT SizeInBytes;
+ DXGI_FORMAT Format;
+} D3D12_INDEX_BUFFER_VIEW;
+typedef struct D3D12_VERTEX_BUFFER_VIEW {
+ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
+ UINT SizeInBytes;
+ UINT StrideInBytes;
+} D3D12_VERTEX_BUFFER_VIEW;
+typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW {
+ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
+ UINT64 SizeInBytes;
+ D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
+} D3D12_STREAM_OUTPUT_BUFFER_VIEW;
+typedef enum D3D12_CLEAR_FLAGS {
+ D3D12_CLEAR_FLAG_DEPTH = 0x1,
+ D3D12_CLEAR_FLAG_STENCIL = 0x2
+} D3D12_CLEAR_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS);
+typedef struct D3D12_DISCARD_REGION {
+ UINT NumRects;
+ const D3D12_RECT *pRects;
+ UINT FirstSubresource;
+ UINT NumSubresources;
+} D3D12_DISCARD_REGION;
+typedef enum D3D12_QUERY_TYPE {
+ D3D12_QUERY_TYPE_OCCLUSION = 0,
+ D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
+ D3D12_QUERY_TYPE_TIMESTAMP = 2,
+ D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
+ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
+ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
+ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
+ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7
+} D3D12_QUERY_TYPE;
+typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
+ UINT64 IAVertices;
+ UINT64 IAPrimitives;
+ UINT64 VSInvocations;
+ UINT64 GSInvocations;
+ UINT64 GSPrimitives;
+ UINT64 CInvocations;
+ UINT64 CPrimitives;
+ UINT64 PSInvocations;
+ UINT64 HSInvocations;
+ UINT64 DSInvocations;
+ UINT64 CSInvocations;
+} D3D12_QUERY_DATA_PIPELINE_STATISTICS;
+typedef struct D3D12_QUERY_DATA_SO_STATISTICS {
+ UINT64 NumPrimitivesWritten;
+ UINT64 PrimitivesStorageNeeded;
+} D3D12_QUERY_DATA_SO_STATISTICS;
+typedef enum D3D12_PREDICATION_OP {
+ D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
+ D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
+} D3D12_PREDICATION_OP;
+/*****************************************************************************
+ * ID3D12DescriptorHeap interface
+ */
+#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
+#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
+ID3D12DescriptorHeap : public ID3D12Pageable
+{
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_DESCRIPTOR_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
+ D3D12_DESCRIPTOR_HEAP_DESC *__ret) = 0;
+ D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+ )
+ {
+ D3D12_DESCRIPTOR_HEAP_DESC __ret;
+ return *GetDesc(&__ret);
+ }
+#else
+ virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+ ) = 0;
+#endif
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_CPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
+ D3D12_CPU_DESCRIPTOR_HANDLE *__ret) = 0;
+ D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
+ )
+ {
+ D3D12_CPU_DESCRIPTOR_HANDLE __ret;
+ return *GetCPUDescriptorHandleForHeapStart(&__ret);
+ }
+#else
+ virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(
+ ) = 0;
+#endif
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_GPU_DESCRIPTOR_HANDLE* STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
+ D3D12_GPU_DESCRIPTOR_HANDLE *__ret) = 0;
+ D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
+ )
+ {
+ D3D12_GPU_DESCRIPTOR_HANDLE __ret;
+ return *GetGPUDescriptorHandleForHeapStart(&__ret);
+ }
+#else
+ virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart(
+ ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90,0xf7, 0x12,0x7b,0xb7,0x63,0xfa,0x51)
+#endif
+#else
+typedef struct ID3D12DescriptorHeapVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12DescriptorHeap *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12DescriptorHeap *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12DescriptorHeap *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12DescriptorHeap *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12DescriptorHeap *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12DescriptorHeap *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12DescriptorHeap *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12DescriptorHeap *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12DescriptorHeap methods ***/
+ D3D12_DESCRIPTOR_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12DescriptorHeap *This,
+ D3D12_DESCRIPTOR_HEAP_DESC *__ret);
+
+ D3D12_CPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)(
+ ID3D12DescriptorHeap *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE *__ret);
+
+ D3D12_GPU_DESCRIPTOR_HANDLE * (STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)(
+ ID3D12DescriptorHeap *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE *__ret);
+
+ END_INTERFACE
+} ID3D12DescriptorHeapVtbl;
+
+interface ID3D12DescriptorHeap {
+ CONST_VTBL ID3D12DescriptorHeapVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12DescriptorHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12DescriptorHeap_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12DescriptorHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12DescriptorHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12DescriptorHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12DescriptorHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12DescriptorHeap methods ***/
+#define ID3D12DescriptorHeap_GetDesc(This) ID3D12DescriptorHeap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_QueryInterface(ID3D12DescriptorHeap* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12DescriptorHeap_AddRef(ID3D12DescriptorHeap* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12DescriptorHeap_Release(ID3D12DescriptorHeap* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_GetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_SetPrivateData(ID3D12DescriptorHeap* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_SetPrivateDataInterface(ID3D12DescriptorHeap* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_SetName(ID3D12DescriptorHeap* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12DescriptorHeap_GetDevice(ID3D12DescriptorHeap* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12DescriptorHeap methods ***/
+static FORCEINLINE D3D12_DESCRIPTOR_HEAP_DESC ID3D12DescriptorHeap_GetDesc(ID3D12DescriptorHeap* This) {
+ D3D12_DESCRIPTOR_HEAP_DESC __ret;
+ return *This->lpVtbl->GetDesc(This,&__ret);
+}
+static FORCEINLINE D3D12_CPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
+ D3D12_CPU_DESCRIPTOR_HANDLE __ret;
+ return *This->lpVtbl->GetCPUDescriptorHandleForHeapStart(This,&__ret);
+}
+static FORCEINLINE D3D12_GPU_DESCRIPTOR_HANDLE ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap* This) {
+ D3D12_GPU_DESCRIPTOR_HANDLE __ret;
+ return *This->lpVtbl->GetGPUDescriptorHandleForHeapStart(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12QueryHeap interface
+ */
+#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
+#define __ID3D12QueryHeap_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
+ID3D12QueryHeap : public ID3D12Pageable
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6,0x1d, 0x97,0x0e,0xc5,0x83,0xca,0xb4)
+#endif
+#else
+typedef struct ID3D12QueryHeapVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12QueryHeap *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12QueryHeap *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12QueryHeap *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12QueryHeap *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12QueryHeap *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12QueryHeap *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12QueryHeap *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12QueryHeap *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} ID3D12QueryHeapVtbl;
+
+interface ID3D12QueryHeap {
+ CONST_VTBL ID3D12QueryHeapVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12QueryHeap_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12QueryHeap_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12QueryHeap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12QueryHeap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12QueryHeap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12QueryHeap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12QueryHeap_QueryInterface(ID3D12QueryHeap* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12QueryHeap_AddRef(ID3D12QueryHeap* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12QueryHeap_Release(ID3D12QueryHeap* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12QueryHeap_GetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12QueryHeap_SetPrivateData(ID3D12QueryHeap* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12QueryHeap_SetPrivateDataInterface(ID3D12QueryHeap* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12QueryHeap_SetName(ID3D12QueryHeap* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12QueryHeap_GetDevice(ID3D12QueryHeap* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12CommandSignature interface
+ */
+#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__
+#define __ID3D12CommandSignature_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1")
+ID3D12CommandSignature : public ID3D12Pageable
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89,0x85, 0xa7,0xb2,0x47,0x50,0x82,0xd1)
+#endif
+#else
+typedef struct ID3D12CommandSignatureVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12CommandSignature *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12CommandSignature *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12CommandSignature *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12CommandSignature *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12CommandSignature *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12CommandSignature *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12CommandSignature *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12CommandSignature *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} ID3D12CommandSignatureVtbl;
+
+interface ID3D12CommandSignature {
+ CONST_VTBL ID3D12CommandSignatureVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandSignature_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12CommandSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12CommandSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12CommandSignature_QueryInterface(ID3D12CommandSignature* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12CommandSignature_AddRef(ID3D12CommandSignature* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12CommandSignature_Release(ID3D12CommandSignature* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12CommandSignature_GetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandSignature_SetPrivateData(ID3D12CommandSignature* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandSignature_SetPrivateDataInterface(ID3D12CommandSignature* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandSignature_SetName(ID3D12CommandSignature* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12CommandSignature_GetDevice(ID3D12CommandSignature* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12GraphicsCommandList interface
+ */
+#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
+ID3D12GraphicsCommandList : public ID3D12CommandList
+{
+ virtual HRESULT STDMETHODCALLTYPE Close(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ID3D12CommandAllocator *allocator,
+ ID3D12PipelineState *initial_state) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearState(
+ ID3D12PipelineState *pipeline_state) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawInstanced(
+ UINT vertex_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ UINT start_instance_location) = 0;
+
+ virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
+ UINT index_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ INT base_vertex_location,
+ UINT start_instance_location) = 0;
+
+ virtual void STDMETHODCALLTYPE Dispatch(
+ UINT x,
+ UINT u,
+ UINT z) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyBufferRegion(
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT64 byte_count) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyTextureRegion(
+ const D3D12_TEXTURE_COPY_LOCATION *dst,
+ UINT dst_x,
+ UINT dst_y,
+ UINT dst_z,
+ const D3D12_TEXTURE_COPY_LOCATION *src,
+ const D3D12_BOX *src_box) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyResource(
+ ID3D12Resource *dst_resource,
+ ID3D12Resource *src_resource) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyTiles(
+ ID3D12Resource *tiled_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *tile_region_size,
+ ID3D12Resource *buffer,
+ UINT64 buffer_offset,
+ D3D12_TILE_COPY_FLAGS flags) = 0;
+
+ virtual void STDMETHODCALLTYPE ResolveSubresource(
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource,
+ DXGI_FORMAT format) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
+ D3D12_PRIMITIVE_TOPOLOGY primitive_topology) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetViewports(
+ UINT viewport_count,
+ const D3D12_VIEWPORT *viewports) = 0;
+
+ virtual void STDMETHODCALLTYPE RSSetScissorRects(
+ UINT rect_count,
+ const D3D12_RECT *rects) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetBlendFactor(
+ const FLOAT blend_factor[4]) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetStencilRef(
+ UINT stencil_ref) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPipelineState(
+ ID3D12PipelineState *pipeline_state) = 0;
+
+ virtual void STDMETHODCALLTYPE ResourceBarrier(
+ UINT barrier_count,
+ const D3D12_RESOURCE_BARRIER *barriers) = 0;
+
+ virtual void STDMETHODCALLTYPE ExecuteBundle(
+ ID3D12GraphicsCommandList *command_list) = 0;
+
+ virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
+ UINT heap_count,
+ ID3D12DescriptorHeap *const *heaps) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRootSignature(
+ ID3D12RootSignature *root_signature) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
+ ID3D12RootSignature *root_signature) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetIndexBuffer(
+ const D3D12_INDEX_BUFFER_VIEW *view) = 0;
+
+ virtual void STDMETHODCALLTYPE IASetVertexBuffers(
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_VERTEX_BUFFER_VIEW *views) = 0;
+
+ virtual void STDMETHODCALLTYPE SOSetTargets(
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetRenderTargets(
+ UINT render_target_descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+ WINBOOL single_descriptor_handle,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearDepthStencilView(
+ D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+ D3D12_CLEAR_FLAGS flags,
+ FLOAT depth,
+ UINT8 stencil,
+ UINT rect_count,
+ const D3D12_RECT *rects) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRenderTargetView(
+ D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+ const FLOAT color[4],
+ UINT rect_count,
+ const D3D12_RECT *rects) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const UINT values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const float values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects) = 0;
+
+ virtual void STDMETHODCALLTYPE DiscardResource(
+ ID3D12Resource *resource,
+ const D3D12_DISCARD_REGION *region) = 0;
+
+ virtual void STDMETHODCALLTYPE BeginQuery(
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index) = 0;
+
+ virtual void STDMETHODCALLTYPE EndQuery(
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index) = 0;
+
+ virtual void STDMETHODCALLTYPE ResolveQueryData(
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT start_index,
+ UINT query_count,
+ ID3D12Resource *dst_buffer,
+ UINT64 aligned_dst_buffer_offset) = 0;
+
+ virtual void STDMETHODCALLTYPE SetPredication(
+ ID3D12Resource *buffer,
+ UINT64 aligned_buffer_offset,
+ D3D12_PREDICATION_OP operation) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMarker(
+ UINT metadata,
+ const void *data,
+ UINT size) = 0;
+
+ virtual void STDMETHODCALLTYPE BeginEvent(
+ UINT metadata,
+ const void *data,
+ UINT size) = 0;
+
+ virtual void STDMETHODCALLTYPE EndEvent(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE ExecuteIndirect(
+ ID3D12CommandSignature *command_signature,
+ UINT max_command_count,
+ ID3D12Resource *arg_buffer,
+ UINT64 arg_buffer_offset,
+ ID3D12Resource *count_buffer,
+ UINT64 count_buffer_offset) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b,0xa8, 0xb3,0xae,0x42,0xa5,0xa4,0x55)
+#endif
+#else
+typedef struct ID3D12GraphicsCommandListVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12GraphicsCommandList *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12GraphicsCommandList *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12GraphicsCommandList *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12GraphicsCommandList *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12GraphicsCommandList *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12GraphicsCommandList *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12GraphicsCommandList *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12GraphicsCommandList *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandList methods ***/
+ D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D12GraphicsCommandList *This);
+
+ /*** ID3D12GraphicsCommandList methods ***/
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ ID3D12GraphicsCommandList *This);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12CommandAllocator *allocator,
+ ID3D12PipelineState *initial_state);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D12GraphicsCommandList *This,
+ UINT vertex_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D12GraphicsCommandList *This,
+ UINT index_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ INT base_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D12GraphicsCommandList *This,
+ UINT x,
+ UINT u,
+ UINT z);
+
+ void (STDMETHODCALLTYPE *CopyBufferRegion)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT64 byte_count);
+
+ void (STDMETHODCALLTYPE *CopyTextureRegion)(
+ ID3D12GraphicsCommandList *This,
+ const D3D12_TEXTURE_COPY_LOCATION *dst,
+ UINT dst_x,
+ UINT dst_y,
+ UINT dst_z,
+ const D3D12_TEXTURE_COPY_LOCATION *src,
+ const D3D12_BOX *src_box);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *dst_resource,
+ ID3D12Resource *src_resource);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *tiled_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *tile_region_size,
+ ID3D12Resource *buffer,
+ UINT64 buffer_offset,
+ D3D12_TILE_COPY_FLAGS flags);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource,
+ DXGI_FORMAT format);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D12GraphicsCommandList *This,
+ D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D12GraphicsCommandList *This,
+ UINT viewport_count,
+ const D3D12_VIEWPORT *viewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D12GraphicsCommandList *This,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *OMSetBlendFactor)(
+ ID3D12GraphicsCommandList *This,
+ const FLOAT blend_factor[4]);
+
+ void (STDMETHODCALLTYPE *OMSetStencilRef)(
+ ID3D12GraphicsCommandList *This,
+ UINT stencil_ref);
+
+ void (STDMETHODCALLTYPE *SetPipelineState)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *ResourceBarrier)(
+ ID3D12GraphicsCommandList *This,
+ UINT barrier_count,
+ const D3D12_RESOURCE_BARRIER *barriers);
+
+ void (STDMETHODCALLTYPE *ExecuteBundle)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12GraphicsCommandList *command_list);
+
+ void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
+ ID3D12GraphicsCommandList *This,
+ UINT heap_count,
+ ID3D12DescriptorHeap *const *heaps);
+
+ void (STDMETHODCALLTYPE *SetComputeRootSignature)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D12GraphicsCommandList *This,
+ const D3D12_INDEX_BUFFER_VIEW *view);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D12GraphicsCommandList *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_VERTEX_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D12GraphicsCommandList *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D12GraphicsCommandList *This,
+ UINT render_target_descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+ WINBOOL single_descriptor_handle,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D12GraphicsCommandList *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+ D3D12_CLEAR_FLAGS flags,
+ FLOAT depth,
+ UINT8 stencil,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D12GraphicsCommandList *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+ const FLOAT color[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D12GraphicsCommandList *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const UINT values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D12GraphicsCommandList *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const float values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *resource,
+ const D3D12_DISCARD_REGION *region);
+
+ void (STDMETHODCALLTYPE *BeginQuery)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *EndQuery)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *ResolveQueryData)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT start_index,
+ UINT query_count,
+ ID3D12Resource *dst_buffer,
+ UINT64 aligned_dst_buffer_offset);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12Resource *buffer,
+ UINT64 aligned_buffer_offset,
+ D3D12_PREDICATION_OP operation);
+
+ void (STDMETHODCALLTYPE *SetMarker)(
+ ID3D12GraphicsCommandList *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *BeginEvent)(
+ ID3D12GraphicsCommandList *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D12GraphicsCommandList *This);
+
+ void (STDMETHODCALLTYPE *ExecuteIndirect)(
+ ID3D12GraphicsCommandList *This,
+ ID3D12CommandSignature *command_signature,
+ UINT max_command_count,
+ ID3D12Resource *arg_buffer,
+ UINT64 arg_buffer_offset,
+ ID3D12Resource *count_buffer,
+ UINT64 count_buffer_offset);
+
+ END_INTERFACE
+} ID3D12GraphicsCommandListVtbl;
+
+interface ID3D12GraphicsCommandList {
+ CONST_VTBL ID3D12GraphicsCommandListVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12GraphicsCommandList_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12GraphicsCommandList_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12GraphicsCommandList_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12GraphicsCommandList_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12GraphicsCommandList_GetType(This) (This)->lpVtbl->GetType(This)
+/*** ID3D12GraphicsCommandList methods ***/
+#define ID3D12GraphicsCommandList_Close(This) (This)->lpVtbl->Close(This)
+#define ID3D12GraphicsCommandList_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
+#define ID3D12GraphicsCommandList_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
+#define ID3D12GraphicsCommandList_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
+#define ID3D12GraphicsCommandList_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
+#define ID3D12GraphicsCommandList_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
+#define ID3D12GraphicsCommandList_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
+#define ID3D12GraphicsCommandList_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
+#define ID3D12GraphicsCommandList_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
+#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
+#define ID3D12GraphicsCommandList_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
+#define ID3D12GraphicsCommandList_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
+#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
+#define ID3D12GraphicsCommandList_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
+#define ID3D12GraphicsCommandList_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
+#define ID3D12GraphicsCommandList_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
+#define ID3D12GraphicsCommandList_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
+#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
+#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
+#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
+#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
+#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
+#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
+#define ID3D12GraphicsCommandList_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
+#define ID3D12GraphicsCommandList_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
+#define ID3D12GraphicsCommandList_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12GraphicsCommandList_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12GraphicsCommandList_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12GraphicsCommandList_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_QueryInterface(ID3D12GraphicsCommandList* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList_AddRef(ID3D12GraphicsCommandList* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList_Release(ID3D12GraphicsCommandList* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_GetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_SetPrivateData(ID3D12GraphicsCommandList* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_SetPrivateDataInterface(ID3D12GraphicsCommandList* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_SetName(ID3D12GraphicsCommandList* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_GetDevice(ID3D12GraphicsCommandList* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList_GetType(ID3D12GraphicsCommandList* This) {
+ return This->lpVtbl->GetType(This);
+}
+/*** ID3D12GraphicsCommandList methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_Close(ID3D12GraphicsCommandList* This) {
+ return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList_Reset(ID3D12GraphicsCommandList* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
+ return This->lpVtbl->Reset(This,allocator,initial_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ClearState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->ClearState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_DrawInstanced(ID3D12GraphicsCommandList* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_DrawIndexedInstanced(ID3D12GraphicsCommandList* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_Dispatch(ID3D12GraphicsCommandList* This,UINT x,UINT u,UINT z) {
+ This->lpVtbl->Dispatch(This,x,u,z);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_CopyBufferRegion(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
+ This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_CopyTextureRegion(ID3D12GraphicsCommandList* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
+ This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_CopyResource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
+ This->lpVtbl->CopyResource(This,dst_resource,src_resource);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_CopyTiles(ID3D12GraphicsCommandList* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
+ This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ResolveSubresource(ID3D12GraphicsCommandList* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
+ This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_IASetPrimitiveTopology(ID3D12GraphicsCommandList* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_RSSetViewports(ID3D12GraphicsCommandList* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
+ This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_RSSetScissorRects(ID3D12GraphicsCommandList* This,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_OMSetBlendFactor(ID3D12GraphicsCommandList* This,const FLOAT blend_factor[4]) {
+ This->lpVtbl->OMSetBlendFactor(This,blend_factor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_OMSetStencilRef(ID3D12GraphicsCommandList* This,UINT stencil_ref) {
+ This->lpVtbl->OMSetStencilRef(This,stencil_ref);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetPipelineState(ID3D12GraphicsCommandList* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->SetPipelineState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ResourceBarrier(ID3D12GraphicsCommandList* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
+ This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ExecuteBundle(ID3D12GraphicsCommandList* This,ID3D12GraphicsCommandList *command_list) {
+ This->lpVtbl->ExecuteBundle(This,command_list);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetDescriptorHeaps(ID3D12GraphicsCommandList* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
+ This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetComputeRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRootSignature(ID3D12GraphicsCommandList* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_IASetIndexBuffer(ID3D12GraphicsCommandList* This,const D3D12_INDEX_BUFFER_VIEW *view) {
+ This->lpVtbl->IASetIndexBuffer(This,view);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_IASetVertexBuffers(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
+ This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SOSetTargets(ID3D12GraphicsCommandList* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
+ This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_OMSetRenderTargets(ID3D12GraphicsCommandList* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
+ This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ClearDepthStencilView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ClearRenderTargetView(ID3D12GraphicsCommandList* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_DiscardResource(ID3D12GraphicsCommandList* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
+ This->lpVtbl->DiscardResource(This,resource,region);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_BeginQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->BeginQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_EndQuery(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->EndQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ResolveQueryData(ID3D12GraphicsCommandList* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
+ This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetPredication(ID3D12GraphicsCommandList* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
+ This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_SetMarker(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_BeginEvent(ID3D12GraphicsCommandList* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_EndEvent(ID3D12GraphicsCommandList* This) {
+ This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList_ExecuteIndirect(ID3D12GraphicsCommandList* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
+ This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12GraphicsCommandList1 interface
+ */
+#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
+ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
+{
+ virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
+
+ virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
+
+ virtual void STDMETHODCALLTYPE OMSetDepthBounds(
+ FLOAT min,
+ FLOAT max) = 0;
+
+ virtual void STDMETHODCALLTYPE SetSamplePositions(
+ UINT sample_count,
+ UINT pixel_count,
+ D3D12_SAMPLE_POSITION *sample_positions) = 0;
+
+ virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource_idx,
+ UINT dst_x,
+ UINT dst_y,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource_idx,
+ D3D12_RECT *src_rect,
+ DXGI_FORMAT format,
+ D3D12_RESOLVE_MODE mode) = 0;
+
+ virtual void STDMETHODCALLTYPE SetViewInstanceMask(
+ UINT mask) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7)
+#endif
+#else
+typedef struct ID3D12GraphicsCommandList1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12GraphicsCommandList1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12GraphicsCommandList1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12GraphicsCommandList1 *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12GraphicsCommandList1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12GraphicsCommandList1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12GraphicsCommandList1 *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12GraphicsCommandList1 *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12GraphicsCommandList1 *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandList methods ***/
+ D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D12GraphicsCommandList1 *This);
+
+ /*** ID3D12GraphicsCommandList methods ***/
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ ID3D12GraphicsCommandList1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12CommandAllocator *allocator,
+ ID3D12PipelineState *initial_state);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT vertex_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT index_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ INT base_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT x,
+ UINT u,
+ UINT z);
+
+ void (STDMETHODCALLTYPE *CopyBufferRegion)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT64 byte_count);
+
+ void (STDMETHODCALLTYPE *CopyTextureRegion)(
+ ID3D12GraphicsCommandList1 *This,
+ const D3D12_TEXTURE_COPY_LOCATION *dst,
+ UINT dst_x,
+ UINT dst_y,
+ UINT dst_z,
+ const D3D12_TEXTURE_COPY_LOCATION *src,
+ const D3D12_BOX *src_box);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_resource,
+ ID3D12Resource *src_resource);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *tiled_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *tile_region_size,
+ ID3D12Resource *buffer,
+ UINT64 buffer_offset,
+ D3D12_TILE_COPY_FLAGS flags);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource,
+ DXGI_FORMAT format);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D12GraphicsCommandList1 *This,
+ D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT viewport_count,
+ const D3D12_VIEWPORT *viewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *OMSetBlendFactor)(
+ ID3D12GraphicsCommandList1 *This,
+ const FLOAT blend_factor[4]);
+
+ void (STDMETHODCALLTYPE *OMSetStencilRef)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT stencil_ref);
+
+ void (STDMETHODCALLTYPE *SetPipelineState)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *ResourceBarrier)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT barrier_count,
+ const D3D12_RESOURCE_BARRIER *barriers);
+
+ void (STDMETHODCALLTYPE *ExecuteBundle)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12GraphicsCommandList *command_list);
+
+ void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT heap_count,
+ ID3D12DescriptorHeap *const *heaps);
+
+ void (STDMETHODCALLTYPE *SetComputeRootSignature)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D12GraphicsCommandList1 *This,
+ const D3D12_INDEX_BUFFER_VIEW *view);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_VERTEX_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT render_target_descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+ WINBOOL single_descriptor_handle,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D12GraphicsCommandList1 *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+ D3D12_CLEAR_FLAGS flags,
+ FLOAT depth,
+ UINT8 stencil,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D12GraphicsCommandList1 *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+ const FLOAT color[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D12GraphicsCommandList1 *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const UINT values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D12GraphicsCommandList1 *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const float values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *resource,
+ const D3D12_DISCARD_REGION *region);
+
+ void (STDMETHODCALLTYPE *BeginQuery)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *EndQuery)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *ResolveQueryData)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT start_index,
+ UINT query_count,
+ ID3D12Resource *dst_buffer,
+ UINT64 aligned_dst_buffer_offset);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *buffer,
+ UINT64 aligned_buffer_offset,
+ D3D12_PREDICATION_OP operation);
+
+ void (STDMETHODCALLTYPE *SetMarker)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *BeginEvent)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D12GraphicsCommandList1 *This);
+
+ void (STDMETHODCALLTYPE *ExecuteIndirect)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12CommandSignature *command_signature,
+ UINT max_command_count,
+ ID3D12Resource *arg_buffer,
+ UINT64 arg_buffer_offset,
+ ID3D12Resource *count_buffer,
+ UINT64 count_buffer_offset);
+
+ /*** ID3D12GraphicsCommandList1 methods ***/
+ void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+ void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+ void (STDMETHODCALLTYPE *OMSetDepthBounds)(
+ ID3D12GraphicsCommandList1 *This,
+ FLOAT min,
+ FLOAT max);
+
+ void (STDMETHODCALLTYPE *SetSamplePositions)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT sample_count,
+ UINT pixel_count,
+ D3D12_SAMPLE_POSITION *sample_positions);
+
+ void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
+ ID3D12GraphicsCommandList1 *This,
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource_idx,
+ UINT dst_x,
+ UINT dst_y,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource_idx,
+ D3D12_RECT *src_rect,
+ DXGI_FORMAT format,
+ D3D12_RESOLVE_MODE mode);
+
+ void (STDMETHODCALLTYPE *SetViewInstanceMask)(
+ ID3D12GraphicsCommandList1 *This,
+ UINT mask);
+
+ END_INTERFACE
+} ID3D12GraphicsCommandList1Vtbl;
+
+interface ID3D12GraphicsCommandList1 {
+ CONST_VTBL ID3D12GraphicsCommandList1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12GraphicsCommandList1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12GraphicsCommandList1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12GraphicsCommandList1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12GraphicsCommandList1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12GraphicsCommandList1_GetType(This) (This)->lpVtbl->GetType(This)
+/*** ID3D12GraphicsCommandList methods ***/
+#define ID3D12GraphicsCommandList1_Close(This) (This)->lpVtbl->Close(This)
+#define ID3D12GraphicsCommandList1_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
+#define ID3D12GraphicsCommandList1_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
+#define ID3D12GraphicsCommandList1_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList1_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
+#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
+#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
+#define ID3D12GraphicsCommandList1_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
+#define ID3D12GraphicsCommandList1_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
+#define ID3D12GraphicsCommandList1_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
+#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
+#define ID3D12GraphicsCommandList1_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
+#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
+#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
+#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
+#define ID3D12GraphicsCommandList1_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
+#define ID3D12GraphicsCommandList1_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
+#define ID3D12GraphicsCommandList1_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
+#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
+#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
+#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList1_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
+#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList1_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
+#define ID3D12GraphicsCommandList1_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList1_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList1_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
+#define ID3D12GraphicsCommandList1_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
+#define ID3D12GraphicsCommandList1_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12GraphicsCommandList1_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12GraphicsCommandList1_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
+/*** ID3D12GraphicsCommandList1 methods ***/
+#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
+#define ID3D12GraphicsCommandList1_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
+#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
+#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_QueryInterface(ID3D12GraphicsCommandList1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList1_AddRef(ID3D12GraphicsCommandList1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList1_Release(ID3D12GraphicsCommandList1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_GetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetPrivateDataInterface(ID3D12GraphicsCommandList1* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetName(ID3D12GraphicsCommandList1* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_GetDevice(ID3D12GraphicsCommandList1* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList1_GetType(ID3D12GraphicsCommandList1* This) {
+ return This->lpVtbl->GetType(This);
+}
+/*** ID3D12GraphicsCommandList methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_Close(ID3D12GraphicsCommandList1* This) {
+ return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_Reset(ID3D12GraphicsCommandList1* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
+ return This->lpVtbl->Reset(This,allocator,initial_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->ClearState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DrawInstanced(ID3D12GraphicsCommandList1* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DrawIndexedInstanced(ID3D12GraphicsCommandList1* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_Dispatch(ID3D12GraphicsCommandList1* This,UINT x,UINT u,UINT z) {
+ This->lpVtbl->Dispatch(This,x,u,z);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyBufferRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
+ This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyTextureRegion(ID3D12GraphicsCommandList1* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
+ This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
+ This->lpVtbl->CopyResource(This,dst_resource,src_resource);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyTiles(ID3D12GraphicsCommandList1* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
+ This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveSubresource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
+ This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetPrimitiveTopology(ID3D12GraphicsCommandList1* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_RSSetViewports(ID3D12GraphicsCommandList1* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
+ This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_RSSetScissorRects(ID3D12GraphicsCommandList1* This,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetBlendFactor(ID3D12GraphicsCommandList1* This,const FLOAT blend_factor[4]) {
+ This->lpVtbl->OMSetBlendFactor(This,blend_factor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetStencilRef(ID3D12GraphicsCommandList1* This,UINT stencil_ref) {
+ This->lpVtbl->OMSetStencilRef(This,stencil_ref);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetPipelineState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->SetPipelineState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResourceBarrier(ID3D12GraphicsCommandList1* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
+ This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ExecuteBundle(ID3D12GraphicsCommandList1* This,ID3D12GraphicsCommandList *command_list) {
+ This->lpVtbl->ExecuteBundle(This,command_list);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetDescriptorHeaps(ID3D12GraphicsCommandList1* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
+ This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetComputeRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetIndexBuffer(ID3D12GraphicsCommandList1* This,const D3D12_INDEX_BUFFER_VIEW *view) {
+ This->lpVtbl->IASetIndexBuffer(This,view);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetVertexBuffers(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
+ This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SOSetTargets(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
+ This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetRenderTargets(ID3D12GraphicsCommandList1* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
+ This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearDepthStencilView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearRenderTargetView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DiscardResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
+ This->lpVtbl->DiscardResource(This,resource,region);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_BeginQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->BeginQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_EndQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->EndQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveQueryData(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
+ This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetPredication(ID3D12GraphicsCommandList1* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
+ This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetMarker(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_BeginEvent(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_EndEvent(ID3D12GraphicsCommandList1* This) {
+ This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ExecuteIndirect(ID3D12GraphicsCommandList1* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
+ This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
+}
+/*** ID3D12GraphicsCommandList1 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+ This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+ This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetDepthBounds(ID3D12GraphicsCommandList1* This,FLOAT min,FLOAT max) {
+ This->lpVtbl->OMSetDepthBounds(This,min,max);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetSamplePositions(ID3D12GraphicsCommandList1* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
+ This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveSubresourceRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
+ This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetViewInstanceMask(ID3D12GraphicsCommandList1* This,UINT mask) {
+ This->lpVtbl->SetViewInstanceMask(This,mask);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12GraphicsCommandList2 interface
+ */
+#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("38c3e585-ff17-412c-9150-4fc6f9d72a28")
+ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
+{
+ virtual void STDMETHODCALLTYPE WriteBufferImmediate(
+ UINT count,
+ const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
+ const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28)
+#endif
+#else
+typedef struct ID3D12GraphicsCommandList2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12GraphicsCommandList2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12GraphicsCommandList2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12GraphicsCommandList2 *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12GraphicsCommandList2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12GraphicsCommandList2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12GraphicsCommandList2 *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12GraphicsCommandList2 *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12GraphicsCommandList2 *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandList methods ***/
+ D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+ ID3D12GraphicsCommandList2 *This);
+
+ /*** ID3D12GraphicsCommandList methods ***/
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ ID3D12GraphicsCommandList2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12CommandAllocator *allocator,
+ ID3D12PipelineState *initial_state);
+
+ void (STDMETHODCALLTYPE *ClearState)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *DrawInstanced)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT vertex_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT index_count_per_instance,
+ UINT instance_count,
+ UINT start_vertex_location,
+ INT base_vertex_location,
+ UINT start_instance_location);
+
+ void (STDMETHODCALLTYPE *Dispatch)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT x,
+ UINT u,
+ UINT z);
+
+ void (STDMETHODCALLTYPE *CopyBufferRegion)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT64 byte_count);
+
+ void (STDMETHODCALLTYPE *CopyTextureRegion)(
+ ID3D12GraphicsCommandList2 *This,
+ const D3D12_TEXTURE_COPY_LOCATION *dst,
+ UINT dst_x,
+ UINT dst_y,
+ UINT dst_z,
+ const D3D12_TEXTURE_COPY_LOCATION *src,
+ const D3D12_BOX *src_box);
+
+ void (STDMETHODCALLTYPE *CopyResource)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_resource,
+ ID3D12Resource *src_resource);
+
+ void (STDMETHODCALLTYPE *CopyTiles)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *tiled_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *tile_region_size,
+ ID3D12Resource *buffer,
+ UINT64 buffer_offset,
+ D3D12_TILE_COPY_FLAGS flags);
+
+ void (STDMETHODCALLTYPE *ResolveSubresource)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource,
+ DXGI_FORMAT format);
+
+ void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+ ID3D12GraphicsCommandList2 *This,
+ D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
+
+ void (STDMETHODCALLTYPE *RSSetViewports)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT viewport_count,
+ const D3D12_VIEWPORT *viewports);
+
+ void (STDMETHODCALLTYPE *RSSetScissorRects)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *OMSetBlendFactor)(
+ ID3D12GraphicsCommandList2 *This,
+ const FLOAT blend_factor[4]);
+
+ void (STDMETHODCALLTYPE *OMSetStencilRef)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT stencil_ref);
+
+ void (STDMETHODCALLTYPE *SetPipelineState)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12PipelineState *pipeline_state);
+
+ void (STDMETHODCALLTYPE *ResourceBarrier)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT barrier_count,
+ const D3D12_RESOURCE_BARRIER *barriers);
+
+ void (STDMETHODCALLTYPE *ExecuteBundle)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12GraphicsCommandList *command_list);
+
+ void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT heap_count,
+ ID3D12DescriptorHeap *const *heaps);
+
+ void (STDMETHODCALLTYPE *SetComputeRootSignature)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12RootSignature *root_signature);
+
+ void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ UINT data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ UINT constant_count,
+ const void *data,
+ UINT dst_offset);
+
+ void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT root_parameter_index,
+ D3D12_GPU_VIRTUAL_ADDRESS address);
+
+ void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+ ID3D12GraphicsCommandList2 *This,
+ const D3D12_INDEX_BUFFER_VIEW *view);
+
+ void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_VERTEX_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *SOSetTargets)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT start_slot,
+ UINT view_count,
+ const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
+
+ void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT render_target_descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+ WINBOOL single_descriptor_handle,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
+
+ void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+ ID3D12GraphicsCommandList2 *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+ D3D12_CLEAR_FLAGS flags,
+ FLOAT depth,
+ UINT8 stencil,
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+ ID3D12GraphicsCommandList2 *This,
+ D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+ const FLOAT color[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+ ID3D12GraphicsCommandList2 *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const UINT values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+ ID3D12GraphicsCommandList2 *This,
+ D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+ D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+ ID3D12Resource *resource,
+ const float values[4],
+ UINT rect_count,
+ const D3D12_RECT *rects);
+
+ void (STDMETHODCALLTYPE *DiscardResource)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *resource,
+ const D3D12_DISCARD_REGION *region);
+
+ void (STDMETHODCALLTYPE *BeginQuery)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *EndQuery)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT index);
+
+ void (STDMETHODCALLTYPE *ResolveQueryData)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12QueryHeap *heap,
+ D3D12_QUERY_TYPE type,
+ UINT start_index,
+ UINT query_count,
+ ID3D12Resource *dst_buffer,
+ UINT64 aligned_dst_buffer_offset);
+
+ void (STDMETHODCALLTYPE *SetPredication)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *buffer,
+ UINT64 aligned_buffer_offset,
+ D3D12_PREDICATION_OP operation);
+
+ void (STDMETHODCALLTYPE *SetMarker)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *BeginEvent)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D12GraphicsCommandList2 *This);
+
+ void (STDMETHODCALLTYPE *ExecuteIndirect)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12CommandSignature *command_signature,
+ UINT max_command_count,
+ ID3D12Resource *arg_buffer,
+ UINT64 arg_buffer_offset,
+ ID3D12Resource *count_buffer,
+ UINT64 count_buffer_offset);
+
+ /*** ID3D12GraphicsCommandList1 methods ***/
+ void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+ void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_buffer,
+ UINT64 dst_offset,
+ ID3D12Resource *src_buffer,
+ UINT64 src_offset,
+ UINT dependent_resource_count,
+ ID3D12Resource *const *dependent_resources,
+ const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+ void (STDMETHODCALLTYPE *OMSetDepthBounds)(
+ ID3D12GraphicsCommandList2 *This,
+ FLOAT min,
+ FLOAT max);
+
+ void (STDMETHODCALLTYPE *SetSamplePositions)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT sample_count,
+ UINT pixel_count,
+ D3D12_SAMPLE_POSITION *sample_positions);
+
+ void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
+ ID3D12GraphicsCommandList2 *This,
+ ID3D12Resource *dst_resource,
+ UINT dst_sub_resource_idx,
+ UINT dst_x,
+ UINT dst_y,
+ ID3D12Resource *src_resource,
+ UINT src_sub_resource_idx,
+ D3D12_RECT *src_rect,
+ DXGI_FORMAT format,
+ D3D12_RESOLVE_MODE mode);
+
+ void (STDMETHODCALLTYPE *SetViewInstanceMask)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT mask);
+
+ /*** ID3D12GraphicsCommandList2 methods ***/
+ void (STDMETHODCALLTYPE *WriteBufferImmediate)(
+ ID3D12GraphicsCommandList2 *This,
+ UINT count,
+ const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
+ const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
+
+ END_INTERFACE
+} ID3D12GraphicsCommandList2Vtbl;
+
+interface ID3D12GraphicsCommandList2 {
+ CONST_VTBL ID3D12GraphicsCommandList2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12GraphicsCommandList2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12GraphicsCommandList2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12GraphicsCommandList2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12GraphicsCommandList2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12GraphicsCommandList2_GetType(This) (This)->lpVtbl->GetType(This)
+/*** ID3D12GraphicsCommandList methods ***/
+#define ID3D12GraphicsCommandList2_Close(This) (This)->lpVtbl->Close(This)
+#define ID3D12GraphicsCommandList2_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
+#define ID3D12GraphicsCommandList2_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
+#define ID3D12GraphicsCommandList2_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList2_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
+#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
+#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
+#define ID3D12GraphicsCommandList2_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
+#define ID3D12GraphicsCommandList2_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
+#define ID3D12GraphicsCommandList2_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
+#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
+#define ID3D12GraphicsCommandList2_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
+#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
+#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
+#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
+#define ID3D12GraphicsCommandList2_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
+#define ID3D12GraphicsCommandList2_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
+#define ID3D12GraphicsCommandList2_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
+#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
+#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
+#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList2_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
+#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList2_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
+#define ID3D12GraphicsCommandList2_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList2_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList2_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
+#define ID3D12GraphicsCommandList2_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
+#define ID3D12GraphicsCommandList2_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12GraphicsCommandList2_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12GraphicsCommandList2_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
+/*** ID3D12GraphicsCommandList1 methods ***/
+#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
+#define ID3D12GraphicsCommandList2_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
+#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
+#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
+/*** ID3D12GraphicsCommandList2 methods ***/
+#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_QueryInterface(ID3D12GraphicsCommandList2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList2_AddRef(ID3D12GraphicsCommandList2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList2_Release(ID3D12GraphicsCommandList2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_GetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetPrivateDataInterface(ID3D12GraphicsCommandList2* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetName(ID3D12GraphicsCommandList2* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_GetDevice(ID3D12GraphicsCommandList2* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList2_GetType(ID3D12GraphicsCommandList2* This) {
+ return This->lpVtbl->GetType(This);
+}
+/*** ID3D12GraphicsCommandList methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_Close(ID3D12GraphicsCommandList2* This) {
+ return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_Reset(ID3D12GraphicsCommandList2* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
+ return This->lpVtbl->Reset(This,allocator,initial_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->ClearState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DrawInstanced(ID3D12GraphicsCommandList2* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DrawIndexedInstanced(ID3D12GraphicsCommandList2* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
+ This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_Dispatch(ID3D12GraphicsCommandList2* This,UINT x,UINT u,UINT z) {
+ This->lpVtbl->Dispatch(This,x,u,z);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyBufferRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
+ This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyTextureRegion(ID3D12GraphicsCommandList2* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
+ This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
+ This->lpVtbl->CopyResource(This,dst_resource,src_resource);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyTiles(ID3D12GraphicsCommandList2* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
+ This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveSubresource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
+ This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetPrimitiveTopology(ID3D12GraphicsCommandList2* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
+ This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_RSSetViewports(ID3D12GraphicsCommandList2* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
+ This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_RSSetScissorRects(ID3D12GraphicsCommandList2* This,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetBlendFactor(ID3D12GraphicsCommandList2* This,const FLOAT blend_factor[4]) {
+ This->lpVtbl->OMSetBlendFactor(This,blend_factor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetStencilRef(ID3D12GraphicsCommandList2* This,UINT stencil_ref) {
+ This->lpVtbl->OMSetStencilRef(This,stencil_ref);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetPipelineState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
+ This->lpVtbl->SetPipelineState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResourceBarrier(ID3D12GraphicsCommandList2* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
+ This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ExecuteBundle(ID3D12GraphicsCommandList2* This,ID3D12GraphicsCommandList *command_list) {
+ This->lpVtbl->ExecuteBundle(This,command_list);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetDescriptorHeaps(ID3D12GraphicsCommandList2* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
+ This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetComputeRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
+ This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+ This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+ This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+ This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetIndexBuffer(ID3D12GraphicsCommandList2* This,const D3D12_INDEX_BUFFER_VIEW *view) {
+ This->lpVtbl->IASetIndexBuffer(This,view);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetVertexBuffers(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
+ This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SOSetTargets(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
+ This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetRenderTargets(ID3D12GraphicsCommandList2* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
+ This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearDepthStencilView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearRenderTargetView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
+ This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DiscardResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
+ This->lpVtbl->DiscardResource(This,resource,region);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_BeginQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->BeginQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_EndQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+ This->lpVtbl->EndQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveQueryData(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
+ This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetPredication(ID3D12GraphicsCommandList2* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
+ This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetMarker(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_BeginEvent(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_EndEvent(ID3D12GraphicsCommandList2* This) {
+ This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ExecuteIndirect(ID3D12GraphicsCommandList2* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
+ This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
+}
+/*** ID3D12GraphicsCommandList1 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+ This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+ This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetDepthBounds(ID3D12GraphicsCommandList2* This,FLOAT min,FLOAT max) {
+ This->lpVtbl->OMSetDepthBounds(This,min,max);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetSamplePositions(ID3D12GraphicsCommandList2* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
+ This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveSubresourceRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
+ This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetViewInstanceMask(ID3D12GraphicsCommandList2* This,UINT mask) {
+ This->lpVtbl->SetViewInstanceMask(This,mask);
+}
+/*** ID3D12GraphicsCommandList2 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList2_WriteBufferImmediate(ID3D12GraphicsCommandList2* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
+ This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_TILE_RANGE_FLAGS {
+ D3D12_TILE_RANGE_FLAG_NONE = 0x0,
+ D3D12_TILE_RANGE_FLAG_NULL = 0x1,
+ D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
+ D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
+} D3D12_TILE_RANGE_FLAGS;
+typedef enum D3D12_TILE_MAPPING_FLAGS {
+ D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
+ D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
+} D3D12_TILE_MAPPING_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS);
+/*****************************************************************************
+ * ID3D12CommandQueue interface
+ */
+#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
+#define __ID3D12CommandQueue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
+ID3D12CommandQueue : public ID3D12Pageable
+{
+ virtual void STDMETHODCALLTYPE UpdateTileMappings(
+ ID3D12Resource *resource,
+ UINT region_count,
+ const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D12_TILE_REGION_SIZE *region_sizes,
+ UINT range_count,
+ const D3D12_TILE_RANGE_FLAGS *range_flags,
+ UINT *heap_range_offsets,
+ UINT *range_tile_counts,
+ D3D12_TILE_MAPPING_FLAGS flags) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyTileMappings(
+ ID3D12Resource *dst_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
+ ID3D12Resource *src_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *region_size,
+ D3D12_TILE_MAPPING_FLAGS flags) = 0;
+
+ virtual void STDMETHODCALLTYPE ExecuteCommandLists(
+ UINT command_list_count,
+ ID3D12CommandList *const *command_lists) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMarker(
+ UINT metadata,
+ const void *data,
+ UINT size) = 0;
+
+ virtual void STDMETHODCALLTYPE BeginEvent(
+ UINT metadata,
+ const void *data,
+ UINT size) = 0;
+
+ virtual void STDMETHODCALLTYPE EndEvent(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Signal(
+ ID3D12Fence *fence,
+ UINT64 value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Wait(
+ ID3D12Fence *fence,
+ UINT64 value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
+ UINT64 *frequency) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
+ UINT64 *gpu_timestamp,
+ UINT64 *cpu_timestamp) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc(
+ D3D12_COMMAND_QUEUE_DESC *__ret) = 0;
+ D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
+ )
+ {
+ D3D12_COMMAND_QUEUE_DESC __ret;
+ return *GetDesc(&__ret);
+ }
+#else
+ virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
+ ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed)
+#endif
+#else
+typedef struct ID3D12CommandQueueVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12CommandQueue *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12CommandQueue *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12CommandQueue *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12CommandQueue *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12CommandQueue *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12CommandQueue *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12CommandQueue *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12CommandQueue *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandQueue methods ***/
+ void (STDMETHODCALLTYPE *UpdateTileMappings)(
+ ID3D12CommandQueue *This,
+ ID3D12Resource *resource,
+ UINT region_count,
+ const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+ const D3D12_TILE_REGION_SIZE *region_sizes,
+ UINT range_count,
+ const D3D12_TILE_RANGE_FLAGS *range_flags,
+ UINT *heap_range_offsets,
+ UINT *range_tile_counts,
+ D3D12_TILE_MAPPING_FLAGS flags);
+
+ void (STDMETHODCALLTYPE *CopyTileMappings)(
+ ID3D12CommandQueue *This,
+ ID3D12Resource *dst_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
+ ID3D12Resource *src_resource,
+ const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
+ const D3D12_TILE_REGION_SIZE *region_size,
+ D3D12_TILE_MAPPING_FLAGS flags);
+
+ void (STDMETHODCALLTYPE *ExecuteCommandLists)(
+ ID3D12CommandQueue *This,
+ UINT command_list_count,
+ ID3D12CommandList *const *command_lists);
+
+ void (STDMETHODCALLTYPE *SetMarker)(
+ ID3D12CommandQueue *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *BeginEvent)(
+ ID3D12CommandQueue *This,
+ UINT metadata,
+ const void *data,
+ UINT size);
+
+ void (STDMETHODCALLTYPE *EndEvent)(
+ ID3D12CommandQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *Signal)(
+ ID3D12CommandQueue *This,
+ ID3D12Fence *fence,
+ UINT64 value);
+
+ HRESULT (STDMETHODCALLTYPE *Wait)(
+ ID3D12CommandQueue *This,
+ ID3D12Fence *fence,
+ UINT64 value);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)(
+ ID3D12CommandQueue *This,
+ UINT64 *frequency);
+
+ HRESULT (STDMETHODCALLTYPE *GetClockCalibration)(
+ ID3D12CommandQueue *This,
+ UINT64 *gpu_timestamp,
+ UINT64 *cpu_timestamp);
+
+ D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12CommandQueue *This,
+ D3D12_COMMAND_QUEUE_DESC *__ret);
+
+ END_INTERFACE
+} ID3D12CommandQueueVtbl;
+
+interface ID3D12CommandQueue {
+ CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandQueue methods ***/
+#define ID3D12CommandQueue_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags)
+#define ID3D12CommandQueue_CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags)
+#define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists)
+#define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
+#define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
+#define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency)
+#define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp)
+#define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandQueue methods ***/
+static FORCEINLINE void ID3D12CommandQueue_UpdateTileMappings(ID3D12CommandQueue* This,ID3D12Resource *resource,UINT region_count,const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D12_TILE_REGION_SIZE *region_sizes,UINT range_count,const D3D12_TILE_RANGE_FLAGS *range_flags,UINT *heap_range_offsets,UINT *range_tile_counts,D3D12_TILE_MAPPING_FLAGS flags) {
+ This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags);
+}
+static FORCEINLINE void ID3D12CommandQueue_CopyTileMappings(ID3D12CommandQueue* This,ID3D12Resource *dst_resource,const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,ID3D12Resource *src_resource,const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,const D3D12_TILE_REGION_SIZE *region_size,D3D12_TILE_MAPPING_FLAGS flags) {
+ This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags);
+}
+static FORCEINLINE void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) {
+ This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists);
+}
+static FORCEINLINE void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
+ This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) {
+ This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
+ return This->lpVtbl->Signal(This,fence,value);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
+ return This->lpVtbl->Wait(This,fence,value);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) {
+ return This->lpVtbl->GetTimestampFrequency(This,frequency);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) {
+ return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp);
+}
+static FORCEINLINE D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) {
+ D3D12_COMMAND_QUEUE_DESC __ret;
+ return *This->lpVtbl->GetDesc(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_FENCE_FLAGS {
+ D3D12_FENCE_FLAG_NONE = 0x0,
+ D3D12_FENCE_FLAG_SHARED = 0x1,
+ D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2
+} D3D12_FENCE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);
+typedef enum D3D12_QUERY_HEAP_TYPE {
+ D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
+ D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
+ D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
+ D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3
+} D3D12_QUERY_HEAP_TYPE;
+typedef struct D3D12_QUERY_HEAP_DESC {
+ D3D12_QUERY_HEAP_TYPE Type;
+ UINT Count;
+ UINT NodeMask;
+} D3D12_QUERY_HEAP_DESC;
+typedef enum D3D12_INDIRECT_ARGUMENT_TYPE {
+ D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
+ D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1,
+ D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2,
+ D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3,
+ D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4,
+ D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5,
+ D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6,
+ D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7,
+ D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8
+} D3D12_INDIRECT_ARGUMENT_TYPE;
+typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
+ D3D12_INDIRECT_ARGUMENT_TYPE Type;
+ __C89_NAMELESS union {
+ struct {
+ UINT Slot;
+ } VertexBuffer;
+ struct {
+ UINT RootParameterIndex;
+ UINT DestOffsetIn32BitValues;
+ UINT Num32BitValuesToSet;
+ } Constant;
+ struct {
+ UINT RootParameterIndex;
+ } ConstantBufferView;
+ struct {
+ UINT RootParameterIndex;
+ } ShaderResourceView;
+ struct {
+ UINT RootParameterIndex;
+ } UnorderedAccessView;
+ } __C89_NAMELESSUNIONNAME;
+} D3D12_INDIRECT_ARGUMENT_DESC;
+typedef struct D3D12_COMMAND_SIGNATURE_DESC {
+ UINT ByteStride;
+ UINT NumArgumentDescs;
+ const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
+ UINT NodeMask;
+} D3D12_COMMAND_SIGNATURE_DESC;
+/*****************************************************************************
+ * ID3D12RootSignature interface
+ */
+#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
+#define __ID3D12RootSignature_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
+ID3D12RootSignature : public ID3D12DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14)
+#endif
+#else
+typedef struct ID3D12RootSignatureVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12RootSignature *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12RootSignature *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12RootSignature *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12RootSignature *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12RootSignature *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12RootSignature *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12RootSignature *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12RootSignature *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} ID3D12RootSignatureVtbl;
+
+interface ID3D12RootSignature {
+ CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12PipelineState interface
+ */
+#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
+#define __ID3D12PipelineState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
+ID3D12PipelineState : public ID3D12Pageable
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
+ ID3DBlob **blob) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45)
+#endif
+#else
+typedef struct ID3D12PipelineStateVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12PipelineState *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12PipelineState *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12PipelineState *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12PipelineState *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12PipelineState *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12PipelineState *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12PipelineState *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12PipelineState *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12PipelineState methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCachedBlob)(
+ ID3D12PipelineState *This,
+ ID3DBlob **blob);
+
+ END_INTERFACE
+} ID3D12PipelineStateVtbl;
+
+interface ID3D12PipelineState {
+ CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12PipelineState methods ***/
+#define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12PipelineState methods ***/
+static FORCEINLINE HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) {
+ return This->lpVtbl->GetCachedBlob(This,blob);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Fence interface
+ */
+#ifndef __ID3D12Fence_INTERFACE_DEFINED__
+#define __ID3D12Fence_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
+ID3D12Fence : public ID3D12Pageable
+{
+ virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
+ UINT64 value,
+ HANDLE event) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Signal(
+ UINT64 value) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76)
+#endif
+#else
+typedef struct ID3D12FenceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Fence *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Fence *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Fence *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Fence *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Fence *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Fence *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Fence *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12Fence *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12Fence methods ***/
+ UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
+ ID3D12Fence *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
+ ID3D12Fence *This,
+ UINT64 value,
+ HANDLE event);
+
+ HRESULT (STDMETHODCALLTYPE *Signal)(
+ ID3D12Fence *This,
+ UINT64 value);
+
+ END_INTERFACE
+} ID3D12FenceVtbl;
+
+interface ID3D12Fence {
+ CONST_VTBL ID3D12FenceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12Fence methods ***/
+#define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
+#define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
+#define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Fence_AddRef(ID3D12Fence* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Fence_Release(ID3D12Fence* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12Fence methods ***/
+static FORCEINLINE UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) {
+ return This->lpVtbl->GetCompletedValue(This);
+}
+static FORCEINLINE HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) {
+ return This->lpVtbl->SetEventOnCompletion(This,value,event);
+}
+static FORCEINLINE HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) {
+ return This->lpVtbl->Signal(This,value);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12CommandAllocator interface
+ */
+#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
+#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
+ID3D12CommandAllocator : public ID3D12Pageable
+{
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24)
+#endif
+#else
+typedef struct ID3D12CommandAllocatorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12CommandAllocator *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12CommandAllocator *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12CommandAllocator *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12CommandAllocator *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12CommandAllocator *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12CommandAllocator *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12CommandAllocator *This,
+ const WCHAR *name);
+
+ /*** ID3D12DeviceChild methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ ID3D12CommandAllocator *This,
+ REFIID riid,
+ void **device);
+
+ /*** ID3D12CommandAllocator methods ***/
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ID3D12CommandAllocator *This);
+
+ END_INTERFACE
+} ID3D12CommandAllocatorVtbl;
+
+interface ID3D12CommandAllocator {
+ CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandAllocator methods ***/
+#define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandAllocator methods ***/
+static FORCEINLINE HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) {
+ return This->lpVtbl->Reset(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Device interface
+ */
+#ifndef __ID3D12Device_INTERFACE_DEFINED__
+#define __ID3D12Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
+ID3D12Device : public ID3D12Object
+{
+ virtual UINT STDMETHODCALLTYPE GetNodeCount(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
+ const D3D12_COMMAND_QUEUE_DESC *desc,
+ REFIID riid,
+ void **command_queue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
+ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ void **command_allocator) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
+ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
+ const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
+ UINT node_mask,
+ D3D12_COMMAND_LIST_TYPE type,
+ ID3D12CommandAllocator *command_allocator,
+ ID3D12PipelineState *initial_pipeline_state,
+ REFIID riid,
+ void **command_list) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+ D3D12_FEATURE feature,
+ void *feature_data,
+ UINT feature_data_size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
+ const D3D12_DESCRIPTOR_HEAP_DESC *desc,
+ REFIID riid,
+ void **descriptor_heap) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
+ UINT node_mask,
+ const void *bytecode,
+ SIZE_T bytecode_length,
+ REFIID riid,
+ void **root_signature) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateConstantBufferView(
+ const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateShaderResourceView(
+ ID3D12Resource *resource,
+ const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
+ ID3D12Resource *resource,
+ ID3D12Resource *counter_resource,
+ const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateRenderTargetView(
+ ID3D12Resource *resource,
+ const D3D12_RENDER_TARGET_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateDepthStencilView(
+ ID3D12Resource *resource,
+ const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CreateSampler(
+ const D3D12_SAMPLER_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyDescriptors(
+ UINT dst_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
+ const UINT *dst_descriptor_range_sizes,
+ UINT src_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
+ const UINT *src_descriptor_range_sizes,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+
+ virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
+ UINT descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
+ const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo(
+ D3D12_RESOURCE_ALLOCATION_INFO *__ret,
+ UINT visible_mask,
+ UINT reource_desc_count,
+ const D3D12_RESOURCE_DESC *resource_descs) = 0;
+ D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
+ UINT visible_mask,
+ UINT reource_desc_count,
+ const D3D12_RESOURCE_DESC *resource_descs)
+ {
+ D3D12_RESOURCE_ALLOCATION_INFO __ret;
+ return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs);
+ }
+#else
+ virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
+ UINT visible_mask,
+ UINT reource_desc_count,
+ const D3D12_RESOURCE_DESC *resource_descs) = 0;
+#endif
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties(
+ D3D12_HEAP_PROPERTIES *__ret,
+ UINT node_mask,
+ D3D12_HEAP_TYPE heap_type) = 0;
+ D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
+ UINT node_mask,
+ D3D12_HEAP_TYPE heap_type)
+ {
+ D3D12_HEAP_PROPERTIES __ret;
+ return *GetCustomHeapProperties(&__ret, node_mask, heap_type);
+ }
+#else
+ virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
+ UINT node_mask,
+ D3D12_HEAP_TYPE heap_type) = 0;
+#endif
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
+ const D3D12_HEAP_PROPERTIES *heap_properties,
+ D3D12_HEAP_FLAGS heap_flags,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateHeap(
+ const D3D12_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
+ ID3D12Heap *heap,
+ UINT64 heap_offset,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
+ ID3D12DeviceChild *object,
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
+ HANDLE handle,
+ REFIID riid,
+ void **object) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
+ const WCHAR *name,
+ DWORD access,
+ HANDLE *handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MakeResident(
+ UINT object_count,
+ ID3D12Pageable *const *objects) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Evict(
+ UINT object_count,
+ ID3D12Pageable *const *objects) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateFence(
+ UINT64 initial_value,
+ D3D12_FENCE_FLAGS flags,
+ REFIID riid,
+ void **fence) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE GetCopyableFootprints(
+ const D3D12_RESOURCE_DESC *desc,
+ UINT first_sub_resource,
+ UINT sub_resource_count,
+ UINT64 base_offset,
+ D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
+ UINT *row_count,
+ UINT64 *row_size,
+ UINT64 *total_bytes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
+ const D3D12_QUERY_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
+ const D3D12_COMMAND_SIGNATURE_DESC *desc,
+ ID3D12RootSignature *root_signature,
+ REFIID riid,
+ void **command_signature) = 0;
+
+ virtual void STDMETHODCALLTYPE GetResourceTiling(
+ ID3D12Resource *resource,
+ UINT *total_tile_count,
+ D3D12_PACKED_MIP_INFO *packed_mip_info,
+ D3D12_TILE_SHAPE *standard_tile_shape,
+ UINT *sub_resource_tiling_count,
+ UINT first_sub_resource_tiling,
+ D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual LUID* STDMETHODCALLTYPE GetAdapterLuid(
+ LUID *__ret) = 0;
+ LUID STDMETHODCALLTYPE GetAdapterLuid(
+ )
+ {
+ LUID __ret;
+ return *GetAdapterLuid(&__ret);
+ }
+#else
+ virtual LUID STDMETHODCALLTYPE GetAdapterLuid(
+ ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7)
+#endif
+#else
+typedef struct ID3D12DeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Device *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Device *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Device *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Device *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Device *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Device *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Device *This,
+ const WCHAR *name);
+
+ /*** ID3D12Device methods ***/
+ UINT (STDMETHODCALLTYPE *GetNodeCount)(
+ ID3D12Device *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
+ ID3D12Device *This,
+ const D3D12_COMMAND_QUEUE_DESC *desc,
+ REFIID riid,
+ void **command_queue);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
+ ID3D12Device *This,
+ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ void **command_allocator);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
+ ID3D12Device *This,
+ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
+ ID3D12Device *This,
+ const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
+ ID3D12Device *This,
+ UINT node_mask,
+ D3D12_COMMAND_LIST_TYPE type,
+ ID3D12CommandAllocator *command_allocator,
+ ID3D12PipelineState *initial_pipeline_state,
+ REFIID riid,
+ void **command_list);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D12Device *This,
+ D3D12_FEATURE feature,
+ void *feature_data,
+ UINT feature_data_size);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
+ ID3D12Device *This,
+ const D3D12_DESCRIPTOR_HEAP_DESC *desc,
+ REFIID riid,
+ void **descriptor_heap);
+
+ UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
+ ID3D12Device *This,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
+ ID3D12Device *This,
+ UINT node_mask,
+ const void *bytecode,
+ SIZE_T bytecode_length,
+ REFIID riid,
+ void **root_signature);
+
+ void (STDMETHODCALLTYPE *CreateConstantBufferView)(
+ ID3D12Device *This,
+ const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D12Device *This,
+ ID3D12Resource *resource,
+ const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D12Device *This,
+ ID3D12Resource *resource,
+ ID3D12Resource *counter_resource,
+ const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D12Device *This,
+ ID3D12Resource *resource,
+ const D3D12_RENDER_TARGET_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D12Device *This,
+ ID3D12Resource *resource,
+ const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateSampler)(
+ ID3D12Device *This,
+ const D3D12_SAMPLER_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CopyDescriptors)(
+ ID3D12Device *This,
+ UINT dst_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
+ const UINT *dst_descriptor_range_sizes,
+ UINT src_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
+ const UINT *src_descriptor_range_sizes,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
+ ID3D12Device *This,
+ UINT descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
+ const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
+ ID3D12Device *This,
+ D3D12_RESOURCE_ALLOCATION_INFO *__ret,
+ UINT visible_mask,
+ UINT reource_desc_count,
+ const D3D12_RESOURCE_DESC *resource_descs);
+
+ D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
+ ID3D12Device *This,
+ D3D12_HEAP_PROPERTIES *__ret,
+ UINT node_mask,
+ D3D12_HEAP_TYPE heap_type);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
+ ID3D12Device *This,
+ const D3D12_HEAP_PROPERTIES *heap_properties,
+ D3D12_HEAP_FLAGS heap_flags,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHeap)(
+ ID3D12Device *This,
+ const D3D12_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
+ ID3D12Device *This,
+ ID3D12Heap *heap,
+ UINT64 heap_offset,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
+ ID3D12Device *This,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
+ ID3D12Device *This,
+ ID3D12DeviceChild *object,
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
+ ID3D12Device *This,
+ HANDLE handle,
+ REFIID riid,
+ void **object);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
+ ID3D12Device *This,
+ const WCHAR *name,
+ DWORD access,
+ HANDLE *handle);
+
+ HRESULT (STDMETHODCALLTYPE *MakeResident)(
+ ID3D12Device *This,
+ UINT object_count,
+ ID3D12Pageable *const *objects);
+
+ HRESULT (STDMETHODCALLTYPE *Evict)(
+ ID3D12Device *This,
+ UINT object_count,
+ ID3D12Pageable *const *objects);
+
+ HRESULT (STDMETHODCALLTYPE *CreateFence)(
+ ID3D12Device *This,
+ UINT64 initial_value,
+ D3D12_FENCE_FLAGS flags,
+ REFIID riid,
+ void **fence);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D12Device *This);
+
+ void (STDMETHODCALLTYPE *GetCopyableFootprints)(
+ ID3D12Device *This,
+ const D3D12_RESOURCE_DESC *desc,
+ UINT first_sub_resource,
+ UINT sub_resource_count,
+ UINT64 base_offset,
+ D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
+ UINT *row_count,
+ UINT64 *row_size,
+ UINT64 *total_bytes);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
+ ID3D12Device *This,
+ const D3D12_QUERY_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap);
+
+ HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
+ ID3D12Device *This,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
+ ID3D12Device *This,
+ const D3D12_COMMAND_SIGNATURE_DESC *desc,
+ ID3D12RootSignature *root_signature,
+ REFIID riid,
+ void **command_signature);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D12Device *This,
+ ID3D12Resource *resource,
+ UINT *total_tile_count,
+ D3D12_PACKED_MIP_INFO *packed_mip_info,
+ D3D12_TILE_SHAPE *standard_tile_shape,
+ UINT *sub_resource_tiling_count,
+ UINT first_sub_resource_tiling,
+ D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
+
+ LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
+ ID3D12Device *This,
+ LUID *__ret);
+
+ END_INTERFACE
+} ID3D12DeviceVtbl;
+
+interface ID3D12Device {
+ CONST_VTBL ID3D12DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12Device methods ***/
+#define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
+#define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
+#define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
+#define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
+#define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
+#define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
+#define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
+#define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
+#define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
+#define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
+#define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
+#define ID3D12Device_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
+#define ID3D12Device_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
+#define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
+#define ID3D12Device_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
+#define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
+#define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
+#define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
+#define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
+#define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
+#define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D12Device_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
+#define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
+#define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
+#define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
+#define ID3D12Device_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
+#define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Device_AddRef(ID3D12Device* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Device_Release(ID3D12Device* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12Device methods ***/
+static FORCEINLINE UINT ID3D12Device_GetNodeCount(ID3D12Device* This) {
+ return This->lpVtbl->GetNodeCount(This);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
+ return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
+ return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+ return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+ return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandList(ID3D12Device* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
+ return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
+}
+static FORCEINLINE HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
+ return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
+ return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
+}
+static FORCEINLINE UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
+ return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
+}
+static FORCEINLINE void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateSampler(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CopyDescriptors(ID3D12Device* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
+}
+static FORCEINLINE void ID3D12Device_CopyDescriptorsSimple(ID3D12Device* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
+}
+static FORCEINLINE D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
+ D3D12_RESOURCE_ALLOCATION_INFO __ret;
+ return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
+}
+static FORCEINLINE D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
+ D3D12_HEAP_PROPERTIES __ret;
+ return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommittedResource(ID3D12Device* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
+ return This->lpVtbl->CreateHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreatePlacedResource(ID3D12Device* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateReservedResource(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+ return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) {
+ return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
+}
+static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) {
+ return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+ return This->lpVtbl->MakeResident(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+ return This->lpVtbl->Evict(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
+ return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
+}
+static FORCEINLINE HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D12Device_GetCopyableFootprints(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
+ This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
+ return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) {
+ return This->lpVtbl->SetStablePowerState(This,enable);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
+ return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
+}
+static FORCEINLINE void ID3D12Device_GetResourceTiling(ID3D12Device* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
+ This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
+}
+static FORCEINLINE LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) {
+ LUID __ret;
+ return *This->lpVtbl->GetAdapterLuid(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Device1 interface
+ */
+#ifndef __ID3D12Device1_INTERFACE_DEFINED__
+#define __ID3D12Device1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
+ID3D12Device1 : public ID3D12Device
+{
+ virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
+ const void *blob,
+ SIZE_T blob_size,
+ REFIID iid,
+ void **lib) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
+ ID3D12Fence *const *fences,
+ const UINT64 *values,
+ UINT fence_count,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
+ HANDLE event) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
+ UINT object_count,
+ ID3D12Pageable *const *objects,
+ const D3D12_RESIDENCY_PRIORITY *priorities) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e)
+#endif
+#else
+typedef struct ID3D12Device1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Device1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Device1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Device1 *This);
+
+ /*** ID3D12Object methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ ID3D12Device1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ ID3D12Device1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ ID3D12Device1 *This,
+ REFGUID guid,
+ const IUnknown *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetName)(
+ ID3D12Device1 *This,
+ const WCHAR *name);
+
+ /*** ID3D12Device methods ***/
+ UINT (STDMETHODCALLTYPE *GetNodeCount)(
+ ID3D12Device1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
+ ID3D12Device1 *This,
+ const D3D12_COMMAND_QUEUE_DESC *desc,
+ REFIID riid,
+ void **command_queue);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
+ ID3D12Device1 *This,
+ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ void **command_allocator);
+
+ HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
+ ID3D12Device1 *This,
+ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
+ ID3D12Device1 *This,
+ const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
+ REFIID riid,
+ void **pipeline_state);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
+ ID3D12Device1 *This,
+ UINT node_mask,
+ D3D12_COMMAND_LIST_TYPE type,
+ ID3D12CommandAllocator *command_allocator,
+ ID3D12PipelineState *initial_pipeline_state,
+ REFIID riid,
+ void **command_list);
+
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ ID3D12Device1 *This,
+ D3D12_FEATURE feature,
+ void *feature_data,
+ UINT feature_data_size);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
+ ID3D12Device1 *This,
+ const D3D12_DESCRIPTOR_HEAP_DESC *desc,
+ REFIID riid,
+ void **descriptor_heap);
+
+ UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
+ ID3D12Device1 *This,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
+ ID3D12Device1 *This,
+ UINT node_mask,
+ const void *bytecode,
+ SIZE_T bytecode_length,
+ REFIID riid,
+ void **root_signature);
+
+ void (STDMETHODCALLTYPE *CreateConstantBufferView)(
+ ID3D12Device1 *This,
+ const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateShaderResourceView)(
+ ID3D12Device1 *This,
+ ID3D12Resource *resource,
+ const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+ ID3D12Device1 *This,
+ ID3D12Resource *resource,
+ ID3D12Resource *counter_resource,
+ const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateRenderTargetView)(
+ ID3D12Device1 *This,
+ ID3D12Resource *resource,
+ const D3D12_RENDER_TARGET_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateDepthStencilView)(
+ ID3D12Device1 *This,
+ ID3D12Resource *resource,
+ const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CreateSampler)(
+ ID3D12Device1 *This,
+ const D3D12_SAMPLER_DESC *desc,
+ D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
+
+ void (STDMETHODCALLTYPE *CopyDescriptors)(
+ ID3D12Device1 *This,
+ UINT dst_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
+ const UINT *dst_descriptor_range_sizes,
+ UINT src_descriptor_range_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
+ const UINT *src_descriptor_range_sizes,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
+ ID3D12Device1 *This,
+ UINT descriptor_count,
+ const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
+ const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
+
+ D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
+ ID3D12Device1 *This,
+ D3D12_RESOURCE_ALLOCATION_INFO *__ret,
+ UINT visible_mask,
+ UINT reource_desc_count,
+ const D3D12_RESOURCE_DESC *resource_descs);
+
+ D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
+ ID3D12Device1 *This,
+ D3D12_HEAP_PROPERTIES *__ret,
+ UINT node_mask,
+ D3D12_HEAP_TYPE heap_type);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
+ ID3D12Device1 *This,
+ const D3D12_HEAP_PROPERTIES *heap_properties,
+ D3D12_HEAP_FLAGS heap_flags,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateHeap)(
+ ID3D12Device1 *This,
+ const D3D12_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
+ ID3D12Device1 *This,
+ ID3D12Heap *heap,
+ UINT64 heap_offset,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
+ ID3D12Device1 *This,
+ const D3D12_RESOURCE_DESC *desc,
+ D3D12_RESOURCE_STATES initial_state,
+ const D3D12_CLEAR_VALUE *optimized_clear_value,
+ REFIID riid,
+ void **resource);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
+ ID3D12Device1 *This,
+ ID3D12DeviceChild *object,
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
+ ID3D12Device1 *This,
+ HANDLE handle,
+ REFIID riid,
+ void **object);
+
+ HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
+ ID3D12Device1 *This,
+ const WCHAR *name,
+ DWORD access,
+ HANDLE *handle);
+
+ HRESULT (STDMETHODCALLTYPE *MakeResident)(
+ ID3D12Device1 *This,
+ UINT object_count,
+ ID3D12Pageable *const *objects);
+
+ HRESULT (STDMETHODCALLTYPE *Evict)(
+ ID3D12Device1 *This,
+ UINT object_count,
+ ID3D12Pageable *const *objects);
+
+ HRESULT (STDMETHODCALLTYPE *CreateFence)(
+ ID3D12Device1 *This,
+ UINT64 initial_value,
+ D3D12_FENCE_FLAGS flags,
+ REFIID riid,
+ void **fence);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+ ID3D12Device1 *This);
+
+ void (STDMETHODCALLTYPE *GetCopyableFootprints)(
+ ID3D12Device1 *This,
+ const D3D12_RESOURCE_DESC *desc,
+ UINT first_sub_resource,
+ UINT sub_resource_count,
+ UINT64 base_offset,
+ D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
+ UINT *row_count,
+ UINT64 *row_size,
+ UINT64 *total_bytes);
+
+ HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
+ ID3D12Device1 *This,
+ const D3D12_QUERY_HEAP_DESC *desc,
+ REFIID riid,
+ void **heap);
+
+ HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
+ ID3D12Device1 *This,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
+ ID3D12Device1 *This,
+ const D3D12_COMMAND_SIGNATURE_DESC *desc,
+ ID3D12RootSignature *root_signature,
+ REFIID riid,
+ void **command_signature);
+
+ void (STDMETHODCALLTYPE *GetResourceTiling)(
+ ID3D12Device1 *This,
+ ID3D12Resource *resource,
+ UINT *total_tile_count,
+ D3D12_PACKED_MIP_INFO *packed_mip_info,
+ D3D12_TILE_SHAPE *standard_tile_shape,
+ UINT *sub_resource_tiling_count,
+ UINT first_sub_resource_tiling,
+ D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
+
+ LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
+ ID3D12Device1 *This,
+ LUID *__ret);
+
+ /*** ID3D12Device1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
+ ID3D12Device1 *This,
+ const void *blob,
+ SIZE_T blob_size,
+ REFIID iid,
+ void **lib);
+
+ HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
+ ID3D12Device1 *This,
+ ID3D12Fence *const *fences,
+ const UINT64 *values,
+ UINT fence_count,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
+ HANDLE event);
+
+ HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
+ ID3D12Device1 *This,
+ UINT object_count,
+ ID3D12Pageable *const *objects,
+ const D3D12_RESIDENCY_PRIORITY *priorities);
+
+ END_INTERFACE
+} ID3D12Device1Vtbl;
+
+interface ID3D12Device1 {
+ CONST_VTBL ID3D12Device1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Device1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Device1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Device1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Device1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Device1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12Device methods ***/
+#define ID3D12Device1_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
+#define ID3D12Device1_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
+#define ID3D12Device1_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
+#define ID3D12Device1_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device1_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device1_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
+#define ID3D12Device1_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
+#define ID3D12Device1_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
+#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
+#define ID3D12Device1_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
+#define ID3D12Device1_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
+#define ID3D12Device1_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
+#define ID3D12Device1_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
+#define ID3D12Device1_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
+#define ID3D12Device1_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
+#define ID3D12Device1_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device1_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device1_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device1_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device1_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
+#define ID3D12Device1_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
+#define ID3D12Device1_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
+#define ID3D12Device1_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
+#define ID3D12Device1_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
+#define ID3D12Device1_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
+#define ID3D12Device1_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
+#define ID3D12Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D12Device1_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
+#define ID3D12Device1_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
+#define ID3D12Device1_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
+#define ID3D12Device1_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
+#define ID3D12Device1_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
+#define ID3D12Device1_GetAdapterLuid(This) ID3D12Device1_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+/*** ID3D12Device1 methods ***/
+#define ID3D12Device1_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
+#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
+#define ID3D12Device1_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Device1_QueryInterface(ID3D12Device1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Device1_AddRef(ID3D12Device1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Device1_Release(ID3D12Device1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Device1_GetPrivateData(ID3D12Device1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetPrivateData(ID3D12Device1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetPrivateDataInterface(ID3D12Device1* This,REFGUID guid,const IUnknown *data) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetName(ID3D12Device1* This,const WCHAR *name) {
+ return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12Device methods ***/
+static FORCEINLINE UINT ID3D12Device1_GetNodeCount(ID3D12Device1* This) {
+ return This->lpVtbl->GetNodeCount(This);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandQueue(ID3D12Device1* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
+ return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandAllocator(ID3D12Device1* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
+ return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateGraphicsPipelineState(ID3D12Device1* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+ return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateComputePipelineState(ID3D12Device1* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+ return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandList(ID3D12Device1* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
+ return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CheckFeatureSupport(ID3D12Device1* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
+ return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateDescriptorHeap(ID3D12Device1* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
+ return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
+}
+static FORCEINLINE UINT ID3D12Device1_GetDescriptorHandleIncrementSize(ID3D12Device1* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateRootSignature(ID3D12Device1* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
+ return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
+}
+static FORCEINLINE void ID3D12Device1_CreateConstantBufferView(ID3D12Device1* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CreateShaderResourceView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CreateUnorderedAccessView(ID3D12Device1* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CreateRenderTargetView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CreateDepthStencilView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CreateSampler(ID3D12Device1* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+ This->lpVtbl->CreateSampler(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device1_CopyDescriptors(ID3D12Device1* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
+}
+static FORCEINLINE void ID3D12Device1_CopyDescriptorsSimple(ID3D12Device1* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+ This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
+}
+static FORCEINLINE D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device1_GetResourceAllocationInfo(ID3D12Device1* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
+ D3D12_RESOURCE_ALLOCATION_INFO __ret;
+ return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
+}
+static FORCEINLINE D3D12_HEAP_PROPERTIES ID3D12Device1_GetCustomHeapProperties(ID3D12Device1* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
+ D3D12_HEAP_PROPERTIES __ret;
+ return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommittedResource(ID3D12Device1* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateHeap(ID3D12Device1* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
+ return This->lpVtbl->CreateHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreatePlacedResource(ID3D12Device1* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateReservedResource(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+ return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateSharedHandle(ID3D12Device1* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+ return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device1_OpenSharedHandle(ID3D12Device1* This,HANDLE handle,REFIID riid,void **object) {
+ return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
+}
+static FORCEINLINE HRESULT ID3D12Device1_OpenSharedHandleByName(ID3D12Device1* This,const WCHAR *name,DWORD access,HANDLE *handle) {
+ return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device1_MakeResident(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
+ return This->lpVtbl->MakeResident(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device1_Evict(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
+ return This->lpVtbl->Evict(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateFence(ID3D12Device1* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
+ return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
+}
+static FORCEINLINE HRESULT ID3D12Device1_GetDeviceRemovedReason(ID3D12Device1* This) {
+ return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D12Device1_GetCopyableFootprints(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
+ This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateQueryHeap(ID3D12Device1* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
+ return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetStablePowerState(ID3D12Device1* This,WINBOOL enable) {
+ return This->lpVtbl->SetStablePowerState(This,enable);
+}
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandSignature(ID3D12Device1* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
+ return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
+}
+static FORCEINLINE void ID3D12Device1_GetResourceTiling(ID3D12Device1* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
+ This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
+}
+static FORCEINLINE LUID ID3D12Device1_GetAdapterLuid(ID3D12Device1* This) {
+ LUID __ret;
+ return *This->lpVtbl->GetAdapterLuid(This,&__ret);
+}
+/*** ID3D12Device1 methods ***/
+static FORCEINLINE HRESULT ID3D12Device1_CreatePipelineLibrary(ID3D12Device1* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
+ return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetEventOnMultipleFenceCompletion(ID3D12Device1* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
+ return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetResidencyPriority(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
+ return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12RootSignatureDeserializer interface
+ */
+#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
+#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046")
+ID3D12RootSignatureDeserializer : public IUnknown
+{
+ virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46)
+#endif
+#else
+typedef struct ID3D12RootSignatureDeserializerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12RootSignatureDeserializer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12RootSignatureDeserializer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12RootSignatureDeserializer *This);
+
+ /*** ID3D12RootSignatureDeserializer methods ***/
+ const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)(
+ ID3D12RootSignatureDeserializer *This);
+
+ END_INTERFACE
+} ID3D12RootSignatureDeserializerVtbl;
+
+interface ID3D12RootSignatureDeserializer {
+ CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12RootSignatureDeserializer methods ***/
+#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12RootSignatureDeserializer methods ***/
+static FORCEINLINE const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) {
+ return This->lpVtbl->GetRootSignatureDesc(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12VersionedRootSignatureDeserializer interface
+ */
+#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7f91ce67-090c-4bb7-b78e-ed8ff2e31da0")
+ID3D12VersionedRootSignatureDeserializer : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
+ D3D_ROOT_SIGNATURE_VERSION version,
+ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) = 0;
+
+ virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0)
+#endif
+#else
+typedef struct ID3D12VersionedRootSignatureDeserializerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12VersionedRootSignatureDeserializer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12VersionedRootSignatureDeserializer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12VersionedRootSignatureDeserializer *This);
+
+ /*** ID3D12VersionedRootSignatureDeserializer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetRootSignatureDescAtVersion)(
+ ID3D12VersionedRootSignatureDeserializer *This,
+ D3D_ROOT_SIGNATURE_VERSION version,
+ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
+
+ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc)(
+ ID3D12VersionedRootSignatureDeserializer *This);
+
+ END_INTERFACE
+} ID3D12VersionedRootSignatureDeserializerVtbl;
+
+interface ID3D12VersionedRootSignatureDeserializer {
+ CONST_VTBL ID3D12VersionedRootSignatureDeserializerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12VersionedRootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12VersionedRootSignatureDeserializer methods ***/
+#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,version,desc) (This)->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc)
+#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) (This)->lpVtbl->GetUnconvertedRootSignatureDesc(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12VersionedRootSignatureDeserializer_QueryInterface(ID3D12VersionedRootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12VersionedRootSignatureDeserializer_AddRef(ID3D12VersionedRootSignatureDeserializer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12VersionedRootSignatureDeserializer_Release(ID3D12VersionedRootSignatureDeserializer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12VersionedRootSignatureDeserializer methods ***/
+static FORCEINLINE HRESULT ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(ID3D12VersionedRootSignatureDeserializer* This,D3D_ROOT_SIGNATURE_VERSION version,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) {
+ return This->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc);
+}
+static FORCEINLINE const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer* This) {
+ return This->lpVtbl->GetUnconvertedRootSignatureDesc(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
+
+HRESULT __stdcall D3D12CreateRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
+
+typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
+HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
+
+HRESULT __stdcall D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob);
+
+typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **blob,ID3DBlob **error_blob);
+HRESULT __stdcall D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,ID3DBlob **blob,ID3DBlob **error_blob);
+
+typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
+HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
+
+typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid,void **debug);
+HRESULT __stdcall D3D12GetDebugInterface(REFIID iid,void **debug);
+
+HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,const IID *iids,void *configurations,UINT *configurations_sizes);
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d12_h__ */
diff --git a/d3d12sdklayers.h b/d3d12sdklayers.h
new file mode 100644
index 0000000..986a4b0
--- /dev/null
+++ b/d3d12sdklayers.h
@@ -0,0 +1,1586 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d12sdklayers.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d12sdklayers_h__
+#define __d3d12sdklayers_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D12Debug_FWD_DEFINED__
+#define __ID3D12Debug_FWD_DEFINED__
+typedef interface ID3D12Debug ID3D12Debug;
+#ifdef __cplusplus
+interface ID3D12Debug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Debug1_FWD_DEFINED__
+#define __ID3D12Debug1_FWD_DEFINED__
+typedef interface ID3D12Debug1 ID3D12Debug1;
+#ifdef __cplusplus
+interface ID3D12Debug1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12InfoQueue_FWD_DEFINED__
+#define __ID3D12InfoQueue_FWD_DEFINED__
+typedef interface ID3D12InfoQueue ID3D12InfoQueue;
+#ifdef __cplusplus
+interface ID3D12InfoQueue;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetMessage
+#endif
+typedef enum D3D12_MESSAGE_CATEGORY {
+ D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0x0,
+ D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = 0x1,
+ D3D12_MESSAGE_CATEGORY_INITIALIZATION = 0x2,
+ D3D12_MESSAGE_CATEGORY_CLEANUP = 0x3,
+ D3D12_MESSAGE_CATEGORY_COMPILATION = 0x4,
+ D3D12_MESSAGE_CATEGORY_STATE_CREATION = 0x5,
+ D3D12_MESSAGE_CATEGORY_STATE_SETTING = 0x6,
+ D3D12_MESSAGE_CATEGORY_STATE_GETTING = 0x7,
+ D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 0x8,
+ D3D12_MESSAGE_CATEGORY_EXECUTION = 0x9,
+ D3D12_MESSAGE_CATEGORY_SHADER = 0xa
+} D3D12_MESSAGE_CATEGORY;
+typedef enum D3D12_MESSAGE_SEVERITY {
+ D3D12_MESSAGE_SEVERITY_CORRUPTION = 0x0,
+ D3D12_MESSAGE_SEVERITY_ERROR = 0x1,
+ D3D12_MESSAGE_SEVERITY_WARNING = 0x2,
+ D3D12_MESSAGE_SEVERITY_INFO = 0x3,
+ D3D12_MESSAGE_SEVERITY_MESSAGE = 0x4
+} D3D12_MESSAGE_SEVERITY;
+typedef enum D3D12_MESSAGE_ID {
+ D3D12_MESSAGE_ID_UNKNOWN = 0x0,
+ D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 0x1,
+ D3D12_MESSAGE_ID_CORRUPTED_THIS = 0x2,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 0x3,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 0x4,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 0x5,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 0x6,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 0x7,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 0x8,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 0x9,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 0xa,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 0xb,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 0xc,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 0xd,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 0xe,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 0xf,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 0x10,
+ D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 0x11,
+ D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 0x12,
+ D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 0x13,
+ D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 0x14,
+ D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 0x15,
+ D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 0x18,
+ D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 0x19,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 0x1a,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 0x1b,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 0x1c,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 0x1d,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 0x1e,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 0x1f,
+ D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 0x20,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 0x23,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 0x24,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 0x25,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 0x26,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 0x27,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 0x28,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 0x29,
+ D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 0x2a,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 0x2d,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 0x2e,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 0x2f,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 0x30,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 0x31,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 0x34,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 0x35,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 0x36,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 0x37,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 0x38,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 0x39,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 0x3a,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 0x3b,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 0x3c,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 0x3d,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 0x3e,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 0x3f,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 0x40,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 0x41,
+ D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 0x42,
+ D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 0x43,
+ D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 0x44,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 0x45,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 0x46,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 0x47,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 0x48,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 0x49,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 0x4a,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 0x4b,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 0x4c,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 0x4f,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 0x50,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 0x51,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 0x52,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 0x53,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 0x54,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 0x55,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 0x56,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 0x57,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 0x58,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 0x59,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 0x5a,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 0x5b,
+ D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 0x5c,
+ D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 0x5d,
+ D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 0x5e,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 0x5f,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 0x60,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 0x61,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 0x62,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 0x64,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 0x65,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 0x66,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 0x67,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 0x68,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 0x69,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 0x6a,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 0x6b,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 0x6c,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 0x6d,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 0x6f,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 0x70,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 0x71,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 0x72,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 0x73,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 0x74,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 0x75,
+ D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 0x87,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 0xc8,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 0xc9,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 0xca,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 0xd1,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 0xd2,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 0xd3,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 0xd4,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 0xd5,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 0xdb,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 0xdd,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 0xde,
+ D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 0xe8,
+ D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 0xe9,
+ D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 0xea,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 0xef,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 0xf0,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 0xf5,
+ D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 0xfd,
+ D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 0xff,
+ D3D12_MESSAGE_ID_LIVE_DEVICE = 0x112,
+ D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 0x113,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 0x114,
+ D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 0x115,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 0x116,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 0x118,
+ D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 0x11b,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 0x11c,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 0x11d,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 0x11e,
+ D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 0x11f,
+ D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 0x121,
+ D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 0x122,
+ D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 0x123,
+ D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 0x124,
+ D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 0x126,
+ D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 0x127,
+ D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 0x128,
+ D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 0x129,
+ D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 0x136,
+ D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 0x13e,
+ D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 0x141,
+ D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 0x142,
+ D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 0x143,
+ D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14b,
+ D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14c,
+ D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14d,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14e,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 0x14f,
+ D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x150,
+ D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x151,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 0x154,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 0x155,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 0x156,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 0x157,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 0x158,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 0x159,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 0x15a,
+ D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 0x162,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 0x191,
+ D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 0x193,
+ D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19a,
+ D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19c,
+ D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19e,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a0,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a2,
+ D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a4,
+ D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a6,
+ D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 0x1a9,
+ D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 0x1aa,
+ D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 0x1ab,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 0x1ac,
+ D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 0x1ad,
+ D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 0x1ae,
+ D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 0x1af,
+ D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 0x1bf,
+ D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 0x1c0,
+ D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 0x1ed,
+ D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 0x1ee,
+ D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 0x1fa,
+ D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 0x1fb,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 0x207,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 0x208,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 0x209,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 0x20a,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 0x20b,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 0x20c,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 0x20d,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 0x20e,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 0x20f,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 0x210,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 0x211,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 0x212,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 0x213,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 0x214,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 0x215,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 0x216,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 0x217,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 0x218,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 0x219,
+ D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 0x21a,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 0x21c,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 0x21d,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 0x21e,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 0x21f,
+ D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 0x220,
+ D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 0x222,
+ D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 0x223,
+ D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 0x225,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 0x228,
+ D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 0x229,
+ D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 0x22a,
+ D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 0x22d,
+ D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 0x22e,
+ D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 0x22f,
+ D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 0x230,
+ D3D12_MESSAGE_ID_CREATE_RESOURCE = 0x232,
+ D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 0x233,
+ D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 0x234,
+ D3D12_MESSAGE_ID_CREATE_LIBRARY = 0x235,
+ D3D12_MESSAGE_ID_CREATE_HEAP = 0x236,
+ D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 0x237,
+ D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 0x238,
+ D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 0x239,
+ D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 0x23a,
+ D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 0x23b,
+ D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 0x23c,
+ D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 0x23d,
+ D3D12_MESSAGE_ID_LIVE_RESOURCE = 0x23f,
+ D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 0x240,
+ D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 0x241,
+ D3D12_MESSAGE_ID_LIVE_LIBRARY = 0x242,
+ D3D12_MESSAGE_ID_LIVE_HEAP = 0x243,
+ D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 0x244,
+ D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 0x245,
+ D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 0x246,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 0x247,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 0x248,
+ D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 0x249,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 0x24a,
+ D3D12_MESSAGE_ID_DESTROY_RESOURCE = 0x24c,
+ D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 0x24d,
+ D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 0x24e,
+ D3D12_MESSAGE_ID_DESTROY_LIBRARY = 0x24f,
+ D3D12_MESSAGE_ID_DESTROY_HEAP = 0x250,
+ D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 0x251,
+ D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 0x252,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 0x253,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 0x255,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 0x257,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 0x25a,
+ D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 0x25b,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 0x25c,
+ D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 0x25f,
+ D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 0x260,
+ D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 0x261,
+ D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 0x262,
+ D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 0x263,
+ D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 0x265,
+ D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 0x266,
+ D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 0x267,
+ D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 0x268,
+ D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 0x26e,
+ D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 0x26f,
+ D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 0x270,
+ D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 0x271,
+ D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 0x272,
+ D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 0x273,
+ D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 0x274,
+ D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 0x275,
+ D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 0x276,
+ D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 0x277,
+ D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 0x278,
+ D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 0x279,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 0x27a,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 0x27b,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 0x27c,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 0x27d,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 0x27e,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 0x27f,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 0x280,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 0x281,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 0x282,
+ D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 0x283,
+ D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 0x284,
+ D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 0x285,
+ D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 0x286,
+ D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 0x287,
+ D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 0x289,
+ D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 0x28a,
+ D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 0x28c,
+ D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 0x28d,
+ D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 0x28e,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 0x28f,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 0x290,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 0x291,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 0x292,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 0x293,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 0x294,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 0x295,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 0x296,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 0x297,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 0x298,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 0x299,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 0x29a,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 0x29b,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 0x29c,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 0x29d,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 0x29e,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 0x29f,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 0x2a0,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 0x2a1,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 0x2a2,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 0x2a3,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 0x2a4,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 0x2a5,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 0x2a6,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 0x2a7,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 0x2a8,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 0x2a9,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 0x2aa,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 0x2ab,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 0x2ac,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 0x2ad,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 0x2ae,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 0x2af,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 0x2b0,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 0x2b1,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 0x2b2,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 0x2b3,
+ D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 0x2b4,
+ D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 0x2b5,
+ D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 0x2b6,
+ D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 0x2b7,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 0x2b8,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 0x2b9,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 0x2ba,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 0x2bb,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 0x2bc,
+ D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 0x2bd,
+ D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 0x2be,
+ D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 0x2bf,
+ D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 0x2c1,
+ D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 0x2c4,
+ D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 0x2c5,
+ D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 0x2c6,
+ D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 0x2c7,
+ D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 0x2c8,
+ D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 0x2c9,
+ D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 0x2cb,
+ D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 0x2cd,
+ D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 0x2ce,
+ D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 0x2cf,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 0x2d0,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 0x2d1,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 0x2d2,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 0x2d3,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 0x2d4,
+ D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 0x2d5,
+ D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 0x2d6,
+ D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 0x2d7,
+ D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 0x2d8,
+ D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 0x2d9,
+ D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 0x2db,
+ D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 0x2dc,
+ D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 0x2dd,
+ D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 0x2de,
+ D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 0x2df,
+ D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 0x2e1,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 0x2e2,
+ D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 0x2e3,
+ D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 0x2e4,
+ D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 0x2e3,
+ D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 0x2e4,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 0x2e5,
+ D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 0x2e6,
+ D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 0x2e7,
+ D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 0x2e8,
+ D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 0x2e9,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 0x32f,
+ D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 0x330,
+ D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 0x331,
+ D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 0x332,
+ D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 0x334,
+ D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 0x335,
+ D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 0x336,
+ D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 0x337,
+ D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 0x338,
+ D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 0x339,
+ D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 0x33a,
+ D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 0x33b,
+ D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 0x33c,
+ D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 0x33d,
+ D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 0x340,
+ D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 0x341,
+ D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 0x342,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 0x343,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 0x344,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 0x345,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 0x346,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 0x347,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 0x348,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 0x349,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 0x34a,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 0x34b,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 0x34c,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 0x34d,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 0x34e,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 0x34f,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 0x350,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 0x351,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 0x352,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 0x353,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 0x354,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 0x355,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 0x356,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 0x357,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 0x358,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 0x359,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 0x35a,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 0x35b,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 0x35c,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 0x35d,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 0x35e,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 0x35f,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 0x360,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 0x361,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 0x362,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 0x363,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 0x364,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 0x365,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 0x366,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 0x367,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 0x368,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 0x369,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 0x36a,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 0x36b,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 0x36c,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 0x36d,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 0x36e,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 0x36f,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 0x370,
+ D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 0x371,
+ D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 0x372,
+ D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 0x373,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 0x374,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 0x375,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 0x376,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 0x377,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 0x378,
+ D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 0x379,
+ D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 0x37a,
+ D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 0x37b,
+ D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 0x37c,
+ D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 0x37d,
+ D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 0x37e,
+ D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 0x37f,
+ D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 0x380,
+ D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 0x381,
+ D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 0x382,
+ D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 0x383,
+ D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 0x384,
+ D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 0x385,
+ D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 0x386,
+ D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 0x387,
+ D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 0x388,
+ D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 0x389,
+ D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 0x38a,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 0x38b,
+ D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 0x38c,
+ D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 0x38d,
+ D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 0x38e,
+ D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 0x38f,
+ D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 0x390,
+ D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 0x391,
+ D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 0x392,
+ D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 0x393,
+ D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 0x394,
+ D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 0x395,
+ D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 0x396,
+ D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 0x397,
+ D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 0x398,
+ D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 0x399,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 0x39a,
+ D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 0x39b,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 0x39c,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 0x39d,
+ D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 0x39e,
+ D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 0x39f,
+ D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 0x3a1,
+ D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 0x3a2,
+ D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 0x3a3,
+ D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 0x3a4,
+ D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 0x3a5,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 0x3a6,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 0x3a7,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 0x3a8,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 0x3a9,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 0x3aa,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 0x3ab,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 0x3ac,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 0x3ad,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 0x3ae,
+ D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 0x3af,
+ D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 0x3b0,
+ D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 0x3b1,
+ D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 0x3b2,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 0x3b3,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 0x3b4,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 0x3b5,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 0x3b6,
+ D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 0x3b7,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 0x3b8,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 0x3b9,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 0x3ba,
+ D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 0x3bb,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 0x3bc,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 0x3bd,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 0x3be,
+ D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 0x3bf,
+ D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 0x3c0,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 0x3c1,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 0x3c2,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 0x3c3,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 0x3c4,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 0x3c5,
+ D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 0x3c6,
+ D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 0x3c7,
+ D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 0x3c8,
+ D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 0x3c9,
+ D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 0x3ca,
+ D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 0x3cb,
+ D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 0x3cc,
+ D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 0x3cd,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 0x3ce,
+ D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 0x3cf,
+ D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 0x3d0,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 0x3d1,
+ D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 0x3d2,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 0x3d3,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 0x3d4,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 0x3d5,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 0x3d6,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 0x3d7,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 0x3d8,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 0x3d9,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 0x3da,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 0x3db,
+ D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 0x3dc,
+ D3D12_MESSAGE_ID_DEPRECATED_API = 0x3dd,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 0x3de,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 0x3df,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 0x3e0,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 0x3e1,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 0x3e2,
+ D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 0x3e3,
+ D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 0x3e4,
+ D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 0x3e5,
+ D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 0x3e6,
+ D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 0x3e7,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 0x3e8,
+ D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 0x3e9,
+ D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 0x3ea,
+ D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 0x3eb,
+ D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 0x3ec,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 0x3ed,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 0x3ee,
+ D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 0x3ef,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 0x3f0,
+ D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 0x3f1,
+ D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 0x3f5,
+ D3D12_MESSAGE_ID_BEGIN_EVENT = 0x3f6,
+ D3D12_MESSAGE_ID_END_EVENT = 0x3f7,
+ D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 0x3f8,
+ D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 0x3f9,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 0x3fa,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 0x3fb,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 0x3fc,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 0x3fd,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 0x3fe,
+ D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 0x3ff,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 0x400,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 0x401,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 0x402,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 0x403,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 0x404,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 0x405,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 0x406,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 0x407,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 0x408,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 0x409,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 0x40a,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 0x40b,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 0x40c,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 0x40d,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 0x40e,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 0x40f,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 0x410,
+ D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 0x411,
+ D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 0x412,
+ D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 0x413,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 0x414,
+ D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 0x415,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 0x416,
+ D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 0x417,
+ D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 0x418,
+ D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 0x419,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 0x41a,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 0x41b,
+ D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 0x41c,
+ D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 0x41d,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 0x41e,
+ D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 0x41f,
+ D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 0x420,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 0x421,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 0x422,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 0x423,
+ D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 0x424,
+ D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 0x425,
+ D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 0x426,
+ D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 0x427,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 0x428,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 0x429,
+ D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 0x42a,
+ D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 0x42b,
+ D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 0x42c,
+ D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 0x42d,
+ D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 0x42e,
+ D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 0x42f,
+ D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 0x430,
+ D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 0x431,
+ D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 0x432,
+ D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 0x433,
+ D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 0x434,
+ D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 0x435,
+ D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 0x436,
+ D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 0x437,
+ D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 0x438,
+ D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 0x439,
+ D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 0x43a,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 0x43b,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 0x43c,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 0x43d,
+ D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 0x43e,
+ D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 0x43f,
+ D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 0x440,
+ D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 0x441,
+ D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 0x442,
+ D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 0x443,
+ D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 0x444,
+ D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 0x445,
+ D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 0x446,
+ D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 0x447,
+ D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 0x448,
+ D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 0x449,
+ D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 0x44a,
+ D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 0x44b,
+ D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 0x44c,
+ D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 0x44d,
+ D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 0x44e,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 0x44f,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 0x450,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 0x451,
+ D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 0x452,
+ D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 0x453,
+ D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 0x454,
+ D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 0x455,
+ D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 0x456,
+ D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 0x457,
+ D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 0x458,
+ D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 0x459,
+ D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 0x45a,
+ D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 0x45b,
+ D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 0x45c,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 0x45d,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 0x45e,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 0x45f,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 0x460,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 0x461,
+ D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 0x462,
+ D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 0x463,
+ D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 0x464,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 0x465,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 0x466,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 0x467,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 0x468,
+ D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 0x469,
+ D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 0x46a,
+ D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 0x46b,
+ D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 0x46c,
+ D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 0x46d,
+ D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 0x46e,
+ D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 0x46f,
+ D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 0x470,
+ D3D12_MESSAGE_ID_CREATE_META_COMMAND = 0x471,
+ D3D12_MESSAGE_ID_LIVE_META_COMMAND = 0x472,
+ D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 0x473,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 0x474,
+ D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 0x475,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 0x476,
+ D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 0x477,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 0x478,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 0x479,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 0x47a,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 0x47b,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 0x47c,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 0x47d,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 0x47e,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 0x47f,
+ D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 0x480,
+ D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 0x481,
+ D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 0x482,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 0x483,
+ D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 0x484,
+ D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 0x485,
+ D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 0x486,
+ D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 0x487,
+ D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 0x488,
+ D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 0x489,
+ D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 0x48a,
+ D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 0x48b,
+ D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 0x48c,
+ D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 0x48d,
+ D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 0x48e,
+ D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 0x48f,
+ D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 0x490,
+ D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 0x491,
+ D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 0x492,
+ D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 0x493,
+ D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 0x494,
+ D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 0x495,
+ D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 0x496,
+ D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 0x497,
+ D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 0x498,
+ D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 0x499,
+ D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 0x49a,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 0x49b,
+ D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 0x49c,
+ D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 0x49d,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 0x49e,
+ D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 0x49f,
+ D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 0x4a0,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 0x4a1,
+ D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 0x4a2,
+ D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 0x4a3,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 0x4a4,
+ D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 0x4a5,
+ D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 0x4a6,
+ D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 0x4a7,
+ D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 0x4a8,
+ D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 0x4a9,
+ D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 0x4aa,
+ D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 0x4ab,
+ D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 0x4ac,
+ D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 0x4ad,
+ D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 0x4ae,
+ D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 0x4af,
+ D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 0x4b0,
+ D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 0x4b1,
+ D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 0x4b2,
+ D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 0x4b3,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 0x4b4,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 0x4b5,
+ D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 0x4b6,
+ D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 0x4b7,
+ D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 0x4b8,
+ D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 0x4b9,
+ D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 0x4ba,
+ D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 0x4bb,
+ D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 0x4bc,
+ D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 0x4bd,
+ D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 0x4be,
+ D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 0x4bf,
+ D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 0x4c0,
+ D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 0x4c1,
+ D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 0x4c2,
+ D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 0x4c3,
+ D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 0x4c4,
+ D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 0x4c5,
+ D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 0x4c6,
+ D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 0x4c7,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 0x4c8,
+ D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 0x4c9,
+ D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 0x4ca,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 0x4cb,
+ D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 0x4cc,
+ D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 0x4cd,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 0x4ce,
+ D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 0x4cf,
+ D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4d0,
+ D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 0x4d1,
+ D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 0x4d2,
+ D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 0x4d3,
+ D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 0x4d4,
+ D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 0x4d5,
+ D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 0x4d6,
+ D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 0x4d7,
+ D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 0x4d8,
+ D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 0x4d9,
+ D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 0x4da,
+ D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 0x4db,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 0x4dc,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 0x4dd,
+ D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 0x4de,
+ D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 0x4df,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 0x4e0,
+ D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 0x4e1,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 0x4e2,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 0x4e3,
+ D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 0x4e4,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 0x4e5,
+ D3D12_MESSAGE_ID_EMPTY_DISPATCH = 0x4e6,
+ D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 0x4e7,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 0x4e8,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 0x4e9,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 0x4ea,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 0x4eb,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 0x4ec,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 0x4ed,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 0x4ee,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 0x4ef,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 0x4f0,
+ D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 0x4f1,
+ D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 0x4f2,
+ D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 0x4f3,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 0x4f4,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 0x4f5,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 0x4f6,
+ D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 0x4f7,
+ D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 0x4f8,
+ D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 0x4f9,
+ D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4fa,
+ D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4fb,
+ D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 0x4fc,
+ D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 0x4fd,
+ D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 0x4fe,
+ D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 0x4ff,
+ D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 0x500
+} D3D12_MESSAGE_ID;
+typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0x0,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = 0x1,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = 0x2,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = 0x3,
+ NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = 0x4
+} D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE;
+typedef struct D3D12_MESSAGE {
+ D3D12_MESSAGE_CATEGORY Category;
+ D3D12_MESSAGE_SEVERITY Severity;
+ D3D12_MESSAGE_ID ID;
+ const char *pDescription;
+ SIZE_T DescriptionByteLength;
+} D3D12_MESSAGE;
+typedef struct D3D12_INFO_QUEUE_FILTER_DESC {
+ UINT NumCategories;
+ D3D12_MESSAGE_CATEGORY *pCategoryList;
+ UINT NumSeverities;
+ D3D12_MESSAGE_SEVERITY *pSeverityList;
+ UINT NumIDs;
+ D3D12_MESSAGE_ID *pIDList;
+} D3D12_INFO_QUEUE_FILTER_DESC;
+typedef struct D3D12_INFO_QUEUE_FILTER {
+ D3D12_INFO_QUEUE_FILTER_DESC AllowList;
+ D3D12_INFO_QUEUE_FILTER_DESC DenyList;
+} D3D12_INFO_QUEUE_FILTER;
+/*****************************************************************************
+ * ID3D12Debug interface
+ */
+#ifndef __ID3D12Debug_INTERFACE_DEFINED__
+#define __ID3D12Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
+ID3D12Debug : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE EnableDebugLayer(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0)
+#endif
+#else
+typedef struct ID3D12DebugVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Debug *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Debug *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Debug *This);
+
+ /*** ID3D12Debug methods ***/
+ void (STDMETHODCALLTYPE *EnableDebugLayer)(
+ ID3D12Debug *This);
+
+ END_INTERFACE
+} ID3D12DebugVtbl;
+
+interface ID3D12Debug {
+ CONST_VTBL ID3D12DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Debug methods ***/
+#define ID3D12Debug_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Debug_QueryInterface(ID3D12Debug* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Debug_AddRef(ID3D12Debug* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Debug_Release(ID3D12Debug* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Debug methods ***/
+static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
+ This->lpVtbl->EnableDebugLayer(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Debug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Debug1 interface
+ */
+#ifndef __ID3D12Debug1_INTERFACE_DEFINED__
+#define __ID3D12Debug1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8,0xad, 0x15,0x90,0x00,0xaf,0x43,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("affaa4ca-63fe-4d8e-b8ad-159000af4304")
+ID3D12Debug1 : public IUnknown
+{
+ virtual void STDMETHODCALLTYPE EnableDebugLayer(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation(
+ WINBOOL enable) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation(
+ WINBOOL enable) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8,0xad, 0x15,0x90,0x00,0xaf,0x43,0x04)
+#endif
+#else
+typedef struct ID3D12Debug1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12Debug1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12Debug1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12Debug1 *This);
+
+ /*** ID3D12Debug1 methods ***/
+ void (STDMETHODCALLTYPE *EnableDebugLayer)(
+ ID3D12Debug1 *This);
+
+ void (STDMETHODCALLTYPE *SetEnableGPUBasedValidation)(
+ ID3D12Debug1 *This,
+ WINBOOL enable);
+
+ void (STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation)(
+ ID3D12Debug1 *This,
+ WINBOOL enable);
+
+ END_INTERFACE
+} ID3D12Debug1Vtbl;
+
+interface ID3D12Debug1 {
+ CONST_VTBL ID3D12Debug1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Debug1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Debug1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Debug1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Debug1 methods ***/
+#define ID3D12Debug1_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#define ID3D12Debug1_SetEnableGPUBasedValidation(This,enable) (This)->lpVtbl->SetEnableGPUBasedValidation(This,enable)
+#define ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(This,enable) (This)->lpVtbl->SetEnableSynchronizedCommandQueueValidation(This,enable)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Debug1_QueryInterface(ID3D12Debug1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Debug1_AddRef(ID3D12Debug1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Debug1_Release(ID3D12Debug1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12Debug1 methods ***/
+static FORCEINLINE void ID3D12Debug1_EnableDebugLayer(ID3D12Debug1* This) {
+ This->lpVtbl->EnableDebugLayer(This);
+}
+static FORCEINLINE void ID3D12Debug1_SetEnableGPUBasedValidation(ID3D12Debug1* This,WINBOOL enable) {
+ This->lpVtbl->SetEnableGPUBasedValidation(This,enable);
+}
+static FORCEINLINE void ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(ID3D12Debug1* This,WINBOOL enable) {
+ This->lpVtbl->SetEnableSynchronizedCommandQueueValidation(This,enable);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12Debug1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12InfoQueue interface
+ */
+#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__
+#define __ID3D12InfoQueue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9,0x46, 0x30,0xa7,0xe4,0xe6,0x14,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0742a90b-c387-483f-b946-30a7e4e61458")
+ID3D12InfoQueue : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
+ UINT64 limit) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStoredMessages(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMessage(
+ UINT64 index,
+ D3D12_MESSAGE *message,
+ SIZE_T *length) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit(
+ ) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
+ D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
+ D3D12_INFO_QUEUE_FILTER *filter,
+ SIZE_T *length) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
+ D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopStorageFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
+ D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
+ D3D12_INFO_QUEUE_FILTER *filter,
+ SIZE_T *length) = 0;
+
+ virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
+ D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+ virtual void STDMETHODCALLTYPE PopRetrievalFilter(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddMessage(
+ D3D12_MESSAGE_CATEGORY category,
+ D3D12_MESSAGE_SEVERITY severity,
+ D3D12_MESSAGE_ID id,
+ const char *description) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
+ D3D12_MESSAGE_SEVERITY severity,
+ const char *description) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
+ D3D12_MESSAGE_CATEGORY category,
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
+ D3D12_MESSAGE_SEVERITY severity,
+ WINBOOL enable) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
+ D3D12_MESSAGE_ID id,
+ WINBOOL enable) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnCategory(
+ D3D12_MESSAGE_CATEGORY category) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnSeverity(
+ D3D12_MESSAGE_SEVERITY severity) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetBreakOnID(
+ D3D12_MESSAGE_ID id) = 0;
+
+ virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
+ WINBOOL mute) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE GetMuteDebugOutput(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9,0x46, 0x30,0xa7,0xe4,0xe6,0x14,0x58)
+#endif
+#else
+typedef struct ID3D12InfoQueueVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12InfoQueue *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12InfoQueue *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12InfoQueue *This);
+
+ /*** ID3D12InfoQueue methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMessageCountLimit)(
+ ID3D12InfoQueue *This,
+ UINT64 limit);
+
+ void (STDMETHODCALLTYPE *ClearStoredMessages)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetMessage)(
+ ID3D12InfoQueue *This,
+ UINT64 index,
+ D3D12_MESSAGE *message,
+ SIZE_T *length);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessages)(
+ ID3D12InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter)(
+ ID3D12InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit)(
+ ID3D12InfoQueue *This);
+
+ UINT64 (STDMETHODCALLTYPE *GetMessageCountLimit)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddStorageFilterEntries)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter);
+
+ HRESULT (STDMETHODCALLTYPE *GetStorageFilter)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter,
+ SIZE_T *length);
+
+ void (STDMETHODCALLTYPE *ClearStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushStorageFilter)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter);
+
+ void (STDMETHODCALLTYPE *PopStorageFilter)(
+ ID3D12InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetStorageFilterStackSize)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddRetrievalFilterEntries)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter);
+
+ HRESULT (STDMETHODCALLTYPE *GetRetrievalFilter)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter,
+ SIZE_T *length);
+
+ void (STDMETHODCALLTYPE *ClearRetrievalFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushEmptyRetrievalFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushCopyOfRetrievalFilter)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *PushRetrievalFilter)(
+ ID3D12InfoQueue *This,
+ D3D12_INFO_QUEUE_FILTER *filter);
+
+ void (STDMETHODCALLTYPE *PopRetrievalFilter)(
+ ID3D12InfoQueue *This);
+
+ UINT (STDMETHODCALLTYPE *GetRetrievalFilterStackSize)(
+ ID3D12InfoQueue *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddMessage)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_CATEGORY category,
+ D3D12_MESSAGE_SEVERITY severity,
+ D3D12_MESSAGE_ID id,
+ const char *description);
+
+ HRESULT (STDMETHODCALLTYPE *AddApplicationMessage)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_SEVERITY severity,
+ const char *description);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnCategory)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_CATEGORY category,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnSeverity)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_SEVERITY severity,
+ WINBOOL enable);
+
+ HRESULT (STDMETHODCALLTYPE *SetBreakOnID)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_ID id,
+ WINBOOL enable);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnCategory)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_CATEGORY category);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnSeverity)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_SEVERITY severity);
+
+ WINBOOL (STDMETHODCALLTYPE *GetBreakOnID)(
+ ID3D12InfoQueue *This,
+ D3D12_MESSAGE_ID id);
+
+ void (STDMETHODCALLTYPE *SetMuteDebugOutput)(
+ ID3D12InfoQueue *This,
+ WINBOOL mute);
+
+ WINBOOL (STDMETHODCALLTYPE *GetMuteDebugOutput)(
+ ID3D12InfoQueue *This);
+
+ END_INTERFACE
+} ID3D12InfoQueueVtbl;
+
+interface ID3D12InfoQueue {
+ CONST_VTBL ID3D12InfoQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12InfoQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12InfoQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12InfoQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12InfoQueue methods ***/
+#define ID3D12InfoQueue_SetMessageCountLimit(This,limit) (This)->lpVtbl->SetMessageCountLimit(This,limit)
+#define ID3D12InfoQueue_ClearStoredMessages(This) (This)->lpVtbl->ClearStoredMessages(This)
+#define ID3D12InfoQueue_GetMessage(This,index,message,length) (This)->lpVtbl->GetMessage(This,index,message,length)
+#define ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesAllowedByStorageFilter(This)
+#define ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesDeniedByStorageFilter(This)
+#define ID3D12InfoQueue_GetNumStoredMessages(This) (This)->lpVtbl->GetNumStoredMessages(This)
+#define ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) (This)->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This)
+#define ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) (This)->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This)
+#define ID3D12InfoQueue_GetMessageCountLimit(This) (This)->lpVtbl->GetMessageCountLimit(This)
+#define ID3D12InfoQueue_AddStorageFilterEntries(This,filter) (This)->lpVtbl->AddStorageFilterEntries(This,filter)
+#define ID3D12InfoQueue_GetStorageFilter(This,filter,length) (This)->lpVtbl->GetStorageFilter(This,filter,length)
+#define ID3D12InfoQueue_ClearStorageFilter(This) (This)->lpVtbl->ClearStorageFilter(This)
+#define ID3D12InfoQueue_PushEmptyStorageFilter(This) (This)->lpVtbl->PushEmptyStorageFilter(This)
+#define ID3D12InfoQueue_PushCopyOfStorageFilter(This) (This)->lpVtbl->PushCopyOfStorageFilter(This)
+#define ID3D12InfoQueue_PushStorageFilter(This,filter) (This)->lpVtbl->PushStorageFilter(This,filter)
+#define ID3D12InfoQueue_PopStorageFilter(This) (This)->lpVtbl->PopStorageFilter(This)
+#define ID3D12InfoQueue_GetStorageFilterStackSize(This) (This)->lpVtbl->GetStorageFilterStackSize(This)
+#define ID3D12InfoQueue_AddRetrievalFilterEntries(This,filter) (This)->lpVtbl->AddRetrievalFilterEntries(This,filter)
+#define ID3D12InfoQueue_GetRetrievalFilter(This,filter,length) (This)->lpVtbl->GetRetrievalFilter(This,filter,length)
+#define ID3D12InfoQueue_ClearRetrievalFilter(This) (This)->lpVtbl->ClearRetrievalFilter(This)
+#define ID3D12InfoQueue_PushEmptyRetrievalFilter(This) (This)->lpVtbl->PushEmptyRetrievalFilter(This)
+#define ID3D12InfoQueue_PushCopyOfRetrievalFilter(This) (This)->lpVtbl->PushCopyOfRetrievalFilter(This)
+#define ID3D12InfoQueue_PushRetrievalFilter(This,filter) (This)->lpVtbl->PushRetrievalFilter(This,filter)
+#define ID3D12InfoQueue_PopRetrievalFilter(This) (This)->lpVtbl->PopRetrievalFilter(This)
+#define ID3D12InfoQueue_GetRetrievalFilterStackSize(This) (This)->lpVtbl->GetRetrievalFilterStackSize(This)
+#define ID3D12InfoQueue_AddMessage(This,category,severity,id,description) (This)->lpVtbl->AddMessage(This,category,severity,id,description)
+#define ID3D12InfoQueue_AddApplicationMessage(This,severity,description) (This)->lpVtbl->AddApplicationMessage(This,severity,description)
+#define ID3D12InfoQueue_SetBreakOnCategory(This,category,enable) (This)->lpVtbl->SetBreakOnCategory(This,category,enable)
+#define ID3D12InfoQueue_SetBreakOnSeverity(This,severity,enable) (This)->lpVtbl->SetBreakOnSeverity(This,severity,enable)
+#define ID3D12InfoQueue_SetBreakOnID(This,id,enable) (This)->lpVtbl->SetBreakOnID(This,id,enable)
+#define ID3D12InfoQueue_GetBreakOnCategory(This,category) (This)->lpVtbl->GetBreakOnCategory(This,category)
+#define ID3D12InfoQueue_GetBreakOnSeverity(This,severity) (This)->lpVtbl->GetBreakOnSeverity(This,severity)
+#define ID3D12InfoQueue_GetBreakOnID(This,id) (This)->lpVtbl->GetBreakOnID(This,id)
+#define ID3D12InfoQueue_SetMuteDebugOutput(This,mute) (This)->lpVtbl->SetMuteDebugOutput(This,mute)
+#define ID3D12InfoQueue_GetMuteDebugOutput(This) (This)->lpVtbl->GetMuteDebugOutput(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12InfoQueue_QueryInterface(ID3D12InfoQueue* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12InfoQueue_AddRef(ID3D12InfoQueue* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12InfoQueue_Release(ID3D12InfoQueue* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12InfoQueue methods ***/
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetMessageCountLimit(ID3D12InfoQueue* This,UINT64 limit) {
+ return This->lpVtbl->SetMessageCountLimit(This,limit);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearStoredMessages(ID3D12InfoQueue* This) {
+ This->lpVtbl->ClearStoredMessages(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetMessage(ID3D12InfoQueue* This,UINT64 index,D3D12_MESSAGE *message,SIZE_T *length) {
+ return This->lpVtbl->GetMessage(This,index,message,length);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesAllowedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDeniedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumStoredMessages(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessages(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetMessageCountLimit(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetMessageCountLimit(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddStorageFilterEntries(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->AddStorageFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetStorageFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter,SIZE_T *length) {
+ return This->lpVtbl->GetStorageFilter(This,filter,length);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearStorageFilter(ID3D12InfoQueue* This) {
+ This->lpVtbl->ClearStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushEmptyStorageFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->PushEmptyStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushCopyOfStorageFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushStorageFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->PushStorageFilter(This,filter);
+}
+static FORCEINLINE void ID3D12InfoQueue_PopStorageFilter(ID3D12InfoQueue* This) {
+ This->lpVtbl->PopStorageFilter(This);
+}
+static FORCEINLINE UINT ID3D12InfoQueue_GetStorageFilterStackSize(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetStorageFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddRetrievalFilterEntries(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->AddRetrievalFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetRetrievalFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter,SIZE_T *length) {
+ return This->lpVtbl->GetRetrievalFilter(This,filter,length);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearRetrievalFilter(ID3D12InfoQueue* This) {
+ This->lpVtbl->ClearRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushEmptyRetrievalFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->PushEmptyRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushCopyOfRetrievalFilter(ID3D12InfoQueue* This) {
+ return This->lpVtbl->PushCopyOfRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushRetrievalFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+ return This->lpVtbl->PushRetrievalFilter(This,filter);
+}
+static FORCEINLINE void ID3D12InfoQueue_PopRetrievalFilter(ID3D12InfoQueue* This) {
+ This->lpVtbl->PopRetrievalFilter(This);
+}
+static FORCEINLINE UINT ID3D12InfoQueue_GetRetrievalFilterStackSize(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetRetrievalFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddMessage(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category,D3D12_MESSAGE_SEVERITY severity,D3D12_MESSAGE_ID id,const char *description) {
+ return This->lpVtbl->AddMessage(This,category,severity,id,description);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddApplicationMessage(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity,const char *description) {
+ return This->lpVtbl->AddApplicationMessage(This,severity,description);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnCategory(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnCategory(This,category,enable);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnSeverity(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnSeverity(This,severity,enable);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnID(ID3D12InfoQueue* This,D3D12_MESSAGE_ID id,WINBOOL enable) {
+ return This->lpVtbl->SetBreakOnID(This,id,enable);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnCategory(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category) {
+ return This->lpVtbl->GetBreakOnCategory(This,category);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnSeverity(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity) {
+ return This->lpVtbl->GetBreakOnSeverity(This,severity);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnID(ID3D12InfoQueue* This,D3D12_MESSAGE_ID id) {
+ return This->lpVtbl->GetBreakOnID(This,id);
+}
+static FORCEINLINE void ID3D12InfoQueue_SetMuteDebugOutput(ID3D12InfoQueue* This,WINBOOL mute) {
+ This->lpVtbl->SetMuteDebugOutput(This,mute);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetMuteDebugOutput(ID3D12InfoQueue* This) {
+ return This->lpVtbl->GetMuteDebugOutput(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d12sdklayers_h__ */
diff --git a/d3d12shader.h b/d3d12shader.h
new file mode 100644
index 0000000..45941c3
--- /dev/null
+++ b/d3d12shader.h
@@ -0,0 +1,1137 @@
+/*** Autogenerated by WIDL 7.7 from include/d3d12shader.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d12shader_h__
+#define __d3d12shader_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D12ShaderReflectionType_FWD_DEFINED__
+#define __ID3D12ShaderReflectionType_FWD_DEFINED__
+typedef interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType;
+#ifdef __cplusplus
+interface ID3D12ShaderReflectionType;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12ShaderReflectionVariable_FWD_DEFINED__
+#define __ID3D12ShaderReflectionVariable_FWD_DEFINED__
+typedef interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable;
+#ifdef __cplusplus
+interface ID3D12ShaderReflectionVariable;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
+#define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
+typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
+#ifdef __cplusplus
+interface ID3D12ShaderReflectionConstantBuffer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12ShaderReflection_FWD_DEFINED__
+#define __ID3D12ShaderReflection_FWD_DEFINED__
+typedef interface ID3D12ShaderReflection ID3D12ShaderReflection;
+#ifdef __cplusplus
+interface ID3D12ShaderReflection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12FunctionParameterReflection_FWD_DEFINED__
+#define __ID3D12FunctionParameterReflection_FWD_DEFINED__
+typedef interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection;
+#ifdef __cplusplus
+interface ID3D12FunctionParameterReflection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12FunctionReflection_FWD_DEFINED__
+#define __ID3D12FunctionReflection_FWD_DEFINED__
+typedef interface ID3D12FunctionReflection ID3D12FunctionReflection;
+#ifdef __cplusplus
+interface ID3D12FunctionReflection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12LibraryReflection_FWD_DEFINED__
+#define __ID3D12LibraryReflection_FWD_DEFINED__
+typedef interface ID3D12LibraryReflection ID3D12LibraryReflection;
+#ifdef __cplusplus
+interface ID3D12LibraryReflection;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <d3dcommon.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum D3D12_SHADER_VERSION_TYPE {
+ D3D12_SHVER_PIXEL_SHADER = 0x0,
+ D3D12_SHVER_VERTEX_SHADER = 0x1,
+ D3D12_SHVER_GEOMETRY_SHADER = 0x2,
+ D3D12_SHVER_HULL_SHADER = 0x3,
+ D3D12_SHVER_DOMAIN_SHADER = 0x4,
+ D3D12_SHVER_COMPUTE_SHADER = 0x5,
+ D3D12_SHVER_RESERVED0 = 0xfff0
+} D3D12_SHADER_VERSION_TYPE;
+typedef struct _D3D12_SHADER_DESC {
+ UINT Version;
+ const char *Creator;
+ UINT Flags;
+ UINT ConstantBuffers;
+ UINT BoundResources;
+ UINT InputParameters;
+ UINT OutputParameters;
+ UINT InstructionCount;
+ UINT TempRegisterCount;
+ UINT TempArrayCount;
+ UINT DefCount;
+ UINT DclCount;
+ UINT TextureNormalInstructions;
+ UINT TextureLoadInstructions;
+ UINT TextureCompInstructions;
+ UINT TextureBiasInstructions;
+ UINT TextureGradientInstructions;
+ UINT FloatInstructionCount;
+ UINT IntInstructionCount;
+ UINT UintInstructionCount;
+ UINT StaticFlowControlCount;
+ UINT DynamicFlowControlCount;
+ UINT MacroInstructionCount;
+ UINT ArrayInstructionCount;
+ UINT CutInstructionCount;
+ UINT EmitInstructionCount;
+ D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
+ UINT GSMaxOutputVertexCount;
+ D3D_PRIMITIVE InputPrimitive;
+ UINT PatchConstantParameters;
+ UINT cGSInstanceCount;
+ UINT cControlPoints;
+ D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
+ D3D_TESSELLATOR_PARTITIONING HSPartitioning;
+ D3D_TESSELLATOR_DOMAIN TessellatorDomain;
+ UINT cBarrierInstructions;
+ UINT cInterlockedInstructions;
+ UINT cTextureStoreInstructions;
+} D3D12_SHADER_DESC;
+typedef struct _D3D12_SHADER_VARIABLE_DESC {
+ const char *Name;
+ UINT StartOffset;
+ UINT Size;
+ UINT uFlags;
+ void *DefaultValue;
+ UINT StartTexture;
+ UINT TextureSize;
+ UINT StartSampler;
+ UINT SamplerSize;
+} D3D12_SHADER_VARIABLE_DESC;
+typedef struct _D3D12_SHADER_TYPE_DESC {
+ D3D_SHADER_VARIABLE_CLASS Class;
+ D3D_SHADER_VARIABLE_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT Members;
+ UINT Offset;
+ const char *Name;
+} D3D12_SHADER_TYPE_DESC;
+typedef struct _D3D12_SHADER_BUFFER_DESC {
+ const char *Name;
+ D3D_CBUFFER_TYPE Type;
+ UINT Variables;
+ UINT Size;
+ UINT uFlags;
+} D3D12_SHADER_BUFFER_DESC;
+typedef struct _D3D12_SHADER_INPUT_BIND_DESC {
+ const char *Name;
+ D3D_SHADER_INPUT_TYPE Type;
+ UINT BindPoint;
+ UINT BindCount;
+ UINT uFlags;
+ D3D_RESOURCE_RETURN_TYPE ReturnType;
+ D3D_SRV_DIMENSION Dimension;
+ UINT NumSamples;
+ UINT Space;
+ UINT uID;
+} D3D12_SHADER_INPUT_BIND_DESC;
+typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
+ const char *SemanticName;
+ UINT SemanticIndex;
+ UINT Register;
+ D3D_NAME SystemValueType;
+ D3D_REGISTER_COMPONENT_TYPE ComponentType;
+ BYTE Mask;
+ BYTE ReadWriteMask;
+ UINT Stream;
+ D3D_MIN_PRECISION MinPrecision;
+} D3D12_SIGNATURE_PARAMETER_DESC;
+typedef struct _D3D12_PARAMETER_DESC {
+ const char *Name;
+ const char *SemanticName;
+ D3D_SHADER_VARIABLE_TYPE Type;
+ D3D_SHADER_VARIABLE_CLASS Class;
+ UINT Rows;
+ UINT Columns;
+ D3D_INTERPOLATION_MODE InterpolationMode;
+ D3D_PARAMETER_FLAGS Flags;
+ UINT FirstInRegister;
+ UINT FirstInComponent;
+ UINT FirstOutRegister;
+ UINT FirstOutComponent;
+} D3D12_PARAMETER_DESC;
+typedef struct _D3D12_FUNCTION_DESC {
+ UINT Version;
+ const char *Creator;
+ UINT Flags;
+ UINT ConstantBuffers;
+ UINT BoundResources;
+ UINT InstructionCount;
+ UINT TempRegisterCount;
+ UINT TempArrayCount;
+ UINT DefCount;
+ UINT DclCount;
+ UINT TextureNormalInstructions;
+ UINT TextureLoadInstructions;
+ UINT TextureCompInstructions;
+ UINT TextureBiasInstructions;
+ UINT TextureGradientInstructions;
+ UINT FloatInstructionCount;
+ UINT IntInstructionCount;
+ UINT UintInstructionCount;
+ UINT StaticFlowControlCount;
+ UINT DynamicFlowControlCount;
+ UINT MacroInstructionCount;
+ UINT ArrayInstructionCount;
+ UINT MovInstructionCount;
+ UINT MovcInstructionCount;
+ UINT ConversionInstructionCount;
+ UINT BitwiseInstructionCount;
+ D3D_FEATURE_LEVEL MinFeatureLevel;
+ UINT64 RequiredFeatureFlags;
+ const char *Name;
+ INT FunctionParameterCount;
+ WINBOOL HasReturn;
+ WINBOOL Has10Level9VertexShader;
+ WINBOOL Has10Level9PixelShader;
+} D3D12_FUNCTION_DESC;
+typedef struct _D3D12_LIBRARY_DESC {
+ const char *Creator;
+ UINT Flags;
+ UINT FunctionCount;
+} D3D12_LIBRARY_DESC;
+#ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
+#define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
+typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
+#ifdef __cplusplus
+interface ID3D12ShaderReflectionConstantBuffer;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ID3D12ShaderReflectionType interface
+ */
+#ifndef __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
+#define __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e913c351-783d-48ca-a1d1-4f306284ad56")
+ID3D12ShaderReflectionType
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_SHADER_TYPE_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByIndex(
+ UINT index) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByName(
+ const char *name) = 0;
+
+ virtual const char * STDMETHODCALLTYPE GetMemberTypeName(
+ UINT index) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsEqual(
+ ID3D12ShaderReflectionType *type) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetSubType(
+ ) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetBaseClass(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetNumInterfaces(
+ ) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetInterfaceByIndex(
+ UINT index) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsOfType(
+ ID3D12ShaderReflectionType *type) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ImplementsInterface(
+ ID3D12ShaderReflectionType *base) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56)
+#endif
+#else
+typedef struct ID3D12ShaderReflectionTypeVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3D12ShaderReflectionType methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12ShaderReflectionType *This,
+ D3D12_SHADER_TYPE_DESC *desc);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByIndex)(
+ ID3D12ShaderReflectionType *This,
+ UINT index);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByName)(
+ ID3D12ShaderReflectionType *This,
+ const char *name);
+
+ const char * (STDMETHODCALLTYPE *GetMemberTypeName)(
+ ID3D12ShaderReflectionType *This,
+ UINT index);
+
+ HRESULT (STDMETHODCALLTYPE *IsEqual)(
+ ID3D12ShaderReflectionType *This,
+ ID3D12ShaderReflectionType *type);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetSubType)(
+ ID3D12ShaderReflectionType *This);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetBaseClass)(
+ ID3D12ShaderReflectionType *This);
+
+ UINT (STDMETHODCALLTYPE *GetNumInterfaces)(
+ ID3D12ShaderReflectionType *This);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetInterfaceByIndex)(
+ ID3D12ShaderReflectionType *This,
+ UINT index);
+
+ HRESULT (STDMETHODCALLTYPE *IsOfType)(
+ ID3D12ShaderReflectionType *This,
+ ID3D12ShaderReflectionType *type);
+
+ HRESULT (STDMETHODCALLTYPE *ImplementsInterface)(
+ ID3D12ShaderReflectionType *This,
+ ID3D12ShaderReflectionType *base);
+
+ END_INTERFACE
+} ID3D12ShaderReflectionTypeVtbl;
+
+interface ID3D12ShaderReflectionType {
+ CONST_VTBL ID3D12ShaderReflectionTypeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3D12ShaderReflectionType methods ***/
+#define ID3D12ShaderReflectionType_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12ShaderReflectionType_GetMemberTypeByIndex(This,index) (This)->lpVtbl->GetMemberTypeByIndex(This,index)
+#define ID3D12ShaderReflectionType_GetMemberTypeByName(This,name) (This)->lpVtbl->GetMemberTypeByName(This,name)
+#define ID3D12ShaderReflectionType_GetMemberTypeName(This,index) (This)->lpVtbl->GetMemberTypeName(This,index)
+#define ID3D12ShaderReflectionType_IsEqual(This,type) (This)->lpVtbl->IsEqual(This,type)
+#define ID3D12ShaderReflectionType_GetSubType(This) (This)->lpVtbl->GetSubType(This)
+#define ID3D12ShaderReflectionType_GetBaseClass(This) (This)->lpVtbl->GetBaseClass(This)
+#define ID3D12ShaderReflectionType_GetNumInterfaces(This) (This)->lpVtbl->GetNumInterfaces(This)
+#define ID3D12ShaderReflectionType_GetInterfaceByIndex(This,index) (This)->lpVtbl->GetInterfaceByIndex(This,index)
+#define ID3D12ShaderReflectionType_IsOfType(This,type) (This)->lpVtbl->IsOfType(This,type)
+#define ID3D12ShaderReflectionType_ImplementsInterface(This,base) (This)->lpVtbl->ImplementsInterface(This,base)
+#else
+/*** ID3D12ShaderReflectionType methods ***/
+static FORCEINLINE HRESULT ID3D12ShaderReflectionType_GetDesc(ID3D12ShaderReflectionType* This,D3D12_SHADER_TYPE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByIndex(ID3D12ShaderReflectionType* This,UINT index) {
+ return This->lpVtbl->GetMemberTypeByIndex(This,index);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByName(ID3D12ShaderReflectionType* This,const char *name) {
+ return This->lpVtbl->GetMemberTypeByName(This,name);
+}
+static FORCEINLINE const char * ID3D12ShaderReflectionType_GetMemberTypeName(ID3D12ShaderReflectionType* This,UINT index) {
+ return This->lpVtbl->GetMemberTypeName(This,index);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsEqual(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
+ return This->lpVtbl->IsEqual(This,type);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetSubType(ID3D12ShaderReflectionType* This) {
+ return This->lpVtbl->GetSubType(This);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetBaseClass(ID3D12ShaderReflectionType* This) {
+ return This->lpVtbl->GetBaseClass(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflectionType_GetNumInterfaces(ID3D12ShaderReflectionType* This) {
+ return This->lpVtbl->GetNumInterfaces(This);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetInterfaceByIndex(ID3D12ShaderReflectionType* This,UINT index) {
+ return This->lpVtbl->GetInterfaceByIndex(This,index);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsOfType(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
+ return This->lpVtbl->IsOfType(This,type);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflectionType_ImplementsInterface(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *base) {
+ return This->lpVtbl->ImplementsInterface(This,base);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12ShaderReflectionType_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12ShaderReflectionVariable interface
+ */
+#ifndef __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
+#define __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8337a8a6-a216-444a-b2f4-314733a73aea")
+ID3D12ShaderReflectionVariable
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_SHADER_VARIABLE_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetType(
+ ) = 0;
+
+ virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetBuffer(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetInterfaceSlot(
+ UINT index) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea)
+#endif
+#else
+typedef struct ID3D12ShaderReflectionVariableVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3D12ShaderReflectionVariable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12ShaderReflectionVariable *This,
+ D3D12_SHADER_VARIABLE_DESC *desc);
+
+ ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetType)(
+ ID3D12ShaderReflectionVariable *This);
+
+ ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetBuffer)(
+ ID3D12ShaderReflectionVariable *This);
+
+ UINT (STDMETHODCALLTYPE *GetInterfaceSlot)(
+ ID3D12ShaderReflectionVariable *This,
+ UINT index);
+
+ END_INTERFACE
+} ID3D12ShaderReflectionVariableVtbl;
+
+interface ID3D12ShaderReflectionVariable {
+ CONST_VTBL ID3D12ShaderReflectionVariableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3D12ShaderReflectionVariable methods ***/
+#define ID3D12ShaderReflectionVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12ShaderReflectionVariable_GetType(This) (This)->lpVtbl->GetType(This)
+#define ID3D12ShaderReflectionVariable_GetBuffer(This) (This)->lpVtbl->GetBuffer(This)
+#define ID3D12ShaderReflectionVariable_GetInterfaceSlot(This,index) (This)->lpVtbl->GetInterfaceSlot(This,index)
+#else
+/*** ID3D12ShaderReflectionVariable methods ***/
+static FORCEINLINE HRESULT ID3D12ShaderReflectionVariable_GetDesc(ID3D12ShaderReflectionVariable* This,D3D12_SHADER_VARIABLE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionVariable_GetType(ID3D12ShaderReflectionVariable* This) {
+ return This->lpVtbl->GetType(This);
+}
+static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflectionVariable_GetBuffer(ID3D12ShaderReflectionVariable* This) {
+ return This->lpVtbl->GetBuffer(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflectionVariable_GetInterfaceSlot(ID3D12ShaderReflectionVariable* This,UINT index) {
+ return This->lpVtbl->GetInterfaceSlot(This,index);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12ShaderReflectionConstantBuffer interface
+ */
+#ifndef __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
+#define __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c59598b4-48b3-4869-b9b1-b1618b14a8b7")
+ID3D12ShaderReflectionConstantBuffer
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_SHADER_BUFFER_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByIndex(
+ UINT index) = 0;
+
+ virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
+ const char *name) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7)
+#endif
+#else
+typedef struct ID3D12ShaderReflectionConstantBufferVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3D12ShaderReflectionConstantBuffer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12ShaderReflectionConstantBuffer *This,
+ D3D12_SHADER_BUFFER_DESC *desc);
+
+ ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByIndex)(
+ ID3D12ShaderReflectionConstantBuffer *This,
+ UINT index);
+
+ ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
+ ID3D12ShaderReflectionConstantBuffer *This,
+ const char *name);
+
+ END_INTERFACE
+} ID3D12ShaderReflectionConstantBufferVtbl;
+
+interface ID3D12ShaderReflectionConstantBuffer {
+ CONST_VTBL ID3D12ShaderReflectionConstantBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3D12ShaderReflectionConstantBuffer methods ***/
+#define ID3D12ShaderReflectionConstantBuffer_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(This,index) (This)->lpVtbl->GetVariableByIndex(This,index)
+#define ID3D12ShaderReflectionConstantBuffer_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
+#else
+/*** ID3D12ShaderReflectionConstantBuffer methods ***/
+static FORCEINLINE HRESULT ID3D12ShaderReflectionConstantBuffer_GetDesc(ID3D12ShaderReflectionConstantBuffer* This,D3D12_SHADER_BUFFER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(ID3D12ShaderReflectionConstantBuffer* This,UINT index) {
+ return This->lpVtbl->GetVariableByIndex(This,index);
+}
+static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByName(ID3D12ShaderReflectionConstantBuffer* This,const char *name) {
+ return This->lpVtbl->GetVariableByName(This,name);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12ShaderReflection interface
+ */
+#ifndef __ID3D12ShaderReflection_INTERFACE_DEFINED__
+#define __ID3D12ShaderReflection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5a58797d-a72c-478d-8ba2-efc6b0efe88e")
+ID3D12ShaderReflection : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_SHADER_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
+ UINT index) = 0;
+
+ virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
+ const char *name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
+ UINT index,
+ D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetInputParameterDesc(
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOutputParameterDesc(
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPatchConstantParameterDesc(
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
+ const char *name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
+ const char *name,
+ D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetMovInstructionCount(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetMovcInstructionCount(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetConversionInstructionCount(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetBitwiseInstructionCount(
+ ) = 0;
+
+ virtual D3D_PRIMITIVE STDMETHODCALLTYPE GetGSInputPrimitive(
+ ) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE IsSampleFrequencyShader(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetNumInterfaceSlots(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMinFeatureLevel(
+ D3D_FEATURE_LEVEL *level) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetThreadGroupSize(
+ UINT *sizex,
+ UINT *sizey,
+ UINT *sizez) = 0;
+
+ virtual UINT64 STDMETHODCALLTYPE GetRequiresFlags(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e)
+#endif
+#else
+typedef struct ID3D12ShaderReflectionVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12ShaderReflection *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12ShaderReflection *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12ShaderReflection *This);
+
+ /*** ID3D12ShaderReflection methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12ShaderReflection *This,
+ D3D12_SHADER_DESC *desc);
+
+ ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
+ ID3D12ShaderReflection *This,
+ UINT index);
+
+ ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
+ ID3D12ShaderReflection *This,
+ const char *name);
+
+ HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
+ ID3D12ShaderReflection *This,
+ UINT index,
+ D3D12_SHADER_INPUT_BIND_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetInputParameterDesc)(
+ ID3D12ShaderReflection *This,
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetOutputParameterDesc)(
+ ID3D12ShaderReflection *This,
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetPatchConstantParameterDesc)(
+ ID3D12ShaderReflection *This,
+ UINT index,
+ D3D12_SIGNATURE_PARAMETER_DESC *desc);
+
+ ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
+ ID3D12ShaderReflection *This,
+ const char *name);
+
+ HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
+ ID3D12ShaderReflection *This,
+ const char *name,
+ D3D12_SHADER_INPUT_BIND_DESC *desc);
+
+ UINT (STDMETHODCALLTYPE *GetMovInstructionCount)(
+ ID3D12ShaderReflection *This);
+
+ UINT (STDMETHODCALLTYPE *GetMovcInstructionCount)(
+ ID3D12ShaderReflection *This);
+
+ UINT (STDMETHODCALLTYPE *GetConversionInstructionCount)(
+ ID3D12ShaderReflection *This);
+
+ UINT (STDMETHODCALLTYPE *GetBitwiseInstructionCount)(
+ ID3D12ShaderReflection *This);
+
+ D3D_PRIMITIVE (STDMETHODCALLTYPE *GetGSInputPrimitive)(
+ ID3D12ShaderReflection *This);
+
+ WINBOOL (STDMETHODCALLTYPE *IsSampleFrequencyShader)(
+ ID3D12ShaderReflection *This);
+
+ UINT (STDMETHODCALLTYPE *GetNumInterfaceSlots)(
+ ID3D12ShaderReflection *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinFeatureLevel)(
+ ID3D12ShaderReflection *This,
+ D3D_FEATURE_LEVEL *level);
+
+ UINT (STDMETHODCALLTYPE *GetThreadGroupSize)(
+ ID3D12ShaderReflection *This,
+ UINT *sizex,
+ UINT *sizey,
+ UINT *sizez);
+
+ UINT64 (STDMETHODCALLTYPE *GetRequiresFlags)(
+ ID3D12ShaderReflection *This);
+
+ END_INTERFACE
+} ID3D12ShaderReflectionVtbl;
+
+interface ID3D12ShaderReflection {
+ CONST_VTBL ID3D12ShaderReflectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12ShaderReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12ShaderReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12ShaderReflection_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12ShaderReflection methods ***/
+#define ID3D12ShaderReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12ShaderReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
+#define ID3D12ShaderReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
+#define ID3D12ShaderReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
+#define ID3D12ShaderReflection_GetInputParameterDesc(This,index,desc) (This)->lpVtbl->GetInputParameterDesc(This,index,desc)
+#define ID3D12ShaderReflection_GetOutputParameterDesc(This,index,desc) (This)->lpVtbl->GetOutputParameterDesc(This,index,desc)
+#define ID3D12ShaderReflection_GetPatchConstantParameterDesc(This,index,desc) (This)->lpVtbl->GetPatchConstantParameterDesc(This,index,desc)
+#define ID3D12ShaderReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
+#define ID3D12ShaderReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
+#define ID3D12ShaderReflection_GetMovInstructionCount(This) (This)->lpVtbl->GetMovInstructionCount(This)
+#define ID3D12ShaderReflection_GetMovcInstructionCount(This) (This)->lpVtbl->GetMovcInstructionCount(This)
+#define ID3D12ShaderReflection_GetConversionInstructionCount(This) (This)->lpVtbl->GetConversionInstructionCount(This)
+#define ID3D12ShaderReflection_GetBitwiseInstructionCount(This) (This)->lpVtbl->GetBitwiseInstructionCount(This)
+#define ID3D12ShaderReflection_GetGSInputPrimitive(This) (This)->lpVtbl->GetGSInputPrimitive(This)
+#define ID3D12ShaderReflection_IsSampleFrequencyShader(This) (This)->lpVtbl->IsSampleFrequencyShader(This)
+#define ID3D12ShaderReflection_GetNumInterfaceSlots(This) (This)->lpVtbl->GetNumInterfaceSlots(This)
+#define ID3D12ShaderReflection_GetMinFeatureLevel(This,level) (This)->lpVtbl->GetMinFeatureLevel(This,level)
+#define ID3D12ShaderReflection_GetThreadGroupSize(This,sizex,sizey,sizez) (This)->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez)
+#define ID3D12ShaderReflection_GetRequiresFlags(This) (This)->lpVtbl->GetRequiresFlags(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12ShaderReflection_QueryInterface(ID3D12ShaderReflection* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12ShaderReflection_AddRef(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12ShaderReflection_Release(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12ShaderReflection methods ***/
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetDesc(ID3D12ShaderReflection* This,D3D12_SHADER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByIndex(ID3D12ShaderReflection* This,UINT index) {
+ return This->lpVtbl->GetConstantBufferByIndex(This,index);
+}
+static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByName(ID3D12ShaderReflection* This,const char *name) {
+ return This->lpVtbl->GetConstantBufferByName(This,name);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
+ return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetInputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
+ return This->lpVtbl->GetInputParameterDesc(This,index,desc);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetOutputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
+ return This->lpVtbl->GetOutputParameterDesc(This,index,desc);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetPatchConstantParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
+ return This->lpVtbl->GetPatchConstantParameterDesc(This,index,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflection_GetVariableByName(ID3D12ShaderReflection* This,const char *name) {
+ return This->lpVtbl->GetVariableByName(This,name);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDescByName(ID3D12ShaderReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
+ return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetMovInstructionCount(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetMovInstructionCount(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetMovcInstructionCount(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetMovcInstructionCount(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetConversionInstructionCount(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetConversionInstructionCount(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetBitwiseInstructionCount(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetBitwiseInstructionCount(This);
+}
+static FORCEINLINE D3D_PRIMITIVE ID3D12ShaderReflection_GetGSInputPrimitive(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetGSInputPrimitive(This);
+}
+static FORCEINLINE WINBOOL ID3D12ShaderReflection_IsSampleFrequencyShader(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->IsSampleFrequencyShader(This);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetNumInterfaceSlots(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetNumInterfaceSlots(This);
+}
+static FORCEINLINE HRESULT ID3D12ShaderReflection_GetMinFeatureLevel(ID3D12ShaderReflection* This,D3D_FEATURE_LEVEL *level) {
+ return This->lpVtbl->GetMinFeatureLevel(This,level);
+}
+static FORCEINLINE UINT ID3D12ShaderReflection_GetThreadGroupSize(ID3D12ShaderReflection* This,UINT *sizex,UINT *sizey,UINT *sizez) {
+ return This->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez);
+}
+static FORCEINLINE UINT64 ID3D12ShaderReflection_GetRequiresFlags(ID3D12ShaderReflection* This) {
+ return This->lpVtbl->GetRequiresFlags(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12ShaderReflection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12FunctionParameterReflection interface
+ */
+#ifndef __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
+#define __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ec25f42d-7006-4f2b-b33e-02cc3375733f")
+ID3D12FunctionParameterReflection
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_PARAMETER_DESC *desc) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f)
+#endif
+#else
+typedef struct ID3D12FunctionParameterReflectionVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3D12FunctionParameterReflection methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12FunctionParameterReflection *This,
+ D3D12_PARAMETER_DESC *desc);
+
+ END_INTERFACE
+} ID3D12FunctionParameterReflectionVtbl;
+
+interface ID3D12FunctionParameterReflection {
+ CONST_VTBL ID3D12FunctionParameterReflectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3D12FunctionParameterReflection methods ***/
+#define ID3D12FunctionParameterReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#else
+/*** ID3D12FunctionParameterReflection methods ***/
+static FORCEINLINE HRESULT ID3D12FunctionParameterReflection_GetDesc(ID3D12FunctionParameterReflection* This,D3D12_PARAMETER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12FunctionReflection interface
+ */
+#ifndef __ID3D12FunctionReflection_INTERFACE_DEFINED__
+#define __ID3D12FunctionReflection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1108795c-2772-4ba9-b2a8-d464dc7e2799")
+ID3D12FunctionReflection
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_FUNCTION_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
+ UINT index) = 0;
+
+ virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
+ const char *name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
+ UINT index,
+ D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
+
+ virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
+ const char *name) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
+ const char *name,
+ D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
+
+ virtual ID3D12FunctionParameterReflection * STDMETHODCALLTYPE GetFunctionParameter(
+ INT index) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99)
+#endif
+#else
+typedef struct ID3D12FunctionReflectionVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3D12FunctionReflection methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12FunctionReflection *This,
+ D3D12_FUNCTION_DESC *desc);
+
+ ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
+ ID3D12FunctionReflection *This,
+ UINT index);
+
+ ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
+ ID3D12FunctionReflection *This,
+ const char *name);
+
+ HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
+ ID3D12FunctionReflection *This,
+ UINT index,
+ D3D12_SHADER_INPUT_BIND_DESC *desc);
+
+ ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
+ ID3D12FunctionReflection *This,
+ const char *name);
+
+ HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
+ ID3D12FunctionReflection *This,
+ const char *name,
+ D3D12_SHADER_INPUT_BIND_DESC *desc);
+
+ ID3D12FunctionParameterReflection * (STDMETHODCALLTYPE *GetFunctionParameter)(
+ ID3D12FunctionReflection *This,
+ INT index);
+
+ END_INTERFACE
+} ID3D12FunctionReflectionVtbl;
+
+interface ID3D12FunctionReflection {
+ CONST_VTBL ID3D12FunctionReflectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3D12FunctionReflection methods ***/
+#define ID3D12FunctionReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12FunctionReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
+#define ID3D12FunctionReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
+#define ID3D12FunctionReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
+#define ID3D12FunctionReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
+#define ID3D12FunctionReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
+#define ID3D12FunctionReflection_GetFunctionParameter(This,index) (This)->lpVtbl->GetFunctionParameter(This,index)
+#else
+/*** ID3D12FunctionReflection methods ***/
+static FORCEINLINE HRESULT ID3D12FunctionReflection_GetDesc(ID3D12FunctionReflection* This,D3D12_FUNCTION_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByIndex(ID3D12FunctionReflection* This,UINT index) {
+ return This->lpVtbl->GetConstantBufferByIndex(This,index);
+}
+static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByName(ID3D12FunctionReflection* This,const char *name) {
+ return This->lpVtbl->GetConstantBufferByName(This,name);
+}
+static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDesc(ID3D12FunctionReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
+ return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
+}
+static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12FunctionReflection_GetVariableByName(ID3D12FunctionReflection* This,const char *name) {
+ return This->lpVtbl->GetVariableByName(This,name);
+}
+static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDescByName(ID3D12FunctionReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
+ return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
+}
+static FORCEINLINE ID3D12FunctionParameterReflection * ID3D12FunctionReflection_GetFunctionParameter(ID3D12FunctionReflection* This,INT index) {
+ return This->lpVtbl->GetFunctionParameter(This,index);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12FunctionReflection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12LibraryReflection interface
+ */
+#ifndef __ID3D12LibraryReflection_INTERFACE_DEFINED__
+#define __ID3D12LibraryReflection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8e349d19-54db-4a56-9dc9-119d87bdb804")
+ID3D12LibraryReflection : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ D3D12_LIBRARY_DESC *desc) = 0;
+
+ virtual ID3D12FunctionReflection * STDMETHODCALLTYPE GetFunctionByIndex(
+ INT index) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04)
+#endif
+#else
+typedef struct ID3D12LibraryReflectionVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D12LibraryReflection *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D12LibraryReflection *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D12LibraryReflection *This);
+
+ /*** ID3D12LibraryReflection methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ ID3D12LibraryReflection *This,
+ D3D12_LIBRARY_DESC *desc);
+
+ ID3D12FunctionReflection * (STDMETHODCALLTYPE *GetFunctionByIndex)(
+ ID3D12LibraryReflection *This,
+ INT index);
+
+ END_INTERFACE
+} ID3D12LibraryReflectionVtbl;
+
+interface ID3D12LibraryReflection {
+ CONST_VTBL ID3D12LibraryReflectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12LibraryReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12LibraryReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12LibraryReflection_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12LibraryReflection methods ***/
+#define ID3D12LibraryReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define ID3D12LibraryReflection_GetFunctionByIndex(This,index) (This)->lpVtbl->GetFunctionByIndex(This,index)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12LibraryReflection_QueryInterface(ID3D12LibraryReflection* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12LibraryReflection_AddRef(ID3D12LibraryReflection* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12LibraryReflection_Release(ID3D12LibraryReflection* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D12LibraryReflection methods ***/
+static FORCEINLINE HRESULT ID3D12LibraryReflection_GetDesc(ID3D12LibraryReflection* This,D3D12_LIBRARY_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE ID3D12FunctionReflection * ID3D12LibraryReflection_GetFunctionByIndex(ID3D12LibraryReflection* This,INT index) {
+ return This->lpVtbl->GetFunctionByIndex(This,index);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D12LibraryReflection_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d12shader_h__ */
diff --git a/d3d8.h b/d3d8.h
new file mode 100644
index 0000000..856c084
--- /dev/null
+++ b/d3d8.h
@@ -0,0 +1,1154 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2002 Jason Edmeades
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D8_H
+#define __WINE_D3D8_H
+
+#ifndef DIRECT3D_VERSION
+#define DIRECT3D_VERSION 0x0800
+#endif
+
+#include <stdlib.h>
+
+#define COM_NO_WINDOWS_H
+#include <objbase.h>
+#include <windows.h>
+#include <d3d8types.h>
+#include <d3d8caps.h>
+
+/*****************************************************************************
+ * Behavior Flags for IDirect3D8::CreateDevice
+ */
+#define D3DCREATE_FPU_PRESERVE __MSABI_LONG(0x00000002)
+#define D3DCREATE_MULTITHREADED __MSABI_LONG(0x00000004)
+#define D3DCREATE_PUREDEVICE __MSABI_LONG(0x00000010)
+#define D3DCREATE_SOFTWARE_VERTEXPROCESSING __MSABI_LONG(0x00000020)
+#define D3DCREATE_HARDWARE_VERTEXPROCESSING __MSABI_LONG(0x00000040)
+#define D3DCREATE_MIXED_VERTEXPROCESSING __MSABI_LONG(0x00000080)
+
+/*****************************************************************************
+ * Flags for SetPrivateData
+ */
+#define D3DSPD_IUNKNOWN __MSABI_LONG(0x00000001)
+
+/*****************************************************************************
+ * #defines and error codes
+ */
+#define D3D_SDK_VERSION 220
+#define D3DADAPTER_DEFAULT 0
+#define D3DENUM_NO_WHQL_LEVEL 2
+
+#define _FACD3D 0x876
+#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
+
+/*
+ * Direct3D Errors
+ */
+#define D3D_OK S_OK
+#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
+#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
+#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
+#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
+#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
+#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
+#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
+#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
+#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
+#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
+#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
+#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
+
+#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
+#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
+#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
+#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
+#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
+#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
+#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
+#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
+#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
+
+/*****************************************************************************
+ * Predeclare the interfaces
+ */
+DEFINE_GUID(IID_IDirect3D8, 0x1DD9E8DA,0x1C77,0x4D40,0xB0,0xCF,0x98,0xFE,0xFD,0xFF,0x95,0x12);
+typedef struct IDirect3D8 *LPDIRECT3D8;
+
+DEFINE_GUID(IID_IDirect3DDevice8, 0x7385E5DF,0x8FE8,0x41D5,0x86,0xB6,0xD7,0xB4,0x85,0x47,0xB6,0xCF);
+typedef struct IDirect3DDevice8 *LPDIRECT3DDEVICE8;
+
+DEFINE_GUID(IID_IDirect3DResource8, 0x1B36BB7B,0x09B7,0x410A,0xB4,0x45,0x7D,0x14,0x30,0xD7,0xB3,0x3F);
+typedef struct IDirect3DResource8 *LPDIRECT3DRESOURCE8, *PDIRECT3DRESOURCE8;
+
+DEFINE_GUID(IID_IDirect3DVertexBuffer8, 0x8AEEEAC7,0x05F9,0x44D4,0xB5,0x91,0x00,0x0B,0x0D,0xF1,0xCB,0x95);
+typedef struct IDirect3DVertexBuffer8 *LPDIRECT3DVERTEXBUFFER8, *PDIRECT3DVERTEXBUFFER8;
+
+DEFINE_GUID(IID_IDirect3DVolume8, 0xBD7349F5,0x14F1,0x42E4,0x9C,0x79,0x97,0x23,0x80,0xDB,0x40,0xC0);
+typedef struct IDirect3DVolume8 *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
+
+DEFINE_GUID(IID_IDirect3DSwapChain8, 0x928C088B,0x76B9,0x4C6B,0xA5,0x36,0xA5,0x90,0x85,0x38,0x76,0xCD);
+typedef struct IDirect3DSwapChain8 *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
+
+DEFINE_GUID(IID_IDirect3DSurface8, 0xB96EEBCA,0xB326,0x4EA5,0x88,0x2F,0x2F,0xF5,0xBA,0xE0,0x21,0xDD);
+typedef struct IDirect3DSurface8 *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
+
+DEFINE_GUID(IID_IDirect3DIndexBuffer8, 0x0E689C9A,0x053D,0x44A0,0x9D,0x92,0xDB,0x0E,0x3D,0x75,0x0F,0x86);
+typedef struct IDirect3DIndexBuffer8 *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
+
+DEFINE_GUID(IID_IDirect3DBaseTexture8, 0xB4211CFA,0x51B9,0x4A9F,0xAB,0x78,0xDB,0x99,0xB2,0xBB,0x67,0x8E);
+typedef struct IDirect3DBaseTexture8 *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
+
+DEFINE_GUID(IID_IDirect3DTexture8, 0xE4CDD575,0x2866,0x4F01,0xB1,0x2E,0x7E,0xEC,0xE1,0xEC,0x93,0x58);
+typedef struct IDirect3DTexture8 *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
+
+DEFINE_GUID(IID_IDirect3DCubeTexture8, 0x3EE5B968,0x2ACA,0x4C34,0x8B,0xB5,0x7E,0x0C,0x3D,0x19,0xB7,0x50);
+typedef struct IDirect3DCubeTexture8 *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
+
+DEFINE_GUID(IID_IDirect3DVolumeTexture8, 0x4B8AAAFA,0x140F,0x42BA,0x91,0x31,0x59,0x7E,0xAF,0xAA,0x2E,0xAD);
+typedef struct IDirect3DVolumeTexture8 *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
+
+/*****************************************************************************
+ * IDirect3D8 interface
+ */
+#undef INTERFACE
+#define INTERFACE IDirect3D8
+DECLARE_INTERFACE_(IDirect3D8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D8 methods ***/
+ STDMETHOD(RegisterSoftwareDevice)(THIS_ void * pInitializeFunction) PURE;
+ STDMETHOD_(UINT,GetAdapterCount )(THIS) PURE;
+ STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER8 * pIdentifier) PURE;
+ STDMETHOD_(UINT,GetAdapterModeCount)(THIS_ UINT Adapter) PURE;
+ STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, UINT Mode, D3DDISPLAYMODE * pMode) PURE;
+ STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE * pMode) PURE;
+ STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter, D3DDEVTYPE CheckType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, WINBOOL Windowed) PURE;
+ STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
+ STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, WINBOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType) PURE;
+ STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS8 * pCaps) PURE;
+ STDMETHOD_(HMONITOR,GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
+ STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType,HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS * pPresentationParameters, struct IDirect3DDevice8 ** ppReturnedDeviceInterface) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D8 methods ***/
+#define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
+#define IDirect3D8_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
+#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
+#define IDirect3D8_GetAdapterModeCount(p,a) (p)->lpVtbl->GetAdapterModeCount(p,a)
+#define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->lpVtbl->EnumAdapterModes(p,a,b,c)
+#define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
+#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
+#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
+#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e)
+#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
+#define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
+#define IDirect3D8_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
+#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D8_AddRef(p) (p)->AddRef()
+#define IDirect3D8_Release(p) (p)->Release()
+/*** IDirect3D8 methods ***/
+#define IDirect3D8_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
+#define IDirect3D8_GetAdapterCount(p) (p)->GetAdapterCount()
+#define IDirect3D8_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
+#define IDirect3D8_GetAdapterModeCount(p,a) (p)->GetAdapterModeCount(a)
+#define IDirect3D8_EnumAdapterModes(p,a,b,c) (p)->EnumAdapterModes(a,b,c)
+#define IDirect3D8_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
+#define IDirect3D8_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
+#define IDirect3D8_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
+#define IDirect3D8_CheckDeviceMultiSampleType(p,a,b,c,d,e) (p)->CheckDeviceMultiSampleType(a,b,c,d,e)
+#define IDirect3D8_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
+#define IDirect3D8_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
+#define IDirect3D8_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
+#define IDirect3D8_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVolume8 interface
+ */
+#define INTERFACE IDirect3DVolume8
+DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVolume8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
+ STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+ STDMETHOD(UnlockBox)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVolume8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolume8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolume8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVolume8 methods ***/
+#define IDirect3DVolume8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolume8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolume8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DVolume8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DVolume8_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
+#define IDirect3DVolume8_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVolume8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVolume8_AddRef(p) (p)->AddRef()
+#define IDirect3DVolume8_Release(p) (p)->Release()
+/*** IDirect3DVolume8 methods ***/
+#define IDirect3DVolume8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVolume8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVolume8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVolume8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVolume8_GetContainer(p,a,b) (p)->GetContainer(a,b)
+#define IDirect3DVolume8_GetDesc(p,a) (p)->GetDesc(a)
+#define IDirect3DVolume8_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
+#define IDirect3DVolume8_UnlockBox(p) (p)->UnlockBox()
+#endif
+
+/*****************************************************************************
+ * IDirect3DSwapChain8 interface
+ */
+#define INTERFACE IDirect3DSwapChain8
+DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DSwapChain8 methods ***/
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
+ const RGNDATA *dirty_region) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSwapChain8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSwapChain8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DSwapChain8 methods ***/
+#define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
+#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DSwapChain8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DSwapChain8_AddRef(p) (p)->AddRef()
+#define IDirect3DSwapChain8_Release(p) (p)->Release()
+/*** IDirect3DSwapChain8 methods ***/
+#define IDirect3DSwapChain8_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
+#define IDirect3DSwapChain8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DSurface8 interface
+ */
+#define INTERFACE IDirect3DSurface8
+DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DSurface8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void * pData,DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD(GetContainer)(THIS_ REFIID riid, void ** ppContainer) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
+ STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DSurface8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSurface8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSurface8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DSurface8 methods ***/
+#define IDirect3DSurface8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DSurface8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DSurface8_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DSurface8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DSurface8_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
+#define IDirect3DSurface8_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DSurface8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DSurface8_AddRef(p) (p)->AddRef()
+#define IDirect3DSurface8_Release(p) (p)->Release()
+/*** IDirect3DSurface8 methods ***/
+#define IDirect3DSurface8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DSurface8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DSurface8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DSurface8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DSurface8_GetContainer(p,a,b) (p)->GetContainer(a,b)
+#define IDirect3DSurface8_GetDesc(p,a) (p)->GetDesc(a)
+#define IDirect3DSurface8_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
+#define IDirect3DSurface8_UnlockRect(p) (p)->UnlockRect()
+#endif
+
+/*****************************************************************************
+ * IDirect3DResource8 interface
+ */
+#define INTERFACE IDirect3DResource8
+DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DResource8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DResource8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DResource8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DResource8 methods ***/
+#define IDirect3DResource8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DResource8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DResource8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DResource8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DResource8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DResource8_GetType(p) (p)->lpVtbl->GetType(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DResource8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DResource8_AddRef(p) (p)->AddRef()
+#define IDirect3DResource8_Release(p) (p)->Release()
+/*** IDirect3DResource8 methods ***/
+#define IDirect3DResource8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DResource8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DResource8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DResource8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DResource8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DResource8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DResource8_GetType(p) (p)->GetType()
+#endif
+
+/*****************************************************************************
+ * IDirect3DVertexBuffer8 interface
+ */
+#define INTERFACE IDirect3DVertexBuffer8
+DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DVertexBuffer8 methods ***/
+ STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC * pDesc) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexBuffer8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
+#define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVertexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVertexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVertexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DVertexBuffer8 methods ***/
+#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DVertexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexBuffer8_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexBuffer8_Release(p) (p)->Release()
+/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
+#define IDirect3DVertexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVertexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVertexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DVertexBuffer8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DVertexBuffer8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DVertexBuffer8_GetType(p) (p)->GetType()
+/*** IDirect3DVertexBuffer8 methods ***/
+#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
+#define IDirect3DVertexBuffer8_Unlock(p) (p)->Unlock()
+#define IDirect3DVertexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DIndexBuffer8 interface
+ */
+#define INTERFACE IDirect3DIndexBuffer8
+DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DIndexBuffer8 methods ***/
+ STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, BYTE ** ppbData, DWORD Flags) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC * pDesc) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DIndexBuffer8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DIndexBuffer8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
+#define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DIndexBuffer8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DIndexBuffer8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DIndexBuffer8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DIndexBuffer8 methods ***/
+#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DIndexBuffer8_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DIndexBuffer8_AddRef(p) (p)->AddRef()
+#define IDirect3DIndexBuffer8_Release(p) (p)->Release()
+/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
+#define IDirect3DIndexBuffer8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DIndexBuffer8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DIndexBuffer8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DIndexBuffer8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DIndexBuffer8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DIndexBuffer8_GetType(p) (p)->GetType()
+/*** IDirect3DIndexBuffer8 methods ***/
+#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
+#define IDirect3DIndexBuffer8_Unlock(p) (p)->Unlock()
+#define IDirect3DIndexBuffer8_GetDesc(p,a) (p)->GetDesc(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DBaseTexture8 interface
+ */
+#define INTERFACE IDirect3DBaseTexture8
+DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture8 methods ***/
+ STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DBaseTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DBaseTexture8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DBaseTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DBaseTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DBaseTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DBaseTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DBaseTexture8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DBaseTexture8 methods ***/
+#define IDirect3DBaseTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DBaseTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DBaseTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DBaseTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DBaseTexture8_AddRef(p) (p)->AddRef()
+#define IDirect3DBaseTexture8_Release(p) (p)->Release()
+/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DBaseTexture8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DBaseTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DBaseTexture8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DBaseTexture8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DBaseTexture8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DBaseTexture8_GetType(p) (p)->GetType()
+/*** IDirect3DBaseTexture8 methods ***/
+#define IDirect3DBaseTexture8_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DBaseTexture8_GetLOD(p) (p)->GetLOD()
+#define IDirect3DBaseTexture8_GetLevelCount(p) (p)->GetLevelCount()
+#endif
+
+/*****************************************************************************
+ * IDirect3DCubeTexture8 interface
+ */
+#define INTERFACE IDirect3DCubeTexture8
+DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture8 methods ***/
+ STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
+ /*** IDirect3DCubeTexture8 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
+ STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
+ STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect,
+ const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType,UINT Level) PURE;
+ STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DCubeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DCubeTexture8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DCubeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DCubeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DCubeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DCubeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DCubeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DCubeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DCubeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DCubeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+/*** IDirect3DCubeTexture8 methods ***/
+#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
+#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
+#define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
+#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DCubeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DCubeTexture8_AddRef(p) (p)->AddRef()
+#define IDirect3DCubeTexture8_Release(p) (p)->Release()
+/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DCubeTexture8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DCubeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DCubeTexture8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DCubeTexture8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DCubeTexture8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DCubeTexture8_GetType(p) (p)->GetType()
+/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DCubeTexture8_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DCubeTexture8_GetLOD(p) (p)->GetLOD()
+#define IDirect3DCubeTexture8_GetLevelCount(p) (p)->GetLevelCount()
+/*** IDirect3DCubeTexture8 methods ***/
+#define IDirect3DCubeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DCubeTexture8_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
+#define IDirect3DCubeTexture8_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
+#define IDirect3DCubeTexture8_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
+#define IDirect3DCubeTexture8_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DTexture8 interface
+ */
+#define INTERFACE IDirect3DTexture8
+DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture8 methods ***/
+ STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
+ /*** IDirect3DTexture8 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC * pDesc) PURE;
+ STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
+ STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
+ STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DTexture8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DTexture8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+/*** IDirect3DTexture8 methods ***/
+#define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
+#define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
+#define IDirect3DTexture8_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
+#define IDirect3DTexture8_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DTexture8_AddRef(p) (p)->AddRef()
+#define IDirect3DTexture8_Release(p) (p)->Release()
+/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DTexture8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DTexture8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DTexture8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DTexture8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DTexture8_GetType(p) (p)->GetType()
+/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DTexture8_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DTexture8_GetLOD(p) (p)->GetLOD()
+#define IDirect3DTexture8_GetLevelCount(p) (p)->GetLevelCount()
+/*** IDirect3DTexture8 methods ***/
+#define IDirect3DTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DTexture8_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
+#define IDirect3DTexture8_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
+#define IDirect3DTexture8_UnlockRect(p,a) (p)->UnlockRect(a)
+#define IDirect3DTexture8_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVolumeTexture8 interface
+ */
+#define INTERFACE IDirect3DVolumeTexture8
+DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource8 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void * pData, DWORD * pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD,GetPriority)(THIS) PURE;
+ STDMETHOD_(void,PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE,GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture8 methods ***/
+ STDMETHOD_(DWORD,SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD,GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD,GetLevelCount)(THIS) PURE;
+ /*** IDirect3DVolumeTexture8 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DVOLUME_DESC * pDesc) PURE;
+ STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
+ STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+ STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
+ STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolumeTexture8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolumeTexture8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVolumeTexture8_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVolumeTexture8_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVolumeTexture8_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DVolumeTexture8_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+/*** IDirect3DVolumeTexture8 methods ***/
+#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
+#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
+#define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
+#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVolumeTexture8_AddRef(p) (p)->AddRef()
+#define IDirect3DVolumeTexture8_Release(p) (p)->Release()
+/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
+#define IDirect3DVolumeTexture8_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVolumeTexture8_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVolumeTexture8_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DVolumeTexture8_GetPriority(p) (p)->GetPriority()
+#define IDirect3DVolumeTexture8_PreLoad(p) (p)->PreLoad()
+#define IDirect3DVolumeTexture8_GetType(p) (p)->GetType()
+/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
+#define IDirect3DVolumeTexture8_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DVolumeTexture8_GetLOD(p) (p)->GetLOD()
+#define IDirect3DVolumeTexture8_GetLevelCount(p) (p)->GetLevelCount()
+/*** IDirect3DVolumeTexture8 methods ***/
+#define IDirect3DVolumeTexture8_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DVolumeTexture8_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
+#define IDirect3DVolumeTexture8_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
+#define IDirect3DVolumeTexture8_UnlockBox(p,a) (p)->UnlockBox(a)
+#define IDirect3DVolumeTexture8_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DDevice8 interface
+ */
+#define INTERFACE IDirect3DDevice8
+DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice8 methods ***/
+ STDMETHOD(TestCooperativeLevel)(THIS) PURE;
+ STDMETHOD_(UINT,GetAvailableTextureMem)(THIS) PURE;
+ STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD Bytes) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D8 ** ppD3D8) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS8 * pCaps) PURE;
+ STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE * pMode) PURE;
+ STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS * pParameters) PURE;
+ STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface8 * pCursorBitmap) PURE;
+ STDMETHOD_(void,SetCursorPosition)(THIS_ UINT XScreenSpace, UINT YScreenSpace,DWORD Flags) PURE;
+ STDMETHOD_(WINBOOL,ShowCursor)(THIS_ WINBOOL bShow) PURE;
+ STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
+ STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
+ const RGNDATA *dirty_region) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
+ STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
+ STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+ STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
+ STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8 ** ppTexture) PURE;
+ STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
+ STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture8 ** ppCubeTexture) PURE;
+ STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer8 ** ppVertexBuffer) PURE;
+ STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer8 ** ppIndexBuffer) PURE;
+ STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,WINBOOL Lockable,IDirect3DSurface8 ** ppSurface) PURE;
+ STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
+ STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8 ** ppSurface) PURE;
+ STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 *src_surface, const RECT *src_rects,
+ UINT rect_count, IDirect3DSurface8 *dst_surface, const POINT *dst_points) PURE;
+ STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
+ STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ IDirect3DSurface8 ** ppRenderTarget) PURE;
+ STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags, D3DCOLOR color,
+ float z, DWORD stencil) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State,D3DMATRIX * pMatrix) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT8 *viewport) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
+ STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL8 *material) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
+ STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT8 *light) PURE;
+ STDMETHOD(GetLight)(THIS_ DWORD Index,D3DLIGHT8 * pLight) PURE;
+ STDMETHOD(LightEnable)(THIS_ DWORD Index,WINBOOL Enable) PURE;
+ STDMETHOD(GetLightEnable)(THIS_ DWORD Index,WINBOOL * pEnable) PURE;
+ STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
+ STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float * pPlane) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD Value) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State,DWORD * pValue) PURE;
+ STDMETHOD(BeginStateBlock)(THIS) PURE;
+ STDMETHOD(EndStateBlock)(THIS_ DWORD * pToken) PURE;
+ STDMETHOD(ApplyStateBlock)(THIS_ DWORD Token) PURE;
+ STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token) PURE;
+ STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token) PURE;
+ STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type,DWORD * pToken) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS8 *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
+ STDMETHOD(GetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD Stage,IDirect3DBaseTexture8 * pTexture) PURE;
+ STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD * pValue) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) PURE;
+ STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
+ STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void * pDevInfoStruct,DWORD DevInfoStructSize) PURE;
+ STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+ STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY * pEntries) PURE;
+ STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
+ STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT * PaletteNumber) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) PURE;
+ STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT primitive_count,
+ const void *data, UINT stride) PURE;
+ STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx,
+ UINT vertex_count, UINT primitive_count, const void *index_data, D3DFORMAT index_format,
+ const void *data, UINT stride) PURE;
+ STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD Flags) PURE;
+ STDMETHOD(CreateVertexShader)(THIS_ const DWORD *declaration, const DWORD *byte_code,
+ DWORD *shader, DWORD usage) PURE;
+ STDMETHOD(SetVertexShader)(THIS_ DWORD Handle) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
+ STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle) PURE;
+ STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
+ STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
+ STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
+ STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
+ STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 * pStreamData,UINT Stride) PURE;
+ STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
+ STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT BaseVertexIndex) PURE;
+ STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
+ STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, DWORD *shader) PURE;
+ STDMETHOD(SetPixelShader)(THIS_ DWORD Handle) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
+ STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle) PURE;
+ STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
+ STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void * pConstantData,DWORD ConstantCount) PURE;
+ STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void * pData,DWORD * pSizeOfData) PURE;
+ STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count,
+ const D3DRECTPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count,
+ const D3DTRIPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice8_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice8_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice8_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice8 methods ***/
+#define IDirect3DDevice8_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
+#define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
+#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->lpVtbl->ResourceManagerDiscardBytes(p,a)
+#define IDirect3DDevice8_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
+#define IDirect3DDevice8_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
+#define IDirect3DDevice8_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
+#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
+#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
+#define IDirect3DDevice8_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
+#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
+#define IDirect3DDevice8_Reset(p,a) (p)->lpVtbl->Reset(p,a)
+#define IDirect3DDevice8_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
+#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
+#define IDirect3DDevice8_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
+#define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
+#define IDirect3DDevice8_GetGammaRamp(p,a) (p)->lpVtbl->GetGammaRamp(p,a)
+#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->lpVtbl->CreateImageSurface(p,a,b,c,d)
+#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->lpVtbl->CopyRects(p,a,b,c,d,e)
+#define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
+#define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->lpVtbl->GetFrontBuffer(p,a)
+#define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice8_GetRenderTarget(p,a) (p)->lpVtbl->GetRenderTarget(p,a)
+#define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
+#define IDirect3DDevice8_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice8_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
+#define IDirect3DDevice8_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice8_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice8_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DDevice8_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DDevice8_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DDevice8_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DDevice8_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DDevice8_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
+#define IDirect3DDevice8_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
+#define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
+#define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
+#define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
+#define IDirect3DDevice8_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice8_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice8_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
+#define IDirect3DDevice8_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
+#define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->lpVtbl->ApplyStateBlock(p,a)
+#define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->lpVtbl->CaptureStateBlock(p,a)
+#define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->lpVtbl->DeleteStateBlock(p,a)
+#define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
+#define IDirect3DDevice8_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice8_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice8_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice8_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice8_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->lpVtbl->GetInfo(p,a,b,c)
+#define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
+#define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
+#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
+#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
+#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
+#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e)
+#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
+#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e)
+#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->lpVtbl->CreateVertexShader(p,a,b,c,d)
+#define IDirect3DDevice8_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
+#define IDirect3DDevice8_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
+#define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->lpVtbl->DeleteVertexShader(p,a)
+#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->lpVtbl->GetVertexShaderDeclaration(p,a,b,c)
+#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->lpVtbl->GetVertexShaderFunction(p,a,b,c)
+#define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->lpVtbl->SetStreamSource(p,a,b,c)
+#define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->lpVtbl->GetStreamSource(p,a,b,c)
+#define IDirect3DDevice8_SetIndices(p,a,b) (p)->lpVtbl->SetIndices(p,a,b)
+#define IDirect3DDevice8_GetIndices(p,a,b) (p)->lpVtbl->GetIndices(p,a,b)
+#define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
+#define IDirect3DDevice8_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
+#define IDirect3DDevice8_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
+#define IDirect3DDevice8_DeletePixelShader(p,a) (p)->lpVtbl->DeletePixelShader(p,a)
+#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstant(p,a,b,c)
+#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->lpVtbl->GetPixelShaderFunction(p,a,b,c)
+#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
+#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
+#define IDirect3DDevice8_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice8_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice8_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice8_Release(p) (p)->Release()
+/*** IDirect3DDevice8 methods ***/
+#define IDirect3DDevice8_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
+#define IDirect3DDevice8_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
+#define IDirect3DDevice8_ResourceManagerDiscardBytes(p,a) (p)->ResourceManagerDiscardBytes(a)
+#define IDirect3DDevice8_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice8_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
+#define IDirect3DDevice8_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
+#define IDirect3DDevice8_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
+#define IDirect3DDevice8_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
+#define IDirect3DDevice8_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
+#define IDirect3DDevice8_ShowCursor(p,a) (p)->ShowCursor(a)
+#define IDirect3DDevice8_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
+#define IDirect3DDevice8_Reset(p,a) (p)->Reset(a)
+#define IDirect3DDevice8_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
+#define IDirect3DDevice8_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
+#define IDirect3DDevice8_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
+#define IDirect3DDevice8_SetGammaRamp(p,a,b) (p)->SetGammaRamp(a,b)
+#define IDirect3DDevice8_GetGammaRamp(p,a) (p)->GetGammaRamp(a)
+#define IDirect3DDevice8_CreateTexture(p,a,b,c,d,e,f,g) (p)->CreateTexture(a,b,c,d,e,f,g)
+#define IDirect3DDevice8_CreateVolumeTexture(p,a,b,c,d,e,f,g,h) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_CreateCubeTexture(p,a,b,c,d,e,f) (p)->CreateCubeTexture(a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateVertexBuffer(p,a,b,c,d,e) (p)->CreateVertexBuffer(a,b,c,d,e)
+#define IDirect3DDevice8_CreateIndexBuffer(p,a,b,c,d,e) (p)->CreateIndexBuffer(a,b,c,d,e)
+#define IDirect3DDevice8_CreateRenderTarget(p,a,b,c,d,e,f) (p)->CreateRenderTarget(a,b,c,d,e,f)
+#define IDirect3DDevice8_CreateDepthStencilSurface(p,a,b,c,d,e) (p)->CreateDepthStencilSurface(a,b,c,d,e)
+#define IDirect3DDevice8_CreateImageSurface(p,a,b,c,d) (p)->CreateImageSurface(a,b,c,d)
+#define IDirect3DDevice8_CopyRects(p,a,b,c,d,e) (p)->CopyRects(a,b,c,d,e)
+#define IDirect3DDevice8_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
+#define IDirect3DDevice8_GetFrontBuffer(p,a) (p)->GetFrontBuffer(a)
+#define IDirect3DDevice8_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice8_GetRenderTarget(p,a) (p)->GetRenderTarget(a)
+#define IDirect3DDevice8_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
+#define IDirect3DDevice8_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice8_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice8_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
+#define IDirect3DDevice8_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice8_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice8_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice8_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DDevice8_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DDevice8_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DDevice8_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DDevice8_SetLight(p,a,b) (p)->SetLight(a,b)
+#define IDirect3DDevice8_GetLight(p,a,b) (p)->GetLight(a,b)
+#define IDirect3DDevice8_LightEnable(p,a,b) (p)->LightEnable(a,b)
+#define IDirect3DDevice8_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
+#define IDirect3DDevice8_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
+#define IDirect3DDevice8_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
+#define IDirect3DDevice8_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice8_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice8_BeginStateBlock(p) (p)->BeginStateBlock()
+#define IDirect3DDevice8_EndStateBlock(p,a) (p)->EndStateBlock(a)
+#define IDirect3DDevice8_ApplyStateBlock(p,a) (p)->ApplyStateBlock(a)
+#define IDirect3DDevice8_CaptureStateBlock(p,a) (p)->CaptureStateBlock(a)
+#define IDirect3DDevice8_DeleteStateBlock(p,a) (p)->DeleteStateBlock(a)
+#define IDirect3DDevice8_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
+#define IDirect3DDevice8_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice8_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#define IDirect3DDevice8_GetTexture(p,a,b) (p)->GetTexture(a,b)
+#define IDirect3DDevice8_SetTexture(p,a,b) (p)->SetTexture(a,b)
+#define IDirect3DDevice8_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
+#define IDirect3DDevice8_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
+#define IDirect3DDevice8_ValidateDevice(p,a) (p)->ValidateDevice(a)
+#define IDirect3DDevice8_GetInfo(p,a,b,c) (p)->GetInfo(a,b,c)
+#define IDirect3DDevice8_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
+#define IDirect3DDevice8_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
+#define IDirect3DDevice8_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
+#define IDirect3DDevice8_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
+#define IDirect3DDevice8_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
+#define IDirect3DDevice8_DrawIndexedPrimitive(p,a,b,c,d,e) (p)->DrawIndexedPrimitive(a,b,c,d,e)
+#define IDirect3DDevice8_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
+#define IDirect3DDevice8_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice8_ProcessVertices(p,a,b,c,d,e) (p)->processVertices(a,b,c,d,e)
+#define IDirect3DDevice8_CreateVertexShader(p,a,b,c,d) (p)->CreateVertexShader(a,b,c,d)
+#define IDirect3DDevice8_SetVertexShader(p,a) (p)->SetVertexShader(a)
+#define IDirect3DDevice8_GetVertexShader(p,a) (p)->GetVertexShader(a)
+#define IDirect3DDevice8_DeleteVertexShader(p,a) (p)->DeleteVertexShader(a)
+#define IDirect3DDevice8_SetVertexShaderConstant(p,a,b,c) (p)->SetVertexShaderConstant(a,b,c)
+#define IDirect3DDevice8_GetVertexShaderConstant(p,a,b,c) (p)->GetVertexShaderConstant(a,b,c)
+#define IDirect3DDevice8_GetVertexShaderDeclaration(p,a,b,c) (p)->GetVertexShaderDeclaration(a,b,c)
+#define IDirect3DDevice8_GetVertexShaderFunction(p,a,b,c) (p)->GetVertexShaderFunction(a,b,c)
+#define IDirect3DDevice8_SetStreamSource(p,a,b,c) (p)->SetStreamSource(a,b,c)
+#define IDirect3DDevice8_GetStreamSource(p,a,b,c) (p)->GetStreamSource(a,b,c)
+#define IDirect3DDevice8_SetIndices(p,a,b) (p)->SetIndices(a,b)
+#define IDirect3DDevice8_GetIndices(p,a,b) (p)->GetIndices(a,b)
+#define IDirect3DDevice8_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
+#define IDirect3DDevice8_SetPixelShader(p,a) (p)->SetPixelShader(a)
+#define IDirect3DDevice8_GetPixelShader(p,a) (p)->GetPixelShader(a)
+#define IDirect3DDevice8_DeletePixelShader(p,a) (p)->DeletePixelShader(a)
+#define IDirect3DDevice8_SetPixelShaderConstant(p,a,b,c) (p)->SetPixelShaderConstant(a,b,c)
+#define IDirect3DDevice8_GetPixelShaderConstant(p,a,b,c) (p)->GetPixelShaderConstant(a,b,c)
+#define IDirect3DDevice8_GetPixelShaderFunction(p,a,b,c) (p)->GetPixelShaderFunction(a,b,c)
+#define IDirect3DDevice8_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
+#define IDirect3DDevice8_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
+#define IDirect3DDevice8_DeletePatch(p,a) (p)->DeletePatch(a)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+/* Define the main entrypoint as well */
+IDirect3D8* WINAPI Direct3DCreate8(UINT SDKVersion);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif /* __WINE_D3D8_H */
diff --git a/d3d8caps.h b/d3d8caps.h
new file mode 100644
index 0000000..469dace
--- /dev/null
+++ b/d3d8caps.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (C) 2002 Jason Edmeades
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D8CAPS_H
+#define __WINE_D3D8CAPS_H
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+/*
+ * Definitions
+ */
+
+#define D3DCAPS_READ_SCANLINE 0x20000
+
+#define D3DCURSORCAPS_COLOR 1
+#define D3DCURSORCAPS_LOWRES 2
+
+#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010
+#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020
+#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040
+#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080
+#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100
+#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200
+#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400
+#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800
+#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000
+#define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000
+#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
+#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000
+#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000
+#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000
+#define D3DDEVCAPS_HWRASTERIZATION 0x0080000
+#define D3DDEVCAPS_PUREDEVICE 0x0100000
+#define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000
+#define D3DDEVCAPS_RTPATCHES 0x0400000
+#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000
+#define D3DDEVCAPS_NPATCHES 0x1000000
+
+#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF
+#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
+#define D3DFVFCAPS_PSIZE 0x100000
+
+#define D3DLINECAPS_TEXTURE 0x01
+#define D3DLINECAPS_ZTEST 0x02
+#define D3DLINECAPS_BLEND 0x04
+#define D3DLINECAPS_ALPHACMP 0x08
+#define D3DLINECAPS_FOG 0x10
+
+#define D3DPBLENDCAPS_ZERO 0x0001
+#define D3DPBLENDCAPS_ONE 0x0002
+#define D3DPBLENDCAPS_SRCCOLOR 0x0004
+#define D3DPBLENDCAPS_INVSRCCOLOR 0x0008
+#define D3DPBLENDCAPS_SRCALPHA 0x0010
+#define D3DPBLENDCAPS_INVSRCALPHA 0x0020
+#define D3DPBLENDCAPS_DESTALPHA 0x0040
+#define D3DPBLENDCAPS_INVDESTALPHA 0x0080
+#define D3DPBLENDCAPS_DESTCOLOR 0x0100
+#define D3DPBLENDCAPS_INVDESTCOLOR 0x0200
+#define D3DPBLENDCAPS_SRCALPHASAT 0x0400
+#define D3DPBLENDCAPS_BOTHSRCALPHA 0x0800
+#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000
+
+#define D3DPCMPCAPS_NEVER 0x01
+#define D3DPCMPCAPS_LESS 0x02
+#define D3DPCMPCAPS_EQUAL 0x04
+#define D3DPCMPCAPS_LESSEQUAL 0x08
+#define D3DPCMPCAPS_GREATER 0x10
+#define D3DPCMPCAPS_NOTEQUAL 0x20
+#define D3DPCMPCAPS_GREATEREQUAL 0x40
+#define D3DPCMPCAPS_ALWAYS 0x80
+
+#define D3DPMISCCAPS_MASKZ __MSABI_LONG(0x00000002)
+#define D3DPMISCCAPS_LINEPATTERNREP __MSABI_LONG(0x00000004)
+#define D3DPMISCCAPS_CULLNONE __MSABI_LONG(0x00000010)
+#define D3DPMISCCAPS_CULLCW __MSABI_LONG(0x00000020)
+#define D3DPMISCCAPS_CULLCCW __MSABI_LONG(0x00000040)
+#define D3DPMISCCAPS_COLORWRITEENABLE __MSABI_LONG(0x00000080)
+#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS __MSABI_LONG(0x00000100)
+#define D3DPMISCCAPS_CLIPTLVERTS __MSABI_LONG(0x00000200)
+#define D3DPMISCCAPS_TSSARGTEMP __MSABI_LONG(0x00000400)
+#define D3DPMISCCAPS_BLENDOP __MSABI_LONG(0x00000800)
+#define D3DPMISCCAPS_NULLREFERENCE __MSABI_LONG(0x00001000)
+
+#define D3DPRASTERCAPS_DITHER 0x00000001
+#define D3DPRASTERCAPS_PAT 0x00000008
+#define D3DPRASTERCAPS_ZTEST 0x00000010
+#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
+#define D3DPRASTERCAPS_FOGTABLE 0x00000100
+#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
+#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
+#define D3DPRASTERCAPS_ZBIAS 0x00004000
+#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
+#define D3DPRASTERCAPS_FOGRANGE 0x00010000
+#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
+#define D3DPRASTERCAPS_WBUFFER 0x00040000
+#define D3DPRASTERCAPS_WFOG 0x00100000
+#define D3DPRASTERCAPS_ZFOG 0x00200000
+#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
+#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000
+
+#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
+#define D3DPRESENT_INTERVAL_ONE 0x00000001
+#define D3DPRESENT_INTERVAL_TWO 0x00000002
+#define D3DPRESENT_INTERVAL_THREE 0x00000004
+#define D3DPRESENT_INTERVAL_FOUR 0x00000008
+#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
+
+#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008
+#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200
+#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000
+#define D3DPSHADECAPS_FOGGOURAUD 0x80000
+
+#define D3DPTADDRESSCAPS_WRAP 0x01
+#define D3DPTADDRESSCAPS_MIRROR 0x02
+#define D3DPTADDRESSCAPS_CLAMP 0x04
+#define D3DPTADDRESSCAPS_BORDER 0x08
+#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10
+#define D3DPTADDRESSCAPS_MIRRORONCE 0x20
+
+#define D3DPTEXTURECAPS_PERSPECTIVE 0x00001
+#define D3DPTEXTURECAPS_POW2 0x00002
+#define D3DPTEXTURECAPS_ALPHA 0x00004
+#define D3DPTEXTURECAPS_SQUAREONLY 0x00020
+#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00040
+#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00080
+#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00100
+#define D3DPTEXTURECAPS_PROJECTED 0x00400
+#define D3DPTEXTURECAPS_CUBEMAP 0x00800
+#define D3DPTEXTURECAPS_VOLUMEMAP 0x02000
+#define D3DPTEXTURECAPS_MIPMAP 0x04000
+#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x08000
+#define D3DPTEXTURECAPS_MIPCUBEMAP 0x10000
+#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x20000
+#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x40000
+
+#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
+#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
+#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
+#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
+#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
+#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
+#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
+#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
+#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
+#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
+
+#define D3DSTENCILCAPS_KEEP 0x01
+#define D3DSTENCILCAPS_ZERO 0x02
+#define D3DSTENCILCAPS_REPLACE 0x04
+#define D3DSTENCILCAPS_INCRSAT 0x08
+#define D3DSTENCILCAPS_DECRSAT 0x10
+#define D3DSTENCILCAPS_INVERT 0x20
+#define D3DSTENCILCAPS_INCR 0x40
+#define D3DSTENCILCAPS_DECR 0x80
+
+#define D3DTEXOPCAPS_DISABLE 0x0000001
+#define D3DTEXOPCAPS_SELECTARG1 0x0000002
+#define D3DTEXOPCAPS_SELECTARG2 0x0000004
+#define D3DTEXOPCAPS_MODULATE 0x0000008
+#define D3DTEXOPCAPS_MODULATE2X 0x0000010
+#define D3DTEXOPCAPS_MODULATE4X 0x0000020
+#define D3DTEXOPCAPS_ADD 0x0000040
+#define D3DTEXOPCAPS_ADDSIGNED 0x0000080
+#define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100
+#define D3DTEXOPCAPS_SUBTRACT 0x0000200
+#define D3DTEXOPCAPS_ADDSMOOTH 0x0000400
+#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000
+#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000
+#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000
+#define D3DTEXOPCAPS_PREMODULATE 0x0010000
+#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000
+#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000
+#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000
+#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000
+#define D3DTEXOPCAPS_BUMPENVMAP 0x0200000
+#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000
+#define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000
+#define D3DTEXOPCAPS_MULTIPLYADD 0x1000000
+#define D3DTEXOPCAPS_LERP 0x2000000
+
+#define D3DVTXPCAPS_TEXGEN __MSABI_LONG(0x00000001)
+#define D3DVTXPCAPS_MATERIALSOURCE7 __MSABI_LONG(0x00000002)
+#define D3DVTXPCAPS_DIRECTIONALLIGHTS __MSABI_LONG(0x00000008)
+#define D3DVTXPCAPS_POSITIONALLIGHTS __MSABI_LONG(0x00000010)
+#define D3DVTXPCAPS_LOCALVIEWER __MSABI_LONG(0x00000020)
+#define D3DVTXPCAPS_TWEENING __MSABI_LONG(0x00000040)
+#define D3DVTXPCAPS_NO_VSDT_UBYTE4 __MSABI_LONG(0x00000080)
+
+#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
+#define D3DCAPS3_RESERVED 0x8000001f
+
+#define D3DCAPS2_CANCALIBRATEGAMMA 0x0100000
+#define D3DCAPS2_CANRENDERWINDOWED 0x0080000
+#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
+#define D3DCAPS2_DYNAMICTEXTURES 0x20000000
+#define D3DCAPS2_FULLSCREENGAMMA 0x0020000
+#define D3DCAPS2_NO2DDURING3DSCENE 0x0000002
+#define D3DCAPS2_RESERVED 0x2000000
+
+/*
+ * The d3dcaps8 structure
+ */
+typedef struct _D3DCAPS8 {
+ D3DDEVTYPE DeviceType;
+ UINT AdapterOrdinal;
+
+ DWORD Caps;
+ DWORD Caps2;
+ DWORD Caps3;
+ DWORD PresentationIntervals;
+
+ DWORD CursorCaps;
+
+ DWORD DevCaps;
+
+ DWORD PrimitiveMiscCaps;
+ DWORD RasterCaps;
+ DWORD ZCmpCaps;
+ DWORD SrcBlendCaps;
+ DWORD DestBlendCaps;
+ DWORD AlphaCmpCaps;
+ DWORD ShadeCaps;
+ DWORD TextureCaps;
+ DWORD TextureFilterCaps;
+ DWORD CubeTextureFilterCaps;
+ DWORD VolumeTextureFilterCaps;
+ DWORD TextureAddressCaps;
+ DWORD VolumeTextureAddressCaps;
+
+ DWORD LineCaps;
+
+ DWORD MaxTextureWidth, MaxTextureHeight;
+ DWORD MaxVolumeExtent;
+
+ DWORD MaxTextureRepeat;
+ DWORD MaxTextureAspectRatio;
+ DWORD MaxAnisotropy;
+ float MaxVertexW;
+
+ float GuardBandLeft;
+ float GuardBandTop;
+ float GuardBandRight;
+ float GuardBandBottom;
+
+ float ExtentsAdjust;
+ DWORD StencilCaps;
+
+ DWORD FVFCaps;
+ DWORD TextureOpCaps;
+ DWORD MaxTextureBlendStages;
+ DWORD MaxSimultaneousTextures;
+
+ DWORD VertexProcessingCaps;
+ DWORD MaxActiveLights;
+ DWORD MaxUserClipPlanes;
+ DWORD MaxVertexBlendMatrices;
+ DWORD MaxVertexBlendMatrixIndex;
+
+ float MaxPointSize;
+
+ DWORD MaxPrimitiveCount;
+ DWORD MaxVertexIndex;
+ DWORD MaxStreams;
+ DWORD MaxStreamStride;
+
+ DWORD VertexShaderVersion;
+ DWORD MaxVertexShaderConst;
+
+ DWORD PixelShaderVersion;
+ float MaxPixelShaderValue;
+} D3DCAPS8;
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif /* __WINE_D3D8CAPS_H */
diff --git a/d3d8types.h b/d3d8types.h
new file mode 100644
index 0000000..d14e20a
--- /dev/null
+++ b/d3d8types.h
@@ -0,0 +1,1220 @@
+/*
+ * Copyright (C) 2002 Jason Edmeades
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D8TYPES_H
+#define __WINE_D3D8TYPES_H
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+/*****************************************************************************
+ * Direct 3D v8 #defines
+ */
+
+#define D3DCLEAR_TARGET 1
+#define D3DCLEAR_ZBUFFER 2
+#define D3DCLEAR_STENCIL 4
+
+#define D3DCLIPPLANE0 (1 << 0)
+#define D3DCLIPPLANE1 (1 << 1)
+#define D3DCLIPPLANE2 (1 << 2)
+#define D3DCLIPPLANE3 (1 << 3)
+#define D3DCLIPPLANE4 (1 << 4)
+#define D3DCLIPPLANE5 (1 << 5)
+
+#define D3DCOLOR_ARGB(a,r,g,b) ((D3DCOLOR)((((a)&0xffu)<<24)|(((r)&0xffu)<<16)|(((g)&0xffu)<<8)|((b)&0xffu)))
+#define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
+#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
+#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b)
+
+#define D3DCS_LEFT 0x001
+#define D3DCS_RIGHT 0x002
+#define D3DCS_TOP 0x004
+#define D3DCS_BOTTOM 0x008
+#define D3DCS_FRONT 0x010
+#define D3DCS_BACK 0x020
+#define D3DCS_PLANE0 0x040
+#define D3DCS_PLANE1 0x080
+#define D3DCS_PLANE2 0x100
+#define D3DCS_PLANE3 0x200
+#define D3DCS_PLANE4 0x400
+#define D3DCS_PLANE5 0x800
+#define D3DCS_ALL 0xFFF
+
+#define D3DFVF_TEXTUREFORMAT1 3
+#define D3DFVF_TEXTUREFORMAT2 0
+#define D3DFVF_TEXTUREFORMAT3 1
+#define D3DFVF_TEXTUREFORMAT4 2
+#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
+#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
+
+#define D3DLOCK_READONLY 0x0010
+#define D3DLOCK_NOSYSLOCK 0x0800
+#define D3DLOCK_NOOVERWRITE 0x1000
+#define D3DLOCK_DISCARD 0x2000
+#define D3DLOCK_NO_DIRTY_UPDATE 0x8000
+
+#define D3DMAXUSERCLIPPLANES 32
+
+#define D3DRENDERSTATE_WRAPBIAS 0x80
+
+#define D3DTSS_TCI_PASSTHRU 0x00000
+#define D3DTSS_TCI_CAMERASPACENORMAL 0x10000
+#define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000
+#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
+
+
+#define D3DTS_WORLD D3DTS_WORLDMATRIX(0)
+#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
+#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
+#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
+#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
+
+#define D3DUSAGE_RENDERTARGET 0x01
+#define D3DUSAGE_DEPTHSTENCIL 0x02
+#define D3DUSAGE_WRITEONLY 0x08
+#define D3DUSAGE_SOFTWAREPROCESSING 0x10
+#define D3DUSAGE_DONOTCLIP 0x20
+#define D3DUSAGE_POINTS 0x40
+#define D3DUSAGE_RTPATCHES 0x80
+#define D3DUSAGE_NPATCHES 0x100
+#define D3DUSAGE_DYNAMIC 0x200
+
+#define D3DWRAP_U 1
+#define D3DWRAP_V 2
+#define D3DWRAP_W 4
+#define D3DWRAPCOORD_0 1
+#define D3DWRAPCOORD_1 2
+#define D3DWRAPCOORD_2 4
+#define D3DWRAPCOORD_3 8
+
+#define MAX_DEVICE_IDENTIFIER_STRING 512
+
+#define D3DFVF_RESERVED0 0x0001
+#define D3DFVF_POSITION_MASK 0x000E
+#define D3DFVF_XYZ 0x0002
+#define D3DFVF_XYZRHW 0x0004
+#define D3DFVF_XYZB1 0x0006
+#define D3DFVF_XYZB2 0x0008
+#define D3DFVF_XYZB3 0x000a
+#define D3DFVF_XYZB4 0x000c
+#define D3DFVF_XYZB5 0x000e
+#define D3DFVF_NORMAL 0x0010
+#define D3DFVF_PSIZE 0x0020
+#define D3DFVF_DIFFUSE 0x0040
+#define D3DFVF_SPECULAR 0x0080
+#define D3DFVF_TEXCOUNT_MASK 0x0f00
+#define D3DFVF_TEXCOUNT_SHIFT 8
+#define D3DFVF_TEX0 0x0000
+#define D3DFVF_TEX1 0x0100
+#define D3DFVF_TEX2 0x0200
+#define D3DFVF_TEX3 0x0300
+#define D3DFVF_TEX4 0x0400
+#define D3DFVF_TEX5 0x0500
+#define D3DFVF_TEX6 0x0600
+#define D3DFVF_TEX7 0x0700
+#define D3DFVF_TEX8 0x0800
+#define D3DFVF_LASTBETA_UBYTE4 0x1000
+#define D3DFVF_RESERVED2 0xE000
+
+#define D3DTA_SELECTMASK 0x0000000f
+#define D3DTA_DIFFUSE 0x00000000
+#define D3DTA_CURRENT 0x00000001
+#define D3DTA_TEXTURE 0x00000002
+#define D3DTA_TFACTOR 0x00000003
+#define D3DTA_SPECULAR 0x00000004
+#define D3DTA_COMPLEMENT 0x00000010
+#define D3DTA_ALPHAREPLICATE 0x00000020
+#define D3DTA_TEMP 0x00000005
+
+#define D3DCOLORWRITEENABLE_RED (__MSABI_LONG(1)<<0)
+#define D3DCOLORWRITEENABLE_GREEN (__MSABI_LONG(1)<<1)
+#define D3DCOLORWRITEENABLE_BLUE (__MSABI_LONG(1)<<2)
+#define D3DCOLORWRITEENABLE_ALPHA (__MSABI_LONG(1)<<3)
+
+
+#ifndef MAKEFOURCC
+#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
+ ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
+ ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
+#endif
+
+/****************************
+ * Vertex Shaders Declaration
+ */
+
+typedef enum _D3DVSD_TOKENTYPE {
+ D3DVSD_TOKEN_NOP = 0,
+ D3DVSD_TOKEN_STREAM = 1,
+ D3DVSD_TOKEN_STREAMDATA = 2,
+ D3DVSD_TOKEN_TESSELLATOR = 3,
+ D3DVSD_TOKEN_CONSTMEM = 4,
+ D3DVSD_TOKEN_EXT = 5,
+ /* RESERVED = 6 */
+ D3DVSD_TOKEN_END = 7,
+ D3DVSD_FORCE_DWORD = 0x7FFFFFFF
+} D3DVSD_TOKENTYPE;
+
+/** input registers for vertex shaders functions */
+/*
+#define D3DVSDE_POSITION 0
+#define D3DVSDE_BLENDWEIGHT 1
+#define D3DVSDE_BLENDINDICES 2
+#define D3DVSDE_NORMAL 3
+#define D3DVSDE_PSIZE 4
+#define D3DVSDE_DIFFUSE 5
+#define D3DVSDE_SPECULAR 6
+#define D3DVSDE_TEXCOORD0 7
+#define D3DVSDE_TEXCOORD1 8
+#define D3DVSDE_TEXCOORD2 9
+#define D3DVSDE_TEXCOORD3 10
+#define D3DVSDE_TEXCOORD4 11
+#define D3DVSDE_TEXCOORD5 12
+#define D3DVSDE_TEXCOORD6 13
+#define D3DVSDE_TEXCOORD7 14
+#define D3DVSDE_POSITION2 15
+#define D3DVSDE_NORMAL2 16
+*/
+/** Address of the vertex register. 0 - 16 */
+typedef enum _D3DVSDE_REGISTER {
+ D3DVSDE_POSITION = 0,
+ D3DVSDE_BLENDWEIGHT = 1,
+ D3DVSDE_BLENDINDICES = 2,
+ D3DVSDE_NORMAL = 3,
+ D3DVSDE_PSIZE = 4,
+ D3DVSDE_DIFFUSE = 5,
+ D3DVSDE_SPECULAR = 6,
+ D3DVSDE_TEXCOORD0 = 7,
+ D3DVSDE_TEXCOORD1 = 8,
+ D3DVSDE_TEXCOORD2 = 9,
+ D3DVSDE_TEXCOORD3 = 10,
+ D3DVSDE_TEXCOORD4 = 11,
+ D3DVSDE_TEXCOORD5 = 12,
+ D3DVSDE_TEXCOORD6 = 13,
+ D3DVSDE_TEXCOORD7 = 14,
+ D3DVSDE_POSITION2 = 15,
+ D3DVSDE_NORMAL2 = 16
+} D3DVSDE_REGISTER;
+
+/** bit-field declaration for VertexRegister Type */
+/*
+#define D3DVSDT_FLOAT1 0x00
+#define D3DVSDT_FLOAT2 0x01
+#define D3DVSDT_FLOAT3 0x02
+#define D3DVSDT_FLOAT4 0x03
+#define D3DVSDT_D3DCOLOR 0x04
+#define D3DVSDT_UBYTE4 0x05
+#define D3DVSDT_SHORT2 0x06
+#define D3DVSDT_SHORT4 0x07
+*/
+typedef enum _D3DVSDT_TYPE {
+ D3DVSDT_FLOAT1 = 0x00,
+ D3DVSDT_FLOAT2 = 0x01,
+ D3DVSDT_FLOAT3 = 0x02,
+ D3DVSDT_FLOAT4 = 0x03,
+ D3DVSDT_D3DCOLOR = 0x04,
+ D3DVSDT_UBYTE4 = 0x05,
+ D3DVSDT_SHORT2 = 0x06,
+ D3DVSDT_SHORT4 = 0x07
+} D3DVSDT_TYPE;
+
+
+#define D3DVSD_CONSTADDRESSSHIFT 0
+#define D3DVSD_EXTINFOSHIFT 0
+#define D3DVSD_STREAMNUMBERSHIFT 0
+#define D3DVSD_VERTEXREGSHIFT 0
+#define D3DVSD_CONSTRSSHIFT 16
+#define D3DVSD_DATATYPESHIFT 16
+#define D3DVSD_SKIPCOUNTSHIFT 16
+#define D3DVSD_VERTEXREGINSHIFT 20
+#define D3DVSD_EXTCOUNTSHIFT 24
+#define D3DVSD_CONSTCOUNTSHIFT 25
+#define D3DVSD_DATALOADTYPESHIFT 28
+#define D3DVSD_STREAMTESSSHIFT 28
+#define D3DVSD_TOKENTYPESHIFT 29
+
+#define D3DVSD_CONSTADDRESSMASK (0x7F << D3DVSD_CONSTADDRESSSHIFT)
+#define D3DVSD_EXTINFOMASK (0xFFFFFF << D3DVSD_EXTINFOSHIFT)
+#define D3DVSD_STREAMNUMBERMASK (0xF << D3DVSD_STREAMNUMBERSHIFT)
+#define D3DVSD_VERTEXREGMASK (0x1F << D3DVSD_VERTEXREGSHIFT)
+#define D3DVSD_CONSTRSMASK (0x1FFF << D3DVSD_CONSTRSSHIFT)
+#define D3DVSD_DATATYPEMASK (0xF << D3DVSD_DATATYPESHIFT)
+#define D3DVSD_SKIPCOUNTMASK (0xF << D3DVSD_SKIPCOUNTSHIFT)
+#define D3DVSD_EXTCOUNTMASK (0x1F << D3DVSD_EXTCOUNTSHIFT)
+#define D3DVSD_VERTEXREGINMASK (0xF << D3DVSD_VERTEXREGINSHIFT)
+#define D3DVSD_CONSTCOUNTMASK (0xF << D3DVSD_CONSTCOUNTSHIFT)
+#define D3DVSD_DATALOADTYPEMASK (0x1 << D3DVSD_DATALOADTYPESHIFT)
+#define D3DVSD_STREAMTESSMASK (0x1 << D3DVSD_STREAMTESSSHIFT)
+#define D3DVSD_TOKENTYPEMASK (0x7u << D3DVSD_TOKENTYPESHIFT)
+
+
+#define D3DVSD_MAKETOKENTYPE(TokenType) \
+ (((unsigned)TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
+
+#define D3DVSD_CONST(ConstantAddress, Count) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
+
+#define D3DVSD_END() 0xFFFFFFFF
+
+#define D3DVSD_NOP() 0x00000000
+
+#define D3DVSD_REG(VertexRegister, Type) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
+
+#define D3DVSD_SKIP(Count) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
+
+#define D3DVSD_STREAM(StreamNumber) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
+
+#define D3DVSD_STREAM_TESS() \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
+
+#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
+
+#define D3DVSD_TESSUV(Register) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
+
+
+/********************************
+ * Pixel/Vertex Shaders Functions
+ */
+
+/** Maximum number of supported texture coordinates sets operation */
+#define D3DDP_MAXTEXCOORD 8
+
+/** opcode token mask */
+#define D3DSI_OPCODE_MASK 0x0000FFFF
+
+/** opcodes types for PS and VS */
+typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
+ D3DSIO_NOP = 0,
+ D3DSIO_MOV = 1,
+ D3DSIO_ADD = 2,
+ D3DSIO_SUB = 3,
+ D3DSIO_MAD = 4,
+ D3DSIO_MUL = 5,
+ D3DSIO_RCP = 6,
+ D3DSIO_RSQ = 7,
+ D3DSIO_DP3 = 8,
+ D3DSIO_DP4 = 9,
+ D3DSIO_MIN = 10,
+ D3DSIO_MAX = 11,
+ D3DSIO_SLT = 12,
+ D3DSIO_SGE = 13,
+ D3DSIO_EXP = 14,
+ D3DSIO_LOG = 15,
+ D3DSIO_LIT = 16,
+ D3DSIO_DST = 17,
+ D3DSIO_LRP = 18,
+ D3DSIO_FRC = 19,
+ D3DSIO_M4x4 = 20,
+ D3DSIO_M4x3 = 21,
+ D3DSIO_M3x4 = 22,
+ D3DSIO_M3x3 = 23,
+ D3DSIO_M3x2 = 24,
+
+ D3DSIO_TEXCOORD = 64,
+ D3DSIO_TEXKILL = 65,
+ D3DSIO_TEX = 66,
+ D3DSIO_TEXBEM = 67,
+ D3DSIO_TEXBEML = 68,
+ D3DSIO_TEXREG2AR = 69,
+ D3DSIO_TEXREG2GB = 70,
+ D3DSIO_TEXM3x2PAD = 71,
+ D3DSIO_TEXM3x2TEX = 72,
+ D3DSIO_TEXM3x3PAD = 73,
+ D3DSIO_TEXM3x3TEX = 74,
+ D3DSIO_TEXM3x3DIFF = 75,
+ D3DSIO_TEXM3x3SPEC = 76,
+ D3DSIO_TEXM3x3VSPEC = 77,
+ D3DSIO_EXPP = 78,
+ D3DSIO_LOGP = 79,
+ D3DSIO_CND = 80,
+ D3DSIO_DEF = 81,
+ D3DSIO_TEXREG2RGB = 82,
+ D3DSIO_TEXDP3TEX = 83,
+ D3DSIO_TEXM3x2DEPTH = 84,
+ D3DSIO_TEXDP3 = 85,
+ D3DSIO_TEXM3x3 = 86,
+ D3DSIO_TEXDEPTH = 87,
+ D3DSIO_CMP = 88,
+ D3DSIO_BEM = 89,
+
+ D3DSIO_PHASE = 0xFFFD,
+ D3DSIO_COMMENT = 0xFFFE,
+ D3DSIO_END = 0XFFFF,
+
+ D3DSIO_FORCE_DWORD = 0X7FFFFFFF /** for 32-bit alignment */
+} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
+
+/** for parallelism */
+#define D3DSI_COISSUE 0x40000000
+
+/** destination parameter modifiers (.xyzw) */
+#define D3DSP_WRITEMASK_0 0x00010000 /* .x r */
+#define D3DSP_WRITEMASK_1 0x00020000 /* .y g */
+#define D3DSP_WRITEMASK_2 0x00040000 /* .z b */
+#define D3DSP_WRITEMASK_3 0x00080000 /* .w a */
+#define D3DSP_WRITEMASK_ALL 0x000F0000 /* all */
+
+#define D3DSP_DSTMOD_SHIFT 20
+#define D3DSP_DSTMOD_MASK (0xF << D3DSP_DSTMOD_SHIFT)
+
+typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
+ D3DSPDM_NONE = 0 << D3DSP_DSTMOD_SHIFT,
+ D3DSPDM_SATURATE = 1 << D3DSP_DSTMOD_SHIFT,
+ D3DSPDM_FORCE_DWORD = 0X7FFFFFFF
+} D3DSHADER_PARAM_DSTMOD_TYPE;
+
+/** destination param */
+#define D3DSP_DSTSHIFT_SHIFT 24
+#define D3DSP_DSTSHIFT_MASK (0xF << D3DSP_DSTSHIFT_SHIFT)
+
+/** destination/source reg type */
+#define D3DSP_REGTYPE_SHIFT 28
+#define D3DSP_REGTYPE_MASK (0x7 << D3DSP_REGTYPE_SHIFT)
+
+typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
+ D3DSPR_TEMP = 0 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_INPUT = 1 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_CONST = 2 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_ADDR = 3 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_TEXTURE = 3 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_RASTOUT = 4 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_ATTROUT = 5 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_TEXCRDOUT = 6 << D3DSP_REGTYPE_SHIFT,
+ D3DSPR_FORCE_DWORD = 0x7FFFFFFF
+} D3DSHADER_PARAM_REGISTER_TYPE;
+
+typedef enum _D3DVS_RASTOUT_OFFSETS {
+ D3DSRO_POSITION = 0,
+ D3DSRO_FOG = 1,
+ D3DSRO_POINT_SIZE = 2,
+ D3DSRO_FORCE_DWORD = 0x7FFFFFFF
+} D3DVS_RASTOUT_OFFSETS;
+
+#define D3DVS_ADDRESSMODE_SHIFT 13
+#define D3DVS_ADDRESSMODE_MASK (0x1 << D3DVS_ADDRESSMODE_SHIFT)
+
+typedef enum _D3DVS_ADDRESSMODE_TYPE {
+ D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT,
+ D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT,
+ D3DVS_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
+} D3DVS_ADDRESSMODE_TYPE;
+
+#define D3DVS_SWIZZLE_SHIFT 16
+#define D3DVS_SWIZZLE_MASK (0xFF << D3DVS_SWIZZLE_SHIFT)
+
+#define D3DSP_SWIZZLE_SHIFT 16
+#define D3DSP_SWIZZLE_MASK (0xFF << D3DSP_SWIZZLE_SHIFT)
+
+#define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT)
+
+#define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2))
+
+#define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4))
+
+#define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_Z (2 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_W (3 << (D3DVS_SWIZZLE_SHIFT + 6))
+
+#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
+
+#define D3DSP_NOSWIZZLE \
+ ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
+
+#define D3DSP_SRCMOD_SHIFT 24
+#define D3DSP_SRCMOD_MASK (0xF << D3DSP_SRCMOD_SHIFT)
+
+typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
+ D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_FORCE_DWORD = 0x7FFFFFFF
+} D3DSHADER_PARAM_SRCMOD_TYPE;
+
+#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
+#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
+#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
+#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
+
+#define D3DSI_COMMENTSIZE_SHIFT 16
+#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
+
+#define D3DSHADER_COMMENT(commentSize) \
+ ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
+
+#define D3DPS_END() 0x0000FFFF
+#define D3DVS_END() 0x0000FFFF
+
+
+/*****************************************************************************
+ * Direct 3D v8 enumerated types
+ */
+typedef enum _D3DBACKBUFFER_TYPE {
+ D3DBACKBUFFER_TYPE_MONO = 0,
+ D3DBACKBUFFER_TYPE_LEFT = 1,
+ D3DBACKBUFFER_TYPE_RIGHT = 2,
+
+ D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
+} D3DBACKBUFFER_TYPE;
+
+typedef enum _D3DBASISTYPE{
+ D3DBASIS_BEZIER = 0,
+ D3DBASIS_BSPLINE = 1,
+ D3DBASIS_INTERPOLATE = 2,
+
+ D3DBASIS_FORCE_DWORD = 0x7fffffff
+} D3DBASISTYPE;
+
+typedef enum _D3DBLEND {
+ D3DBLEND_ZERO = 1,
+ D3DBLEND_ONE = 2,
+ D3DBLEND_SRCCOLOR = 3,
+ D3DBLEND_INVSRCCOLOR = 4,
+ D3DBLEND_SRCALPHA = 5,
+ D3DBLEND_INVSRCALPHA = 6,
+ D3DBLEND_DESTALPHA = 7,
+ D3DBLEND_INVDESTALPHA = 8,
+ D3DBLEND_DESTCOLOR = 9,
+ D3DBLEND_INVDESTCOLOR = 10,
+ D3DBLEND_SRCALPHASAT = 11,
+ D3DBLEND_BOTHSRCALPHA = 12,
+ D3DBLEND_BOTHINVSRCALPHA = 13,
+
+ D3DBLEND_FORCE_DWORD = 0x7fffffff
+} D3DBLEND;
+
+typedef enum _D3DBLENDOP {
+ D3DBLENDOP_ADD = 1,
+ D3DBLENDOP_SUBTRACT = 2,
+ D3DBLENDOP_REVSUBTRACT = 3,
+ D3DBLENDOP_MIN = 4,
+ D3DBLENDOP_MAX = 5,
+
+ D3DBLENDOP_FORCE_DWORD = 0x7fffffff
+} D3DBLENDOP;
+
+typedef enum _D3DCMPFUNC {
+ D3DCMP_NEVER = 1,
+ D3DCMP_LESS = 2,
+ D3DCMP_EQUAL = 3,
+ D3DCMP_LESSEQUAL = 4,
+ D3DCMP_GREATER = 5,
+ D3DCMP_NOTEQUAL = 6,
+ D3DCMP_GREATEREQUAL = 7,
+ D3DCMP_ALWAYS = 8,
+
+ D3DCMP_FORCE_DWORD = 0x7fffffff
+} D3DCMPFUNC;
+
+typedef enum _D3DCUBEMAP_FACES {
+ D3DCUBEMAP_FACE_POSITIVE_X = 0,
+ D3DCUBEMAP_FACE_NEGATIVE_X = 1,
+ D3DCUBEMAP_FACE_POSITIVE_Y = 2,
+ D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
+ D3DCUBEMAP_FACE_POSITIVE_Z = 4,
+ D3DCUBEMAP_FACE_NEGATIVE_Z = 5,
+
+ D3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff
+} D3DCUBEMAP_FACES;
+
+typedef enum _D3DCULL {
+ D3DCULL_NONE = 1,
+ D3DCULL_CW = 2,
+ D3DCULL_CCW = 3,
+
+ D3DCULL_FORCE_DWORD = 0x7fffffff
+} D3DCULL;
+
+typedef enum _D3DDEBUGMONITORTOKENS {
+ D3DDMT_ENABLE = 0,
+ D3DDMT_DISABLE = 1,
+
+ D3DDMT_FORCE_DWORD = 0x7fffffff
+} D3DDEBUGMONITORTOKENS;
+
+typedef enum _D3DDEVTYPE {
+ D3DDEVTYPE_HAL = 1,
+ D3DDEVTYPE_REF = 2,
+ D3DDEVTYPE_SW = 3,
+
+ D3DDEVTYPE_FORCE_DWORD = 0xffffffff
+} D3DDEVTYPE;
+
+typedef enum _D3DFILLMODE {
+ D3DFILL_POINT = 1,
+ D3DFILL_WIREFRAME = 2,
+ D3DFILL_SOLID = 3,
+
+ D3DFILL_FORCE_DWORD = 0x7fffffff
+} D3DFILLMODE;
+
+typedef enum _D3DFOGMODE {
+ D3DFOG_NONE = 0,
+ D3DFOG_EXP = 1,
+ D3DFOG_EXP2 = 2,
+ D3DFOG_LINEAR = 3,
+
+ D3DFOG_FORCE_DWORD = 0x7fffffff
+} D3DFOGMODE;
+
+typedef enum _D3DFORMAT {
+ D3DFMT_UNKNOWN = 0,
+
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_G16R16 = 34,
+
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_W11V11U10 = 65,
+ D3DFMT_A2W10V10U10 = 67,
+
+ D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
+ D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
+ D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
+ D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
+ D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
+ D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
+ D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
+
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D16 = 80,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+
+ D3DFMT_FORCE_DWORD = 0xFFFFFFFF
+} D3DFORMAT;
+
+typedef enum _D3DLIGHTTYPE {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+
+ D3DLIGHT_FORCE_DWORD = 0x7fffffff
+} D3DLIGHTTYPE;
+
+typedef enum _D3DMATERIALCOLORSOURCE {
+ D3DMCS_MATERIAL = 0,
+ D3DMCS_COLOR1 = 1,
+ D3DMCS_COLOR2 = 2,
+
+ D3DMCS_FORCE_DWORD = 0x7fffffff
+} D3DMATERIALCOLORSOURCE;
+
+typedef enum _D3DMULTISAMPLE_TYPE {
+ D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_2_SAMPLES = 2,
+ D3DMULTISAMPLE_3_SAMPLES = 3,
+ D3DMULTISAMPLE_4_SAMPLES = 4,
+ D3DMULTISAMPLE_5_SAMPLES = 5,
+ D3DMULTISAMPLE_6_SAMPLES = 6,
+ D3DMULTISAMPLE_7_SAMPLES = 7,
+ D3DMULTISAMPLE_8_SAMPLES = 8,
+ D3DMULTISAMPLE_9_SAMPLES = 9,
+ D3DMULTISAMPLE_10_SAMPLES = 10,
+ D3DMULTISAMPLE_11_SAMPLES = 11,
+ D3DMULTISAMPLE_12_SAMPLES = 12,
+ D3DMULTISAMPLE_13_SAMPLES = 13,
+ D3DMULTISAMPLE_14_SAMPLES = 14,
+ D3DMULTISAMPLE_15_SAMPLES = 15,
+ D3DMULTISAMPLE_16_SAMPLES = 16,
+
+ D3DMULTISAMPLE_FORCE_DWORD = 0x7fffffff
+} D3DMULTISAMPLE_TYPE;
+
+typedef enum _D3DORDERTYPE {
+ D3DORDER_LINEAR = 1,
+ D3DORDER_QUADRATIC = 2,
+ D3DORDER_CUBIC = 3,
+ D3DORDER_QUINTIC = 5,
+
+ D3DORDER_FORCE_DWORD = 0x7fffffff
+} D3DORDERTYPE;
+
+typedef enum _D3DPATCHEDGESTYLE {
+ D3DPATCHEDGE_DISCRETE = 0,
+ D3DPATCHEDGE_CONTINUOUS = 1,
+
+ D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
+} D3DPATCHEDGESTYLE;
+
+typedef enum _D3DPOOL {
+ D3DPOOL_DEFAULT = 0,
+ D3DPOOL_MANAGED = 1,
+ D3DPOOL_SYSTEMMEM = 2,
+ D3DPOOL_SCRATCH = 3,
+
+ D3DPOOL_FORCE_DWORD = 0x7fffffff
+} D3DPOOL;
+
+typedef enum _D3DPRIMITIVETYPE {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+
+ D3DPT_FORCE_DWORD = 0x7fffffff
+} D3DPRIMITIVETYPE;
+
+typedef enum _D3DRENDERSTATETYPE {
+ D3DRS_ZENABLE = 7,
+ D3DRS_FILLMODE = 8,
+ D3DRS_SHADEMODE = 9,
+ D3DRS_LINEPATTERN = 10,
+ D3DRS_ZWRITEENABLE = 14,
+ D3DRS_ALPHATESTENABLE = 15,
+ D3DRS_LASTPIXEL = 16,
+ D3DRS_SRCBLEND = 19,
+ D3DRS_DESTBLEND = 20,
+ D3DRS_CULLMODE = 22,
+ D3DRS_ZFUNC = 23,
+ D3DRS_ALPHAREF = 24,
+ D3DRS_ALPHAFUNC = 25,
+ D3DRS_DITHERENABLE = 26,
+ D3DRS_ALPHABLENDENABLE = 27,
+ D3DRS_FOGENABLE = 28,
+ D3DRS_SPECULARENABLE = 29,
+ D3DRS_ZVISIBLE = 30,
+ D3DRS_FOGCOLOR = 34,
+ D3DRS_FOGTABLEMODE = 35,
+ D3DRS_FOGSTART = 36,
+ D3DRS_FOGEND = 37,
+ D3DRS_FOGDENSITY = 38,
+ D3DRS_EDGEANTIALIAS = 40,
+ D3DRS_ZBIAS = 47,
+ D3DRS_RANGEFOGENABLE = 48,
+ D3DRS_STENCILENABLE = 52,
+ D3DRS_STENCILFAIL = 53,
+ D3DRS_STENCILZFAIL = 54,
+ D3DRS_STENCILPASS = 55,
+ D3DRS_STENCILFUNC = 56,
+ D3DRS_STENCILREF = 57,
+ D3DRS_STENCILMASK = 58,
+ D3DRS_STENCILWRITEMASK = 59,
+ D3DRS_TEXTUREFACTOR = 60,
+ D3DRS_WRAP0 = 128,
+ D3DRS_WRAP1 = 129,
+ D3DRS_WRAP2 = 130,
+ D3DRS_WRAP3 = 131,
+ D3DRS_WRAP4 = 132,
+ D3DRS_WRAP5 = 133,
+ D3DRS_WRAP6 = 134,
+ D3DRS_WRAP7 = 135,
+ D3DRS_CLIPPING = 136,
+ D3DRS_LIGHTING = 137,
+ D3DRS_AMBIENT = 139,
+ D3DRS_FOGVERTEXMODE = 140,
+ D3DRS_COLORVERTEX = 141,
+ D3DRS_LOCALVIEWER = 142,
+ D3DRS_NORMALIZENORMALS = 143,
+ D3DRS_DIFFUSEMATERIALSOURCE = 145,
+ D3DRS_SPECULARMATERIALSOURCE = 146,
+ D3DRS_AMBIENTMATERIALSOURCE = 147,
+ D3DRS_EMISSIVEMATERIALSOURCE = 148,
+ D3DRS_VERTEXBLEND = 151,
+ D3DRS_CLIPPLANEENABLE = 152,
+ D3DRS_SOFTWAREVERTEXPROCESSING = 153,
+ D3DRS_POINTSIZE = 154,
+ D3DRS_POINTSIZE_MIN = 155,
+ D3DRS_POINTSPRITEENABLE = 156,
+ D3DRS_POINTSCALEENABLE = 157,
+ D3DRS_POINTSCALE_A = 158,
+ D3DRS_POINTSCALE_B = 159,
+ D3DRS_POINTSCALE_C = 160,
+ D3DRS_MULTISAMPLEANTIALIAS = 161,
+ D3DRS_MULTISAMPLEMASK = 162,
+ D3DRS_PATCHEDGESTYLE = 163,
+ D3DRS_PATCHSEGMENTS = 164,
+ D3DRS_DEBUGMONITORTOKEN = 165,
+ D3DRS_POINTSIZE_MAX = 166,
+ D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
+ D3DRS_COLORWRITEENABLE = 168,
+ D3DRS_TWEENFACTOR = 170,
+ D3DRS_BLENDOP = 171,
+ D3DRS_POSITIONORDER = 172,
+ D3DRS_NORMALORDER = 173,
+
+ D3DRS_FORCE_DWORD = 0x7fffffff
+} D3DRENDERSTATETYPE;
+
+typedef enum _D3DRESOURCETYPE {
+ D3DRTYPE_SURFACE = 1,
+ D3DRTYPE_VOLUME = 2,
+ D3DRTYPE_TEXTURE = 3,
+ D3DRTYPE_VOLUMETEXTURE = 4,
+ D3DRTYPE_CUBETEXTURE = 5,
+ D3DRTYPE_VERTEXBUFFER = 6,
+ D3DRTYPE_INDEXBUFFER = 7,
+
+ D3DRTYPE_FORCE_DWORD = 0x7fffffff
+} D3DRESOURCETYPE;
+
+typedef enum _D3DSHADEMODE {
+ D3DSHADE_FLAT = 1,
+ D3DSHADE_GOURAUD = 2,
+ D3DSHADE_PHONG = 3,
+
+ D3DSHADE_FORCE_DWORD = 0x7fffffff
+} D3DSHADEMODE;
+
+typedef enum _D3DSTATEBLOCKTYPE {
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+
+ D3DSBT_FORCE_DWORD = 0xffffffff
+} D3DSTATEBLOCKTYPE;
+
+typedef enum _D3DSTENCILOP {
+ D3DSTENCILOP_KEEP = 1,
+ D3DSTENCILOP_ZERO = 2,
+ D3DSTENCILOP_REPLACE = 3,
+ D3DSTENCILOP_INCRSAT = 4,
+ D3DSTENCILOP_DECRSAT = 5,
+ D3DSTENCILOP_INVERT = 6,
+ D3DSTENCILOP_INCR = 7,
+ D3DSTENCILOP_DECR = 8,
+
+ D3DSTENCILOP_FORCE_DWORD = 0x7fffffff
+} D3DSTENCILOP;
+
+typedef enum _D3DSWAPEFFECT {
+ D3DSWAPEFFECT_DISCARD = 1,
+ D3DSWAPEFFECT_FLIP = 2,
+ D3DSWAPEFFECT_COPY = 3,
+ D3DSWAPEFFECT_COPY_VSYNC = 4,
+
+ D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
+} D3DSWAPEFFECT;
+
+typedef enum _D3DTEXTUREADDRESS {
+ D3DTADDRESS_WRAP = 1,
+ D3DTADDRESS_MIRROR = 2,
+ D3DTADDRESS_CLAMP = 3,
+ D3DTADDRESS_BORDER = 4,
+ D3DTADDRESS_MIRRORONCE = 5,
+
+ D3DTADDRESS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREADDRESS;
+
+typedef enum _D3DTEXTUREFILTERTYPE {
+ D3DTEXF_NONE = 0,
+ D3DTEXF_POINT = 1,
+ D3DTEXF_LINEAR = 2,
+ D3DTEXF_ANISOTROPIC = 3,
+ D3DTEXF_FLATCUBIC = 4,
+ D3DTEXF_GAUSSIANCUBIC = 5,
+
+ D3DTEXF_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREFILTERTYPE;
+
+typedef enum _D3DTEXTUREOP {
+ D3DTOP_DISABLE = 1,
+ D3DTOP_SELECTARG1 = 2,
+ D3DTOP_SELECTARG2 = 3,
+ D3DTOP_MODULATE = 4,
+ D3DTOP_MODULATE2X = 5,
+ D3DTOP_MODULATE4X = 6,
+ D3DTOP_ADD = 7,
+ D3DTOP_ADDSIGNED = 8,
+ D3DTOP_ADDSIGNED2X = 9,
+ D3DTOP_SUBTRACT = 10,
+ D3DTOP_ADDSMOOTH = 11,
+ D3DTOP_BLENDDIFFUSEALPHA = 12,
+ D3DTOP_BLENDTEXTUREALPHA = 13,
+ D3DTOP_BLENDFACTORALPHA = 14,
+ D3DTOP_BLENDTEXTUREALPHAPM = 15,
+ D3DTOP_BLENDCURRENTALPHA = 16,
+ D3DTOP_PREMODULATE = 17,
+ D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
+ D3DTOP_MODULATECOLOR_ADDALPHA = 19,
+ D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
+ D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
+ D3DTOP_BUMPENVMAP = 22,
+ D3DTOP_BUMPENVMAPLUMINANCE = 23,
+ D3DTOP_DOTPRODUCT3 = 24,
+ D3DTOP_MULTIPLYADD = 25,
+ D3DTOP_LERP = 26,
+
+ D3DTOP_FORCE_DWORD = 0x7fffffff,
+} D3DTEXTUREOP;
+
+typedef enum _D3DTEXTURESTAGESTATETYPE {
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_ADDRESSU = 13,
+ D3DTSS_ADDRESSV = 14,
+ D3DTSS_BORDERCOLOR = 15,
+ D3DTSS_MAGFILTER = 16,
+ D3DTSS_MINFILTER = 17,
+ D3DTSS_MIPFILTER = 18,
+ D3DTSS_MIPMAPLODBIAS = 19,
+ D3DTSS_MAXMIPLEVEL = 20,
+ D3DTSS_MAXANISOTROPY = 21,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_ADDRESSW = 25,
+ D3DTSS_COLORARG0 = 26,
+ D3DTSS_ALPHAARG0 = 27,
+ D3DTSS_RESULTARG = 28,
+
+ D3DTSS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURESTAGESTATETYPE;
+
+typedef enum _D3DTEXTURETRANSFORMFLAGS {
+ D3DTTFF_DISABLE = 0,
+ D3DTTFF_COUNT1 = 1,
+ D3DTTFF_COUNT2 = 2,
+ D3DTTFF_COUNT3 = 3,
+ D3DTTFF_COUNT4 = 4,
+ D3DTTFF_PROJECTED = 256,
+
+ D3DTTFF_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURETRANSFORMFLAGS;
+
+typedef enum _D3DTRANSFORMSTATETYPE {
+ D3DTS_VIEW = 2,
+ D3DTS_PROJECTION = 3,
+ D3DTS_TEXTURE0 = 16,
+ D3DTS_TEXTURE1 = 17,
+ D3DTS_TEXTURE2 = 18,
+ D3DTS_TEXTURE3 = 19,
+ D3DTS_TEXTURE4 = 20,
+ D3DTS_TEXTURE5 = 21,
+ D3DTS_TEXTURE6 = 22,
+ D3DTS_TEXTURE7 = 23,
+
+ D3DTS_FORCE_DWORD = 0x7fffffff
+} D3DTRANSFORMSTATETYPE;
+
+typedef enum _D3DVERTEXBLENDFLAGS {
+ D3DVBF_DISABLE = 0,
+ D3DVBF_1WEIGHTS = 1,
+ D3DVBF_2WEIGHTS = 2,
+ D3DVBF_3WEIGHTS = 3,
+ D3DVBF_TWEENING = 255,
+ D3DVBF_0WEIGHTS = 256
+} D3DVERTEXBLENDFLAGS;
+
+typedef enum _D3DZBUFFERTYPE {
+ D3DZB_FALSE = 0,
+ D3DZB_TRUE = 1,
+ D3DZB_USEW = 2,
+
+ D3DZB_FORCE_DWORD = 0x7fffffff
+} D3DZBUFFERTYPE;
+
+
+/*****************************************************************************
+ * Direct 3D v8 typedefs
+ */
+typedef DWORD D3DCOLOR;
+
+/*****************************************************************************
+ * Direct 3D v8 structures
+ */
+typedef struct _D3DADAPTER_IDENTIFIER8 {
+ char Driver[MAX_DEVICE_IDENTIFIER_STRING];
+ char Description[MAX_DEVICE_IDENTIFIER_STRING];
+
+ LARGE_INTEGER DriverVersion;
+ DWORD VendorId;
+ DWORD DeviceId;
+ DWORD SubSysId;
+ DWORD Revision;
+
+ GUID DeviceIdentifier;
+
+ DWORD WHQLLevel;
+} D3DADAPTER_IDENTIFIER8;
+
+typedef struct _D3DBOX {
+ UINT Left;
+ UINT Top;
+ UINT Right;
+ UINT Bottom;
+ UINT Front;
+ UINT Back;
+} D3DBOX;
+
+typedef struct _D3DCLIPSTATUS8 {
+ DWORD ClipUnion;
+ DWORD ClipIntersection;
+} D3DCLIPSTATUS8;
+
+typedef struct _D3DCOLORVALUE {
+ float r;
+ float g;
+ float b;
+ float a;
+} D3DCOLORVALUE;
+
+typedef struct _D3DDEVICE_CREATION_PARAMETERS {
+ UINT AdapterOrdinal;
+ D3DDEVTYPE DeviceType;
+ HWND hFocusWindow;
+ DWORD BehaviorFlags;
+} D3DDEVICE_CREATION_PARAMETERS;
+
+typedef struct _D3DDISPLAYMODE {
+ UINT Width;
+ UINT Height;
+ UINT RefreshRate;
+ D3DFORMAT Format;
+} D3DDISPLAYMODE;
+
+typedef struct _D3DGAMMARAMP {
+ WORD red [256];
+ WORD green[256];
+ WORD blue [256];
+} D3DGAMMARAMP;
+
+typedef struct _D3DINDEXBUFFER_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+} D3DINDEXBUFFER_DESC;
+
+#ifndef D3DVECTOR_DEFINED
+typedef struct _D3DVECTOR {
+ float x;
+ float y;
+ float z;
+} D3DVECTOR;
+#define D3DVECTOR_DEFINED
+#endif
+
+typedef struct _D3DLIGHT8 {
+ D3DLIGHTTYPE Type;
+ D3DCOLORVALUE Diffuse;
+ D3DCOLORVALUE Specular;
+ D3DCOLORVALUE Ambient;
+ D3DVECTOR Position;
+ D3DVECTOR Direction;
+ float Range;
+ float Falloff;
+ float Attenuation0;
+ float Attenuation1;
+ float Attenuation2;
+ float Theta;
+ float Phi;
+} D3DLIGHT8;
+
+typedef struct _D3DLINEPATTERN {
+ WORD wRepeatFactor;
+ WORD wLinePattern;
+} D3DLINEPATTERN;
+
+typedef struct _D3DLOCKED_BOX {
+ INT RowPitch;
+ INT SlicePitch;
+ void* pBits;
+} D3DLOCKED_BOX;
+
+typedef struct _D3DLOCKED_RECT {
+ INT Pitch;
+ void* pBits;
+} D3DLOCKED_RECT;
+
+typedef struct _D3DMATERIAL8 {
+ D3DCOLORVALUE Diffuse;
+ D3DCOLORVALUE Ambient;
+ D3DCOLORVALUE Specular;
+ D3DCOLORVALUE Emissive;
+ float Power;
+} D3DMATERIAL8;
+
+typedef struct _D3DMATRIX {
+ union {
+ struct {
+ float _11, _12, _13, _14;
+ float _21, _22, _23, _24;
+ float _31, _32, _33, _34;
+ float _41, _42, _43, _44;
+ } DUMMYSTRUCTNAME;
+ float m[4][4];
+ } DUMMYUNIONNAME;
+} D3DMATRIX;
+
+typedef struct _D3DPRESENT_PARAMETERS_ {
+ UINT BackBufferWidth;
+ UINT BackBufferHeight;
+ D3DFORMAT BackBufferFormat;
+ UINT BackBufferCount;
+
+ D3DMULTISAMPLE_TYPE MultiSampleType;
+
+ D3DSWAPEFFECT SwapEffect;
+ HWND hDeviceWindow;
+ WINBOOL Windowed;
+ WINBOOL EnableAutoDepthStencil;
+ D3DFORMAT AutoDepthStencilFormat;
+ DWORD Flags;
+
+ UINT FullScreen_RefreshRateInHz;
+ UINT FullScreen_PresentationInterval;
+
+} D3DPRESENT_PARAMETERS;
+
+#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
+
+typedef struct _D3DRANGE {
+ UINT Offset;
+ UINT Size;
+} D3DRANGE;
+
+typedef struct _D3DRASTER_STATUS {
+ WINBOOL InVBlank;
+ UINT ScanLine;
+} D3DRASTER_STATUS;
+
+typedef struct _D3DRECT {
+ LONG x1;
+ LONG y1;
+ LONG x2;
+ LONG y2;
+} D3DRECT;
+
+typedef struct _D3DRECTPATCH_INFO {
+ UINT StartVertexOffsetWidth;
+ UINT StartVertexOffsetHeight;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ D3DBASISTYPE Basis;
+ D3DORDERTYPE Order;
+} D3DRECTPATCH_INFO;
+
+typedef struct _D3DSURFACE_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+ D3DMULTISAMPLE_TYPE MultiSampleType;
+ UINT Width;
+ UINT Height;
+} D3DSURFACE_DESC;
+
+typedef struct _D3DTRIPATCH_INFO {
+ UINT StartVertexOffset;
+ UINT NumVertices;
+ D3DBASISTYPE Basis;
+ D3DORDERTYPE Order;
+} D3DTRIPATCH_INFO;
+
+typedef struct _D3DVERTEXBUFFER_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+ DWORD FVF;
+} D3DVERTEXBUFFER_DESC;
+
+typedef struct _D3DVIEWPORT8 {
+ DWORD X;
+ DWORD Y;
+ DWORD Width;
+ DWORD Height;
+ float MinZ;
+ float MaxZ;
+} D3DVIEWPORT8;
+
+typedef struct _D3DVOLUME_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+} D3DVOLUME_DESC;
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif /* __WINE_D3D8TYPES_H */
diff --git a/d3d9.h b/d3d9.h
new file mode 100644
index 0000000..0670067
--- /dev/null
+++ b/d3d9.h
@@ -0,0 +1,2229 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2002-2003 Jason Edmeades
+ * Raphael Junqueira
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _D3D9_H_
+#define _D3D9_H_
+
+#ifndef DIRECT3D_VERSION
+#define DIRECT3D_VERSION 0x0900
+#endif
+
+#include <stdlib.h>
+
+#define COM_NO_WINDOWS_H
+#include <objbase.h>
+#include <windows.h>
+#include <d3d9types.h>
+#include <d3d9caps.h>
+
+/*****************************************************************************
+ * Behavior Flags for IDirect3D8::CreateDevice
+ */
+#define D3DCREATE_FPU_PRESERVE __MSABI_LONG(0x00000002)
+#define D3DCREATE_MULTITHREADED __MSABI_LONG(0x00000004)
+#define D3DCREATE_PUREDEVICE __MSABI_LONG(0x00000010)
+#define D3DCREATE_SOFTWARE_VERTEXPROCESSING __MSABI_LONG(0x00000020)
+#define D3DCREATE_HARDWARE_VERTEXPROCESSING __MSABI_LONG(0x00000040)
+#define D3DCREATE_MIXED_VERTEXPROCESSING __MSABI_LONG(0x00000080)
+#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT __MSABI_LONG(0x00000100)
+#define D3DCREATE_ADAPTERGROUP_DEVICE __MSABI_LONG(0x00000200)
+#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX __MSABI_LONG(0x00000400)
+#define D3DCREATE_NOWINDOWCHANGES __MSABI_LONG(0x00000800)
+#define D3DCREATE_DISABLE_PSGP_THREADING __MSABI_LONG(0x00002000)
+#define D3DCREATE_ENABLE_PRESENTSTATS __MSABI_LONG(0x00004000)
+#define D3DCREATE_DISABLE_PRINTSCREEN __MSABI_LONG(0x00008000)
+#define D3DCREATE_SCREENSAVER __MSABI_LONG(0x10000000)
+
+/*****************************************************************************
+ * Flags for SetPrivateData
+ */
+#define D3DSPD_IUNKNOWN __MSABI_LONG(0x00000001)
+
+
+/*****************************************************************************
+ * #defines and error codes
+ */
+#define D3D_SDK_VERSION 32
+#define D3DADAPTER_DEFAULT 0
+#define D3DENUM_WHQL_LEVEL __MSABI_LONG(0x00000002)
+#define D3DPRESENT_DONOTWAIT __MSABI_LONG(1)
+#define D3DPRESENT_LINEAR_CONTENT __MSABI_LONG(2)
+#define D3DPRESENT_BACK_BUFFERS_MAX __MSABI_LONG(3)
+#define D3DPRESENT_BACK_BUFFERS_MAX_EX __MSABI_LONG(30)
+#define D3DSGR_NO_CALIBRATION __MSABI_LONG(0x00000000)
+#define D3DSGR_CALIBRATE __MSABI_LONG(0x00000001)
+#define D3DCURSOR_IMMEDIATE_UPDATE __MSABI_LONG(0x00000001)
+
+#define _FACD3D 0x876
+#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
+#define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )
+
+/*****************************************************************************
+ * Direct3D Errors
+ */
+#define D3D_OK S_OK
+#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
+#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
+#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
+#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
+#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
+#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
+#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
+#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
+#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
+#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
+#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
+#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
+#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
+#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
+#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
+#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
+#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
+#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
+#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
+#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
+#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
+#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
+#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
+
+#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
+#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
+#define S_NOT_RESIDENT MAKE_D3DSTATUS(2165)
+#define S_RESIDENT_IN_SHARED_MEMORY MAKE_D3DSTATUS(2166)
+#define S_PRESENT_MODE_CHANGED MAKE_D3DSTATUS(2167)
+#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
+#define D3DERR_UNSUPPORTEDOVERLAY MAKE_D3DHRESULT(2171)
+#define D3DERR_UNSUPPORTEDOVERLAYFORMAT MAKE_D3DHRESULT(2172)
+#define D3DERR_CANNOTPROTECTCONTENT MAKE_D3DHRESULT(2173)
+#define D3DERR_UNSUPPORTEDCRYPTO MAKE_D3DHRESULT(2174)
+#define D3DERR_PRESENT_STATISTICS_DISJOINT MAKE_D3DHRESULT(2180)
+
+
+/*****************************************************************************
+ * Predeclare the interfaces
+ */
+DEFINE_GUID(IID_IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
+typedef struct IDirect3D9 *LPDIRECT3D9, *PDIRECT3D9;
+
+DEFINE_GUID(IID_IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
+typedef struct IDirect3DDevice9 *LPDIRECT3DDEVICE9;
+
+DEFINE_GUID(IID_IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
+typedef struct IDirect3DResource9 *LPDIRECT3DRESOURCE9, *PDIRECT3DRESOURCE9;
+
+DEFINE_GUID(IID_IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
+typedef struct IDirect3DVertexBuffer9 *LPDIRECT3DVERTEXBUFFER9, *PDIRECT3DVERTEXBUFFER9;
+
+DEFINE_GUID(IID_IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
+typedef struct IDirect3DVolume9 *LPDIRECT3DVOLUME9, *PDIRECT3DVOLUME9;
+
+DEFINE_GUID(IID_IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
+typedef struct IDirect3DSwapChain9 *LPDIRECT3DSWAPCHAIN9, *PDIRECT3DSWAPCHAIN9;
+
+DEFINE_GUID(IID_IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
+typedef struct IDirect3DSurface9 *LPDIRECT3DSURFACE9, *PDIRECT3DSURFACE9;
+
+DEFINE_GUID(IID_IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
+typedef struct IDirect3DIndexBuffer9 *LPDIRECT3DINDEXBUFFER9, *PDIRECT3DINDEXBUFFER9;
+
+DEFINE_GUID(IID_IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
+typedef struct IDirect3DBaseTexture9 *LPDIRECT3DBASETEXTURE9, *PDIRECT3DBASETEXTURE9;
+
+DEFINE_GUID(IID_IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
+typedef struct IDirect3DTexture9 *LPDIRECT3DTEXTURE9, *PDIRECT3DTEXTURE9;
+
+DEFINE_GUID(IID_IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
+typedef struct IDirect3DCubeTexture9 *LPDIRECT3DCUBETEXTURE9, *PDIRECT3DCUBETEXTURE9;
+
+DEFINE_GUID(IID_IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
+typedef struct IDirect3DVolumeTexture9 *LPDIRECT3DVOLUMETEXTURE9, *PDIRECT3DVOLUMETEXTURE9;
+
+DEFINE_GUID(IID_IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
+typedef struct IDirect3DVertexDeclaration9 *LPDIRECT3DVERTEXDECLARATION9;
+
+DEFINE_GUID(IID_IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
+typedef struct IDirect3DVertexShader9 *LPDIRECT3DVERTEXSHADER9;
+
+DEFINE_GUID(IID_IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
+typedef struct IDirect3DPixelShader9 *LPDIRECT3DPIXELSHADER9;
+
+DEFINE_GUID(IID_IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
+typedef struct IDirect3DStateBlock9 *LPDIRECT3DSTATEBLOCK9;
+
+DEFINE_GUID(IID_IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
+typedef struct IDirect3DQuery9 *LPDIRECT3DQUERY9, *PDIRECT3DQUERY9;
+
+/*****************************************************************************
+ * IDirect3D9 interface
+ */
+#undef INTERFACE
+#define INTERFACE IDirect3D9
+DECLARE_INTERFACE_(IDirect3D9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3D9 methods ***/
+ STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
+ STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
+ STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
+ STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;
+ STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter, D3DFORMAT Format, UINT Mode, D3DDISPLAYMODE* pMode) PURE;
+ STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter, D3DDISPLAYMODE* pMode) PURE;
+ STDMETHOD(CheckDeviceType)(THIS_ UINT iAdapter, D3DDEVTYPE DevType, D3DFORMAT DisplayFormat, D3DFORMAT BackBufferFormat, WINBOOL bWindowed) PURE;
+ STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat) PURE;
+ STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SurfaceFormat, WINBOOL Windowed, D3DMULTISAMPLE_TYPE MultiSampleType, DWORD* pQualityLevels) PURE;
+ STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, D3DFORMAT RenderTargetFormat, D3DFORMAT DepthStencilFormat) PURE;
+ STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT SourceFormat, D3DFORMAT TargetFormat) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, D3DCAPS9* pCaps) PURE;
+ STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
+ STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3D9, 0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3D9 methods ***/
+#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
+#define IDirect3D9_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
+#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
+#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
+#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
+#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
+#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
+#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
+#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
+#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
+#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
+#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
+#define IDirect3D9_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
+#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
+#else
+/*** IUnknown methods ***/
+#define IDirect3D9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D9_AddRef(p) (p)->AddRef()
+#define IDirect3D9_Release(p) (p)->Release()
+/*** IDirect3D9 methods ***/
+#define IDirect3D9_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
+#define IDirect3D9_GetAdapterCount(p) (p)->GetAdapterCount()
+#define IDirect3D9_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
+#define IDirect3D9_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
+#define IDirect3D9_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
+#define IDirect3D9_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
+#define IDirect3D9_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
+#define IDirect3D9_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
+#define IDirect3D9_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
+#define IDirect3D9_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
+#define IDirect3D9_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
+#define IDirect3D9_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
+#define IDirect3D9_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
+#define IDirect3D9_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVolume9 interface
+ */
+#define INTERFACE IDirect3DVolume9
+DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVolume9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
+ STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+ STDMETHOD(UnlockBox)(THIS) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DVolume9, 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolume9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolume9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVolume9 methods ***/
+#define IDirect3DVolume9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolume9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolume9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DVolume9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->lpVtbl->LockBox(p,a,b,c)
+#define IDirect3DVolume9_UnlockBox(p) (p)->lpVtbl->UnlockBox(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVolume9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVolume9_AddRef(p) (p)->AddRef()
+#define IDirect3DVolume9_Release(p) (p)->Release()
+/*** IDirect3DVolume9 methods ***/
+#define IDirect3DVolume9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVolume9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVolume9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVolume9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVolume9_GetContainer(p,a,b) (p)->GetContainer(a,b)
+#define IDirect3DVolume9_GetDesc(p,a) (p)->GetDesc(a)
+#define IDirect3DVolume9_LockBox(p,a,b,c) (p)->LockBox(a,b,c)
+#define IDirect3DVolume9_UnlockBox(p) (p)->UnlockBox()
+#endif
+
+/*****************************************************************************
+ * IDirect3DSwapChain9 interface
+ */
+#define INTERFACE IDirect3DSwapChain9
+DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DSwapChain9 methods ***/
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
+ const RGNDATA *dirty_region, DWORD flags) PURE;
+ STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
+ STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
+ STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE *pMode) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **ppDevice) PURE;
+ STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS *pPresentationParameters) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DSwapChain9, 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSwapChain9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSwapChain9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DSwapChain9 methods ***/
+#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
+#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
+#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
+#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
+#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
+#define IDirect3DSwapChain9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DSwapChain9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DSwapChain9_AddRef(p) (p)->AddRef()
+#define IDirect3DSwapChain9_Release(p) (p)->Release()
+/*** IDirect3DSwapChain9 methods ***/
+#define IDirect3DSwapChain9_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
+#define IDirect3DSwapChain9_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
+#define IDirect3DSwapChain9_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
+#define IDirect3DSwapChain9_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
+#define IDirect3DSwapChain9_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
+#define IDirect3DSwapChain9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DSwapChain9_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DResource9 interface
+ */
+#define INTERFACE IDirect3DResource9
+DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DResource9, 0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DResource9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DResource9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DResource9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DResource9 methods ***/
+#define IDirect3DResource9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DResource9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DResource9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DResource9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DResource9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DResource9_GetType(p) (p)->lpVtbl->GetType(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DResource9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DResource9_AddRef(p) (p)->AddRef()
+#define IDirect3DResource9_Release(p) (p)->Release()
+/*** IDirect3DResource9 methods ***/
+#define IDirect3DResource9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DResource9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DResource9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DResource9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DResource9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DResource9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DResource9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DResource9_GetType(p) (p)->GetType()
+#endif
+
+/*****************************************************************************
+ * IDirect3DSurface9 interface
+ */
+#define INTERFACE IDirect3DSurface9
+DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DSurface9 methods ***/
+ STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
+ STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS) PURE;
+ STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
+ STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DSurface9, 0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSurface9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSurface9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
+#define IDirect3DSurface9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DSurface9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DSurface9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DSurface9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DSurface9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DSurface9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DSurface9 methods ***/
+#define IDirect3DSurface9_GetContainer(p,a,b) (p)->lpVtbl->GetContainer(p,a,b)
+#define IDirect3DSurface9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->lpVtbl->LockRect(p,a,b,c)
+#define IDirect3DSurface9_UnlockRect(p) (p)->lpVtbl->UnlockRect(p)
+#define IDirect3DSurface9_GetDC(p,a) (p)->lpVtbl->GetDC(p,a)
+#define IDirect3DSurface9_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DSurface9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DSurface9_AddRef(p) (p)->AddRef()
+#define IDirect3DSurface9_Release(p) (p)->Release()
+/*** IDirect3DSurface9 methods: IDirect3DResource9 ***/
+#define IDirect3DSurface9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DSurface9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DSurface9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DSurface9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DSurface9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DSurface9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DSurface9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DSurface9_GetType(p) (p)->GetType()
+/*** IDirect3DSurface9 methods ***/
+#define IDirect3DSurface9_GetContainer(p,a,b) (p)->GetContainer(a,b)
+#define IDirect3DSurface9_GetDesc(p,a) (p)->GetDesc(a)
+#define IDirect3DSurface9_LockRect(p,a,b,c) (p)->LockRect(a,b,c)
+#define IDirect3DSurface9_UnlockRect(p) (p)->UnlockRect()
+#define IDirect3DSurface9_GetDC(p,a) (p)->GetDC(a)
+#define IDirect3DSurface9_ReleaseDC(p,a) (p)->ReleaseDC(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVertexBuffer9 interface
+ */
+#define INTERFACE IDirect3DVertexBuffer9
+DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DVertexBuffer9 methods ***/
+ STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DVERTEXBUFFER_DESC* pDesc) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DVertexBuffer9, 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexBuffer9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
+#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVertexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVertexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVertexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DVertexBuffer9 methods ***/
+#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DVertexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexBuffer9_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexBuffer9_Release(p) (p)->Release()
+/*** IDirect3DVertexBuffer9 methods: IDirect3DResource9 ***/
+#define IDirect3DVertexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVertexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVertexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVertexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVertexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DVertexBuffer9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DVertexBuffer9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DVertexBuffer9_GetType(p) (p)->GetType()
+/*** IDirect3DVertexBuffer9 methods ***/
+#define IDirect3DVertexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
+#define IDirect3DVertexBuffer9_Unlock(p) (p)->Unlock()
+#define IDirect3DVertexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DIndexBuffer9 interface
+ */
+#define INTERFACE IDirect3DIndexBuffer9
+DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DIndexBuffer9 methods ***/
+ STDMETHOD(Lock)(THIS_ UINT OffsetToLock, UINT SizeToLock, void** ppbData, DWORD Flags) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DINDEXBUFFER_DESC* pDesc) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DIndexBuffer9, 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DIndexBuffer9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DIndexBuffer9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
+#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DIndexBuffer9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DIndexBuffer9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DIndexBuffer9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DIndexBuffer9 methods ***/
+#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d)
+#define IDirect3DIndexBuffer9_Unlock(p) (p)->lpVtbl->Unlock(p)
+#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DIndexBuffer9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DIndexBuffer9_AddRef(p) (p)->AddRef()
+#define IDirect3DIndexBuffer9_Release(p) (p)->Release()
+/*** IDirect3DIndexBuffer9 methods: IDirect3DResource9 ***/
+#define IDirect3DIndexBuffer9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DIndexBuffer9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DIndexBuffer9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DIndexBuffer9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DIndexBuffer9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DIndexBuffer9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DIndexBuffer9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DIndexBuffer9_GetType(p) (p)->GetType()
+/*** IDirect3DIndexBuffer9 methods ***/
+#define IDirect3DIndexBuffer9_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d)
+#define IDirect3DIndexBuffer9_Unlock(p) (p)->Unlock()
+#define IDirect3DIndexBuffer9_GetDesc(p,a) (p)->GetDesc(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DBaseTexture9 interface
+ */
+#define INTERFACE IDirect3DBaseTexture9
+DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture9 methods ***/
+ STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
+ STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
+ STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
+ STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DBaseTexture9, 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DBaseTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DBaseTexture9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DBaseTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DBaseTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DBaseTexture9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DBaseTexture9 methods ***/
+#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DBaseTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
+#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
+#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DBaseTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DBaseTexture9_AddRef(p) (p)->AddRef()
+#define IDirect3DBaseTexture9_Release(p) (p)->Release()
+/*** IDirect3DBaseTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DBaseTexture9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DBaseTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DBaseTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DBaseTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DBaseTexture9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DBaseTexture9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DBaseTexture9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DBaseTexture9_GetType(p) (p)->GetType()
+/*** IDirect3DBaseTexture9 methods ***/
+#define IDirect3DBaseTexture9_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DBaseTexture9_GetLOD(p) (p)->GetLOD()
+#define IDirect3DBaseTexture9_GetLevelCount(p) (p)->GetLevelCount()
+#define IDirect3DBaseTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
+#define IDirect3DBaseTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
+#define IDirect3DBaseTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
+#endif
+
+/*****************************************************************************
+ * IDirect3DCubeTexture9 interface
+ */
+#define INTERFACE IDirect3DCubeTexture9
+DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture9 methods ***/
+ STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
+ STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
+ STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
+ STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
+ /*** IDirect3DCubeTexture9 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
+ STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
+ STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level,
+ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
+ STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DCubeTexture9, 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DCubeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DCubeTexture9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DCubeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DCubeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DCubeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DCubeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
+#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
+#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
+/*** IDirect3DCubeTexture9 methods ***/
+#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->lpVtbl->GetCubeMapSurface(p,a,b,c)
+#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->lpVtbl->LockRect(p,a,b,c,d,e)
+#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->lpVtbl->UnlockRect(p,a,b)
+#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->lpVtbl->AddDirtyRect(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DCubeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DCubeTexture9_AddRef(p) (p)->AddRef()
+#define IDirect3DCubeTexture9_Release(p) (p)->Release()
+/*** IDirect3DCubeTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DCubeTexture9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DCubeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DCubeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DCubeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DCubeTexture9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DCubeTexture9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DCubeTexture9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DCubeTexture9_GetType(p) (p)->GetType()
+/*** IDirect3DCubeTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DCubeTexture9_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DCubeTexture9_GetLOD(p) (p)->GetLOD()
+#define IDirect3DCubeTexture9_GetLevelCount(p) (p)->GetLevelCount()
+#define IDirect3DCubeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
+#define IDirect3DCubeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
+#define IDirect3DCubeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
+/*** IDirect3DCubeTexture9 methods ***/
+#define IDirect3DCubeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DCubeTexture9_GetCubeMapSurface(p,a,b,c) (p)->GetCubeMapSurface(a,b,c)
+#define IDirect3DCubeTexture9_LockRect(p,a,b,c,d,e) (p)->LockRect(a,b,c,d,e)
+#define IDirect3DCubeTexture9_UnlockRect(p,a,b) (p)->UnlockRect(a,b)
+#define IDirect3DCubeTexture9_AddDirtyRect(p,a,b) (p)->AddDirtyRect(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DTexture9 interface
+ */
+#define INTERFACE IDirect3DTexture9
+DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture9 methods ***/
+ STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
+ STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
+ STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
+ STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
+ /*** IDirect3DTexture9 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
+ STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
+ STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+ STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
+ STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DTexture9, 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DTexture9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DTexture9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
+#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
+#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
+/*** IDirect3DTexture9 methods ***/
+#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->lpVtbl->GetSurfaceLevel(p,a,b)
+#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->lpVtbl->LockRect(p,a,b,c,d)
+#define IDirect3DTexture9_UnlockRect(p,a) (p)->lpVtbl->UnlockRect(p,a)
+#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->lpVtbl->AddDirtyRect(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DTexture9_AddRef(p) (p)->AddRef()
+#define IDirect3DTexture9_Release(p) (p)->Release()
+/*** IDirect3DTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DTexture9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DTexture9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DTexture9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DTexture9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DTexture9_GetType(p) (p)->GetType()
+/*** IDirect3DTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DTexture9_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DTexture9_GetLOD(p) (p)->GetLOD()
+#define IDirect3DTexture9_GetLevelCount(p) (p)->GetLevelCount()
+#define IDirect3DTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
+#define IDirect3DTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
+#define IDirect3DTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
+/*** IDirect3DTexture9 methods ***/
+#define IDirect3DTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DTexture9_GetSurfaceLevel(p,a,b) (p)->GetSurfaceLevel(a,b)
+#define IDirect3DTexture9_LockRect(p,a,b,c,d) (p)->LockRect(a,b,c,d)
+#define IDirect3DTexture9_UnlockRect(p,a) (p)->UnlockRect(a)
+#define IDirect3DTexture9_AddDirtyRect(p,a) (p)->AddDirtyRect(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVolumeTexture9 interface
+ */
+#define INTERFACE IDirect3DVolumeTexture9
+DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DResource9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+ STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+ STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+ STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+ STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
+ STDMETHOD_(void, PreLoad)(THIS) PURE;
+ STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
+ /*** IDirect3DBaseTexture9 methods ***/
+ STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
+ STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
+ STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
+ STDMETHOD(SetAutoGenFilterType)(THIS_ D3DTEXTUREFILTERTYPE FilterType) PURE;
+ STDMETHOD_(D3DTEXTUREFILTERTYPE, GetAutoGenFilterType)(THIS) PURE;
+ STDMETHOD_(void, GenerateMipSubLevels)(THIS) PURE;
+ /*** IDirect3DVolumeTexture9 methods ***/
+ STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
+ STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
+ STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+ STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
+ STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DVolumeTexture9, 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVolumeTexture9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVolumeTexture9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d)
+#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c)
+#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a)
+#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IDirect3DVolumeTexture9_GetPriority(p) (p)->lpVtbl->GetPriority(p)
+#define IDirect3DVolumeTexture9_PreLoad(p) (p)->lpVtbl->PreLoad(p)
+#define IDirect3DVolumeTexture9_GetType(p) (p)->lpVtbl->GetType(p)
+/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a)
+#define IDirect3DVolumeTexture9_GetLOD(p) (p)->lpVtbl->GetLOD(p)
+#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->lpVtbl->GetLevelCount(p)
+#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->lpVtbl->SetAutoGenFilterType(p,a)
+#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->lpVtbl->GetAutoGenFilterType(p)
+#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->lpVtbl->GenerateMipSubLevels(p)
+/*** IDirect3DVolumeTexture9 methods ***/
+#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->lpVtbl->GetLevelDesc(p,a,b)
+#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->lpVtbl->GetVolumeLevel(p,a,b)
+#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->lpVtbl->LockBox(p,a,b,c,d)
+#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->lpVtbl->UnlockBox(p,a)
+#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->lpVtbl->AddDirtyBox(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVolumeTexture9_AddRef(p) (p)->AddRef()
+#define IDirect3DVolumeTexture9_Release(p) (p)->Release()
+/*** IDirect3DVolumeTexture9 methods: IDirect3DResource9 ***/
+#define IDirect3DVolumeTexture9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVolumeTexture9_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d)
+#define IDirect3DVolumeTexture9_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c)
+#define IDirect3DVolumeTexture9_FreePrivateData(p,a) (p)->FreePrivateData(a)
+#define IDirect3DVolumeTexture9_SetPriority(p,a) (p)->SetPriority(a)
+#define IDirect3DVolumeTexture9_GetPriority(p) (p)->GetPriority()
+#define IDirect3DVolumeTexture9_PreLoad(p) (p)->PreLoad()
+#define IDirect3DVolumeTexture9_GetType(p) (p)->GetType()
+/*** IDirect3DVolumeTexture9 methods: IDirect3DBaseTexture9 ***/
+#define IDirect3DVolumeTexture9_SetLOD(p,a) (p)->SetLOD(a)
+#define IDirect3DVolumeTexture9_GetLOD(p) (p)->GetLOD()
+#define IDirect3DVolumeTexture9_GetLevelCount(p) (p)->GetLevelCount()
+#define IDirect3DVolumeTexture9_SetAutoGenFilterType(p,a) (p)->SetAutoGenFilterType(a)
+#define IDirect3DVolumeTexture9_GetAutoGenFilterType(p) (p)->GetAutoGenFilterType()
+#define IDirect3DVolumeTexture9_GenerateMipSubLevels(p) (p)->GenerateMipSubLevels()
+/*** IDirect3DVolumeTexture9 methods ***/
+#define IDirect3DVolumeTexture9_GetLevelDesc(p,a,b) (p)->GetLevelDesc(a,b)
+#define IDirect3DVolumeTexture9_GetVolumeLevel(p,a,b) (p)->GetVolumeLevel(a,b)
+#define IDirect3DVolumeTexture9_LockBox(p,a,b,c,d) (p)->LockBox(a,b,c,d)
+#define IDirect3DVolumeTexture9_UnlockBox(p,a) (p)->UnlockBox(a)
+#define IDirect3DVolumeTexture9_AddDirtyBox(p,a) (p)->AddDirtyBox(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVertexDeclaration9 interface
+ */
+#define INTERFACE IDirect3DVertexDeclaration9
+DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVertexDeclaration9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9*, UINT* pNumElements) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DVertexDeclaration9, 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexDeclaration9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexDeclaration9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexShader9 methods ***/
+#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->lpVtbl->GetDeclaration(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexDeclaration9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexDeclaration9_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexDeclaration9_Release(p) (p)->Release()
+/*** IDirect3DVertexShader9 methods ***/
+#define IDirect3DVertexDeclaration9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVertexDeclaration9_GetDeclaration(p,a,b) (p)->GetDeclaration(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DVertexShader9 interface
+ */
+#define INTERFACE IDirect3DVertexShader9
+DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DVertexShader9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DVertexShader9, 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DVertexShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DVertexShader9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DVertexShader9 methods ***/
+#define IDirect3DVertexShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DVertexShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DVertexShader9_AddRef(p) (p)->AddRef()
+#define IDirect3DVertexShader9_Release(p) (p)->Release()
+/*** IDirect3DVertexShader9 methods ***/
+#define IDirect3DVertexShader9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DVertexShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DPixelShader9 interface
+ */
+#define INTERFACE IDirect3DPixelShader9
+DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DPixelShader9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(GetFunction)(THIS_ void*, UINT* pSizeOfData) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DPixelShader9, 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DPixelShader9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DPixelShader9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DPixelShader9 methods ***/
+#define IDirect3DPixelShader9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->lpVtbl->GetFunction(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DPixelShader9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DPixelShader9_AddRef(p) (p)->AddRef()
+#define IDirect3DPixelShader9_Release(p) (p)->Release()
+/*** IDirect3DPixelShader9 methods ***/
+#define IDirect3DPixelShader9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DPixelShader9_GetFunction(p,a,b) (p)->GetFunction(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DStateBlock9 interface
+ */
+#define INTERFACE IDirect3DStateBlock9
+DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DStateBlock9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD(Capture)(THIS) PURE;
+ STDMETHOD(Apply)(THIS) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DStateBlock9, 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DStateBlock9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DStateBlock9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DStateBlock9 methods ***/
+#define IDirect3DStateBlock9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DStateBlock9_Capture(p) (p)->lpVtbl->Capture(p)
+#define IDirect3DStateBlock9_Apply(p) (p)->lpVtbl->Apply(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DStateBlock9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DStateBlock9_AddRef(p) (p)->AddRef()
+#define IDirect3DStateBlock9_Release(p) (p)->Release()
+/*** IDirect3DStateBlock9 methods ***/
+#define IDirect3DStateBlock9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DStateBlock9_Capture(p) (p)->Capture()
+#define IDirect3DStateBlock9_Apply(p) (p)->Apply()
+#endif
+
+/*****************************************************************************
+ * IDirect3DQuery9 interface
+ */
+#define INTERFACE IDirect3DQuery9
+DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DQuery9 methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+ STDMETHOD_(D3DQUERYTYPE, GetType)(THIS) PURE;
+ STDMETHOD_(DWORD, GetDataSize)(THIS) PURE;
+ STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
+ STDMETHOD(GetData)(THIS_ void* pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DQuery9, 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DQuery9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DQuery9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DQuery9 ***/
+#define IDirect3DQuery9_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DQuery9_GetType(p) (p)->lpVtbl->GetType(p)
+#define IDirect3DQuery9_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
+#define IDirect3DQuery9_Issue(p,a) (p)->lpVtbl->Issue(p,a)
+#define IDirect3DQuery9_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DQuery9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DQuery9_AddRef(p) (p)->AddRef()
+#define IDirect3DQuery9_Release(p) (p)->Release()
+/*** IDirect3DQuery9 ***/
+#define IDirect3DQuery9_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DQuery9_GetType(p) (p)->GetType()
+#define IDirect3DQuery9_GetDataSize(p) (p)->GetDataSize()
+#define IDirect3DQuery9_Issue(p,a) (p)->Issue(a)
+#define IDirect3DQuery9_GetData(p,a,b,c) (p)->GetData(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DDevice9 interface
+ */
+#define INTERFACE IDirect3DDevice9
+DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DDevice9 methods ***/
+ STDMETHOD(TestCooperativeLevel)(THIS) PURE;
+ STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
+ STDMETHOD(EvictManagedResources)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D9** ppD3D9) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9* pCaps) PURE;
+ STDMETHOD(GetDisplayMode)(THIS_ UINT iSwapChain, D3DDISPLAYMODE* pMode) PURE;
+ STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *pParameters) PURE;
+ STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) PURE;
+ STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y, DWORD Flags) PURE;
+ STDMETHOD_(WINBOOL, ShowCursor)(THIS_ WINBOOL bShow) PURE;
+ STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
+ STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
+ STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
+ STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
+ HWND dst_window_override, const RGNDATA *dirty_region) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
+ STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
+ STDMETHOD(SetDialogBoxMode)(THIS_ WINBOOL bEnableDialogs) PURE;
+ STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+ STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
+ STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
+ IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
+ STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
+ STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
+ STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
+ STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
+ IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
+ STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
+ STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
+ STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9* pNewZStencil) PURE;
+ STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
+ D3DCOLOR color, float z, DWORD stencil) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
+ STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
+ STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
+ STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
+ STDMETHOD(LightEnable)(THIS_ DWORD Index, WINBOOL Enable) PURE;
+ STDMETHOD(GetLightEnable)(THIS_ DWORD Index, WINBOOL* pEnable) PURE;
+ STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
+ STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
+ STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
+ STDMETHOD(BeginStateBlock)(THIS) PURE;
+ STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
+ STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
+ STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) PURE;
+ STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
+ STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
+ STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
+ STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+ STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
+ STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
+ STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
+ STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
+ STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
+ STDMETHOD(SetSoftwareVertexProcessing)(THIS_ WINBOOL bSoftware) PURE;
+ STDMETHOD_(WINBOOL, GetSoftwareVertexProcessing)(THIS) PURE;
+ STDMETHOD(SetNPatchMode)(THIS_ float nSegments) PURE;
+ STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
+ STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
+ UINT primitive_count, const void *data, UINT stride) PURE;
+ STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
+ UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
+ STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
+ STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
+ IDirect3DVertexDeclaration9 **declaration) PURE;
+ STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
+ STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
+ STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
+ STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
+ STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_code, IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
+ STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+ STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+ STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+ STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
+ STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
+ STDMETHOD(SetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT Divider) PURE;
+ STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
+ STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
+ STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
+ STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
+ STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+ STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+ STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+ STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
+ STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
+};
+#undef INTERFACE
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DDevice9, 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
+#endif
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice9_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice9_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DDevice9 methods ***/
+#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
+#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
+#define IDirect3DDevice9_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
+#define IDirect3DDevice9_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
+#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
+#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
+#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
+#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
+#define IDirect3DDevice9_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
+#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
+#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
+#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
+#define IDirect3DDevice9_Reset(p,a) (p)->lpVtbl->Reset(p,a)
+#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
+#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
+#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
+#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
+#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
+#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
+#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
+#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
+#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
+#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
+#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
+#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
+#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
+#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
+#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
+#define IDirect3DDevice9_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice9_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice9_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice9_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DDevice9_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DDevice9_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DDevice9_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DDevice9_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DDevice9_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
+#define IDirect3DDevice9_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
+#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
+#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
+#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
+#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
+#define IDirect3DDevice9_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
+#define IDirect3DDevice9_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
+#define IDirect3DDevice9_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice9_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice9_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice9_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
+#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
+#define IDirect3DDevice9_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
+#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
+#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
+#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
+#define IDirect3DDevice9_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
+#define IDirect3DDevice9_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
+#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
+#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
+#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
+#define IDirect3DDevice9_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
+#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
+#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
+#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
+#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
+#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
+#define IDirect3DDevice9_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
+#define IDirect3DDevice9_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
+#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
+#define IDirect3DDevice9_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
+#define IDirect3DDevice9_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
+#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
+#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
+#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
+#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
+#define IDirect3DDevice9_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
+#define IDirect3DDevice9_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
+#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
+#define IDirect3DDevice9_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
+#define IDirect3DDevice9_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
+#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
+#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
+#define IDirect3DDevice9_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
+#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DDevice9_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice9_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice9_Release(p) (p)->Release()
+/*** IDirect3DDevice9 methods ***/
+#define IDirect3DDevice9_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
+#define IDirect3DDevice9_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
+#define IDirect3DDevice9_EvictManagedResources(p) (p)->EvictManagedResources()
+#define IDirect3DDevice9_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice9_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
+#define IDirect3DDevice9_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
+#define IDirect3DDevice9_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
+#define IDirect3DDevice9_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
+#define IDirect3DDevice9_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
+#define IDirect3DDevice9_ShowCursor(p,a) (p)->ShowCursor(a)
+#define IDirect3DDevice9_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
+#define IDirect3DDevice9_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
+#define IDirect3DDevice9_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
+#define IDirect3DDevice9_Reset(p,a) (p)->Reset(a)
+#define IDirect3DDevice9_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
+#define IDirect3DDevice9_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
+#define IDirect3DDevice9_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
+#define IDirect3DDevice9_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
+#define IDirect3DDevice9_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
+#define IDirect3DDevice9_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
+#define IDirect3DDevice9_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
+#define IDirect3DDevice9_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
+#define IDirect3DDevice9_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
+#define IDirect3DDevice9_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
+#define IDirect3DDevice9_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
+#define IDirect3DDevice9_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
+#define IDirect3DDevice9_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
+#define IDirect3DDevice9_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
+#define IDirect3DDevice9_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice9_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
+#define IDirect3DDevice9_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
+#define IDirect3DDevice9_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
+#define IDirect3DDevice9_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice9_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice9_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
+#define IDirect3DDevice9_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice9_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice9_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice9_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DDevice9_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DDevice9_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DDevice9_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DDevice9_SetLight(p,a,b) (p)->SetLight(a,b)
+#define IDirect3DDevice9_GetLight(p,a,b) (p)->GetLight(a,b)
+#define IDirect3DDevice9_LightEnable(p,a,b) (p)->LightEnable(a,b)
+#define IDirect3DDevice9_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
+#define IDirect3DDevice9_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
+#define IDirect3DDevice9_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
+#define IDirect3DDevice9_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice9_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice9_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
+#define IDirect3DDevice9_BeginStateBlock(p) (p)->BeginStateBlock()
+#define IDirect3DDevice9_EndStateBlock(p,a) (p)->EndStateBlock(a)
+#define IDirect3DDevice9_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice9_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#define IDirect3DDevice9_GetTexture(p,a,b) (p)->GetTexture(a,b)
+#define IDirect3DDevice9_SetTexture(p,a,b) (p)->SetTexture(a,b)
+#define IDirect3DDevice9_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
+#define IDirect3DDevice9_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
+#define IDirect3DDevice9_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
+#define IDirect3DDevice9_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
+#define IDirect3DDevice9_ValidateDevice(p,a) (p)->ValidateDevice(a)
+#define IDirect3DDevice9_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
+#define IDirect3DDevice9_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
+#define IDirect3DDevice9_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
+#define IDirect3DDevice9_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
+#define IDirect3DDevice9_SetScissorRect(p,a) (p)->SetScissorRect(a)
+#define IDirect3DDevice9_GetScissorRect(p,a) (p)->GetScissorRect(a)
+#define IDirect3DDevice9_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
+#define IDirect3DDevice9_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
+#define IDirect3DDevice9_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
+#define IDirect3DDevice9_GetNPatchMode(p) (p)->GetNPatchMode()
+#define IDirect3DDevice9_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
+#define IDirect3DDevice9_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
+#define IDirect3DDevice9_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
+#define IDirect3DDevice9_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
+#define IDirect3DDevice9_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
+#define IDirect3DDevice9_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
+#define IDirect3DDevice9_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
+#define IDirect3DDevice9_SetFVF(p,a) (p)->SetFVF(a)
+#define IDirect3DDevice9_GetFVF(p,a) (p)->GetFVF(a)
+#define IDirect3DDevice9_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
+#define IDirect3DDevice9_SetVertexShader(p,a) (p)->SetVertexShader(a)
+#define IDirect3DDevice9_GetVertexShader(p,a) (p)->GetVertexShader(a)
+#define IDirect3DDevice9_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
+#define IDirect3DDevice9_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
+#define IDirect3DDevice9_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
+#define IDirect3DDevice9_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
+#define IDirect3DDevice9_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
+#define IDirect3DDevice9_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
+#define IDirect3DDevice9_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
+#define IDirect3DDevice9_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
+#define IDirect3DDevice9_SetIndices(p,a) (p)->SetIndices(a)
+#define IDirect3DDevice9_GetIndices(p,a) (p)->GetIndices(a)
+#define IDirect3DDevice9_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
+#define IDirect3DDevice9_SetPixelShader(p,a) (p)->SetPixelShader(a)
+#define IDirect3DDevice9_GetPixelShader(p,a) (p)->GetPixelShader(a)
+#define IDirect3DDevice9_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
+#define IDirect3DDevice9_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
+#define IDirect3DDevice9_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
+#define IDirect3DDevice9_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
+#define IDirect3DDevice9_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
+#define IDirect3DDevice9_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
+#define IDirect3DDevice9_DeletePatch(p,a) (p)->DeletePatch(a)
+#define IDirect3DDevice9_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
+#endif
+
+
+#if !defined(D3D_DISABLE_9EX)
+
+typedef struct IDirect3D9Ex *LPDIRECT3D9EX, *PDIRECT3D9EX;
+typedef struct IDirect3DSwapChain9Ex *LPDIRECT3DSWAPCHAIN9EX, *PDIRECT3DSWAPCHAIN9EX;
+typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3D9Ex, 0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d);
+#endif
+DEFINE_GUID(IID_IDirect3D9Ex, 0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d);
+
+#define INTERFACE IDirect3D9Ex
+DECLARE_INTERFACE_(IDirect3D9Ex, IDirect3D9)
+{
+ /* IUnknown */
+ STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* IDirect3D9 */
+ STDMETHOD(RegisterSoftwareDevice)(THIS_ void *init) PURE;
+ STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
+ STDMETHOD(GetAdapterIdentifier)(THIS_ UINT adapter_idx, DWORD flags, D3DADAPTER_IDENTIFIER9 *identifier) PURE;
+ STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT adapter_idx, D3DFORMAT format) PURE;
+ STDMETHOD(EnumAdapterModes)(THIS_ UINT adapter_idx, D3DFORMAT format, UINT mode_idx, D3DDISPLAYMODE *mode) PURE;
+ STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT adapter_idx, D3DDISPLAYMODE *mode) PURE;
+ STDMETHOD(CheckDeviceType)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type,
+ D3DFORMAT display_format, D3DFORMAT backbuffer_format, WINBOOL windowed) PURE;
+ STDMETHOD(CheckDeviceFormat)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type, D3DFORMAT adapter_format,
+ DWORD usage, D3DRESOURCETYPE resource_type, D3DFORMAT format) PURE;
+ STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type, D3DFORMAT surface_format,
+ WINBOOL windowed, D3DMULTISAMPLE_TYPE multisample_type, DWORD *quality_levels) PURE;
+ STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type,
+ D3DFORMAT adapter_format, D3DFORMAT rt_format, D3DFORMAT ds_format) PURE;
+ STDMETHOD(CheckDeviceFormatConversion)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type,
+ D3DFORMAT src_format, D3DFORMAT dst_format) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type, D3DCAPS9 *caps) PURE;
+ STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT adapter_idx) PURE;
+ STDMETHOD(CreateDevice)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type, HWND focus_window, DWORD flags,
+ D3DPRESENT_PARAMETERS *parameters, struct IDirect3DDevice9 **device) PURE;
+ /* IDirect3D9Ex */
+ STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter) PURE;
+ STDMETHOD(EnumAdapterModesEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter,
+ UINT mode_idx, D3DDISPLAYMODEEX *mode) PURE;
+ STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT adapter_idx,
+ D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation) PURE;
+ STDMETHOD(CreateDeviceEx)(THIS_ UINT adapter_idx, D3DDEVTYPE device_type, HWND focus_window, DWORD flags,
+ D3DPRESENT_PARAMETERS *parameters, D3DDISPLAYMODEEX *mode, struct IDirect3DDevice9Ex **device) PURE;
+ STDMETHOD(GetAdapterLUID)(THIS_ UINT adapter_idx, LUID *luid) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/* IUnknown */
+#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3D9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3D9Ex_Release(p) (p)->lpVtbl->Release(p)
+/* IDirect3D9 */
+#define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->lpVtbl->RegisterSoftwareDevice(p,a)
+#define IDirect3D9Ex_GetAdapterCount(p) (p)->lpVtbl->GetAdapterCount(p)
+#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->lpVtbl->GetAdapterIdentifier(p,a,b,c)
+#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->lpVtbl->GetAdapterModeCount(p,a,b)
+#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModes(p,a,b,c,d)
+#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->lpVtbl->GetAdapterDisplayMode(p,a,b)
+#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->lpVtbl->CheckDeviceType(p,a,b,c,d,e)
+#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceFormat(p,a,b,c,d,e,f)
+#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->lpVtbl->CheckDeviceMultiSampleType(p,a,b,c,d,e,f)
+#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->lpVtbl->CheckDepthStencilMatch(p,a,b,c,d,e)
+#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->lpVtbl->CheckDeviceFormatConversion(p,a,b,c,d)
+#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->lpVtbl->GetDeviceCaps(p,a,b,c)
+#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->lpVtbl->GetAdapterMonitor(p,a)
+#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDevice(p,a,b,c,d,e,f)
+/* IDirect3D9Ex */
+#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->lpVtbl->GetAdapterModeCountEx(p,a,b)
+#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->lpVtbl->EnumAdapterModesEx(p,a,b,c,d)
+#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetAdapterDisplayModeEx(p,a,b,c)
+#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateDeviceEx(p,a,b,c,d,e,f,g)
+#define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->lpVtbl->GetAdapterLUID(p,a,b)
+#else
+/* IUnknown */
+#define IDirect3D9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3D9Ex_AddRef(p) (p)->AddRef()
+#define IDirect3D9Ex_Release(p) (p)->Release()
+/* IDirect3D9 */
+#define IDirect3D9Ex_RegisterSoftwareDevice(p,a) (p)->RegisterSoftwareDevice(a)
+#define IDirect3D9Ex_GetAdapterCount(p) (p)->GetAdapterCount()
+#define IDirect3D9Ex_GetAdapterIdentifier(p,a,b,c) (p)->GetAdapterIdentifier(a,b,c)
+#define IDirect3D9Ex_GetAdapterModeCount(p,a,b) (p)->GetAdapterModeCount(a,b)
+#define IDirect3D9Ex_EnumAdapterModes(p,a,b,c,d) (p)->EnumAdapterModes(a,b,c,d)
+#define IDirect3D9Ex_GetAdapterDisplayMode(p,a,b) (p)->GetAdapterDisplayMode(a,b)
+#define IDirect3D9Ex_CheckDeviceType(p,a,b,c,d,e) (p)->CheckDeviceType(a,b,c,d,e)
+#define IDirect3D9Ex_CheckDeviceFormat(p,a,b,c,d,e,f) (p)->CheckDeviceFormat(a,b,c,d,e,f)
+#define IDirect3D9Ex_CheckDeviceMultiSampleType(p,a,b,c,d,e,f) (p)->CheckDeviceMultiSampleType(a,b,c,d,e,f)
+#define IDirect3D9Ex_CheckDepthStencilMatch(p,a,b,c,d,e) (p)->CheckDepthStencilMatch(a,b,c,d,e)
+#define IDirect3D9Ex_CheckDeviceFormatConversion(p,a,b,c,d) (p)->CheckDeviceFormatConversion(a,b,c,d)
+#define IDirect3D9Ex_GetDeviceCaps(p,a,b,c) (p)->GetDeviceCaps(a,b,c)
+#define IDirect3D9Ex_GetAdapterMonitor(p,a) (p)->GetAdapterMonitor(a)
+#define IDirect3D9Ex_CreateDevice(p,a,b,c,d,e,f) (p)->CreateDevice(a,b,c,d,e,f)
+/* IDirect3D9Ex */
+#define IDirect3D9Ex_GetAdapterModeCountEx(p,a,b) (p)->GetAdapterModeCountEx(a,b)
+#define IDirect3D9Ex_EnumAdapterModesEx(p,a,b,c,d) (p)->EnumAdapterModesEx(a,b,c,d)
+#define IDirect3D9Ex_GetAdapterDisplayModeEx(p,a,b,c) (p)->GetAdapterDisplayModeEx(a,b,c)
+#define IDirect3D9Ex_CreateDeviceEx(p,a,b,c,d,e,f,g) (p)->CreateDeviceEx(a,b,c,d,e,f,g)
+#define IDirect3D9Ex_GetAdapterLUID(p,a,b) (p)->GetAdapterLUID(a,b)
+#endif
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
+#endif
+DEFINE_GUID(IID_IDirect3DSwapChain9Ex, 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
+
+#define INTERFACE IDirect3DSwapChain9Ex
+DECLARE_INTERFACE_(IDirect3DSwapChain9Ex, IDirect3DSwapChain9)
+{
+ /* IUnknown */
+ STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* IDirect3DSwapChain9 */
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
+ const RGNDATA *dirty_region, DWORD flags) PURE;
+ STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *dst_surface) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT backbuffer_idx, D3DBACKBUFFER_TYPE backbuffer_type,
+ struct IDirect3DSurface9 **backbuffer) PURE;
+ STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *raster_status) PURE;
+ STDMETHOD(GetDisplayMode)(THIS_ D3DDISPLAYMODE *mode) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(GetPresentParameters)(THIS_ D3DPRESENT_PARAMETERS *parameters) PURE;
+ /* IDirect3DSwapChain9Ex */
+ STDMETHOD(GetLastPresentCount)(THIS_ UINT *last_present_count) PURE;
+ STDMETHOD(GetPresentStats)(THIS_ D3DPRESENTSTATS *stats) PURE;
+ STDMETHOD(GetDisplayModeEx)(THIS_ D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/* IUnknown */
+#define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DSwapChain9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DSwapChain9Ex_Release(p) (p)->lpVtbl->Release(p)
+/* IDirect3DSwapChain9 */
+#define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->lpVtbl->Present(p,a,b,c,d,e)
+#define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->lpVtbl->GetFrontBufferData(p,a)
+#define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->lpVtbl->GetBackBuffer(p,a,b,c)
+#define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->lpVtbl->GetRasterStatus(p,a)
+#define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->lpVtbl->GetDisplayMode(p,a)
+#define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->lpVtbl->GetPresentParameters(p,a)
+/* IDirect3DSwapChain9Ex */
+#define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->lpVtbl->GetLastPresentCount(p,a)
+#define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->lpVtbl->GetPresentStats(p,a)
+#define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->lpVtbl->GetDisplayModeEx(p,a,b)
+#else
+/* IUnknown */
+#define IDirect3DSwapChain9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DSwapChain9Ex_AddRef(p) (p)->AddRef()
+#define IDirect3DSwapChain9Ex_Release(p) (p)->Release()
+/* IDirect3DSwapChain9 */
+#define IDirect3DSwapChain9Ex_Present(p,a,b,c,d,e) (p)->Present(a,b,c,d,e)
+#define IDirect3DSwapChain9Ex_GetFrontBufferData(p,a) (p)->GetFrontBufferData(a)
+#define IDirect3DSwapChain9Ex_GetBackBuffer(p,a,b,c) (p)->GetBackBuffer(a,b,c)
+#define IDirect3DSwapChain9Ex_GetRasterStatus(p,a) (p)->GetRasterStatus(a)
+#define IDirect3DSwapChain9Ex_GetDisplayMode(p,a) (p)->GetDisplayMode(a)
+#define IDirect3DSwapChain9Ex_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DSwapChain9Ex_GetPresentParameters(p,a) (p)->GetPresentParameters(a)
+/* IDirect3DSwapChain9Ex */
+#define IDirect3DSwapChain9Ex_GetLastPresentCount(p,a) (p)->GetLastPresentCount(a)
+#define IDirect3DSwapChain9Ex_GetPresentStats(p,a) (p)->GetPresentStats(a)
+#define IDirect3DSwapChain9Ex_GetDisplayModeEx(p,a,b) (p)->GetDisplayModeEx(a,b)
+#endif
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
+#endif
+DEFINE_GUID(IID_IDirect3DDevice9Ex, 0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
+
+#define INTERFACE IDirect3DDevice9Ex
+DECLARE_INTERFACE_(IDirect3DDevice9Ex, IDirect3DDevice9)
+{
+ /* IUnknown */
+ STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /* IDirect3DDevice9 */
+ STDMETHOD(TestCooperativeLevel)(THIS) PURE;
+ STDMETHOD_(UINT, GetAvailableTextureMem)(THIS) PURE;
+ STDMETHOD(EvictManagedResources)(THIS) PURE;
+ STDMETHOD(GetDirect3D)(THIS_ IDirect3D9 **d3d9) PURE;
+ STDMETHOD(GetDeviceCaps)(THIS_ D3DCAPS9 *caps) PURE;
+ STDMETHOD(GetDisplayMode)(THIS_ UINT swapchain_idx, D3DDISPLAYMODE *mode) PURE;
+ STDMETHOD(GetCreationParameters)(THIS_ D3DDEVICE_CREATION_PARAMETERS *parameters) PURE;
+ STDMETHOD(SetCursorProperties)(THIS_ UINT hotspot_x, UINT hotspot_y, IDirect3DSurface9 *bitmap) PURE;
+ STDMETHOD_(void, SetCursorPosition)(THIS_ int x, int y, DWORD flags) PURE;
+ STDMETHOD_(WINBOOL, ShowCursor)(THIS_ WINBOOL show) PURE;
+ STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS *parameters,
+ IDirect3DSwapChain9 **swapchain) PURE;
+ STDMETHOD(GetSwapChain)(THIS_ UINT swapchain_idx, IDirect3DSwapChain9 **swapchain) PURE;
+ STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
+ STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS *parameters) PURE;
+ STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
+ HWND dst_window_override, const RGNDATA *dirty_region) PURE;
+ STDMETHOD(GetBackBuffer)(THIS_ UINT swapchain_idx, UINT backbuffer_idx,
+ D3DBACKBUFFER_TYPE backbuffer_type, IDirect3DSurface9 **backbuffer) PURE;
+ STDMETHOD(GetRasterStatus)(THIS_ UINT swapchain_idx, D3DRASTER_STATUS *raster_status) PURE;
+ STDMETHOD(SetDialogBoxMode)(THIS_ WINBOOL enable) PURE;
+ STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+ STDMETHOD_(void, GetGammaRamp)(THIS_ UINT swapchain_idx, D3DGAMMARAMP *ramp) PURE;
+ STDMETHOD(CreateTexture)(THIS_ UINT width, UINT height, UINT levels, DWORD usage,
+ D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9 **texture, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateVolumeTexture)(THIS_ UINT width, UINT height, UINT depth, UINT levels, DWORD usage,
+ D3DFORMAT format, D3DPOOL pool, IDirect3DVolumeTexture9 **texture, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateCubeTexture)(THIS_ UINT edge_length, UINT levels, DWORD usage,
+ D3DFORMAT format, D3DPOOL pool, IDirect3DCubeTexture9 **texture, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateVertexBuffer)(THIS_ UINT size, DWORD usage, DWORD fvf, D3DPOOL pool,
+ IDirect3DVertexBuffer9 **buffer, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateIndexBuffer)(THIS_ UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool,
+ IDirect3DIndexBuffer9 **buffer, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateRenderTarget)(THIS_ UINT width, UINT height, D3DFORMAT format,
+ D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, WINBOOL lockable,
+ IDirect3DSurface9 **surface, HANDLE *shared_handle) PURE;
+ STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT width, UINT height, D3DFORMAT format,
+ D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, WINBOOL discard,
+ IDirect3DSurface9 **surface, HANDLE *shared_handle) PURE;
+ STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
+ IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
+ STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9 *src_texture, IDirect3DBaseTexture9 *dst_texture) PURE;
+ STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9 *render_target, IDirect3DSurface9 *dst_surface) PURE;
+ STDMETHOD(GetFrontBufferData)(THIS_ UINT swapchain_idx, IDirect3DSurface9 *dst_surface) PURE;
+ STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
+ IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
+ STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR colour) PURE;
+ STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT width, UINT height, D3DFORMAT format, D3DPOOL pool,
+ IDirect3DSurface9 **surface, HANDLE *shared_handle) PURE;
+ STDMETHOD(SetRenderTarget)(THIS_ DWORD idx, IDirect3DSurface9 *surface) PURE;
+ STDMETHOD(GetRenderTarget)(THIS_ DWORD idx, IDirect3DSurface9 **surface) PURE;
+ STDMETHOD(SetDepthStencilSurface)(THIS_ IDirect3DSurface9 *depth_stencil) PURE;
+ STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9 **depth_stencil) PURE;
+ STDMETHOD(BeginScene)(THIS) PURE;
+ STDMETHOD(EndScene)(THIS) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
+ D3DCOLOR colour, float z, DWORD stencil) PURE;
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX *matrix) PURE;
+ STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
+ STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9 *viewport) PURE;
+ STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
+ STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9 *material) PURE;
+ STDMETHOD(SetLight)(THIS_ DWORD idx, const D3DLIGHT9 *light) PURE;
+ STDMETHOD(GetLight)(THIS_ DWORD idx, D3DLIGHT9 *light) PURE;
+ STDMETHOD(LightEnable)(THIS_ DWORD idx, WINBOOL enable) PURE;
+ STDMETHOD(GetLightEnable)(THIS_ DWORD idx, WINBOOL *enable) PURE;
+ STDMETHOD(SetClipPlane)(THIS_ DWORD idx, const float *plane) PURE;
+ STDMETHOD(GetClipPlane)(THIS_ DWORD idx, float *plane) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD value) PURE;
+ STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD *value) PURE;
+ STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE type, IDirect3DStateBlock9 **stateblock) PURE;
+ STDMETHOD(BeginStateBlock)(THIS) PURE;
+ STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9 **stateblock) PURE;
+ STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
+ STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9 *clip_status) PURE;
+ STDMETHOD(GetTexture)(THIS_ DWORD stage, IDirect3DBaseTexture9 **texture) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD stage, IDirect3DBaseTexture9 *texture) PURE;
+ STDMETHOD(GetTextureStageState)(THIS_ DWORD stage, D3DTEXTURESTAGESTATETYPE state, DWORD *value) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD stage, D3DTEXTURESTAGESTATETYPE state, DWORD value) PURE;
+ STDMETHOD(GetSamplerState)(THIS_ DWORD sampler_idx, D3DSAMPLERSTATETYPE state, DWORD *value) PURE;
+ STDMETHOD(SetSamplerState)(THIS_ DWORD sampler_idx, D3DSAMPLERSTATETYPE state, DWORD value) PURE;
+ STDMETHOD(ValidateDevice)(THIS_ DWORD *pass_count) PURE;
+ STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+ STDMETHOD(GetPaletteEntries)(THIS_ UINT palette_idx, PALETTEENTRY *entries) PURE;
+ STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT palette_idx) PURE;
+ STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *palette_idx) PURE;
+ STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
+ STDMETHOD(GetScissorRect)(THIS_ RECT *rect) PURE;
+ STDMETHOD(SetSoftwareVertexProcessing)(THIS_ WINBOOL software) PURE;
+ STDMETHOD_(WINBOOL, GetSoftwareVertexProcessing)(THIS) PURE;
+ STDMETHOD(SetNPatchMode)(THIS_ float segment_count) PURE;
+ STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
+ STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT start_vertex, UINT primitive_count) PURE;
+ STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE primitive_type, INT base_vertex_idx, UINT min_vertex_idx,
+ UINT vertex_count, UINT start_idx, UINT primitive_count) PURE;
+ STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
+ UINT primitive_count, const void *data, UINT stride) PURE;
+ STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
+ UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
+ STDMETHOD(ProcessVertices)(THIS_ UINT src_start_idx, UINT dst_idx, UINT vertex_count,
+ IDirect3DVertexBuffer9 *dst_buffer, IDirect3DVertexDeclaration9 *declaration, DWORD flags) PURE;
+ STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
+ IDirect3DVertexDeclaration9 **declaration) PURE;
+ STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9 *declaration) PURE;
+ STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9 **declaration) PURE;
+ STDMETHOD(SetFVF)(THIS_ DWORD fvf) PURE;
+ STDMETHOD(GetFVF)(THIS_ DWORD *fvf) PURE;
+ STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_code, IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9 *shader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT reg_idx, float *data, UINT count) PURE;
+ STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT reg_idx, int *data, UINT count) PURE;
+ STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+ STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT reg_idx, WINBOOL *data, UINT count) PURE;
+ STDMETHOD(SetStreamSource)(THIS_ UINT stream_idx, IDirect3DVertexBuffer9 *buffer, UINT offset, UINT stride) PURE;
+ STDMETHOD(GetStreamSource)(THIS_ UINT stream_idx, IDirect3DVertexBuffer9 **buffer, UINT *offset, UINT *stride) PURE;
+ STDMETHOD(SetStreamSourceFreq)(THIS_ UINT stream_idx, UINT frequency) PURE;
+ STDMETHOD(GetStreamSourceFreq)(THIS_ UINT stream_idx, UINT *frequency) PURE;
+ STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9 *buffer) PURE;
+ STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9 **buffer) PURE;
+ STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9 *shader) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT reg_idx, float *data, UINT count) PURE;
+ STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT reg_idx, int *data, UINT count) PURE;
+ STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+ STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT reg_idx, WINBOOL *data, UINT count) PURE;
+ STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
+ STDMETHOD(DeletePatch)(THIS_ UINT handle) PURE;
+ STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE type, IDirect3DQuery9 **query) PURE;
+ /* IDirect3DDevice9Ex */
+ STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float *rows, float *columns) PURE;
+ STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
+ IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
+ D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
+ STDMETHOD(PresentEx)(THIS_ const RECT *src_rect, const RECT *dst_rect,
+ HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags) PURE;
+ STDMETHOD(GetGPUThreadPriority)(THIS_ INT *priority) PURE;
+ STDMETHOD(SetGPUThreadPriority)(THIS_ INT priority) PURE;
+ STDMETHOD(WaitForVBlank)(THIS_ UINT swapchain_idx) PURE;
+ STDMETHOD(CheckResourceResidency)(THIS_ IDirect3DResource9 **resources, UINT32 resource_count) PURE;
+ STDMETHOD(SetMaximumFrameLatency)(THIS_ UINT max_latency) PURE;
+ STDMETHOD(GetMaximumFrameLatency)(THIS_ UINT *max_latency) PURE;
+ STDMETHOD(CheckDeviceState)(THIS_ HWND dst_window) PURE;
+ STDMETHOD(CreateRenderTargetEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
+ D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, WINBOOL lockable,
+ IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
+ STDMETHOD(CreateOffscreenPlainSurfaceEx)(THIS_ UINT width, UINT Height, D3DFORMAT format,
+ D3DPOOL pool, IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
+ STDMETHOD(CreateDepthStencilSurfaceEx)(THIS_ UINT width, UINT height, D3DFORMAT format,
+ D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, WINBOOL discard,
+ IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage) PURE;
+ STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS *parameters, D3DDISPLAYMODEEX *mode) PURE;
+ STDMETHOD(GetDisplayModeEx)(THIS_ UINT swapchain_idx, D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/* IUnknown */
+#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DDevice9Ex_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DDevice9Ex_Release(p) (p)->lpVtbl->Release(p)
+/* IDirect3DDevice9 */
+#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p)
+#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->lpVtbl->GetAvailableTextureMem(p)
+#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->lpVtbl->EvictManagedResources(p)
+#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->lpVtbl->GetDirect3D(p,a)
+#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->lpVtbl->GetDeviceCaps(p,a)
+#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->lpVtbl->GetDisplayMode(p,a,b)
+#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->lpVtbl->GetCreationParameters(p,a)
+#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->lpVtbl->SetCursorProperties(p,a,b,c)
+#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->lpVtbl->SetCursorPosition(p,a,b,c)
+#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->lpVtbl->ShowCursor(p,a)
+#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->lpVtbl->CreateAdditionalSwapChain(p,a,b)
+#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->lpVtbl->GetSwapChain(p,a,b)
+#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->lpVtbl->GetNumberOfSwapChains(p)
+#define IDirect3DDevice9Ex_Reset(p,a) (p)->lpVtbl->Reset(p,a)
+#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->lpVtbl->Present(p,a,b,c,d)
+#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->lpVtbl->GetBackBuffer(p,a,b,c,d)
+#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->lpVtbl->GetRasterStatus(p,a,b)
+#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->lpVtbl->SetDialogBoxMode(p,a)
+#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->lpVtbl->SetGammaRamp(p,a,b,c)
+#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->lpVtbl->GetGammaRamp(p,a,b)
+#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateTexture(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateCubeTexture(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateVertexBuffer(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateIndexBuffer(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateRenderTarget(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->lpVtbl->UpdateSurface(p,a,b,c,d)
+#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->lpVtbl->UpdateTexture(p,a,b)
+#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->lpVtbl->GetRenderTargetData(p,a,b)
+#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->lpVtbl->GetFrontBufferData(p,a,b)
+#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->lpVtbl->StretchRect(p,a,b,c,d,e)
+#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->lpVtbl->ColorFill(p,a,b,c)
+#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->lpVtbl->CreateOffscreenPlainSurface(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->lpVtbl->SetRenderTarget(p,a,b)
+#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->lpVtbl->GetRenderTarget(p,a,b)
+#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->lpVtbl->SetDepthStencilSurface(p,a)
+#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->lpVtbl->GetDepthStencilSurface(p,a)
+#define IDirect3DDevice9Ex_BeginScene(p) (p)->lpVtbl->BeginScene(p)
+#define IDirect3DDevice9Ex_EndScene(p) (p)->lpVtbl->EndScene(p)
+#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->lpVtbl->Clear(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->lpVtbl->SetTransform(p,a,b)
+#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->lpVtbl->MultiplyTransform(p,a,b)
+#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->lpVtbl->SetViewport(p,a)
+#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->lpVtbl->GetViewport(p,a)
+#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->lpVtbl->GetLight(p,a,b)
+#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->lpVtbl->LightEnable(p,a,b)
+#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->lpVtbl->GetLightEnable(p,a,b)
+#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->lpVtbl->SetClipPlane(p,a,b)
+#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->lpVtbl->GetClipPlane(p,a,b)
+#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->lpVtbl->SetRenderState(p,a,b)
+#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->lpVtbl->GetRenderState(p,a,b)
+#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->lpVtbl->CreateStateBlock(p,a,b)
+#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->lpVtbl->BeginStateBlock(p)
+#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->lpVtbl->EndStateBlock(p,a)
+#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->lpVtbl->SetClipStatus(p,a)
+#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->lpVtbl->GetClipStatus(p,a)
+#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->lpVtbl->GetTexture(p,a,b)
+#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->lpVtbl->SetTexture(p,a,b)
+#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->lpVtbl->GetTextureStageState(p,a,b,c)
+#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->lpVtbl->SetTextureStageState(p,a,b,c)
+#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->lpVtbl->GetSamplerState(p,a,b,c)
+#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->lpVtbl->SetSamplerState(p,a,b,c)
+#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->lpVtbl->ValidateDevice(p,a)
+#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->lpVtbl->SetPaletteEntries(p,a,b)
+#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->lpVtbl->GetPaletteEntries(p,a,b)
+#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->lpVtbl->SetCurrentTexturePalette(p,a)
+#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->lpVtbl->GetCurrentTexturePalette(p,a)
+#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->lpVtbl->SetScissorRect(p,a)
+#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->lpVtbl->GetScissorRect(p,a)
+#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->lpVtbl->SetSoftwareVertexProcessing(p,a)
+#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->lpVtbl->GetSoftwareVertexProcessing(p)
+#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->lpVtbl->SetNPatchMode(p,a)
+#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->lpVtbl->GetNPatchMode(p)
+#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->lpVtbl->DrawPrimitive(p,a,b,c)
+#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->lpVtbl->DrawIndexedPrimitive(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->lpVtbl->DrawPrimitiveUP(p,a,b,c,d)
+#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->lpVtbl->ProcessVertices(p,a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->lpVtbl->CreateVertexDeclaration(p,a,b)
+#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->lpVtbl->SetVertexDeclaration(p,a)
+#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->lpVtbl->GetVertexDeclaration(p,a)
+#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->lpVtbl->SetFVF(p,a)
+#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->lpVtbl->GetFVF(p,a)
+#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->lpVtbl->CreateVertexShader(p,a,b)
+#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->lpVtbl->SetVertexShader(p,a)
+#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->lpVtbl->GetVertexShader(p,a)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->SetVertexShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->lpVtbl->GetVertexShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->lpVtbl->SetStreamSource(p,a,b,c,d)
+#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->lpVtbl->GetStreamSource(p,a,b,c,d)
+#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->lpVtbl->SetStreamSourceFreq(p,a,b)
+#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->lpVtbl->GetStreamSourceFreq(p,a,b)
+#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->lpVtbl->SetIndices(p,a)
+#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->lpVtbl->GetIndices(p,a)
+#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->lpVtbl->CreatePixelShader(p,a,b)
+#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->lpVtbl->SetPixelShader(p,a)
+#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->lpVtbl->GetPixelShader(p,a)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantF(p,a,b,c)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantI(p,a,b,c)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->SetPixelShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->lpVtbl->GetPixelShaderConstantB(p,a,b,c)
+#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->lpVtbl->DrawRectPatch(p,a,b,c)
+#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->lpVtbl->DrawTriPatch(p,a,b,c)
+#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->lpVtbl->DeletePatch(p,a)
+#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->lpVtbl->CreateQuery(p,a,b)
+/* IDirect3DDevice9Ex */
+#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->lpVtbl->SetConvolutionMonoKernel(p,a,b,c,d)
+#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ComposeRects(p,a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->lpVtbl->PresentEx(p,a,b,c,d,e)
+#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->lpVtbl->GetGPUThreadPriority(p,a)
+#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->lpVtbl->SetGPUThreadPriority(p,a)
+#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->lpVtbl->WaitForVBlank(p,a)
+#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->lpVtbl->CheckResourceResidency(p,a,b)
+#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->lpVtbl->SetMaximumFrameLatency(p,a)
+#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->lpVtbl->GetMaximumFrameLatency(p,a)
+#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->lpVtbl->CheckDeviceState(p,a)
+#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g)
+#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->lpVtbl->ResetEx(p,a,b)
+#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->lpVtbl->GetDisplayModeEx(p,a,b,c)
+#else
+/* IUnknown */
+#define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DDevice9Ex_AddRef(p) (p)->AddRef()
+#define IDirect3DDevice9Ex_Release(p) (p)->Release()
+/* IDirect3DDevice9 */
+#define IDirect3DDevice9Ex_TestCooperativeLevel(p) (p)->TestCooperativeLevel()
+#define IDirect3DDevice9Ex_GetAvailableTextureMem(p) (p)->GetAvailableTextureMem()
+#define IDirect3DDevice9Ex_EvictManagedResources(p) (p)->EvictManagedResources()
+#define IDirect3DDevice9Ex_GetDirect3D(p,a) (p)->GetDirect3D(a)
+#define IDirect3DDevice9Ex_GetDeviceCaps(p,a) (p)->GetDeviceCaps(a)
+#define IDirect3DDevice9Ex_GetDisplayMode(p,a,b) (p)->GetDisplayMode(a,b)
+#define IDirect3DDevice9Ex_GetCreationParameters(p,a) (p)->GetCreationParameters(a)
+#define IDirect3DDevice9Ex_SetCursorProperties(p,a,b,c) (p)->SetCursorProperties(a,b,c)
+#define IDirect3DDevice9Ex_SetCursorPosition(p,a,b,c) (p)->SetCursorPosition(a,b,c)
+#define IDirect3DDevice9Ex_ShowCursor(p,a) (p)->ShowCursor(a)
+#define IDirect3DDevice9Ex_CreateAdditionalSwapChain(p,a,b) (p)->CreateAdditionalSwapChain(a,b)
+#define IDirect3DDevice9Ex_GetSwapChain(p,a,b) (p)->GetSwapChain(a,b)
+#define IDirect3DDevice9Ex_GetNumberOfSwapChains(p) (p)->GetNumberOfSwapChains()
+#define IDirect3DDevice9Ex_Reset(p,a) (p)->Reset(a)
+#define IDirect3DDevice9Ex_Present(p,a,b,c,d) (p)->Present(a,b,c,d)
+#define IDirect3DDevice9Ex_GetBackBuffer(p,a,b,c,d) (p)->GetBackBuffer(a,b,c,d)
+#define IDirect3DDevice9Ex_GetRasterStatus(p,a,b) (p)->GetRasterStatus(a,b)
+#define IDirect3DDevice9Ex_SetDialogBoxMode(p,a) (p)->SetDialogBoxMode(a)
+#define IDirect3DDevice9Ex_SetGammaRamp(p,a,b,c) (p)->SetGammaRamp(a,b,c)
+#define IDirect3DDevice9Ex_GetGammaRamp(p,a,b) (p)->GetGammaRamp(a,b)
+#define IDirect3DDevice9Ex_CreateTexture(p,a,b,c,d,e,f,g,h) (p)->CreateTexture(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_CreateVolumeTexture(p,a,b,c,d,e,f,g,h,i) (p)->CreateVolumeTexture(a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_CreateCubeTexture(p,a,b,c,d,e,f,g) (p)->CreateCubeTexture(a,b,c,d,e,f,g)
+#define IDirect3DDevice9Ex_CreateVertexBuffer(p,a,b,c,d,e,f) (p)->CreateVertexBuffer(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateIndexBuffer(p,a,b,c,d,e,f) (p)->CreateIndexBuffer(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateRenderTarget(p,a,b,c,d,e,f,g,h) (p)->CreateRenderTarget(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_CreateDepthStencilSurface(p,a,b,c,d,e,f,g,h) (p)->CreateDepthStencilSurface(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_UpdateSurface(p,a,b,c,d) (p)->UpdateSurface(a,b,c,d)
+#define IDirect3DDevice9Ex_UpdateTexture(p,a,b) (p)->UpdateTexture(a,b)
+#define IDirect3DDevice9Ex_GetRenderTargetData(p,a,b) (p)->GetRenderTargetData(a,b)
+#define IDirect3DDevice9Ex_GetFrontBufferData(p,a,b) (p)->GetFrontBufferData(a,b)
+#define IDirect3DDevice9Ex_StretchRect(p,a,b,c,d,e) (p)->StretchRect(a,b,c,d,e)
+#define IDirect3DDevice9Ex_ColorFill(p,a,b,c) (p)->ColorFill(a,b,c)
+#define IDirect3DDevice9Ex_CreateOffscreenPlainSurface(p,a,b,c,d,e,f) (p)->CreateOffscreenPlainSurface(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_SetRenderTarget(p,a,b) (p)->SetRenderTarget(a,b)
+#define IDirect3DDevice9Ex_GetRenderTarget(p,a,b) (p)->GetRenderTarget(a,b)
+#define IDirect3DDevice9Ex_SetDepthStencilSurface(p,a) (p)->SetDepthStencilSurface(a)
+#define IDirect3DDevice9Ex_GetDepthStencilSurface(p,a) (p)->GetDepthStencilSurface(a)
+#define IDirect3DDevice9Ex_BeginScene(p) (p)->BeginScene()
+#define IDirect3DDevice9Ex_EndScene(p) (p)->EndScene()
+#define IDirect3DDevice9Ex_Clear(p,a,b,c,d,e,f) (p)->Clear(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_SetTransform(p,a,b) (p)->SetTransform(a,b)
+#define IDirect3DDevice9Ex_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DDevice9Ex_MultiplyTransform(p,a,b) (p)->MultiplyTransform(a,b)
+#define IDirect3DDevice9Ex_SetViewport(p,a) (p)->SetViewport(a)
+#define IDirect3DDevice9Ex_GetViewport(p,a) (p)->GetViewport(a)
+#define IDirect3DDevice9Ex_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DDevice9Ex_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DDevice9Ex_SetLight(p,a,b) (p)->SetLight(a,b)
+#define IDirect3DDevice9Ex_GetLight(p,a,b) (p)->GetLight(a,b)
+#define IDirect3DDevice9Ex_LightEnable(p,a,b) (p)->LightEnable(a,b)
+#define IDirect3DDevice9Ex_GetLightEnable(p,a,b) (p)->GetLightEnable(a,b)
+#define IDirect3DDevice9Ex_SetClipPlane(p,a,b) (p)->SetClipPlane(a,b)
+#define IDirect3DDevice9Ex_GetClipPlane(p,a,b) (p)->GetClipPlane(a,b)
+#define IDirect3DDevice9Ex_SetRenderState(p,a,b) (p)->SetRenderState(a,b)
+#define IDirect3DDevice9Ex_GetRenderState(p,a,b) (p)->GetRenderState(a,b)
+#define IDirect3DDevice9Ex_CreateStateBlock(p,a,b) (p)->CreateStateBlock(a,b)
+#define IDirect3DDevice9Ex_BeginStateBlock(p) (p)->BeginStateBlock()
+#define IDirect3DDevice9Ex_EndStateBlock(p,a) (p)->EndStateBlock(a)
+#define IDirect3DDevice9Ex_SetClipStatus(p,a) (p)->SetClipStatus(a)
+#define IDirect3DDevice9Ex_GetClipStatus(p,a) (p)->GetClipStatus(a)
+#define IDirect3DDevice9Ex_GetTexture(p,a,b) (p)->GetTexture(a,b)
+#define IDirect3DDevice9Ex_SetTexture(p,a,b) (p)->SetTexture(a,b)
+#define IDirect3DDevice9Ex_GetTextureStageState(p,a,b,c) (p)->GetTextureStageState(a,b,c)
+#define IDirect3DDevice9Ex_SetTextureStageState(p,a,b,c) (p)->SetTextureStageState(a,b,c)
+#define IDirect3DDevice9Ex_GetSamplerState(p,a,b,c) (p)->GetSamplerState(a,b,c)
+#define IDirect3DDevice9Ex_SetSamplerState(p,a,b,c) (p)->SetSamplerState(a,b,c)
+#define IDirect3DDevice9Ex_ValidateDevice(p,a) (p)->ValidateDevice(a)
+#define IDirect3DDevice9Ex_SetPaletteEntries(p,a,b) (p)->SetPaletteEntries(a,b)
+#define IDirect3DDevice9Ex_GetPaletteEntries(p,a,b) (p)->GetPaletteEntries(a,b)
+#define IDirect3DDevice9Ex_SetCurrentTexturePalette(p,a) (p)->SetCurrentTexturePalette(a)
+#define IDirect3DDevice9Ex_GetCurrentTexturePalette(p,a) (p)->GetCurrentTexturePalette(a)
+#define IDirect3DDevice9Ex_SetScissorRect(p,a) (p)->SetScissorRect(a)
+#define IDirect3DDevice9Ex_GetScissorRect(p,a) (p)->GetScissorRect(a)
+#define IDirect3DDevice9Ex_SetSoftwareVertexProcessing(p,a) (p)->SetSoftwareVertexProcessing(a)
+#define IDirect3DDevice9Ex_GetSoftwareVertexProcessing(p) (p)->GetSoftwareVertexProcessing()
+#define IDirect3DDevice9Ex_SetNPatchMode(p,a) (p)->SetNPatchMode(a)
+#define IDirect3DDevice9Ex_GetNPatchMode(p) (p)->GetNPatchMode()
+#define IDirect3DDevice9Ex_DrawPrimitive(p,a,b,c) (p)->DrawPrimitive(a,b,c)
+#define IDirect3DDevice9Ex_DrawIndexedPrimitive(p,a,b,c,d,e,f) (p)->DrawIndexedPrimitive(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_DrawPrimitiveUP(p,a,b,c,d) (p)->DrawPrimitiveUP(a,b,c,d)
+#define IDirect3DDevice9Ex_DrawIndexedPrimitiveUP(p,a,b,c,d,e,f,g,h) (p)->DrawIndexedPrimitiveUP(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_ProcessVertices(p,a,b,c,d,e,f) (p)->ProcessVertices(a,b,c,d,e,f)
+#define IDirect3DDevice9Ex_CreateVertexDeclaration(p,a,b) (p)->CreateVertexDeclaration(a,b)
+#define IDirect3DDevice9Ex_SetVertexDeclaration(p,a) (p)->SetVertexDeclaration(a)
+#define IDirect3DDevice9Ex_GetVertexDeclaration(p,a) (p)->GetVertexDeclaration(a)
+#define IDirect3DDevice9Ex_SetFVF(p,a) (p)->SetFVF(a)
+#define IDirect3DDevice9Ex_GetFVF(p,a) (p)->GetFVF(a)
+#define IDirect3DDevice9Ex_CreateVertexShader(p,a,b) (p)->CreateVertexShader(a,b)
+#define IDirect3DDevice9Ex_SetVertexShader(p,a) (p)->SetVertexShader(a)
+#define IDirect3DDevice9Ex_GetVertexShader(p,a) (p)->GetVertexShader(a)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantF(p,a,b,c) (p)->SetVertexShaderConstantF(a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantF(p,a,b,c) (p)->GetVertexShaderConstantF(a,b,c)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantI(p,a,b,c) (p)->SetVertexShaderConstantI(a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantI(p,a,b,c) (p)->GetVertexShaderConstantI(a,b,c)
+#define IDirect3DDevice9Ex_SetVertexShaderConstantB(p,a,b,c) (p)->SetVertexShaderConstantB(a,b,c)
+#define IDirect3DDevice9Ex_GetVertexShaderConstantB(p,a,b,c) (p)->GetVertexShaderConstantB(a,b,c)
+#define IDirect3DDevice9Ex_SetStreamSource(p,a,b,c,d) (p)->SetStreamSource(a,b,c,d)
+#define IDirect3DDevice9Ex_GetStreamSource(p,a,b,c,d) (p)->GetStreamSource(a,b,c,d)
+#define IDirect3DDevice9Ex_SetStreamSourceFreq(p,a,b) (p)->SetStreamSourceFreq(a,b)
+#define IDirect3DDevice9Ex_GetStreamSourceFreq(p,a,b) (p)->GetStreamSourceFreq(a,b)
+#define IDirect3DDevice9Ex_SetIndices(p,a) (p)->SetIndices(a)
+#define IDirect3DDevice9Ex_GetIndices(p,a) (p)->GetIndices(a)
+#define IDirect3DDevice9Ex_CreatePixelShader(p,a,b) (p)->CreatePixelShader(a,b)
+#define IDirect3DDevice9Ex_SetPixelShader(p,a) (p)->SetPixelShader(a)
+#define IDirect3DDevice9Ex_GetPixelShader(p,a) (p)->GetPixelShader(a)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantF(p,a,b,c) (p)->SetPixelShaderConstantF(a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantF(p,a,b,c) (p)->GetPixelShaderConstantF(a,b,c)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantI(p,a,b,c) (p)->SetPixelShaderConstantI(a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantI(p,a,b,c) (p)->GetPixelShaderConstantI(a,b,c)
+#define IDirect3DDevice9Ex_SetPixelShaderConstantB(p,a,b,c) (p)->SetPixelShaderConstantB(a,b,c)
+#define IDirect3DDevice9Ex_GetPixelShaderConstantB(p,a,b,c) (p)->GetPixelShaderConstantB(a,b,c)
+#define IDirect3DDevice9Ex_DrawRectPatch(p,a,b,c) (p)->DrawRectPatch(a,b,c)
+#define IDirect3DDevice9Ex_DrawTriPatch(p,a,b,c) (p)->DrawTriPatch(a,b,c)
+#define IDirect3DDevice9Ex_DeletePatch(p,a) (p)->DeletePatch(a)
+#define IDirect3DDevice9Ex_CreateQuery(p,a,b) (p)->CreateQuery(a,b)
+/* IDirect3DDevice9Ex */
+#define IDirect3DDevice9Ex_SetConvolutionMonoKernel(p,a,b,c,d) (p)->SetConvolutionMonoKernel(a,b,c,d)
+#define IDirect3DDevice9Ex_ComposeRects(p,a,b,c,d,e,f,g,h) (p)->ComposeRects(a,b,c,d,e,f,g,h)
+#define IDirect3DDevice9Ex_PresentEx(p,a,b,c,d,e) (p)->PresentEx(a,b,c,d,e)
+#define IDirect3DDevice9Ex_GetGPUThreadPriority(p,a) (p)->GetGPUThreadPriority(a)
+#define IDirect3DDevice9Ex_SetGPUThreadPriority(p,a) (p)->SetGPUThreadPriority(a)
+#define IDirect3DDevice9Ex_WaitForVBlank(p,a) (p)->WaitForVBlank(a)
+#define IDirect3DDevice9Ex_CheckResourceResidency(p,a,b) (p)->CheckResourceResidency(a,b)
+#define IDirect3DDevice9Ex_SetMaximumFrameLatency(p,a) (p)->SetMaximumFrameLatency(a)
+#define IDirect3DDevice9Ex_GetMaximumFrameLatency(p,a) (p)->GetMaximumFrameLatency(a)
+#define IDirect3DDevice9Ex_CheckDeviceState(p,a) (p)->CheckDeviceState(a)
+#define IDirect3DDevice9Ex_CreateRenderTargetEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateRenderTargetEx(a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(p,a,b,c,d,e,f,g) (p)->CreateOffscreenPlainSurfaceEx(a,b,c,d,e,f,g)
+#define IDirect3DDevice9Ex_CreateDepthStencilSurfaceEx(p,a,b,c,d,e,f,g,h,i) (p)->CreateDepthStencilSurfaceEx(a,b,c,d,e,f,g,h,i)
+#define IDirect3DDevice9Ex_ResetEx(p,a,b) (p)->ResetEx(a,b)
+#define IDirect3DDevice9Ex_GetDisplayModeEx(p,a,b,c) (p)->GetDisplayModeEx(a,b,c)
+#endif
+
+#endif /* !defined(D3D_DISABLE_9EX) */
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+int WINAPI D3DPERF_BeginEvent(D3DCOLOR color, const WCHAR *name);
+int WINAPI D3DPERF_EndEvent(void);
+DWORD WINAPI D3DPERF_GetStatus(void);
+WINBOOL WINAPI D3DPERF_QueryRepeatFrame(void);
+void WINAPI D3DPERF_SetMarker(D3DCOLOR color, const WCHAR *name);
+void WINAPI D3DPERF_SetOptions(DWORD options);
+void WINAPI D3DPERF_SetRegion(D3DCOLOR color, const WCHAR *name);
+
+IDirect3D9 * WINAPI Direct3DCreate9(UINT sdk_version);
+#ifndef D3D_DISABLE_9EX
+HRESULT WINAPI Direct3DCreate9Ex(UINT sdk_version, IDirect3D9Ex **d3d9ex);
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+
+#endif /* _D3D9_H_ */
diff --git a/d3d9caps.h b/d3d9caps.h
new file mode 100644
index 0000000..c62780b
--- /dev/null
+++ b/d3d9caps.h
@@ -0,0 +1,455 @@
+/*
+ * Copyright (C) 2002-2003 Jason Edmeades
+ * Raphael Junqueira
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D9CAPS_H
+#define __WINE_D3D9CAPS_H
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+/*
+ * Definitions
+ */
+#define D3DCAPS_OVERLAY __MSABI_LONG(0x00000800)
+#define D3DCAPS_READ_SCANLINE __MSABI_LONG(0x00020000)
+
+#define D3DCURSORCAPS_COLOR 1
+#define D3DCURSORCAPS_LOWRES 2
+
+
+#define D3DDEVCAPS2_STREAMOFFSET __MSABI_LONG(0x00000001)
+#define D3DDEVCAPS2_DMAPNPATCH __MSABI_LONG(0x00000002)
+#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH __MSABI_LONG(0x00000004)
+#define D3DDEVCAPS2_ADAPTIVETESSNPATCH __MSABI_LONG(0x00000008)
+#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES __MSABI_LONG(0x00000010)
+#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH __MSABI_LONG(0x00000020)
+#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET __MSABI_LONG(0x00000040)
+
+#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x0000010
+#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x0000020
+#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x0000040
+#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x0000080
+#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x0000100
+#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x0000200
+#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x0000400
+#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x0000800
+#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x0001000
+#define D3DDEVCAPS_DRAWPRIMITIVES2 0x0002000
+#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
+#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x0008000
+#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x0010000
+#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x0020000
+#define D3DDEVCAPS_HWRASTERIZATION 0x0080000
+#define D3DDEVCAPS_PUREDEVICE 0x0100000
+#define D3DDEVCAPS_QUINTICRTPATCHES 0x0200000
+#define D3DDEVCAPS_RTPATCHES 0x0400000
+#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x0800000
+#define D3DDEVCAPS_NPATCHES 0x1000000
+
+#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x00FFFF
+#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
+#define D3DFVFCAPS_PSIZE 0x100000
+
+#define D3DLINECAPS_TEXTURE 0x01
+#define D3DLINECAPS_ZTEST 0x02
+#define D3DLINECAPS_BLEND 0x04
+#define D3DLINECAPS_ALPHACMP 0x08
+#define D3DLINECAPS_FOG 0x10
+#define D3DLINECAPS_ANTIALIAS 0x20
+
+#define D3DPBLENDCAPS_ZERO __MSABI_LONG(0x00000001)
+#define D3DPBLENDCAPS_ONE __MSABI_LONG(0x00000002)
+#define D3DPBLENDCAPS_SRCCOLOR __MSABI_LONG(0x00000004)
+#define D3DPBLENDCAPS_INVSRCCOLOR __MSABI_LONG(0x00000008)
+#define D3DPBLENDCAPS_SRCALPHA __MSABI_LONG(0x00000010)
+#define D3DPBLENDCAPS_INVSRCALPHA __MSABI_LONG(0x00000020)
+#define D3DPBLENDCAPS_DESTALPHA __MSABI_LONG(0x00000040)
+#define D3DPBLENDCAPS_INVDESTALPHA __MSABI_LONG(0x00000080)
+#define D3DPBLENDCAPS_DESTCOLOR __MSABI_LONG(0x00000100)
+#define D3DPBLENDCAPS_INVDESTCOLOR __MSABI_LONG(0x00000200)
+#define D3DPBLENDCAPS_SRCALPHASAT __MSABI_LONG(0x00000400)
+#define D3DPBLENDCAPS_BOTHSRCALPHA __MSABI_LONG(0x00000800)
+#define D3DPBLENDCAPS_BOTHINVSRCALPHA __MSABI_LONG(0x00001000)
+#define D3DPBLENDCAPS_BLENDFACTOR __MSABI_LONG(0x00002000)
+#ifndef D3D_DISABLE_9EX
+#define D3DPBLENDCAPS_SRCCOLOR2 __MSABI_LONG(0x00004000)
+#define D3DPBLENDCAPS_INVSRCCOLOR2 __MSABI_LONG(0x00008000)
+#endif
+
+#define D3DPCMPCAPS_NEVER 0x01
+#define D3DPCMPCAPS_LESS 0x02
+#define D3DPCMPCAPS_EQUAL 0x04
+#define D3DPCMPCAPS_LESSEQUAL 0x08
+#define D3DPCMPCAPS_GREATER 0x10
+#define D3DPCMPCAPS_NOTEQUAL 0x20
+#define D3DPCMPCAPS_GREATEREQUAL 0x40
+#define D3DPCMPCAPS_ALWAYS 0x80
+
+#define D3DPMISCCAPS_MASKZ __MSABI_LONG(0x00000002)
+#define D3DPMISCCAPS_LINEPATTERNREP __MSABI_LONG(0x00000004)
+#define D3DPMISCCAPS_CULLNONE __MSABI_LONG(0x00000010)
+#define D3DPMISCCAPS_CULLCW __MSABI_LONG(0x00000020)
+#define D3DPMISCCAPS_CULLCCW __MSABI_LONG(0x00000040)
+#define D3DPMISCCAPS_COLORWRITEENABLE __MSABI_LONG(0x00000080)
+#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS __MSABI_LONG(0x00000100)
+#define D3DPMISCCAPS_CLIPTLVERTS __MSABI_LONG(0x00000200)
+#define D3DPMISCCAPS_TSSARGTEMP __MSABI_LONG(0x00000400)
+#define D3DPMISCCAPS_BLENDOP __MSABI_LONG(0x00000800)
+#define D3DPMISCCAPS_NULLREFERENCE __MSABI_LONG(0x00001000)
+#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS __MSABI_LONG(0x00004000)
+#define D3DPMISCCAPS_PERSTAGECONSTANT __MSABI_LONG(0x00008000)
+#define D3DPMISCCAPS_FOGANDSPECULARALPHA __MSABI_LONG(0x00010000)
+#define D3DPMISCCAPS_SEPARATEALPHABLEND __MSABI_LONG(0x00020000)
+#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS __MSABI_LONG(0x00040000)
+#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING __MSABI_LONG(0x00080000)
+#define D3DPMISCCAPS_FOGVERTEXCLAMPED __MSABI_LONG(0x00100000)
+#ifndef D3D_DISABLE_9EX
+#define D3DPMISCCAPS_POSTBLENDSRGBCONVERT __MSABI_LONG(0x00200000)
+#endif
+
+#define D3DPRASTERCAPS_DITHER __MSABI_LONG(0x00000001)
+#define D3DPRASTERCAPS_ZTEST __MSABI_LONG(0x00000010)
+#define D3DPRASTERCAPS_FOGVERTEX __MSABI_LONG(0x00000080)
+#define D3DPRASTERCAPS_FOGTABLE __MSABI_LONG(0x00000100)
+#define D3DPRASTERCAPS_MIPMAPLODBIAS __MSABI_LONG(0x00002000)
+#define D3DPRASTERCAPS_ZBUFFERLESSHSR __MSABI_LONG(0x00008000)
+#define D3DPRASTERCAPS_FOGRANGE __MSABI_LONG(0x00010000)
+#define D3DPRASTERCAPS_ANISOTROPY __MSABI_LONG(0x00020000)
+#define D3DPRASTERCAPS_WBUFFER __MSABI_LONG(0x00040000)
+#define D3DPRASTERCAPS_WFOG __MSABI_LONG(0x00100000)
+#define D3DPRASTERCAPS_ZFOG __MSABI_LONG(0x00200000)
+#define D3DPRASTERCAPS_COLORPERSPECTIVE __MSABI_LONG(0x00400000)
+#define D3DPRASTERCAPS_SCISSORTEST __MSABI_LONG(0x01000000)
+#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS __MSABI_LONG(0x02000000)
+#define D3DPRASTERCAPS_DEPTHBIAS __MSABI_LONG(0x04000000)
+#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE __MSABI_LONG(0x08000000)
+
+#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000
+#define D3DPRESENT_INTERVAL_ONE 0x00000001
+#define D3DPRESENT_INTERVAL_TWO 0x00000002
+#define D3DPRESENT_INTERVAL_THREE 0x00000004
+#define D3DPRESENT_INTERVAL_FOUR 0x00000008
+#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
+
+#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00008
+#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00200
+#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x04000
+#define D3DPSHADECAPS_FOGGOURAUD 0x80000
+
+#define D3DPTADDRESSCAPS_WRAP 0x01
+#define D3DPTADDRESSCAPS_MIRROR 0x02
+#define D3DPTADDRESSCAPS_CLAMP 0x04
+#define D3DPTADDRESSCAPS_BORDER 0x08
+#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10
+#define D3DPTADDRESSCAPS_MIRRORONCE 0x20
+
+#define D3DPTEXTURECAPS_PERSPECTIVE __MSABI_LONG(0x00000001)
+#define D3DPTEXTURECAPS_POW2 __MSABI_LONG(0x00000002)
+#define D3DPTEXTURECAPS_ALPHA __MSABI_LONG(0x00000004)
+#define D3DPTEXTURECAPS_SQUAREONLY __MSABI_LONG(0x00000020)
+#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE __MSABI_LONG(0x00000040)
+#define D3DPTEXTURECAPS_ALPHAPALETTE __MSABI_LONG(0x00000080)
+#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL __MSABI_LONG(0x00000100)
+#define D3DPTEXTURECAPS_PROJECTED __MSABI_LONG(0x00000400)
+#define D3DPTEXTURECAPS_CUBEMAP __MSABI_LONG(0x00000800)
+#define D3DPTEXTURECAPS_VOLUMEMAP __MSABI_LONG(0x00002000)
+#define D3DPTEXTURECAPS_MIPMAP __MSABI_LONG(0x00004000)
+#define D3DPTEXTURECAPS_MIPVOLUMEMAP __MSABI_LONG(0x00008000)
+#define D3DPTEXTURECAPS_MIPCUBEMAP __MSABI_LONG(0x00010000)
+#define D3DPTEXTURECAPS_CUBEMAP_POW2 __MSABI_LONG(0x00020000)
+#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 __MSABI_LONG(0x00040000)
+#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV __MSABI_LONG(0x00200000)
+
+#define D3DPTFILTERCAPS_MINFPOINT __MSABI_LONG(0x00000100)
+#define D3DPTFILTERCAPS_MINFLINEAR __MSABI_LONG(0x00000200)
+#define D3DPTFILTERCAPS_MINFANISOTROPIC __MSABI_LONG(0x00000400)
+#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD __MSABI_LONG(0x00000800)
+#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD __MSABI_LONG(0x00001000)
+#define D3DPTFILTERCAPS_MIPFPOINT __MSABI_LONG(0x00010000)
+#define D3DPTFILTERCAPS_MIPFLINEAR __MSABI_LONG(0x00020000)
+#ifndef D3D_DISABLE_9EX
+#define D3DPTFILTERCAPS_CONVOLUTIONMONO __MSABI_LONG(0x00040000)
+#endif
+#define D3DPTFILTERCAPS_MAGFPOINT __MSABI_LONG(0x01000000)
+#define D3DPTFILTERCAPS_MAGFLINEAR __MSABI_LONG(0x02000000)
+#define D3DPTFILTERCAPS_MAGFANISOTROPIC __MSABI_LONG(0x04000000)
+#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD __MSABI_LONG(0x08000000)
+#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD __MSABI_LONG(0x10000000)
+
+#define D3DSTENCILCAPS_KEEP 0x01
+#define D3DSTENCILCAPS_ZERO 0x02
+#define D3DSTENCILCAPS_REPLACE 0x04
+#define D3DSTENCILCAPS_INCRSAT 0x08
+#define D3DSTENCILCAPS_DECRSAT 0x10
+#define D3DSTENCILCAPS_INVERT 0x20
+#define D3DSTENCILCAPS_INCR 0x40
+#define D3DSTENCILCAPS_DECR 0x80
+#define D3DSTENCILCAPS_TWOSIDED 0x100
+
+#define D3DTEXOPCAPS_DISABLE 0x0000001
+#define D3DTEXOPCAPS_SELECTARG1 0x0000002
+#define D3DTEXOPCAPS_SELECTARG2 0x0000004
+#define D3DTEXOPCAPS_MODULATE 0x0000008
+#define D3DTEXOPCAPS_MODULATE2X 0x0000010
+#define D3DTEXOPCAPS_MODULATE4X 0x0000020
+#define D3DTEXOPCAPS_ADD 0x0000040
+#define D3DTEXOPCAPS_ADDSIGNED 0x0000080
+#define D3DTEXOPCAPS_ADDSIGNED2X 0x0000100
+#define D3DTEXOPCAPS_SUBTRACT 0x0000200
+#define D3DTEXOPCAPS_ADDSMOOTH 0x0000400
+#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x0000800
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x0001000
+#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x0002000
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x0004000
+#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x0008000
+#define D3DTEXOPCAPS_PREMODULATE 0x0010000
+#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x0020000
+#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x0040000
+#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x0080000
+#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x0100000
+#define D3DTEXOPCAPS_BUMPENVMAP 0x0200000
+#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x0400000
+#define D3DTEXOPCAPS_DOTPRODUCT3 0x0800000
+#define D3DTEXOPCAPS_MULTIPLYADD 0x1000000
+#define D3DTEXOPCAPS_LERP 0x2000000
+
+#define D3DVTXPCAPS_TEXGEN __MSABI_LONG(0x00000001)
+#define D3DVTXPCAPS_MATERIALSOURCE7 __MSABI_LONG(0x00000002)
+#define D3DVTXPCAPS_DIRECTIONALLIGHTS __MSABI_LONG(0x00000008)
+#define D3DVTXPCAPS_POSITIONALLIGHTS __MSABI_LONG(0x00000010)
+#define D3DVTXPCAPS_LOCALVIEWER __MSABI_LONG(0x00000020)
+#define D3DVTXPCAPS_TWEENING __MSABI_LONG(0x00000040)
+#define D3DVTXPCAPS_TEXGEN_SPHEREMAP __MSABI_LONG(0x00000100)
+#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER __MSABI_LONG(0x00000200)
+
+#define D3DDTCAPS_UBYTE4 __MSABI_LONG(0x00000001)
+#define D3DDTCAPS_UBYTE4N __MSABI_LONG(0x00000002)
+#define D3DDTCAPS_SHORT2N __MSABI_LONG(0x00000004)
+#define D3DDTCAPS_SHORT4N __MSABI_LONG(0x00000008)
+#define D3DDTCAPS_USHORT2N __MSABI_LONG(0x00000010)
+#define D3DDTCAPS_USHORT4N __MSABI_LONG(0x00000020)
+#define D3DDTCAPS_UDEC3 __MSABI_LONG(0x00000040)
+#define D3DDTCAPS_DEC3N __MSABI_LONG(0x00000080)
+#define D3DDTCAPS_FLOAT16_2 __MSABI_LONG(0x00000100)
+#define D3DDTCAPS_FLOAT16_4 __MSABI_LONG(0x00000200)
+
+#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD __MSABI_LONG(0x00000020)
+#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION __MSABI_LONG(0x00000080)
+#define D3DCAPS3_COPY_TO_VIDMEM __MSABI_LONG(0x00000100)
+#define D3DCAPS3_COPY_TO_SYSTEMMEM __MSABI_LONG(0x00000200)
+#define D3DCAPS3_DXVAHD __MSABI_LONG(0x00000400)
+#define D3DCAPS3_DXVAHD_LIMITED __MSABI_LONG(0x00000800)
+#define D3DCAPS3_RESERVED __MSABI_LONG(0x8000001F)
+
+#define D3DCAPS2_FULLSCREENGAMMA __MSABI_LONG(0x00020000)
+#define D3DCAPS2_CANCALIBRATEGAMMA __MSABI_LONG(0x00100000)
+#define D3DCAPS2_RESERVED __MSABI_LONG(0x02000000)
+#define D3DCAPS2_CANMANAGERESOURCE __MSABI_LONG(0x10000000)
+#define D3DCAPS2_DYNAMICTEXTURES __MSABI_LONG(0x20000000)
+#define D3DCAPS2_CANAUTOGENMIPMAP __MSABI_LONG(0x40000000)
+#ifndef D3D_DISABLE_9EX
+#define D3DCAPS2_CANSHARERESOURCE __MSABI_LONG(0x80000000)
+#endif
+
+#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
+#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
+#define D3DVS20_MAX_NUMTEMPS 32
+#define D3DVS20_MIN_NUMTEMPS 12
+#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
+#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
+
+#define D3DVS20CAPS_PREDICATION (1 << 0)
+
+#define D3DPS20CAPS_ARBITRARYSWIZZLE (1 << 0)
+#define D3DPS20CAPS_GRADIENTINSTRUCTIONS (1 << 1)
+#define D3DPS20CAPS_PREDICATION (1 << 2)
+#define D3DPS20CAPS_NODEPENDENTREADLIMIT (1 << 3)
+#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (1 << 4)
+
+#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
+#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
+#define D3DPS20_MAX_NUMTEMPS 32
+#define D3DPS20_MIN_NUMTEMPS 12
+#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
+#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
+#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
+#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
+
+#define D3DMIN30SHADERINSTRUCTIONS 512
+#define D3DMAX30SHADERINSTRUCTIONS 32768
+
+
+typedef struct _D3DVSHADERCAPS2_0 {
+ DWORD Caps;
+ INT DynamicFlowControlDepth;
+ INT NumTemps;
+ INT StaticFlowControlDepth;
+} D3DVSHADERCAPS2_0;
+
+typedef struct _D3DPSHADERCAPS2_0 {
+ DWORD Caps;
+ INT DynamicFlowControlDepth;
+ INT NumTemps;
+ INT StaticFlowControlDepth;
+ INT NumInstructionSlots;
+} D3DPSHADERCAPS2_0;
+
+/*
+ * The d3dcaps9 structure
+ */
+typedef struct _D3DCAPS9 {
+ D3DDEVTYPE DeviceType;
+ UINT AdapterOrdinal;
+
+ DWORD Caps;
+ DWORD Caps2;
+ DWORD Caps3;
+ DWORD PresentationIntervals;
+
+ DWORD CursorCaps;
+
+ DWORD DevCaps;
+
+ DWORD PrimitiveMiscCaps;
+ DWORD RasterCaps;
+ DWORD ZCmpCaps;
+ DWORD SrcBlendCaps;
+ DWORD DestBlendCaps;
+ DWORD AlphaCmpCaps;
+ DWORD ShadeCaps;
+ DWORD TextureCaps;
+ DWORD TextureFilterCaps;
+ DWORD CubeTextureFilterCaps;
+ DWORD VolumeTextureFilterCaps;
+ DWORD TextureAddressCaps;
+ DWORD VolumeTextureAddressCaps;
+
+ DWORD LineCaps;
+
+ DWORD MaxTextureWidth, MaxTextureHeight;
+ DWORD MaxVolumeExtent;
+
+ DWORD MaxTextureRepeat;
+ DWORD MaxTextureAspectRatio;
+ DWORD MaxAnisotropy;
+ float MaxVertexW;
+
+ float GuardBandLeft;
+ float GuardBandTop;
+ float GuardBandRight;
+ float GuardBandBottom;
+
+ float ExtentsAdjust;
+ DWORD StencilCaps;
+
+ DWORD FVFCaps;
+ DWORD TextureOpCaps;
+ DWORD MaxTextureBlendStages;
+ DWORD MaxSimultaneousTextures;
+
+ DWORD VertexProcessingCaps;
+ DWORD MaxActiveLights;
+ DWORD MaxUserClipPlanes;
+ DWORD MaxVertexBlendMatrices;
+ DWORD MaxVertexBlendMatrixIndex;
+
+ float MaxPointSize;
+
+ DWORD MaxPrimitiveCount;
+ DWORD MaxVertexIndex;
+ DWORD MaxStreams;
+ DWORD MaxStreamStride;
+
+ DWORD VertexShaderVersion;
+ DWORD MaxVertexShaderConst;
+
+ DWORD PixelShaderVersion;
+ float PixelShader1xMaxValue;
+
+ /* DX 9 */
+ DWORD DevCaps2;
+
+ float MaxNpatchTessellationLevel;
+ DWORD Reserved5;
+
+ UINT MasterAdapterOrdinal;
+ UINT AdapterOrdinalInGroup;
+ UINT NumberOfAdaptersInGroup;
+ DWORD DeclTypes;
+ DWORD NumSimultaneousRTs;
+ DWORD StretchRectFilterCaps;
+ D3DVSHADERCAPS2_0 VS20Caps;
+ D3DPSHADERCAPS2_0 PS20Caps;
+ DWORD VertexTextureFilterCaps;
+ DWORD MaxVShaderInstructionsExecuted;
+ DWORD MaxPShaderInstructionsExecuted;
+ DWORD MaxVertexShader30InstructionSlots;
+ DWORD MaxPixelShader30InstructionSlots;
+
+} D3DCAPS9;
+
+#ifndef D3D_DISABLE_9EX
+
+#define D3DOVERLAYCAPS_FULLRANGERGB 0x00000001
+#define D3DOVERLAYCAPS_LIMITEDRANGERGB 0x00000002
+#define D3DOVERLAYCAPS_YCbCr_BT601 0x00000004
+#define D3DOVERLAYCAPS_YCbCr_BT709 0x00000008
+#define D3DOVERLAYCAPS_YCbCr_BT601_xvYCC 0x00000010
+#define D3DOVERLAYCAPS_YCbCr_BT709_xvYCC 0x00000020
+#define D3DOVERLAYCAPS_STRETCHX 0x00000040
+#define D3DOVERLAYCAPS_STRETCHY 0x00000080
+
+typedef struct _D3DOVERLAYCAPS {
+ UINT Caps;
+ UINT MaxOverlayDisplayWidth;
+ UINT MaxOverlayDisplayHeight;
+} D3DOVERLAYCAPS;
+
+#define D3DCPCAPS_SOFTWARE 0x00000001
+#define D3DCPCAPS_HARDWARE 0x00000002
+#define D3DCPCAPS_PROTECTIONALWAYSON 0x00000004
+#define D3DCPCAPS_PARTIALDECRYPTION 0x00000008
+#define D3DCPCAPS_CONTENTKEY 0x00000010
+#define D3DCPCAPS_FRESHENSESSIONKEY 0x00000020
+#define D3DCPCAPS_ENCRYPTEDREADBACK 0x00000040
+#define D3DCPCAPS_ENCRYPTEDREADBACKKEY 0x00000080
+#define D3DCPCAPS_SEQUENTIAL_CTR_IV 0x00000100
+#define D3DCPCAPS_ENCRYPTSLICEDATAONLY 0x00000200
+
+typedef struct _D3DCONTENTPROTECTIONCAPS {
+ DWORD Caps;
+ GUID KeyExchangeType;
+ UINT BufferAlignmentStart;
+ UINT BlockAlignmentSize;
+ ULONGLONG ProtectedMemorySize;
+} D3DCONTENTPROTECTIONCAPS;
+
+DEFINE_GUID(D3DCRYPTOTYPE_AES128_CTR, 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f);
+DEFINE_GUID(D3DCRYPTOTYPE_PROPRIETARY, 0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x8, 0x69, 0x91, 0x7b, 0xd, 0xe8);
+DEFINE_GUID(D3DKEYEXCHANGE_RSAES_OAEP, 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20);
+DEFINE_GUID(D3DKEYEXCHANGE_DXVA, 0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b);
+
+#endif
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif
diff --git a/d3d9types.h b/d3d9types.h
new file mode 100644
index 0000000..49e7f94
--- /dev/null
+++ b/d3d9types.h
@@ -0,0 +1,1638 @@
+/*
+ * Copyright (C) 2002-2003 Jason Edmeades
+ * Copyright (C) 2002-2003 Raphael Junqueira
+ * Copyright (C) 2005 Oliver Stieber
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3D9TYPES_H
+#define __WINE_D3D9TYPES_H
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+/*****************************************************************************
+ * Direct 3D v9 #defines
+ */
+#define D3DCLEAR_TARGET __MSABI_LONG(0x00000001)
+#define D3DCLEAR_ZBUFFER __MSABI_LONG(0x00000002)
+#define D3DCLEAR_STENCIL __MSABI_LONG(0x00000004)
+
+#define D3DCLIPPLANE0 (1 << 0)
+#define D3DCLIPPLANE1 (1 << 1)
+#define D3DCLIPPLANE2 (1 << 2)
+#define D3DCLIPPLANE3 (1 << 3)
+#define D3DCLIPPLANE4 (1 << 4)
+#define D3DCLIPPLANE5 (1 << 5)
+
+#define D3DCOLOR_ARGB(a,r,g,b) ((D3DCOLOR)((((a)&0xffu)<<24)|(((r)&0xffu)<<16)|(((g)&0xffu)<<8)|((b)&0xffu)))
+#define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
+#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
+#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b)
+#define D3DCOLOR_XYUV(y,u,v) D3DCOLOR_ARGB(0xFF,y,u,v)
+#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)
+
+#define D3DCS_LEFT __MSABI_LONG(0x001)
+#define D3DCS_RIGHT __MSABI_LONG(0x002)
+#define D3DCS_TOP __MSABI_LONG(0x004)
+#define D3DCS_BOTTOM __MSABI_LONG(0x008)
+#define D3DCS_FRONT __MSABI_LONG(0x010)
+#define D3DCS_BACK __MSABI_LONG(0x020)
+#define D3DCS_PLANE0 __MSABI_LONG(0x040)
+#define D3DCS_PLANE1 __MSABI_LONG(0x080)
+#define D3DCS_PLANE2 __MSABI_LONG(0x100)
+#define D3DCS_PLANE3 __MSABI_LONG(0x200)
+#define D3DCS_PLANE4 __MSABI_LONG(0x400)
+#define D3DCS_PLANE5 __MSABI_LONG(0x800)
+#define D3DCS_ALL __MSABI_LONG(0xFFF)
+
+#define D3DFVF_TEXTUREFORMAT1 3u
+#define D3DFVF_TEXTUREFORMAT2 0u
+#define D3DFVF_TEXTUREFORMAT3 1u
+#define D3DFVF_TEXTUREFORMAT4 2u
+#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
+#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
+
+#define D3DLOCK_READONLY 0x0010
+#define D3DLOCK_NOSYSLOCK 0x0800
+#define D3DLOCK_NOOVERWRITE 0x1000
+#define D3DLOCK_DISCARD 0x2000
+#define D3DLOCK_DONOTWAIT 0x4000
+#define D3DLOCK_NO_DIRTY_UPDATE 0x8000
+
+#define D3DMAXUSERCLIPPLANES 32
+#define D3DCLIPPLANE0 (1 << 0)
+#define D3DCLIPPLANE1 (1 << 1)
+#define D3DCLIPPLANE2 (1 << 2)
+#define D3DCLIPPLANE3 (1 << 3)
+#define D3DCLIPPLANE4 (1 << 4)
+#define D3DCLIPPLANE5 (1 << 5)
+
+
+#define D3DRENDERSTATE_WRAPBIAS __MSABI_LONG(128U)
+
+/* MSDN has this in d3d9caps.h, but it should be here */
+#define D3DTSS_TCI_PASSTHRU 0x00000
+#define D3DTSS_TCI_CAMERASPACENORMAL 0x10000
+#define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000
+#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
+#define D3DTSS_TCI_SPHEREMAP 0x40000
+
+
+#define D3DTS_WORLD D3DTS_WORLDMATRIX(0)
+#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
+#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
+#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
+#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
+
+#define D3DUSAGE_RENDERTARGET __MSABI_LONG(0x00000001)
+#define D3DUSAGE_DEPTHSTENCIL __MSABI_LONG(0x00000002)
+#define D3DUSAGE_WRITEONLY __MSABI_LONG(0x00000008)
+#define D3DUSAGE_SOFTWAREPROCESSING __MSABI_LONG(0x00000010)
+#define D3DUSAGE_DONOTCLIP __MSABI_LONG(0x00000020)
+#define D3DUSAGE_POINTS __MSABI_LONG(0x00000040)
+#define D3DUSAGE_RTPATCHES __MSABI_LONG(0x00000080)
+#define D3DUSAGE_NPATCHES __MSABI_LONG(0x00000100)
+#define D3DUSAGE_DYNAMIC __MSABI_LONG(0x00000200)
+#define D3DUSAGE_AUTOGENMIPMAP __MSABI_LONG(0x00000400)
+#define D3DUSAGE_DMAP __MSABI_LONG(0x00004000)
+
+/* Parts added with d3d9ex */
+#if !defined(D3D_DISABLE_9EX)
+#define D3DUSAGE_RESTRICTED_CONTENT __MSABI_LONG(0x00000800)
+#define D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER __MSABI_LONG(0x00001000)
+#define D3DUSAGE_RESTRICT_SHARED_RESOURCE __MSABI_LONG(0x00002000)
+#define D3DUSAGE_NONSECURE __MSABI_LONG(0x00800000)
+#define D3DUSAGE_TEXTAPI __MSABI_LONG(0x10000000)
+#endif /* D3D_DISABLE_9EX */
+
+#define D3DUSAGE_QUERY_LEGACYBUMPMAP __MSABI_LONG(0x00008000)
+#define D3DUSAGE_QUERY_SRGBREAD __MSABI_LONG(0x00010000)
+#define D3DUSAGE_QUERY_FILTER __MSABI_LONG(0x00020000)
+#define D3DUSAGE_QUERY_SRGBWRITE __MSABI_LONG(0x00040000)
+#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING __MSABI_LONG(0x00080000)
+#define D3DUSAGE_QUERY_VERTEXTEXTURE __MSABI_LONG(0x00100000)
+#define D3DUSAGE_QUERY_WRAPANDMIP __MSABI_LONG(0x00200000)
+
+#define D3DWRAP_U 1
+#define D3DWRAP_V 2
+#define D3DWRAP_W 4
+#define D3DWRAPCOORD_0 1
+#define D3DWRAPCOORD_1 2
+#define D3DWRAPCOORD_2 4
+#define D3DWRAPCOORD_3 8
+
+#define MAX_DEVICE_IDENTIFIER_STRING 512
+
+#define D3DFVF_RESERVED0 0x0001
+#define D3DFVF_POSITION_MASK 0x400E
+#define D3DFVF_XYZ 0x0002
+#define D3DFVF_XYZRHW 0x0004
+#define D3DFVF_XYZB1 0x0006
+#define D3DFVF_XYZB2 0x0008
+#define D3DFVF_XYZB3 0x000a
+#define D3DFVF_XYZB4 0x000c
+#define D3DFVF_XYZB5 0x000e
+#define D3DFVF_XYZW 0x4002
+#define D3DFVF_NORMAL 0x0010
+#define D3DFVF_PSIZE 0x0020
+#define D3DFVF_DIFFUSE 0x0040
+#define D3DFVF_SPECULAR 0x0080
+#define D3DFVF_TEXCOUNT_MASK 0x0f00
+#define D3DFVF_TEXCOUNT_SHIFT 8
+#define D3DFVF_TEX0 0x0000
+#define D3DFVF_TEX1 0x0100
+#define D3DFVF_TEX2 0x0200
+#define D3DFVF_TEX3 0x0300
+#define D3DFVF_TEX4 0x0400
+#define D3DFVF_TEX5 0x0500
+#define D3DFVF_TEX6 0x0600
+#define D3DFVF_TEX7 0x0700
+#define D3DFVF_TEX8 0x0800
+#define D3DFVF_LASTBETA_UBYTE4 0x1000
+#define D3DFVF_LASTBETA_D3DCOLOR 0x8000
+#define D3DFVF_RESERVED2 0x6000
+
+#define D3DTA_SELECTMASK 0x0000000f
+#define D3DTA_DIFFUSE 0x00000000
+#define D3DTA_CURRENT 0x00000001
+#define D3DTA_TEXTURE 0x00000002
+#define D3DTA_TFACTOR 0x00000003
+#define D3DTA_SPECULAR 0x00000004
+#define D3DTA_TEMP 0x00000005
+#define D3DTA_CONSTANT 0x00000006
+#define D3DTA_COMPLEMENT 0x00000010
+#define D3DTA_ALPHAREPLICATE 0x00000020
+
+#define D3DCOLORWRITEENABLE_RED (__MSABI_LONG(1)<<0)
+#define D3DCOLORWRITEENABLE_GREEN (__MSABI_LONG(1)<<1)
+#define D3DCOLORWRITEENABLE_BLUE (__MSABI_LONG(1)<<2)
+#define D3DCOLORWRITEENABLE_ALPHA (__MSABI_LONG(1)<<3)
+
+#define D3DPV_DONOTCOPYDATA (1 << 0)
+
+#define D3DSTREAMSOURCE_INDEXEDDATA (1u << 30)
+#define D3DSTREAMSOURCE_INSTANCEDATA (2u << 30)
+
+#define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
+
+#define MAXD3DDECLLENGTH 64 /* +end marker */
+#define MAXD3DDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED
+#define MAXD3DDECLTYPE D3DDECLTYPE_UNUSED
+#define MAXD3DDECLUSAGE D3DDECLUSAGE_SAMPLE
+#define MAXD3DDECLUSAGEINDEX 15
+
+#define D3DDMAPSAMPLER 256
+#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
+#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
+#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
+#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
+
+#ifndef MAKEFOURCC
+#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
+ ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
+ ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
+#endif
+
+/* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
+
+#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 /* Create a lockable backbuffer */
+#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
+#define D3DPRESENTFLAG_DEVICECLIP 0x00000004 /* Clip the window blited into the client area 2k + xp only */
+#define D3DPRESENTFLAG_VIDEO 0x00000010 /* backbuffer 'may' contain video data */
+#ifndef D3D_DISABLE_9EX
+#define D3DPRESENTFLAG_NOAUTOROTATE 0x00000020 /* d3d9ex, ignore display rotation */
+#define D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040 /* d3d9ex, specify invalid display modes */
+#define D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080
+#define D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100
+#define D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200
+#define D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400
+#define D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
+#endif
+
+#define D3DPRESENT_RATE_DEFAULT 0x00000000
+
+/****************************
+ * Vertex Shaders Declaration
+ */
+
+typedef enum _D3DDECLUSAGE {
+ D3DDECLUSAGE_POSITION = 0,
+ D3DDECLUSAGE_BLENDWEIGHT = 1,
+ D3DDECLUSAGE_BLENDINDICES = 2,
+ D3DDECLUSAGE_NORMAL = 3,
+ D3DDECLUSAGE_PSIZE = 4,
+ D3DDECLUSAGE_TEXCOORD = 5,
+ D3DDECLUSAGE_TANGENT = 6,
+ D3DDECLUSAGE_BINORMAL = 7,
+ D3DDECLUSAGE_TESSFACTOR = 8,
+ D3DDECLUSAGE_POSITIONT = 9,
+ D3DDECLUSAGE_COLOR = 10,
+ D3DDECLUSAGE_FOG = 11,
+ D3DDECLUSAGE_DEPTH = 12,
+ D3DDECLUSAGE_SAMPLE = 13
+} D3DDECLUSAGE;
+
+#define D3DMAXDECLUSAGE D3DDECLUSAGE_SAMPLE
+#define D3DMAXDECLUSAGEINDEX 15
+#define D3DMAXDECLLENGTH 18
+#define D3DMAXDECLUSAGE_DX8 D3DDECLUSAGE_TEXCOORD
+
+typedef enum _D3DDECLMETHOD {
+ D3DDECLMETHOD_DEFAULT = 0,
+ D3DDECLMETHOD_PARTIALU = 1,
+ D3DDECLMETHOD_PARTIALV = 2,
+ D3DDECLMETHOD_CROSSUV = 3,
+ D3DDECLMETHOD_UV = 4,
+ D3DDECLMETHOD_LOOKUP = 5,
+ D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
+} D3DDECLMETHOD;
+
+
+#define D3DMAXDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED
+
+typedef enum _D3DDECLTYPE {
+ D3DDECLTYPE_FLOAT1 = 0,
+ D3DDECLTYPE_FLOAT2 = 1,
+ D3DDECLTYPE_FLOAT3 = 2,
+ D3DDECLTYPE_FLOAT4 = 3,
+ D3DDECLTYPE_D3DCOLOR = 4,
+ D3DDECLTYPE_UBYTE4 = 5,
+ D3DDECLTYPE_SHORT2 = 6,
+ D3DDECLTYPE_SHORT4 = 7,
+ /* VS 2.0 */
+ D3DDECLTYPE_UBYTE4N = 8,
+ D3DDECLTYPE_SHORT2N = 9,
+ D3DDECLTYPE_SHORT4N = 10,
+ D3DDECLTYPE_USHORT2N = 11,
+ D3DDECLTYPE_USHORT4N = 12,
+ D3DDECLTYPE_UDEC3 = 13,
+ D3DDECLTYPE_DEC3N = 14,
+ D3DDECLTYPE_FLOAT16_2 = 15,
+ D3DDECLTYPE_FLOAT16_4 = 16,
+ D3DDECLTYPE_UNUSED = 17,
+} D3DDECLTYPE;
+
+#define D3DMAXDECLTYPE D3DDECLTYPE_UNUSED
+
+typedef struct _D3DVERTEXELEMENT9 {
+ WORD Stream;
+ WORD Offset;
+ BYTE Type;
+ BYTE Method;
+ BYTE Usage;
+ BYTE UsageIndex;
+} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
+
+
+typedef enum _D3DQUERYTYPE {
+ D3DQUERYTYPE_VCACHE = 4,
+ D3DQUERYTYPE_RESOURCEMANAGER = 5,
+ D3DQUERYTYPE_VERTEXSTATS = 6,
+ D3DQUERYTYPE_EVENT = 8,
+ D3DQUERYTYPE_OCCLUSION = 9,
+ D3DQUERYTYPE_TIMESTAMP = 10,
+ D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
+ D3DQUERYTYPE_TIMESTAMPFREQ = 12,
+ D3DQUERYTYPE_PIPELINETIMINGS = 13,
+ D3DQUERYTYPE_INTERFACETIMINGS = 14,
+ D3DQUERYTYPE_VERTEXTIMINGS = 15,
+ D3DQUERYTYPE_PIXELTIMINGS = 16,
+ D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
+ D3DQUERYTYPE_CACHEUTILIZATION = 18,
+#ifndef D3D_DISABLE_9EX
+ D3DQUERYTYPE_MEMORYPRESSURE = 19,
+#endif
+} D3DQUERYTYPE;
+
+#define D3DISSUE_BEGIN (1 << 1)
+#define D3DISSUE_END (1 << 0)
+#define D3DGETDATA_FLUSH (1 << 0)
+
+
+#define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}
+#define D3DDP_MAXTEXCOORD 8
+
+
+#define D3DVSD_MAKETOKENTYPE(TokenType) \
+ ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
+
+#define D3DVSD_CONST(ConstantAddress, Count) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
+
+#define D3DVSD_END() 0xFFFFFFFF
+
+#define D3DVSD_NOP() 0x00000000
+
+#define D3DVSD_REG(VertexRegister, Type) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
+
+#define D3DVSD_SKIP(Count) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
+
+#define D3DVSD_STREAM(StreamNumber) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
+
+#define D3DVSD_STREAM_TESS() \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
+
+#define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
+
+#define D3DVSD_TESSUV(Register) \
+ (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
+
+
+/********************************
+ * Pixel/Vertex Shaders Functions
+ */
+
+/** Maximum number of supported texture coordinates sets operation */
+#define D3DDP_MAXTEXCOORD 8
+
+/** opcode token mask */
+#define D3DSI_OPCODE_MASK 0x0000FFFF
+#define D3DSI_INSTLENGTH_MASK 0x0F000000
+#define D3DSI_INSTLENGTH_SHIFT 24
+
+/** opcodes types for PS and VS */
+typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
+ D3DSIO_NOP = 0,
+ D3DSIO_MOV = 1,
+ D3DSIO_ADD = 2,
+ D3DSIO_SUB = 3,
+ D3DSIO_MAD = 4,
+ D3DSIO_MUL = 5,
+ D3DSIO_RCP = 6,
+ D3DSIO_RSQ = 7,
+ D3DSIO_DP3 = 8,
+ D3DSIO_DP4 = 9,
+ D3DSIO_MIN = 10,
+ D3DSIO_MAX = 11,
+ D3DSIO_SLT = 12,
+ D3DSIO_SGE = 13,
+ D3DSIO_EXP = 14,
+ D3DSIO_LOG = 15,
+ D3DSIO_LIT = 16,
+ D3DSIO_DST = 17,
+ D3DSIO_LRP = 18,
+ D3DSIO_FRC = 19,
+ D3DSIO_M4x4 = 20,
+ D3DSIO_M4x3 = 21,
+ D3DSIO_M3x4 = 22,
+ D3DSIO_M3x3 = 23,
+ D3DSIO_M3x2 = 24,
+ D3DSIO_CALL = 25,
+ D3DSIO_CALLNZ = 26,
+ D3DSIO_LOOP = 27,
+ D3DSIO_RET = 28,
+ D3DSIO_ENDLOOP = 29,
+ D3DSIO_LABEL = 30,
+ D3DSIO_DCL = 31,
+ D3DSIO_POW = 32,
+ D3DSIO_CRS = 33,
+ D3DSIO_SGN = 34,
+ D3DSIO_ABS = 35,
+ D3DSIO_NRM = 36,
+ D3DSIO_SINCOS = 37,
+ D3DSIO_REP = 38,
+ D3DSIO_ENDREP = 39,
+ D3DSIO_IF = 40,
+ D3DSIO_IFC = 41,
+ D3DSIO_ELSE = 42,
+ D3DSIO_ENDIF = 43,
+ D3DSIO_BREAK = 44,
+ D3DSIO_BREAKC = 45,
+ D3DSIO_MOVA = 46,
+ D3DSIO_DEFB = 47,
+ D3DSIO_DEFI = 48,
+
+ D3DSIO_TEXCOORD = 64,
+ D3DSIO_TEXKILL = 65,
+ D3DSIO_TEX = 66,
+ D3DSIO_TEXBEM = 67,
+ D3DSIO_TEXBEML = 68,
+ D3DSIO_TEXREG2AR = 69,
+ D3DSIO_TEXREG2GB = 70,
+ D3DSIO_TEXM3x2PAD = 71,
+ D3DSIO_TEXM3x2TEX = 72,
+ D3DSIO_TEXM3x3PAD = 73,
+ D3DSIO_TEXM3x3TEX = 74,
+ D3DSIO_TEXM3x3DIFF = 75,
+ D3DSIO_TEXM3x3SPEC = 76,
+ D3DSIO_TEXM3x3VSPEC = 77,
+ D3DSIO_EXPP = 78,
+ D3DSIO_LOGP = 79,
+ D3DSIO_CND = 80,
+ D3DSIO_DEF = 81,
+ D3DSIO_TEXREG2RGB = 82,
+ D3DSIO_TEXDP3TEX = 83,
+ D3DSIO_TEXM3x2DEPTH = 84,
+ D3DSIO_TEXDP3 = 85,
+ D3DSIO_TEXM3x3 = 86,
+ D3DSIO_TEXDEPTH = 87,
+ D3DSIO_CMP = 88,
+ D3DSIO_BEM = 89,
+ D3DSIO_DP2ADD = 90,
+ D3DSIO_DSX = 91,
+ D3DSIO_DSY = 92,
+ D3DSIO_TEXLDD = 93,
+ D3DSIO_SETP = 94,
+ D3DSIO_TEXLDL = 95,
+ D3DSIO_BREAKP = 96,
+
+ D3DSIO_PHASE = 0xFFFD,
+ D3DSIO_COMMENT = 0xFFFE,
+ D3DSIO_END = 0XFFFF,
+
+ D3DSIO_FORCE_DWORD = 0X7FFFFFFF /** for 32-bit alignment */
+} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
+
+#define D3DSINCOSCONST1 -1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f
+#define D3DSINCOSCONST2 -0.020833334f, -0.12500000f, 1.0f, 0.50000000f
+
+#define D3DSHADER_INSTRUCTION_PREDICATED (1 << 28)
+
+#define D3DSI_TEXLD_PROJECT 0x00010000
+#define D3DSI_TEXLD_BIAS 0x00020000
+
+/** for parallelism */
+#define D3DSI_COISSUE 0x40000000
+
+#define D3DSP_DCL_USAGE_SHIFT 0
+#define D3DSP_DCL_USAGE_MASK 0x0000000f
+
+#define D3DSP_DCL_USAGEINDEX_SHIFT 16
+#define D3DSP_DCL_USAGEINDEX_MASK 0x000f0000
+
+#define D3DSP_OPCODESPECIFICCONTROL_SHIFT 16
+#define D3DSP_OPCODESPECIFICCONTROL_MASK 0x00ff0000
+
+#define D3DSP_TEXTURETYPE_SHIFT 27
+#define D3DSP_TEXTURETYPE_MASK 0x78000000
+
+typedef enum _D3DSAMPLER_TEXTURE_TYPE {
+ D3DSTT_UNKNOWN = 0 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_1D = 1 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_2D = 2 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_CUBE = 3 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_VOLUME = 4 << D3DSP_TEXTURETYPE_SHIFT,
+
+ D3DSTT_FORCE_DWORD = 0x7FFFFFFF
+} D3DSAMPLER_TEXTURE_TYPE;
+
+#define D3DSP_REGNUM_MASK 0x000007FF
+
+/** destination parameter modifiers (.xyzw) */
+#define D3DSP_WRITEMASK_0 0x00010000 /* .x r */
+#define D3DSP_WRITEMASK_1 0x00020000 /* .y g */
+#define D3DSP_WRITEMASK_2 0x00040000 /* .z b */
+#define D3DSP_WRITEMASK_3 0x00080000 /* .w a */
+#define D3DSP_WRITEMASK_ALL 0x000F0000 /* all */
+
+#define D3DSP_DSTMOD_SHIFT 20
+#define D3DSP_DSTMOD_MASK (0xF << D3DSP_DSTMOD_SHIFT)
+
+typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
+ D3DSPDM_NONE = 0 << D3DSP_DSTMOD_SHIFT,
+ D3DSPDM_SATURATE = 1 << D3DSP_DSTMOD_SHIFT,
+ D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
+ D3DSPDM_MSAMPCENTROID = 4 << D3DSP_DSTMOD_SHIFT,
+
+ D3DSPDM_FORCE_DWORD = 0x7FFFFFFF
+} D3DSHADER_PARAM_DSTMOD_TYPE;
+
+/** destination param */
+#define D3DSP_DSTSHIFT_SHIFT 24
+#define D3DSP_DSTSHIFT_MASK (0xF << D3DSP_DSTSHIFT_SHIFT)
+
+/** destination/source reg type */
+#define D3DSP_REGTYPE_SHIFT 28
+#define D3DSP_REGTYPE_SHIFT2 8
+#define D3DSP_REGTYPE_MASK (0x7 << D3DSP_REGTYPE_SHIFT)
+#define D3DSP_REGTYPE_MASK2 0x00001800
+
+typedef enum _D3DSHADER_PARAM_REGISTER_TYPE
+{
+ D3DSPR_TEMP = 0,
+ D3DSPR_INPUT = 1,
+ D3DSPR_CONST = 2,
+ D3DSPR_ADDR = 3,
+ D3DSPR_TEXTURE = 3,
+ D3DSPR_RASTOUT = 4,
+ D3DSPR_ATTROUT = 5,
+ D3DSPR_TEXCRDOUT = 6,
+ D3DSPR_OUTPUT = 6,
+ D3DSPR_CONSTINT = 7,
+ D3DSPR_COLOROUT = 8,
+ D3DSPR_DEPTHOUT = 9,
+ D3DSPR_SAMPLER = 10,
+ D3DSPR_CONST2 = 11,
+ D3DSPR_CONST3 = 12,
+ D3DSPR_CONST4 = 13,
+ D3DSPR_CONSTBOOL = 14,
+ D3DSPR_LOOP = 15,
+ D3DSPR_TEMPFLOAT16 = 16,
+ D3DSPR_MISCTYPE = 17,
+ D3DSPR_LABEL = 18,
+ D3DSPR_PREDICATE = 19,
+
+ D3DSPR_FORCE_DWORD = 0x7fffffff
+} D3DSHADER_PARAM_REGISTER_TYPE;
+
+typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
+ D3DSMO_POSITION = 0,
+ D3DSMO_FACE = 1
+} D3DSHADER_MISCTYPE_OFFSETS;
+
+typedef enum _D3DVS_RASTOUT_OFFSETS {
+ D3DSRO_POSITION = 0,
+ D3DSRO_FOG = 1,
+ D3DSRO_POINT_SIZE = 2,
+
+ D3DSRO_FORCE_DWORD = 0x7FFFFFFF
+} D3DVS_RASTOUT_OFFSETS;
+
+#define D3DVS_ADDRESSMODE_SHIFT 13
+#define D3DVS_ADDRESSMODE_MASK (0x1 << D3DVS_ADDRESSMODE_SHIFT)
+
+typedef enum _D3DVS_ADDRESSMODE_TYPE {
+ D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT,
+ D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT,
+
+ D3DVS_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
+} D3DVS_ADDRESSMODE_TYPE;
+
+#define D3DSHADER_ADDRESSMODE_SHIFT 13
+#define D3DSHADER_ADDRESSMODE_MASK (1 << D3DSHADER_ADDRESSMODE_SHIFT)
+
+typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
+ D3DSHADER_ADDRMODE_ABSOLUTE = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
+ D3DSHADER_ADDRMODE_RELATIVE = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
+
+ D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
+} D3DSHADER_ADDRESSMODE_TYPE;
+
+
+#define D3DVS_SWIZZLE_SHIFT 16
+#define D3DVS_SWIZZLE_MASK (0xFF << D3DVS_SWIZZLE_SHIFT)
+
+#define D3DSP_SWIZZLE_SHIFT 16
+#define D3DSP_SWIZZLE_MASK (0xFF << D3DSP_SWIZZLE_SHIFT)
+
+#define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT)
+#define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT)
+
+#define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2))
+#define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2))
+
+#define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4))
+#define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4))
+
+#define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_Z (2 << (D3DVS_SWIZZLE_SHIFT + 6))
+#define D3DVS_W_W (3 << (D3DVS_SWIZZLE_SHIFT + 6))
+
+#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
+
+#define D3DSP_NOSWIZZLE \
+ ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
+
+#define D3DSP_SRCMOD_SHIFT 24
+#define D3DSP_SRCMOD_MASK (0xF << D3DSP_SRCMOD_SHIFT)
+
+typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
+ D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABS = 11 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABSNEG = 12 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NOT = 13 << D3DSP_SRCMOD_SHIFT,
+
+ D3DSPSM_FORCE_DWORD = 0x7FFFFFFF
+} D3DSHADER_PARAM_SRCMOD_TYPE;
+
+#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
+#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
+#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
+#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
+
+#define D3DSI_COMMENTSIZE_SHIFT 16
+#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
+
+#define D3DSHADER_COMMENT(commentSize) \
+ ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
+
+#define D3DPS_END() 0x0000FFFF
+#define D3DVS_END() 0x0000FFFF
+
+
+/*****************************************************************************
+ * Direct 3D v8 enumerated types
+ */
+typedef enum _D3DBACKBUFFER_TYPE {
+ D3DBACKBUFFER_TYPE_MONO = 0,
+ D3DBACKBUFFER_TYPE_LEFT = 1,
+ D3DBACKBUFFER_TYPE_RIGHT = 2,
+
+ D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
+} D3DBACKBUFFER_TYPE;
+
+typedef enum _D3DBASISTYPE {
+ D3DBASIS_BEZIER = 0,
+ D3DBASIS_BSPLINE = 1,
+ D3DBASIS_INTERPOLATE = 2,
+
+ D3DBASIS_FORCE_DWORD = 0x7fffffff
+} D3DBASISTYPE;
+
+typedef enum _D3DBLEND {
+ D3DBLEND_ZERO = 1,
+ D3DBLEND_ONE = 2,
+ D3DBLEND_SRCCOLOR = 3,
+ D3DBLEND_INVSRCCOLOR = 4,
+ D3DBLEND_SRCALPHA = 5,
+ D3DBLEND_INVSRCALPHA = 6,
+ D3DBLEND_DESTALPHA = 7,
+ D3DBLEND_INVDESTALPHA = 8,
+ D3DBLEND_DESTCOLOR = 9,
+ D3DBLEND_INVDESTCOLOR = 10,
+ D3DBLEND_SRCALPHASAT = 11,
+ D3DBLEND_BOTHSRCALPHA = 12,
+ D3DBLEND_BOTHINVSRCALPHA = 13,
+ D3DBLEND_BLENDFACTOR = 14,
+ D3DBLEND_INVBLENDFACTOR = 15,
+#ifndef D3D_DISABLE_9EX
+ D3DBLEND_SRCCOLOR2 = 16,
+ D3DBLEND_INVSRCCOLOR2 = 17,
+#endif
+ D3DBLEND_FORCE_DWORD = 0x7fffffff
+} D3DBLEND;
+
+typedef enum _D3DBLENDOP {
+ D3DBLENDOP_ADD = 1,
+ D3DBLENDOP_SUBTRACT = 2,
+ D3DBLENDOP_REVSUBTRACT = 3,
+ D3DBLENDOP_MIN = 4,
+ D3DBLENDOP_MAX = 5,
+
+ D3DBLENDOP_FORCE_DWORD = 0x7fffffff
+} D3DBLENDOP;
+
+typedef enum _D3DCMPFUNC {
+ D3DCMP_NEVER = 1,
+ D3DCMP_LESS = 2,
+ D3DCMP_EQUAL = 3,
+ D3DCMP_LESSEQUAL = 4,
+ D3DCMP_GREATER = 5,
+ D3DCMP_NOTEQUAL = 6,
+ D3DCMP_GREATEREQUAL = 7,
+ D3DCMP_ALWAYS = 8,
+
+ D3DCMP_FORCE_DWORD = 0x7fffffff
+} D3DCMPFUNC;
+
+typedef enum _D3DCUBEMAP_FACES {
+ D3DCUBEMAP_FACE_POSITIVE_X = 0,
+ D3DCUBEMAP_FACE_NEGATIVE_X = 1,
+ D3DCUBEMAP_FACE_POSITIVE_Y = 2,
+ D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
+ D3DCUBEMAP_FACE_POSITIVE_Z = 4,
+ D3DCUBEMAP_FACE_NEGATIVE_Z = 5,
+
+ D3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff
+} D3DCUBEMAP_FACES;
+
+typedef enum _D3DCULL {
+ D3DCULL_NONE = 1,
+ D3DCULL_CW = 2,
+ D3DCULL_CCW = 3,
+
+ D3DCULL_FORCE_DWORD = 0x7fffffff
+} D3DCULL;
+
+typedef enum _D3DDEBUGMONITORTOKENS {
+ D3DDMT_ENABLE = 0,
+ D3DDMT_DISABLE = 1,
+
+ D3DDMT_FORCE_DWORD = 0x7fffffff
+} D3DDEBUGMONITORTOKENS;
+
+typedef enum _D3DDEGREETYPE {
+ D3DDEGREE_LINEAR = 1,
+ D3DDEGREE_QUADRATIC = 2,
+ D3DDEGREE_CUBIC = 3,
+ D3DDEGREE_QUINTIC = 5,
+
+ D3DDEGREE_FORCE_DWORD = 0x7fffffff
+} D3DDEGREETYPE;
+
+typedef enum _D3DDEVTYPE {
+ D3DDEVTYPE_HAL = 1,
+ D3DDEVTYPE_REF = 2,
+ D3DDEVTYPE_SW = 3,
+ D3DDEVTYPE_NULLREF = 4,
+
+ D3DDEVTYPE_FORCE_DWORD = 0xffffffff
+} D3DDEVTYPE;
+
+typedef enum _D3DFILLMODE {
+ D3DFILL_POINT = 1,
+ D3DFILL_WIREFRAME = 2,
+ D3DFILL_SOLID = 3,
+
+ D3DFILL_FORCE_DWORD = 0x7fffffff
+} D3DFILLMODE;
+
+typedef enum _D3DFOGMODE {
+ D3DFOG_NONE = 0,
+ D3DFOG_EXP = 1,
+ D3DFOG_EXP2 = 2,
+ D3DFOG_LINEAR = 3,
+
+ D3DFOG_FORCE_DWORD = 0x7fffffff
+} D3DFOGMODE;
+
+typedef enum _D3DFORMAT {
+ D3DFMT_UNKNOWN = 0,
+
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_A8B8G8R8 = 32,
+ D3DFMT_X8B8G8R8 = 33,
+ D3DFMT_G16R16 = 34,
+ D3DFMT_A2R10G10B10 = 35,
+ D3DFMT_A16B16G16R16 = 36,
+
+
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_A2W10V10U10 = 67,
+
+ D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
+ D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
+ D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
+ D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
+ D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
+ D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
+ D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
+ D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M', 'E', 'T', '1'),
+ D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
+ D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
+
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+ D3DFMT_L16 = 81,
+ D3DFMT_D32F_LOCKABLE = 82,
+ D3DFMT_D24FS8 = 83,
+#ifndef D3D_DISABLE_9EX
+ D3DFMT_D32_LOCKABLE = 84,
+ D3DFMT_S8_LOCKABLE = 85,
+#endif
+
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+ D3DFMT_Q16W16V16U16 = 110,
+ /* Floating point formats */
+ D3DFMT_R16F = 111,
+ D3DFMT_G16R16F = 112,
+ D3DFMT_A16B16G16R16F = 113,
+
+ /* IEEE formats */
+ D3DFMT_R32F = 114,
+ D3DFMT_G32R32F = 115,
+ D3DFMT_A32B32G32R32F = 116,
+
+ D3DFMT_CxV8U8 = 117,
+#ifndef D3D_DISABLE_9EX
+ D3DFMT_A1 = 118,
+ D3DFMT_A2B10G10R10_XR_BIAS = 119,
+ D3DFMT_BINARYBUFFER = 199,
+#endif
+
+ D3DFMT_FORCE_DWORD = 0xFFFFFFFF
+} D3DFORMAT;
+
+typedef enum _D3DLIGHTTYPE {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+
+ D3DLIGHT_FORCE_DWORD = 0x7fffffff
+} D3DLIGHTTYPE;
+
+typedef enum _D3DMATERIALCOLORSOURCE {
+ D3DMCS_MATERIAL = 0,
+ D3DMCS_COLOR1 = 1,
+ D3DMCS_COLOR2 = 2,
+
+ D3DMCS_FORCE_DWORD = 0x7fffffff
+} D3DMATERIALCOLORSOURCE;
+
+typedef enum _D3DMULTISAMPLE_TYPE {
+ D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_NONMASKABLE = 1,
+ D3DMULTISAMPLE_2_SAMPLES = 2,
+ D3DMULTISAMPLE_3_SAMPLES = 3,
+ D3DMULTISAMPLE_4_SAMPLES = 4,
+ D3DMULTISAMPLE_5_SAMPLES = 5,
+ D3DMULTISAMPLE_6_SAMPLES = 6,
+ D3DMULTISAMPLE_7_SAMPLES = 7,
+ D3DMULTISAMPLE_8_SAMPLES = 8,
+ D3DMULTISAMPLE_9_SAMPLES = 9,
+ D3DMULTISAMPLE_10_SAMPLES = 10,
+ D3DMULTISAMPLE_11_SAMPLES = 11,
+ D3DMULTISAMPLE_12_SAMPLES = 12,
+ D3DMULTISAMPLE_13_SAMPLES = 13,
+ D3DMULTISAMPLE_14_SAMPLES = 14,
+ D3DMULTISAMPLE_15_SAMPLES = 15,
+ D3DMULTISAMPLE_16_SAMPLES = 16,
+
+ D3DMULTISAMPLE_FORCE_DWORD = 0x7fffffff
+} D3DMULTISAMPLE_TYPE;
+
+#if 0
+typedef enum _D3DORDERTYPE {
+ D3DORDER_LINEAR = 1,
+ D3DORDER_QUADRATIC = 2,
+ D3DORDER_CUBIC = 3,
+ D3DORDER_QUINTIC = 5,
+
+ D3DORDER_FORCE_DWORD = 0x7fffffff
+} D3DORDERTYPE;
+#endif
+typedef enum _D3DPATCHEDGESTYLE {
+ D3DPATCHEDGE_DISCRETE = 0,
+ D3DPATCHEDGE_CONTINUOUS = 1,
+
+ D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
+} D3DPATCHEDGESTYLE;
+
+typedef enum _D3DPOOL {
+ D3DPOOL_DEFAULT = 0,
+ D3DPOOL_MANAGED = 1,
+ D3DPOOL_SYSTEMMEM = 2,
+ D3DPOOL_SCRATCH = 3,
+
+ D3DPOOL_FORCE_DWORD = 0x7fffffff
+} D3DPOOL;
+
+typedef enum _D3DPRIMITIVETYPE {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+
+ D3DPT_FORCE_DWORD = 0x7fffffff
+} D3DPRIMITIVETYPE;
+
+typedef enum _D3DRENDERSTATETYPE {
+ D3DRS_ZENABLE = 7,
+ D3DRS_FILLMODE = 8,
+ D3DRS_SHADEMODE = 9,
+ D3DRS_ZWRITEENABLE = 14,
+ D3DRS_ALPHATESTENABLE = 15,
+ D3DRS_LASTPIXEL = 16,
+ D3DRS_SRCBLEND = 19,
+ D3DRS_DESTBLEND = 20,
+ D3DRS_CULLMODE = 22,
+ D3DRS_ZFUNC = 23,
+ D3DRS_ALPHAREF = 24,
+ D3DRS_ALPHAFUNC = 25,
+ D3DRS_DITHERENABLE = 26,
+ D3DRS_ALPHABLENDENABLE = 27,
+ D3DRS_FOGENABLE = 28,
+ D3DRS_SPECULARENABLE = 29,
+ D3DRS_FOGCOLOR = 34,
+ D3DRS_FOGTABLEMODE = 35,
+ D3DRS_FOGSTART = 36,
+ D3DRS_FOGEND = 37,
+ D3DRS_FOGDENSITY = 38,
+ D3DRS_RANGEFOGENABLE = 48,
+ D3DRS_STENCILENABLE = 52,
+ D3DRS_STENCILFAIL = 53,
+ D3DRS_STENCILZFAIL = 54,
+ D3DRS_STENCILPASS = 55,
+ D3DRS_STENCILFUNC = 56,
+ D3DRS_STENCILREF = 57,
+ D3DRS_STENCILMASK = 58,
+ D3DRS_STENCILWRITEMASK = 59,
+ D3DRS_TEXTUREFACTOR = 60,
+ D3DRS_WRAP0 = 128,
+ D3DRS_WRAP1 = 129,
+ D3DRS_WRAP2 = 130,
+ D3DRS_WRAP3 = 131,
+ D3DRS_WRAP4 = 132,
+ D3DRS_WRAP5 = 133,
+ D3DRS_WRAP6 = 134,
+ D3DRS_WRAP7 = 135,
+ D3DRS_CLIPPING = 136,
+ D3DRS_LIGHTING = 137,
+ D3DRS_AMBIENT = 139,
+ D3DRS_FOGVERTEXMODE = 140,
+ D3DRS_COLORVERTEX = 141,
+ D3DRS_LOCALVIEWER = 142,
+ D3DRS_NORMALIZENORMALS = 143,
+ D3DRS_DIFFUSEMATERIALSOURCE = 145,
+ D3DRS_SPECULARMATERIALSOURCE = 146,
+ D3DRS_AMBIENTMATERIALSOURCE = 147,
+ D3DRS_EMISSIVEMATERIALSOURCE = 148,
+ D3DRS_VERTEXBLEND = 151,
+ D3DRS_CLIPPLANEENABLE = 152,
+ D3DRS_POINTSIZE = 154,
+ D3DRS_POINTSIZE_MIN = 155,
+ D3DRS_POINTSPRITEENABLE = 156,
+ D3DRS_POINTSCALEENABLE = 157,
+ D3DRS_POINTSCALE_A = 158,
+ D3DRS_POINTSCALE_B = 159,
+ D3DRS_POINTSCALE_C = 160,
+ D3DRS_MULTISAMPLEANTIALIAS = 161,
+ D3DRS_MULTISAMPLEMASK = 162,
+ D3DRS_PATCHEDGESTYLE = 163,
+ D3DRS_DEBUGMONITORTOKEN = 165,
+ D3DRS_POINTSIZE_MAX = 166,
+ D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
+ D3DRS_COLORWRITEENABLE = 168,
+ D3DRS_TWEENFACTOR = 170,
+ D3DRS_BLENDOP = 171,
+ D3DRS_POSITIONDEGREE = 172,
+ D3DRS_NORMALDEGREE = 173,
+ D3DRS_SCISSORTESTENABLE = 174,
+ D3DRS_SLOPESCALEDEPTHBIAS = 175,
+ D3DRS_ANTIALIASEDLINEENABLE = 176,
+ D3DRS_MINTESSELLATIONLEVEL = 178,
+ D3DRS_MAXTESSELLATIONLEVEL = 179,
+ D3DRS_ADAPTIVETESS_X = 180,
+ D3DRS_ADAPTIVETESS_Y = 181,
+ D3DRS_ADAPTIVETESS_Z = 182,
+ D3DRS_ADAPTIVETESS_W = 183,
+ D3DRS_ENABLEADAPTIVETESSELLATION= 184,
+ D3DRS_TWOSIDEDSTENCILMODE = 185,
+ D3DRS_CCW_STENCILFAIL = 186,
+ D3DRS_CCW_STENCILZFAIL = 187,
+ D3DRS_CCW_STENCILPASS = 188,
+ D3DRS_CCW_STENCILFUNC = 189,
+ D3DRS_COLORWRITEENABLE1 = 190,
+ D3DRS_COLORWRITEENABLE2 = 191,
+ D3DRS_COLORWRITEENABLE3 = 192,
+ D3DRS_BLENDFACTOR = 193,
+ D3DRS_SRGBWRITEENABLE = 194,
+ D3DRS_DEPTHBIAS = 195,
+ D3DRS_WRAP8 = 198,
+ D3DRS_WRAP9 = 199,
+ D3DRS_WRAP10 = 200,
+ D3DRS_WRAP11 = 201,
+ D3DRS_WRAP12 = 202,
+ D3DRS_WRAP13 = 203,
+ D3DRS_WRAP14 = 204,
+ D3DRS_WRAP15 = 205,
+ D3DRS_SEPARATEALPHABLENDENABLE = 206,
+ D3DRS_SRCBLENDALPHA = 207,
+ D3DRS_DESTBLENDALPHA = 208,
+ D3DRS_BLENDOPALPHA = 209,
+
+ D3DRS_FORCE_DWORD = 0x7fffffff
+} D3DRENDERSTATETYPE;
+
+typedef enum _D3DRESOURCETYPE {
+ D3DRTYPE_SURFACE = 1,
+ D3DRTYPE_VOLUME = 2,
+ D3DRTYPE_TEXTURE = 3,
+ D3DRTYPE_VOLUMETEXTURE = 4,
+ D3DRTYPE_CUBETEXTURE = 5,
+ D3DRTYPE_VERTEXBUFFER = 6,
+ D3DRTYPE_INDEXBUFFER = 7,
+
+ D3DRTYPE_FORCE_DWORD = 0x7fffffff
+} D3DRESOURCETYPE;
+
+#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
+
+typedef enum _D3DSHADEMODE {
+ D3DSHADE_FLAT = 1,
+ D3DSHADE_GOURAUD = 2,
+ D3DSHADE_PHONG = 3,
+
+ D3DSHADE_FORCE_DWORD = 0x7fffffff
+} D3DSHADEMODE;
+
+typedef enum _D3DSTATEBLOCKTYPE {
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+
+ D3DSBT_FORCE_DWORD = 0xffffffff
+} D3DSTATEBLOCKTYPE;
+
+typedef enum _D3DSTENCILOP {
+ D3DSTENCILOP_KEEP = 1,
+ D3DSTENCILOP_ZERO = 2,
+ D3DSTENCILOP_REPLACE = 3,
+ D3DSTENCILOP_INCRSAT = 4,
+ D3DSTENCILOP_DECRSAT = 5,
+ D3DSTENCILOP_INVERT = 6,
+ D3DSTENCILOP_INCR = 7,
+ D3DSTENCILOP_DECR = 8,
+
+ D3DSTENCILOP_FORCE_DWORD = 0x7fffffff
+} D3DSTENCILOP;
+
+typedef enum _D3DSWAPEFFECT {
+ D3DSWAPEFFECT_DISCARD = 1,
+ D3DSWAPEFFECT_FLIP = 2,
+ D3DSWAPEFFECT_COPY = 3,
+#ifndef D3D_DISABLE_9EX
+ D3DSWAPEFFECT_OVERLAY = 4,
+ D3DSWAPEFFECT_FLIPEX = 5,
+#endif
+ D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
+} D3DSWAPEFFECT;
+
+typedef enum _D3DTEXTUREADDRESS {
+ D3DTADDRESS_WRAP = 1,
+ D3DTADDRESS_MIRROR = 2,
+ D3DTADDRESS_CLAMP = 3,
+ D3DTADDRESS_BORDER = 4,
+ D3DTADDRESS_MIRRORONCE = 5,
+
+ D3DTADDRESS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREADDRESS;
+
+typedef enum _D3DTEXTUREFILTERTYPE {
+ D3DTEXF_NONE = 0,
+ D3DTEXF_POINT = 1,
+ D3DTEXF_LINEAR = 2,
+ D3DTEXF_ANISOTROPIC = 3,
+ D3DTEXF_FLATCUBIC = 4,
+ D3DTEXF_GAUSSIANCUBIC = 5,
+ D3DTEXF_PYRAMIDALQUAD = 6,
+ D3DTEXF_GAUSSIANQUAD = 7,
+#ifndef D3D_DISABLE_9EX
+ D3DTEXF_CONVOLUTIONMONO = 8,
+#endif
+ D3DTEXF_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREFILTERTYPE;
+
+typedef enum _D3DTEXTUREOP {
+ D3DTOP_DISABLE = 1,
+ D3DTOP_SELECTARG1 = 2,
+ D3DTOP_SELECTARG2 = 3,
+ D3DTOP_MODULATE = 4,
+ D3DTOP_MODULATE2X = 5,
+ D3DTOP_MODULATE4X = 6,
+ D3DTOP_ADD = 7,
+ D3DTOP_ADDSIGNED = 8,
+ D3DTOP_ADDSIGNED2X = 9,
+ D3DTOP_SUBTRACT = 10,
+ D3DTOP_ADDSMOOTH = 11,
+ D3DTOP_BLENDDIFFUSEALPHA = 12,
+ D3DTOP_BLENDTEXTUREALPHA = 13,
+ D3DTOP_BLENDFACTORALPHA = 14,
+ D3DTOP_BLENDTEXTUREALPHAPM = 15,
+ D3DTOP_BLENDCURRENTALPHA = 16,
+ D3DTOP_PREMODULATE = 17,
+ D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
+ D3DTOP_MODULATECOLOR_ADDALPHA = 19,
+ D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
+ D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
+ D3DTOP_BUMPENVMAP = 22,
+ D3DTOP_BUMPENVMAPLUMINANCE = 23,
+ D3DTOP_DOTPRODUCT3 = 24,
+ D3DTOP_MULTIPLYADD = 25,
+ D3DTOP_LERP = 26,
+
+ D3DTOP_FORCE_DWORD = 0x7fffffff,
+} D3DTEXTUREOP;
+
+typedef enum _D3DTEXTURESTAGESTATETYPE {
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_COLORARG0 = 26,
+ D3DTSS_ALPHAARG0 = 27,
+ D3DTSS_RESULTARG = 28,
+ D3DTSS_CONSTANT = 32,
+
+ D3DTSS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURESTAGESTATETYPE;
+
+typedef enum _D3DTEXTURETRANSFORMFLAGS {
+ D3DTTFF_DISABLE = 0,
+ D3DTTFF_COUNT1 = 1,
+ D3DTTFF_COUNT2 = 2,
+ D3DTTFF_COUNT3 = 3,
+ D3DTTFF_COUNT4 = 4,
+ D3DTTFF_PROJECTED = 256,
+
+ D3DTTFF_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURETRANSFORMFLAGS;
+
+typedef enum _D3DTRANSFORMSTATETYPE {
+ D3DTS_VIEW = 2,
+ D3DTS_PROJECTION = 3,
+ D3DTS_TEXTURE0 = 16,
+ D3DTS_TEXTURE1 = 17,
+ D3DTS_TEXTURE2 = 18,
+ D3DTS_TEXTURE3 = 19,
+ D3DTS_TEXTURE4 = 20,
+ D3DTS_TEXTURE5 = 21,
+ D3DTS_TEXTURE6 = 22,
+ D3DTS_TEXTURE7 = 23,
+
+ D3DTS_FORCE_DWORD = 0x7fffffff
+} D3DTRANSFORMSTATETYPE;
+
+typedef enum _D3DVERTEXBLENDFLAGS {
+ D3DVBF_DISABLE = 0,
+ D3DVBF_1WEIGHTS = 1,
+ D3DVBF_2WEIGHTS = 2,
+ D3DVBF_3WEIGHTS = 3,
+ D3DVBF_TWEENING = 255,
+ D3DVBF_0WEIGHTS = 256
+} D3DVERTEXBLENDFLAGS;
+
+typedef enum _D3DZBUFFERTYPE {
+ D3DZB_FALSE = 0,
+ D3DZB_TRUE = 1,
+ D3DZB_USEW = 2,
+
+ D3DZB_FORCE_DWORD = 0x7fffffff
+} D3DZBUFFERTYPE;
+
+typedef enum _D3DSAMPLERSTATETYPE {
+ D3DSAMP_ADDRESSU = 1,
+ D3DSAMP_ADDRESSV = 2,
+ D3DSAMP_ADDRESSW = 3,
+ D3DSAMP_BORDERCOLOR = 4,
+ D3DSAMP_MAGFILTER = 5,
+ D3DSAMP_MINFILTER = 6,
+ D3DSAMP_MIPFILTER = 7,
+ D3DSAMP_MIPMAPLODBIAS = 8,
+ D3DSAMP_MAXMIPLEVEL = 9,
+ D3DSAMP_MAXANISOTROPY = 10,
+ D3DSAMP_SRGBTEXTURE = 11,
+ D3DSAMP_ELEMENTINDEX = 12,
+ D3DSAMP_DMAPOFFSET = 13,
+
+ D3DSAMP_FORCE_DWORD = 0x7fffffff,
+} D3DSAMPLERSTATETYPE;
+
+
+/*****************************************************************************
+ * Direct 3D v9 typedefs
+ */
+#ifndef D3DCOLOR_DEFINED
+typedef DWORD D3DCOLOR;
+#define D3DCOLOR_DEFINED
+#endif
+
+/*****************************************************************************
+ * Direct 3D v9 structures
+ */
+typedef struct _D3DADAPTER_IDENTIFIER9 {
+ char Driver[MAX_DEVICE_IDENTIFIER_STRING];
+ char Description[MAX_DEVICE_IDENTIFIER_STRING];
+ char DeviceName[32];
+ LARGE_INTEGER DriverVersion;
+
+ DWORD VendorId;
+ DWORD DeviceId;
+ DWORD SubSysId;
+ DWORD Revision;
+
+ GUID DeviceIdentifier;
+
+ DWORD WHQLLevel;
+} D3DADAPTER_IDENTIFIER9;
+
+typedef struct _D3DBOX {
+ UINT Left;
+ UINT Top;
+ UINT Right;
+ UINT Bottom;
+ UINT Front;
+ UINT Back;
+} D3DBOX;
+
+typedef struct _D3DCLIPSTATUS9 {
+ DWORD ClipUnion;
+ DWORD ClipIntersection;
+} D3DCLIPSTATUS9;
+
+#ifndef D3DCOLORVALUE_DEFINED
+typedef struct _D3DCOLORVALUE {
+ float r;
+ float g;
+ float b;
+ float a;
+} D3DCOLORVALUE;
+#define D3DCOLORVALUE_DEFINED
+#endif
+
+typedef struct _D3DDEVICE_CREATION_PARAMETERS {
+ UINT AdapterOrdinal;
+ D3DDEVTYPE DeviceType;
+ HWND hFocusWindow;
+ DWORD BehaviorFlags;
+} D3DDEVICE_CREATION_PARAMETERS;
+
+typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
+ float MaxBandwidthUtilized;
+ float FrontEndUploadMemoryUtilizedPercent;
+ float VertexRateUtilizedPercent;
+ float TriangleSetupRateUtilizedPercent;
+ float FillRateUtilizedPercent;
+} D3DDEVINFO_D3D9BANDWIDTHTIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
+ float TextureCacheHitRate;
+ float PostTransformVertexCacheHitRate;
+} D3DDEVINFO_D3D9CACHEUTILIZATION;
+
+typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
+ float WaitingForGPUToUseApplicationResourceTimePercent;
+ float WaitingForGPUToAcceptMoreCommandsTimePercent;
+ float WaitingForGPUToStayWithinLatencyTimePercent;
+ float WaitingForGPUExclusiveResourceTimePercent;
+ float WaitingForGPUOtherTimePercent;
+} D3DDEVINFO_D3D9INTERFACETIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
+ float VertexProcessingTimePercent;
+ float PixelProcessingTimePercent;
+ float OtherGPUProcessingTimePercent;
+ float GPUIdleTimePercent;
+} D3DDEVINFO_D3D9PIPELINETIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
+ float MemoryProcessingPercent;
+ float ComputationProcessingPercent;
+} D3DDEVINFO_D3D9STAGETIMINGS;
+
+
+/* Vertex cache optimization hints. */
+typedef struct D3DDEVINFO_VCACHE {
+ /* Must be a 4 char code FOURCC (e.g. CACH) */
+ DWORD Pattern;
+ /* 0 to get the longest strips, 1 vertex cache */
+ DWORD OptMethod;
+ /* Cache size to use (only valid if OptMethod==1) */
+ DWORD CacheSize;
+ /* internal for deciding when to restart strips, non user modifiable (only valid if OptMethod==1) */
+ DWORD MagicNumber;
+} D3DDEVINFO_VCACHE;
+
+typedef struct D3DRESOURCESTATS {
+ WINBOOL bThrashing;
+ DWORD ApproxBytesDownloaded;
+ DWORD NumEvicts;
+ DWORD NumVidCreates;
+ DWORD LastPri;
+ DWORD NumUsed;
+ DWORD NumUsedInVidMem;
+ DWORD WorkingSet;
+ DWORD WorkingSetBytes;
+ DWORD TotalManaged;
+ DWORD TotalBytes;
+} D3DRESOURCESTATS;
+
+typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
+ D3DRESOURCESTATS stats[D3DRTYPECOUNT];
+} D3DDEVINFO_D3DRESOURCEMANAGER;
+
+typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
+ DWORD NumRenderedTriangles;
+ DWORD NumExtraClippingTriangles;
+} D3DDEVINFO_D3DVERTEXSTATS;
+
+typedef struct _D3DDISPLAYMODE {
+ UINT Width;
+ UINT Height;
+ UINT RefreshRate;
+ D3DFORMAT Format;
+} D3DDISPLAYMODE;
+
+typedef struct _D3DGAMMARAMP {
+ WORD red [256];
+ WORD green[256];
+ WORD blue [256];
+} D3DGAMMARAMP;
+
+typedef struct _D3DINDEXBUFFER_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+} D3DINDEXBUFFER_DESC;
+
+#ifndef D3DVECTOR_DEFINED
+typedef struct _D3DVECTOR {
+ float x;
+ float y;
+ float z;
+} D3DVECTOR;
+#define D3DVECTOR_DEFINED
+#endif
+
+typedef struct _D3DLIGHT9 {
+ D3DLIGHTTYPE Type;
+ D3DCOLORVALUE Diffuse;
+ D3DCOLORVALUE Specular;
+ D3DCOLORVALUE Ambient;
+ D3DVECTOR Position;
+ D3DVECTOR Direction;
+ float Range;
+ float Falloff;
+ float Attenuation0;
+ float Attenuation1;
+ float Attenuation2;
+ float Theta;
+ float Phi;
+} D3DLIGHT9;
+
+typedef struct _D3DLINEPATTERN {
+ WORD wRepeatFactor;
+ WORD wLinePattern;
+} D3DLINEPATTERN;
+
+typedef struct _D3DLOCKED_BOX {
+ INT RowPitch;
+ INT SlicePitch;
+ void* pBits;
+} D3DLOCKED_BOX;
+
+typedef struct _D3DLOCKED_RECT {
+ INT Pitch;
+ void* pBits;
+} D3DLOCKED_RECT;
+
+typedef struct _D3DMATERIAL9 {
+ D3DCOLORVALUE Diffuse;
+ D3DCOLORVALUE Ambient;
+ D3DCOLORVALUE Specular;
+ D3DCOLORVALUE Emissive;
+ float Power;
+} D3DMATERIAL9;
+
+#ifndef D3DMATRIX_DEFINED
+typedef struct _D3DMATRIX {
+ union {
+ struct {
+ float _11, _12, _13, _14;
+ float _21, _22, _23, _24;
+ float _31, _32, _33, _34;
+ float _41, _42, _43, _44;
+ } DUMMYSTRUCTNAME;
+ float m[4][4];
+ } DUMMYUNIONNAME;
+} D3DMATRIX;
+#define D3DMATRIX_DEFINED
+#endif
+
+typedef struct _D3DPRESENT_PARAMETERS_ {
+ UINT BackBufferWidth;
+ UINT BackBufferHeight;
+ D3DFORMAT BackBufferFormat;
+ UINT BackBufferCount;
+
+ D3DMULTISAMPLE_TYPE MultiSampleType;
+ DWORD MultiSampleQuality;
+
+ D3DSWAPEFFECT SwapEffect;
+ HWND hDeviceWindow;
+ WINBOOL Windowed;
+ WINBOOL EnableAutoDepthStencil;
+ D3DFORMAT AutoDepthStencilFormat;
+ DWORD Flags;
+
+ UINT FullScreen_RefreshRateInHz;
+ UINT PresentationInterval;
+
+} D3DPRESENT_PARAMETERS;
+
+typedef struct _D3DRANGE {
+ UINT Offset;
+ UINT Size;
+} D3DRANGE;
+
+typedef struct _D3DRASTER_STATUS {
+ WINBOOL InVBlank;
+ UINT ScanLine;
+} D3DRASTER_STATUS;
+
+#ifndef D3DRECT_DEFINED
+typedef struct _D3DRECT {
+ LONG x1;
+ LONG y1;
+ LONG x2;
+ LONG y2;
+} D3DRECT;
+#define D3DRECT_DEFINED
+#endif
+
+typedef struct _D3DRECTPATCH_INFO {
+ UINT StartVertexOffsetWidth;
+ UINT StartVertexOffsetHeight;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ D3DBASISTYPE Basis;
+ D3DDEGREETYPE Degree;
+} D3DRECTPATCH_INFO;
+
+typedef struct _D3DSURFACE_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ D3DMULTISAMPLE_TYPE MultiSampleType;
+ DWORD MultiSampleQuality;
+ UINT Width;
+ UINT Height;
+} D3DSURFACE_DESC;
+
+typedef struct _D3DTRIPATCH_INFO {
+ UINT StartVertexOffset;
+ UINT NumVertices;
+ D3DBASISTYPE Basis;
+ D3DDEGREETYPE Degree;
+} D3DTRIPATCH_INFO;
+
+typedef struct _D3DVERTEXBUFFER_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+ UINT Size;
+ DWORD FVF;
+} D3DVERTEXBUFFER_DESC;
+
+typedef struct _D3DVIEWPORT9 {
+ DWORD X;
+ DWORD Y;
+ DWORD Width;
+ DWORD Height;
+ float MinZ;
+ float MaxZ;
+} D3DVIEWPORT9;
+
+typedef struct _D3DVOLUME_DESC {
+ D3DFORMAT Format;
+ D3DRESOURCETYPE Type;
+ DWORD Usage;
+ D3DPOOL Pool;
+
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+} D3DVOLUME_DESC;
+
+/* Parts added with d3d9ex */
+#if !defined(D3D_DISABLE_9EX)
+typedef enum D3DSCANLINEORDERING
+{
+ D3DSCANLINEORDERING_UNKNOWN,
+ D3DSCANLINEORDERING_PROGRESSIVE,
+ D3DSCANLINEORDERING_INTERLACED,
+} D3DSCANLINEORDERING;
+
+
+typedef struct D3DDISPLAYMODEFILTER
+{
+ UINT Size;
+ D3DFORMAT Format;
+ D3DSCANLINEORDERING ScanLineOrdering;
+} D3DDISPLAYMODEFILTER;
+
+typedef struct D3DDISPLAYMODEEX
+{
+ UINT Size;
+ UINT Width;
+ UINT Height;
+ UINT RefreshRate;
+ D3DFORMAT Format;
+ D3DSCANLINEORDERING ScanLineOrdering;
+} D3DDISPLAYMODEEX;
+
+typedef enum D3DDISPLAYROTATION
+{
+ D3DDISPLAYROTATION_IDENTITY = 1,
+ D3DDISPLAYROTATION_90,
+ D3DDISPLAYROTATION_180,
+ D3DDISPLAYROTATION_270
+} D3DDISPLAYROTATION;
+
+typedef struct _D3DMEMORYPRESSURE
+{
+ UINT64 BytesEvictedFromProcess;
+ UINT64 SizeOfInefficientAllocation;
+ DWORD LevelOfEfficiency;
+} D3DMEMORYPRESSURE;
+
+typedef enum _D3DCOMPOSERECTSOP{
+ D3DCOMPOSERECTS_COPY = 1,
+ D3DCOMPOSERECTS_OR,
+ D3DCOMPOSERECTS_AND,
+ D3DCOMPOSERECTS_NEG,
+ D3DCOMPOSERECTS_FORCE_DWORD = 0x7fffffff
+} D3DCOMPOSERECTSOP;
+
+typedef struct _D3DPRESENTSTATS
+{
+ UINT PresentCount;
+ UINT PresentRefreshCount;
+ UINT SyncRefreshCount;
+ LARGE_INTEGER SyncQPCTime;
+ LARGE_INTEGER SyncGPUTime;
+} D3DPRESENTSTATS;
+
+#endif /* D3D_DISABLE_9EX */
+
+typedef enum _D3DSHADER_COMPARISON
+{
+ D3DSPC_RESERVED0 = 0,
+ D3DSPC_GT,
+ D3DSPC_EQ,
+ D3DSPC_GE,
+ D3DSPC_LT,
+ D3DSPC_NE,
+ D3DSPC_LE,
+ D3DSPC_RESERVED1,
+} D3DSHADER_COMPARISON;
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif /* __WINE_D3D9TYPES_H */
diff --git a/d3dcaps.h b/d3dcaps.h
new file mode 100644
index 0000000..877513e
--- /dev/null
+++ b/d3dcaps.h
@@ -0,0 +1,439 @@
+/*
+ * Copyright (C) 2000 Peter Hunnisett
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3DCAPS_H
+#define __WINE_D3DCAPS_H
+
+#include <ddraw.h>
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+typedef struct _D3DTRANSFORMCAPS {
+ DWORD dwSize;
+ DWORD dwCaps;
+} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
+
+#define D3DTRANSFORMCAPS_CLIP __MSABI_LONG(0x00000001)
+
+typedef struct _D3DLIGHTINGCAPS {
+ DWORD dwSize;
+ DWORD dwCaps;
+ DWORD dwLightingModel;
+ DWORD dwNumLights;
+} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
+
+#define D3DLIGHTINGMODEL_RGB 0x00000001
+#define D3DLIGHTINGMODEL_MONO 0x00000002
+
+#define D3DLIGHTCAPS_POINT 0x00000001
+#define D3DLIGHTCAPS_SPOT 0x00000002
+#define D3DLIGHTCAPS_DIRECTIONAL 0x00000004
+#define D3DLIGHTCAPS_PARALLELPOINT 0x00000008
+#define D3DLIGHTCAPS_GLSPOT 0x00000010
+
+typedef struct _D3dPrimCaps {
+ DWORD dwSize;
+ DWORD dwMiscCaps;
+ DWORD dwRasterCaps;
+ DWORD dwZCmpCaps;
+ DWORD dwSrcBlendCaps;
+ DWORD dwDestBlendCaps;
+ DWORD dwAlphaCmpCaps;
+ DWORD dwShadeCaps;
+ DWORD dwTextureCaps;
+ DWORD dwTextureFilterCaps;
+ DWORD dwTextureBlendCaps;
+ DWORD dwTextureAddressCaps;
+ DWORD dwStippleWidth;
+ DWORD dwStippleHeight;
+} D3DPRIMCAPS, *LPD3DPRIMCAPS;
+
+#define D3DPMISCCAPS_MASKPLANES 0x00000001
+#define D3DPMISCCAPS_MASKZ 0x00000002
+#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
+#define D3DPMISCCAPS_CONFORMANT 0x00000008
+#define D3DPMISCCAPS_CULLNONE 0x00000010
+#define D3DPMISCCAPS_CULLCW 0x00000020
+#define D3DPMISCCAPS_CULLCCW 0x00000040
+
+#define D3DPRASTERCAPS_DITHER 0x00000001
+#define D3DPRASTERCAPS_ROP2 0x00000002
+#define D3DPRASTERCAPS_XOR 0x00000004
+#define D3DPRASTERCAPS_PAT 0x00000008
+#define D3DPRASTERCAPS_ZTEST 0x00000010
+#define D3DPRASTERCAPS_SUBPIXEL 0x00000020
+#define D3DPRASTERCAPS_SUBPIXELX 0x00000040
+#define D3DPRASTERCAPS_FOGVERTEX 0x00000080
+#define D3DPRASTERCAPS_FOGTABLE 0x00000100
+#define D3DPRASTERCAPS_STIPPLE 0x00000200
+#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400
+#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800
+#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
+#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
+#define D3DPRASTERCAPS_ZBIAS 0x00004000
+#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
+#define D3DPRASTERCAPS_FOGRANGE 0x00010000
+#define D3DPRASTERCAPS_ANISOTROPY 0x00020000
+#define D3DPRASTERCAPS_WBUFFER 0x00040000
+#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
+#define D3DPRASTERCAPS_WFOG 0x00100000
+#define D3DPRASTERCAPS_ZFOG 0x00200000
+
+#define D3DPCMPCAPS_NEVER 0x00000001
+#define D3DPCMPCAPS_LESS 0x00000002
+#define D3DPCMPCAPS_EQUAL 0x00000004
+#define D3DPCMPCAPS_LESSEQUAL 0x00000008
+#define D3DPCMPCAPS_GREATER 0x00000010
+#define D3DPCMPCAPS_NOTEQUAL 0x00000020
+#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
+#define D3DPCMPCAPS_ALWAYS 0x00000080
+
+#define D3DPBLENDCAPS_ZERO 0x00000001
+#define D3DPBLENDCAPS_ONE 0x00000002
+#define D3DPBLENDCAPS_SRCCOLOR 0x00000004
+#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008
+#define D3DPBLENDCAPS_SRCALPHA 0x00000010
+#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020
+#define D3DPBLENDCAPS_DESTALPHA 0x00000040
+#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080
+#define D3DPBLENDCAPS_DESTCOLOR 0x00000100
+#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200
+#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400
+#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
+#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
+
+#define D3DPSHADECAPS_COLORFLATMONO 0x00000001
+#define D3DPSHADECAPS_COLORFLATRGB 0x00000002
+#define D3DPSHADECAPS_COLORGOURAUDMONO 0x00000004
+#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
+#define D3DPSHADECAPS_COLORPHONGMONO 0x00000010
+#define D3DPSHADECAPS_COLORPHONGRGB 0x00000020
+
+#define D3DPSHADECAPS_SPECULARFLATMONO 0x00000040
+#define D3DPSHADECAPS_SPECULARFLATRGB 0x00000080
+#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
+#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
+#define D3DPSHADECAPS_SPECULARPHONGMONO 0x00000400
+#define D3DPSHADECAPS_SPECULARPHONGRGB 0x00000800
+
+#define D3DPSHADECAPS_ALPHAFLATBLEND 0x00001000
+#define D3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000
+#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
+#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
+#define D3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000
+#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000
+
+#define D3DPSHADECAPS_FOGFLAT 0x00040000
+#define D3DPSHADECAPS_FOGGOURAUD 0x00080000
+#define D3DPSHADECAPS_FOGPHONG 0x00100000
+
+#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001
+#define D3DPTEXTURECAPS_POW2 0x00000002
+#define D3DPTEXTURECAPS_ALPHA 0x00000004
+#define D3DPTEXTURECAPS_TRANSPARENCY 0x00000008
+#define D3DPTEXTURECAPS_BORDER 0x00000010
+#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020
+#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
+#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
+#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL __MSABI_LONG(0x00000100)
+/* yes actually 0x00000200 is unused - or at least unreleased */
+#define D3DPTEXTURECAPS_PROJECTED 0x00000400
+#define D3DPTEXTURECAPS_CUBEMAP 0x00000800
+#define D3DPTEXTURECAPS_COLORKEYBLEND 0x00001000
+
+#define D3DPTFILTERCAPS_NEAREST 0x00000001
+#define D3DPTFILTERCAPS_LINEAR 0x00000002
+#define D3DPTFILTERCAPS_MIPNEAREST 0x00000004
+#define D3DPTFILTERCAPS_MIPLINEAR 0x00000008
+#define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010
+#define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020
+/* yes - missing numbers */
+#define D3DPTFILTERCAPS_MINFPOINT 0x00000100
+#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200
+#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
+/* yes - missing numbers */
+#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000
+#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000
+/* yes - missing numbers */
+#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000
+#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000
+#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
+#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000
+#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000
+
+#define D3DPTBLENDCAPS_DECAL 0x00000001
+#define D3DPTBLENDCAPS_MODULATE 0x00000002
+#define D3DPTBLENDCAPS_DECALALPHA 0x00000004
+#define D3DPTBLENDCAPS_MODULATEALPHA 0x00000008
+#define D3DPTBLENDCAPS_DECALMASK 0x00000010
+#define D3DPTBLENDCAPS_MODULATEMASK 0x00000020
+#define D3DPTBLENDCAPS_COPY 0x00000040
+#define D3DPTBLENDCAPS_ADD 0x00000080
+
+#define D3DPTADDRESSCAPS_WRAP 0x00000001
+#define D3DPTADDRESSCAPS_MIRROR 0x00000002
+#define D3DPTADDRESSCAPS_CLAMP 0x00000004
+#define D3DPTADDRESSCAPS_BORDER 0x00000008
+#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
+
+
+typedef struct _D3DDeviceDesc {
+ DWORD dwSize;
+ DWORD dwFlags;
+ D3DCOLORMODEL dcmColorModel;
+ DWORD dwDevCaps;
+ D3DTRANSFORMCAPS dtcTransformCaps;
+ WINBOOL bClipping;
+ D3DLIGHTINGCAPS dlcLightingCaps;
+ D3DPRIMCAPS dpcLineCaps;
+ D3DPRIMCAPS dpcTriCaps;
+ DWORD dwDeviceRenderBitDepth;
+ DWORD dwDeviceZBufferBitDepth;
+ DWORD dwMaxBufferSize;
+ DWORD dwMaxVertexCount;
+
+ DWORD dwMinTextureWidth,dwMinTextureHeight;
+ DWORD dwMaxTextureWidth,dwMaxTextureHeight;
+ DWORD dwMinStippleWidth,dwMaxStippleWidth;
+ DWORD dwMinStippleHeight,dwMaxStippleHeight;
+
+ DWORD dwMaxTextureRepeat;
+ DWORD dwMaxTextureAspectRatio;
+ DWORD dwMaxAnisotropy;
+
+ D3DVALUE dvGuardBandLeft;
+ D3DVALUE dvGuardBandTop;
+ D3DVALUE dvGuardBandRight;
+ D3DVALUE dvGuardBandBottom;
+
+ D3DVALUE dvExtentsAdjust;
+ DWORD dwStencilCaps;
+
+ DWORD dwFVFCaps;
+ DWORD dwTextureOpCaps;
+ WORD wMaxTextureBlendStages;
+ WORD wMaxSimultaneousTextures;
+} D3DDEVICEDESC,*LPD3DDEVICEDESC;
+#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
+
+typedef struct _D3DDeviceDesc7 {
+ DWORD dwDevCaps;
+ D3DPRIMCAPS dpcLineCaps;
+ D3DPRIMCAPS dpcTriCaps;
+ DWORD dwDeviceRenderBitDepth;
+ DWORD dwDeviceZBufferBitDepth;
+
+ DWORD dwMinTextureWidth, dwMinTextureHeight;
+ DWORD dwMaxTextureWidth, dwMaxTextureHeight;
+
+ DWORD dwMaxTextureRepeat;
+ DWORD dwMaxTextureAspectRatio;
+ DWORD dwMaxAnisotropy;
+
+ D3DVALUE dvGuardBandLeft;
+ D3DVALUE dvGuardBandTop;
+ D3DVALUE dvGuardBandRight;
+ D3DVALUE dvGuardBandBottom;
+
+ D3DVALUE dvExtentsAdjust;
+ DWORD dwStencilCaps;
+ DWORD dwFVFCaps;
+ DWORD dwTextureOpCaps;
+ WORD wMaxTextureBlendStages;
+ WORD wMaxSimultaneousTextures;
+
+ DWORD dwMaxActiveLights;
+ D3DVALUE dvMaxVertexW;
+ GUID deviceGUID;
+
+ WORD wMaxUserClipPlanes;
+ WORD wMaxVertexBlendMatrices;
+
+ DWORD dwVertexProcessingCaps;
+
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ DWORD dwReserved3;
+ DWORD dwReserved4;
+} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
+#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
+
+#define D3DDD_COLORMODEL 0x00000001
+#define D3DDD_DEVCAPS 0x00000002
+#define D3DDD_TRANSFORMCAPS 0x00000004
+#define D3DDD_LIGHTINGCAPS 0x00000008
+#define D3DDD_BCLIPPING 0x00000010
+#define D3DDD_LINECAPS 0x00000020
+#define D3DDD_TRICAPS 0x00000040
+#define D3DDD_DEVICERENDERBITDEPTH 0x00000080
+#define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100
+#define D3DDD_MAXBUFFERSIZE 0x00000200
+#define D3DDD_MAXVERTEXCOUNT 0x00000400
+
+#define D3DDEVCAPS_FLOATTLVERTEX 0x00000001
+#define D3DDEVCAPS_SORTINCREASINGZ 0x00000002
+#define D3DDEVCAPS_SORTDECREASINGZ 0X00000004
+#define D3DDEVCAPS_SORTEXACT 0x00000008
+#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
+#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
+#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
+#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
+#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
+#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
+#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
+#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
+#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
+#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
+#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
+#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
+#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
+#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
+#define D3DDEVCAPS_HWRASTERIZATION 0x00080000
+
+#define D3DSTENCILCAPS_KEEP 0x00000001
+#define D3DSTENCILCAPS_ZERO 0x00000002
+#define D3DSTENCILCAPS_REPLACE 0x00000004
+#define D3DSTENCILCAPS_INCRSAT 0x00000008
+#define D3DSTENCILCAPS_DECRSAT 0x00000010
+#define D3DSTENCILCAPS_INVERT 0x00000020
+#define D3DSTENCILCAPS_INCR 0x00000040
+#define D3DSTENCILCAPS_DECR 0x00000080
+
+#define D3DTEXOPCAPS_DISABLE 0x00000001
+#define D3DTEXOPCAPS_SELECTARG1 0x00000002
+#define D3DTEXOPCAPS_SELECTARG2 0x00000004
+#define D3DTEXOPCAPS_MODULATE 0x00000008
+#define D3DTEXOPCAPS_MODULATE2X 0x00000010
+#define D3DTEXOPCAPS_MODULATE4X 0x00000020
+#define D3DTEXOPCAPS_ADD 0x00000040
+#define D3DTEXOPCAPS_ADDSIGNED 0x00000080
+#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100
+#define D3DTEXOPCAPS_SUBTRACT 0x00000200
+#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400
+#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
+#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
+#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
+#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
+#define D3DTEXOPCAPS_PREMODULATE 0x00010000
+#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
+#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
+#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
+#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
+#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000
+#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
+#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000
+
+#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000FFFF
+#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
+
+#define D3DVTXPCAPS_TEXGEN 0x00000001
+#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002
+#define D3DVTXPCAPS_VERTEXFOG 0x00000004
+#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
+#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
+#define D3DVTXPCAPS_LOCALVIEWER 0x00000020
+
+typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK)(GUID *guid, char *description, char *name,
+ D3DDEVICEDESC *hal_desc, D3DDEVICEDESC *hel_desc, void *ctx);
+typedef HRESULT (CALLBACK *LPD3DENUMDEVICESCALLBACK7)(char *description, char *name, D3DDEVICEDESC7 *desc, void *ctx);
+
+#define D3DFDS_COLORMODEL 0x00000001
+#define D3DFDS_GUID 0x00000002
+#define D3DFDS_HARDWARE 0x00000004
+#define D3DFDS_TRIANGLES 0x00000008
+#define D3DFDS_LINES 0x00000010
+#define D3DFDS_MISCCAPS 0x00000020
+#define D3DFDS_RASTERCAPS 0x00000040
+#define D3DFDS_ZCMPCAPS 0x00000080
+#define D3DFDS_ALPHACMPCAPS 0x00000100
+#define D3DFDS_SRCBLENDCAPS 0x00000200
+#define D3DFDS_DSTBLENDCAPS 0x00000400
+#define D3DFDS_SHADECAPS 0x00000800
+#define D3DFDS_TEXTURECAPS 0x00001000
+#define D3DFDS_TEXTUREFILTERCAPS 0x00002000
+#define D3DFDS_TEXTUREBLENDCAPS 0x00004000
+#define D3DFDS_TEXTUREADDRESSCAPS 0x00008000
+
+typedef struct _D3DFINDDEVICESEARCH {
+ DWORD dwSize;
+ DWORD dwFlags;
+ WINBOOL bHardware;
+ D3DCOLORMODEL dcmColorModel;
+ GUID guid;
+ DWORD dwCaps;
+ D3DPRIMCAPS dpcPrimCaps;
+} D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH;
+
+typedef struct _D3DFINDDEVICERESULT {
+ DWORD dwSize;
+ GUID guid;
+ D3DDEVICEDESC ddHwDesc;
+ D3DDEVICEDESC ddSwDesc;
+} D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT;
+
+typedef struct _D3DExecuteBufferDesc {
+ DWORD dwSize;
+ DWORD dwFlags;
+ DWORD dwCaps;
+ DWORD dwBufferSize;
+ void *lpData;
+} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
+
+#define D3DDEB_BUFSIZE 0x00000001
+#define D3DDEB_CAPS 0x00000002
+#define D3DDEB_LPDATA 0x00000004
+
+#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
+#define D3DDEBCAPS_VIDEOMEMORY 0x00000002
+#define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */
+
+typedef struct _D3DDEVINFO_TEXTUREMANAGER {
+ WINBOOL bThrashing;
+ DWORD dwApproxBytesDownloaded;
+ DWORD dwNumEvicts;
+ DWORD dwNumVidCreates;
+ DWORD dwNumTexturesUsed;
+ DWORD dwNumUsedTexInVid;
+ DWORD dwWorkingSet;
+ DWORD dwWorkingSetBytes;
+ DWORD dwTotalManaged;
+ DWORD dwTotalBytes;
+ DWORD dwLastPri;
+} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
+
+typedef struct _D3DDEVINFO_TEXTURING {
+ DWORD dwNumLoads;
+ DWORD dwApproxBytesLoaded;
+ DWORD dwNumPreLoads;
+ DWORD dwNumSet;
+ DWORD dwNumCreates;
+ DWORD dwNumDestroys;
+ DWORD dwNumSetPriorities;
+ DWORD dwNumSetLODs;
+ DWORD dwNumLocks;
+ DWORD dwNumGetDCs;
+} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif
diff --git a/d3dcommon.h b/d3dcommon.h
new file mode 100644
index 0000000..54eb968
--- /dev/null
+++ b/d3dcommon.h
@@ -0,0 +1,936 @@
+/*** Autogenerated by WIDL 7.7 from include/d3dcommon.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3dcommon_h__
+#define __d3dcommon_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D10Blob_FWD_DEFINED__
+#define __ID3D10Blob_FWD_DEFINED__
+typedef interface ID3D10Blob ID3D10Blob;
+#ifdef __cplusplus
+interface ID3D10Blob;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3DDestructionNotifier_FWD_DEFINED__
+#define __ID3DDestructionNotifier_FWD_DEFINED__
+typedef interface ID3DDestructionNotifier ID3DDestructionNotifier;
+#ifdef __cplusplus
+interface ID3DDestructionNotifier;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3DInclude_FWD_DEFINED__
+#define __ID3DInclude_FWD_DEFINED__
+typedef interface ID3DInclude ID3DInclude;
+#ifdef __cplusplus
+interface ID3DInclude;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _D3D_SHADER_MACRO {
+ const char *Name;
+ const char *Definition;
+} D3D_SHADER_MACRO;
+typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
+/*****************************************************************************
+ * ID3D10Blob interface
+ */
+#ifndef __ID3D10Blob_INTERFACE_DEFINED__
+#define __ID3D10Blob_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac,0x58, 0x0d,0x98,0x9c,0x3a,0x01,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8ba5fb08-5195-40e2-ac58-0d989c3a0102")
+ID3D10Blob : public IUnknown
+{
+ virtual void * STDMETHODCALLTYPE GetBufferPointer(
+ ) = 0;
+
+ virtual SIZE_T STDMETHODCALLTYPE GetBufferSize(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac,0x58, 0x0d,0x98,0x9c,0x3a,0x01,0x02)
+#endif
+#else
+typedef struct ID3D10BlobVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3D10Blob *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3D10Blob *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3D10Blob *This);
+
+ /*** ID3D10Blob methods ***/
+ void * (STDMETHODCALLTYPE *GetBufferPointer)(
+ ID3D10Blob *This);
+
+ SIZE_T (STDMETHODCALLTYPE *GetBufferSize)(
+ ID3D10Blob *This);
+
+ END_INTERFACE
+} ID3D10BlobVtbl;
+
+interface ID3D10Blob {
+ CONST_VTBL ID3D10BlobVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Blob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Blob_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Blob_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Blob methods ***/
+#define ID3D10Blob_GetBufferPointer(This) (This)->lpVtbl->GetBufferPointer(This)
+#define ID3D10Blob_GetBufferSize(This) (This)->lpVtbl->GetBufferSize(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Blob_QueryInterface(ID3D10Blob* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Blob_AddRef(ID3D10Blob* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Blob_Release(ID3D10Blob* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3D10Blob methods ***/
+static FORCEINLINE void * ID3D10Blob_GetBufferPointer(ID3D10Blob* This) {
+ return This->lpVtbl->GetBufferPointer(This);
+}
+static FORCEINLINE SIZE_T ID3D10Blob_GetBufferSize(ID3D10Blob* This) {
+ return This->lpVtbl->GetBufferSize(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3D10Blob_INTERFACE_DEFINED__ */
+
+typedef ID3D10Blob *LPD3D10BLOB;
+typedef ID3D10Blob ID3DBlob;
+typedef ID3DBlob *LPD3DBLOB;
+#define IID_ID3DBlob IID_ID3D10Blob
+typedef void (__stdcall *PFN_DESTRUCTION_CALLBACK)(void *data);
+/*****************************************************************************
+ * ID3DDestructionNotifier interface
+ */
+#ifndef __ID3DDestructionNotifier_INTERFACE_DEFINED__
+#define __ID3DDestructionNotifier_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3DDestructionNotifier, 0xa06eb39a, 0x50da, 0x425b, 0x8c,0x31, 0x4e,0xec,0xd6,0xc2,0x70,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a06eb39a-50da-425b-8c31-4eecd6c270f3")
+ID3DDestructionNotifier : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterDestructionCallback(
+ PFN_DESTRUCTION_CALLBACK callback_func,
+ void *data,
+ UINT *callback_id) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnregisterDestructionCallback(
+ UINT callback_id) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3DDestructionNotifier, 0xa06eb39a, 0x50da, 0x425b, 0x8c,0x31, 0x4e,0xec,0xd6,0xc2,0x70,0xf3)
+#endif
+#else
+typedef struct ID3DDestructionNotifierVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ID3DDestructionNotifier *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ID3DDestructionNotifier *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ID3DDestructionNotifier *This);
+
+ /*** ID3DDestructionNotifier methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterDestructionCallback)(
+ ID3DDestructionNotifier *This,
+ PFN_DESTRUCTION_CALLBACK callback_func,
+ void *data,
+ UINT *callback_id);
+
+ HRESULT (STDMETHODCALLTYPE *UnregisterDestructionCallback)(
+ ID3DDestructionNotifier *This,
+ UINT callback_id);
+
+ END_INTERFACE
+} ID3DDestructionNotifierVtbl;
+
+interface ID3DDestructionNotifier {
+ CONST_VTBL ID3DDestructionNotifierVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3DDestructionNotifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3DDestructionNotifier_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3DDestructionNotifier_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3DDestructionNotifier methods ***/
+#define ID3DDestructionNotifier_RegisterDestructionCallback(This,callback_func,data,callback_id) (This)->lpVtbl->RegisterDestructionCallback(This,callback_func,data,callback_id)
+#define ID3DDestructionNotifier_UnregisterDestructionCallback(This,callback_id) (This)->lpVtbl->UnregisterDestructionCallback(This,callback_id)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3DDestructionNotifier_QueryInterface(ID3DDestructionNotifier* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3DDestructionNotifier_AddRef(ID3DDestructionNotifier* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3DDestructionNotifier_Release(ID3DDestructionNotifier* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ID3DDestructionNotifier methods ***/
+static FORCEINLINE HRESULT ID3DDestructionNotifier_RegisterDestructionCallback(ID3DDestructionNotifier* This,PFN_DESTRUCTION_CALLBACK callback_func,void *data,UINT *callback_id) {
+ return This->lpVtbl->RegisterDestructionCallback(This,callback_func,data,callback_id);
+}
+static FORCEINLINE HRESULT ID3DDestructionNotifier_UnregisterDestructionCallback(ID3DDestructionNotifier* This,UINT callback_id) {
+ return This->lpVtbl->UnregisterDestructionCallback(This,callback_id);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3DDestructionNotifier_INTERFACE_DEFINED__ */
+
+typedef enum _D3D_INCLUDE_TYPE {
+ D3D_INCLUDE_LOCAL = 0,
+ D3D_INCLUDE_SYSTEM = 1,
+ D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL,
+ D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM,
+ D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
+} D3D_INCLUDE_TYPE;
+/*****************************************************************************
+ * ID3DInclude interface
+ */
+#ifndef __ID3DInclude_INTERFACE_DEFINED__
+#define __ID3DInclude_INTERFACE_DEFINED__
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface ID3DInclude
+{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE Open(
+ D3D_INCLUDE_TYPE include_type,
+ const char *filename,
+ const void *parent_data,
+ const void **data,
+ UINT *bytes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Close(
+ const void *data) = 0;
+
+ END_INTERFACE
+
+};
+#else
+typedef struct ID3DIncludeVtbl {
+ BEGIN_INTERFACE
+
+ /*** ID3DInclude methods ***/
+ HRESULT (STDMETHODCALLTYPE *Open)(
+ ID3DInclude *This,
+ D3D_INCLUDE_TYPE include_type,
+ const char *filename,
+ const void *parent_data,
+ const void **data,
+ UINT *bytes);
+
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ ID3DInclude *This,
+ const void *data);
+
+ END_INTERFACE
+} ID3DIncludeVtbl;
+
+interface ID3DInclude {
+ CONST_VTBL ID3DIncludeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** ID3DInclude methods ***/
+#define ID3DInclude_Open(This,include_type,filename,parent_data,data,bytes) (This)->lpVtbl->Open(This,include_type,filename,parent_data,data,bytes)
+#define ID3DInclude_Close(This,data) (This)->lpVtbl->Close(This,data)
+#else
+/*** ID3DInclude methods ***/
+static FORCEINLINE HRESULT ID3DInclude_Open(ID3DInclude* This,D3D_INCLUDE_TYPE include_type,const char *filename,const void *parent_data,const void **data,UINT *bytes) {
+ return This->lpVtbl->Open(This,include_type,filename,parent_data,data,bytes);
+}
+static FORCEINLINE HRESULT ID3DInclude_Close(ID3DInclude* This,const void *data) {
+ return This->lpVtbl->Close(This,data);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ID3DInclude_INTERFACE_DEFINED__ */
+
+typedef ID3DInclude *LPD3DINCLUDE;
+typedef enum D3D_DRIVER_TYPE {
+ D3D_DRIVER_TYPE_UNKNOWN = 0,
+ D3D_DRIVER_TYPE_HARDWARE = 1,
+ D3D_DRIVER_TYPE_REFERENCE = 2,
+ D3D_DRIVER_TYPE_NULL = 3,
+ D3D_DRIVER_TYPE_SOFTWARE = 4,
+ D3D_DRIVER_TYPE_WARP = 5
+} D3D_DRIVER_TYPE;
+typedef enum D3D_FEATURE_LEVEL {
+ D3D_FEATURE_LEVEL_9_1 = 0x9100,
+ D3D_FEATURE_LEVEL_9_2 = 0x9200,
+ D3D_FEATURE_LEVEL_9_3 = 0x9300,
+ D3D_FEATURE_LEVEL_10_0 = 0xa000,
+ D3D_FEATURE_LEVEL_10_1 = 0xa100,
+ D3D_FEATURE_LEVEL_11_0 = 0xb000,
+ D3D_FEATURE_LEVEL_11_1 = 0xb100,
+ D3D_FEATURE_LEVEL_12_0 = 0xc000,
+ D3D_FEATURE_LEVEL_12_1 = 0xc100
+} D3D_FEATURE_LEVEL;
+#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048
+#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096
+#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048
+#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096
+#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512
+#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096
+#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256
+#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2
+#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535
+#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575
+#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1
+#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4
+#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128
+#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048
+#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192
+typedef enum _D3D_SHADER_VARIABLE_CLASS {
+ D3D_SVC_SCALAR = 0,
+ D3D_SVC_VECTOR = 1,
+ D3D_SVC_MATRIX_ROWS = 2,
+ D3D_SVC_MATRIX_COLUMNS = 3,
+ D3D_SVC_OBJECT = 4,
+ D3D_SVC_STRUCT = 5,
+ D3D_SVC_INTERFACE_CLASS = 6,
+ D3D_SVC_INTERFACE_POINTER = 7,
+ D3D10_SVC_SCALAR = 0,
+ D3D10_SVC_VECTOR = 1,
+ D3D10_SVC_MATRIX_ROWS = 2,
+ D3D10_SVC_MATRIX_COLUMNS = 3,
+ D3D10_SVC_OBJECT = 4,
+ D3D10_SVC_STRUCT = 5,
+ D3D11_SVC_INTERFACE_CLASS = 6,
+ D3D11_SVC_INTERFACE_POINTER = 7,
+ D3D_SVC_FORCE_DWORD = 0x7fffffff
+} D3D_SHADER_VARIABLE_CLASS;
+typedef enum _D3D_SHADER_VARIABLE_FLAGS {
+ D3D_SVF_USERPACKED = 0x1,
+ D3D_SVF_USED = 0x2,
+ D3D_SVF_INTERFACE_POINTER = 0x4,
+ D3D_SVF_INTERFACE_PARAMETER = 0x8,
+ D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED,
+ D3D10_SVF_USED = D3D_SVF_USED,
+ D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER,
+ D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER,
+ D3D_SVF_FORCE_DWORD = 0x7fffffff
+} D3D_SHADER_VARIABLE_FLAGS;
+typedef enum _D3D_SHADER_VARIABLE_TYPE {
+ D3D_SVT_VOID = 0,
+ D3D_SVT_BOOL = 1,
+ D3D_SVT_INT = 2,
+ D3D_SVT_FLOAT = 3,
+ D3D_SVT_STRING = 4,
+ D3D_SVT_TEXTURE = 5,
+ D3D_SVT_TEXTURE1D = 6,
+ D3D_SVT_TEXTURE2D = 7,
+ D3D_SVT_TEXTURE3D = 8,
+ D3D_SVT_TEXTURECUBE = 9,
+ D3D_SVT_SAMPLER = 10,
+ D3D_SVT_SAMPLER1D = 11,
+ D3D_SVT_SAMPLER2D = 12,
+ D3D_SVT_SAMPLER3D = 13,
+ D3D_SVT_SAMPLERCUBE = 14,
+ D3D_SVT_PIXELSHADER = 15,
+ D3D_SVT_VERTEXSHADER = 16,
+ D3D_SVT_PIXELFRAGMENT = 17,
+ D3D_SVT_VERTEXFRAGMENT = 18,
+ D3D_SVT_UINT = 19,
+ D3D_SVT_UINT8 = 20,
+ D3D_SVT_GEOMETRYSHADER = 21,
+ D3D_SVT_RASTERIZER = 22,
+ D3D_SVT_DEPTHSTENCIL = 23,
+ D3D_SVT_BLEND = 24,
+ D3D_SVT_BUFFER = 25,
+ D3D_SVT_CBUFFER = 26,
+ D3D_SVT_TBUFFER = 27,
+ D3D_SVT_TEXTURE1DARRAY = 28,
+ D3D_SVT_TEXTURE2DARRAY = 29,
+ D3D_SVT_RENDERTARGETVIEW = 30,
+ D3D_SVT_DEPTHSTENCILVIEW = 31,
+ D3D_SVT_TEXTURE2DMS = 32,
+ D3D_SVT_TEXTURE2DMSARRAY = 33,
+ D3D_SVT_TEXTURECUBEARRAY = 34,
+ D3D_SVT_HULLSHADER = 35,
+ D3D_SVT_DOMAINSHADER = 36,
+ D3D_SVT_INTERFACE_POINTER = 37,
+ D3D_SVT_COMPUTESHADER = 38,
+ D3D_SVT_DOUBLE = 39,
+ D3D_SVT_RWTEXTURE1D = 40,
+ D3D_SVT_RWTEXTURE1DARRAY = 41,
+ D3D_SVT_RWTEXTURE2D = 42,
+ D3D_SVT_RWTEXTURE2DARRAY = 43,
+ D3D_SVT_RWTEXTURE3D = 44,
+ D3D_SVT_RWBUFFER = 45,
+ D3D_SVT_BYTEADDRESS_BUFFER = 46,
+ D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
+ D3D_SVT_STRUCTURED_BUFFER = 48,
+ D3D_SVT_RWSTRUCTURED_BUFFER = 49,
+ D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
+ D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
+ D3D_SVT_MIN8FLOAT = 52,
+ D3D_SVT_MIN10FLOAT = 53,
+ D3D_SVT_MIN16FLOAT = 54,
+ D3D_SVT_MIN12INT = 55,
+ D3D_SVT_MIN16INT = 56,
+ D3D_SVT_MIN16UINT = 57,
+ D3D10_SVT_VOID = 0,
+ D3D10_SVT_BOOL = 1,
+ D3D10_SVT_INT = 2,
+ D3D10_SVT_FLOAT = 3,
+ D3D10_SVT_STRING = 4,
+ D3D10_SVT_TEXTURE = 5,
+ D3D10_SVT_TEXTURE1D = 6,
+ D3D10_SVT_TEXTURE2D = 7,
+ D3D10_SVT_TEXTURE3D = 8,
+ D3D10_SVT_TEXTURECUBE = 9,
+ D3D10_SVT_SAMPLER = 10,
+ D3D10_SVT_SAMPLER1D = 11,
+ D3D10_SVT_SAMPLER2D = 12,
+ D3D10_SVT_SAMPLER3D = 13,
+ D3D10_SVT_SAMPLERCUBE = 14,
+ D3D10_SVT_PIXELSHADER = 15,
+ D3D10_SVT_VERTEXSHADER = 16,
+ D3D10_SVT_PIXELFRAGMENT = 17,
+ D3D10_SVT_VERTEXFRAGMENT = 18,
+ D3D10_SVT_UINT = 19,
+ D3D10_SVT_UINT8 = 20,
+ D3D10_SVT_GEOMETRYSHADER = 21,
+ D3D10_SVT_RASTERIZER = 22,
+ D3D10_SVT_DEPTHSTENCIL = 23,
+ D3D10_SVT_BLEND = 24,
+ D3D10_SVT_BUFFER = 25,
+ D3D10_SVT_CBUFFER = 26,
+ D3D10_SVT_TBUFFER = 27,
+ D3D10_SVT_TEXTURE1DARRAY = 28,
+ D3D10_SVT_TEXTURE2DARRAY = 29,
+ D3D10_SVT_RENDERTARGETVIEW = 30,
+ D3D10_SVT_DEPTHSTENCILVIEW = 31,
+ D3D10_SVT_TEXTURE2DMS = 32,
+ D3D10_SVT_TEXTURE2DMSARRAY = 33,
+ D3D10_SVT_TEXTURECUBEARRAY = 34,
+ D3D11_SVT_HULLSHADER = 35,
+ D3D11_SVT_DOMAINSHADER = 36,
+ D3D11_SVT_INTERFACE_POINTER = 37,
+ D3D11_SVT_COMPUTESHADER = 38,
+ D3D11_SVT_DOUBLE = 39,
+ D3D11_SVT_RWTEXTURE1D = 40,
+ D3D11_SVT_RWTEXTURE1DARRAY = 41,
+ D3D11_SVT_RWTEXTURE2D = 42,
+ D3D11_SVT_RWTEXTURE2DARRAY = 43,
+ D3D11_SVT_RWTEXTURE3D = 44,
+ D3D11_SVT_RWBUFFER = 45,
+ D3D11_SVT_BYTEADDRESS_BUFFER = 46,
+ D3D11_SVT_RWBYTEADDRESS_BUFFER = 47,
+ D3D11_SVT_STRUCTURED_BUFFER = 48,
+ D3D11_SVT_RWSTRUCTURED_BUFFER = 49,
+ D3D11_SVT_APPEND_STRUCTURED_BUFFER = 50,
+ D3D11_SVT_CONSUME_STRUCTURED_BUFFER = 51,
+ D3D_SVT_FORCE_DWORD = 0x7fffffff
+} D3D_SHADER_VARIABLE_TYPE;
+typedef enum _D3D_SHADER_INPUT_FLAGS {
+ D3D_SIF_USERPACKED = 0x1,
+ D3D_SIF_COMPARISON_SAMPLER = 0x2,
+ D3D_SIF_TEXTURE_COMPONENT_0 = 0x4,
+ D3D_SIF_TEXTURE_COMPONENT_1 = 0x8,
+ D3D_SIF_TEXTURE_COMPONENTS = 0xc,
+ D3D_SIF_UNUSED = 0x10,
+ D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED,
+ D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER,
+ D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0,
+ D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1,
+ D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS,
+ D3D_SIF_FORCE_DWORD = 0x7fffffff
+} D3D_SHADER_INPUT_FLAGS;
+typedef enum D3D_PRIMITIVE {
+ D3D_PRIMITIVE_UNDEFINED = 0,
+ D3D_PRIMITIVE_POINT = 1,
+ D3D_PRIMITIVE_LINE = 2,
+ D3D_PRIMITIVE_TRIANGLE = 3,
+ D3D_PRIMITIVE_LINE_ADJ = 6,
+ D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
+ D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
+ D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
+ D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
+ D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
+ D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
+ D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
+ D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
+ D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
+ D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
+ D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
+ D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
+ D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
+ D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
+ D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
+ D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
+ D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
+ D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
+ D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
+ D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
+ D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
+ D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
+ D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
+ D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
+ D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
+ D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
+ D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
+ D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
+ D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
+ D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
+ D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
+ D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
+ D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
+ D3D10_PRIMITIVE_UNDEFINED = 0,
+ D3D10_PRIMITIVE_POINT = 1,
+ D3D10_PRIMITIVE_LINE = 2,
+ D3D10_PRIMITIVE_TRIANGLE = 3,
+ D3D10_PRIMITIVE_LINE_ADJ = 6,
+ D3D10_PRIMITIVE_TRIANGLE_ADJ = 7,
+ D3D11_PRIMITIVE_UNDEFINED = 0,
+ D3D11_PRIMITIVE_POINT = 1,
+ D3D11_PRIMITIVE_LINE = 2,
+ D3D11_PRIMITIVE_TRIANGLE = 3,
+ D3D11_PRIMITIVE_LINE_ADJ = 6,
+ D3D11_PRIMITIVE_TRIANGLE_ADJ = 7,
+ D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
+ D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
+ D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
+ D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
+ D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
+ D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
+ D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
+ D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
+ D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
+ D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
+ D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
+ D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
+ D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
+ D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
+ D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
+ D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
+ D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
+ D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
+ D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
+ D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
+ D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
+ D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
+ D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
+ D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
+ D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
+ D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
+ D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
+ D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
+ D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
+ D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
+ D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
+ D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = 39
+} D3D_PRIMITIVE;
+typedef enum D3D_PRIMITIVE_TOPOLOGY {
+ D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
+ D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
+ D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
+ D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
+ D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
+ D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
+ D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
+ D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
+ D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
+ D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
+ D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
+ D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
+ D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
+ D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
+ D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
+ D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
+ D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
+ D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
+ D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
+ D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
+ D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
+ D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
+ D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
+ D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
+ D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
+ D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
+ D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
+ D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
+ D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
+ D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
+ D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
+ D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
+ D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
+ D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
+ D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
+ D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
+ D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
+ D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
+ D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
+ D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
+ D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
+ D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
+ D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
+ D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
+ D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2,
+ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
+ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
+ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
+ D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
+ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
+ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
+ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
+ D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
+ D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
+ D3D11_PRIMITIVE_TOPOLOGY_LINELIST = 2,
+ D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
+ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
+ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
+ D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
+ D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
+ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
+ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
+ D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
+ D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
+ D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
+ D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
+ D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
+ D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
+ D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
+ D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
+ D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
+ D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
+ D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
+ D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
+ D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
+ D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
+ D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
+ D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
+ D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
+ D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
+ D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
+ D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
+ D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
+ D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
+ D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
+ D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
+ D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
+ D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
+ D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
+ D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
+ D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
+ D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
+ D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
+ D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64
+} D3D_PRIMITIVE_TOPOLOGY;
+typedef enum D3D_TESSELLATOR_DOMAIN {
+ D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
+ D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
+ D3D_TESSELLATOR_DOMAIN_TRI = 2,
+ D3D_TESSELLATOR_DOMAIN_QUAD = 3,
+ D3D11_TESSELLATOR_DOMAIN_UNDEFINED = 0,
+ D3D11_TESSELLATOR_DOMAIN_ISOLINE = 1,
+ D3D11_TESSELLATOR_DOMAIN_TRI = 2,
+ D3D11_TESSELLATOR_DOMAIN_QUAD = 3
+} D3D_TESSELLATOR_DOMAIN;
+typedef enum D3D_TESSELLATOR_PARTITIONING {
+ D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
+ D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
+ D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
+ D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
+ D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
+ D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
+ D3D11_TESSELLATOR_PARTITIONING_INTEGER = 1,
+ D3D11_TESSELLATOR_PARTITIONING_POW2 = 2,
+ D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
+ D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4
+} D3D_TESSELLATOR_PARTITIONING;
+typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE {
+ D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
+ D3D_TESSELLATOR_OUTPUT_POINT = 1,
+ D3D_TESSELLATOR_OUTPUT_LINE = 2,
+ D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
+ D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
+ D3D11_TESSELLATOR_OUTPUT_UNDEFINED = 0,
+ D3D11_TESSELLATOR_OUTPUT_POINT = 1,
+ D3D11_TESSELLATOR_OUTPUT_LINE = 2,
+ D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
+ D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4
+} D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
+typedef enum D3D_MIN_PRECISION {
+ D3D_MIN_PRECISION_DEFAULT = 0,
+ D3D_MIN_PRECISION_FLOAT_16 = 1,
+ D3D_MIN_PRECISION_FLOAT_2_8 = 2,
+ D3D_MIN_PRECISION_RESERVED = 3,
+ D3D_MIN_PRECISION_SINT_16 = 4,
+ D3D_MIN_PRECISION_UINT_16 = 5,
+ D3D_MIN_PRECISION_ANY_16 = 0xf0,
+ D3D_MIN_PRECISION_ANY_10 = 0xf1
+} D3D_MIN_PRECISION;
+typedef enum D3D_CBUFFER_TYPE {
+ D3D_CT_CBUFFER = 0,
+ D3D_CT_TBUFFER = 1,
+ D3D_CT_INTERFACE_POINTERS = 2,
+ D3D_CT_RESOURCE_BIND_INFO = 3,
+ D3D10_CT_CBUFFER = 0,
+ D3D10_CT_TBUFFER = 1,
+ D3D11_CT_CBUFFER = 0,
+ D3D11_CT_TBUFFER = 1,
+ D3D11_CT_INTERFACE_POINTERS = 2,
+ D3D11_CT_RESOURCE_BIND_INFO = 3
+} D3D_CBUFFER_TYPE;
+typedef enum D3D_SRV_DIMENSION {
+ D3D_SRV_DIMENSION_UNKNOWN = 0,
+ D3D_SRV_DIMENSION_BUFFER = 1,
+ D3D_SRV_DIMENSION_TEXTURE1D = 2,
+ D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D_SRV_DIMENSION_TEXTURE2D = 4,
+ D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
+ D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D_SRV_DIMENSION_TEXTURE3D = 8,
+ D3D_SRV_DIMENSION_TEXTURECUBE = 9,
+ D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
+ D3D_SRV_DIMENSION_BUFFEREX = 11,
+ D3D10_SRV_DIMENSION_UNKNOWN = 0,
+ D3D10_SRV_DIMENSION_BUFFER = 1,
+ D3D10_SRV_DIMENSION_TEXTURE1D = 2,
+ D3D10_SRV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D10_SRV_DIMENSION_TEXTURE2D = 4,
+ D3D10_SRV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D10_SRV_DIMENSION_TEXTURE2DMS = 6,
+ D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D10_SRV_DIMENSION_TEXTURE3D = 8,
+ D3D10_SRV_DIMENSION_TEXTURECUBE = 9,
+ D3D10_1_SRV_DIMENSION_UNKNOWN = 0,
+ D3D10_1_SRV_DIMENSION_BUFFER = 1,
+ D3D10_1_SRV_DIMENSION_TEXTURE1D = 2,
+ D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D10_1_SRV_DIMENSION_TEXTURE2D = 4,
+ D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D10_1_SRV_DIMENSION_TEXTURE2DMS = 6,
+ D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D10_1_SRV_DIMENSION_TEXTURE3D = 8,
+ D3D10_1_SRV_DIMENSION_TEXTURECUBE = 9,
+ D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
+ D3D11_SRV_DIMENSION_UNKNOWN = 0,
+ D3D11_SRV_DIMENSION_BUFFER = 1,
+ D3D11_SRV_DIMENSION_TEXTURE1D = 2,
+ D3D11_SRV_DIMENSION_TEXTURE1DARRAY = 3,
+ D3D11_SRV_DIMENSION_TEXTURE2D = 4,
+ D3D11_SRV_DIMENSION_TEXTURE2DARRAY = 5,
+ D3D11_SRV_DIMENSION_TEXTURE2DMS = 6,
+ D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
+ D3D11_SRV_DIMENSION_TEXTURE3D = 8,
+ D3D11_SRV_DIMENSION_TEXTURECUBE = 9,
+ D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
+ D3D11_SRV_DIMENSION_BUFFEREX = 11
+} D3D_SRV_DIMENSION;
+typedef enum D3D_REGISTER_COMPONENT_TYPE {
+ D3D_REGISTER_COMPONENT_UNKNOWN = 0,
+ D3D_REGISTER_COMPONENT_UINT32 = 1,
+ D3D_REGISTER_COMPONENT_SINT32 = 2,
+ D3D_REGISTER_COMPONENT_FLOAT32 = 3,
+ D3D10_REGISTER_COMPONENT_UNKNOWN = 0,
+ D3D10_REGISTER_COMPONENT_UINT32 = 1,
+ D3D10_REGISTER_COMPONENT_SINT32 = 2,
+ D3D10_REGISTER_COMPONENT_FLOAT32 = 3
+} D3D_REGISTER_COMPONENT_TYPE;
+typedef enum D3D_RESOURCE_RETURN_TYPE {
+ D3D_RETURN_TYPE_UNORM = 1,
+ D3D_RETURN_TYPE_SNORM = 2,
+ D3D_RETURN_TYPE_SINT = 3,
+ D3D_RETURN_TYPE_UINT = 4,
+ D3D_RETURN_TYPE_FLOAT = 5,
+ D3D_RETURN_TYPE_MIXED = 6,
+ D3D_RETURN_TYPE_DOUBLE = 7,
+ D3D_RETURN_TYPE_CONTINUED = 8,
+ D3D10_RETURN_TYPE_UNORM = 1,
+ D3D10_RETURN_TYPE_SNORM = 2,
+ D3D10_RETURN_TYPE_SINT = 3,
+ D3D10_RETURN_TYPE_UINT = 4,
+ D3D10_RETURN_TYPE_FLOAT = 5,
+ D3D10_RETURN_TYPE_MIXED = 6,
+ D3D11_RETURN_TYPE_UNORM = 1,
+ D3D11_RETURN_TYPE_SNORM = 2,
+ D3D11_RETURN_TYPE_SINT = 3,
+ D3D11_RETURN_TYPE_UINT = 4,
+ D3D11_RETURN_TYPE_FLOAT = 5,
+ D3D11_RETURN_TYPE_MIXED = 6,
+ D3D11_RETURN_TYPE_DOUBLE = 7,
+ D3D11_RETURN_TYPE_CONTINUED = 8
+} D3D_RESOURCE_RETURN_TYPE;
+typedef enum D3D_NAME {
+ D3D_NAME_UNDEFINED = 0,
+ D3D_NAME_POSITION = 1,
+ D3D_NAME_CLIP_DISTANCE = 2,
+ D3D_NAME_CULL_DISTANCE = 3,
+ D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
+ D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
+ D3D_NAME_VERTEX_ID = 6,
+ D3D_NAME_PRIMITIVE_ID = 7,
+ D3D_NAME_INSTANCE_ID = 8,
+ D3D_NAME_IS_FRONT_FACE = 9,
+ D3D_NAME_SAMPLE_INDEX = 10,
+ D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
+ D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
+ D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
+ D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
+ D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
+ D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
+ D3D_NAME_BARYCENTRICS = 23,
+ D3D_NAME_SHADINGRATE = 24,
+ D3D_NAME_CULLPRIMITIVE = 25,
+ D3D_NAME_TARGET = 64,
+ D3D_NAME_DEPTH = 65,
+ D3D_NAME_COVERAGE = 66,
+ D3D_NAME_DEPTH_GREATER_EQUAL = 67,
+ D3D_NAME_DEPTH_LESS_EQUAL = 68,
+ D3D10_NAME_UNDEFINED = 0,
+ D3D10_NAME_POSITION = 1,
+ D3D10_NAME_CLIP_DISTANCE = 2,
+ D3D10_NAME_CULL_DISTANCE = 3,
+ D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
+ D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5,
+ D3D10_NAME_VERTEX_ID = 6,
+ D3D10_NAME_PRIMITIVE_ID = 7,
+ D3D10_NAME_INSTANCE_ID = 8,
+ D3D10_NAME_IS_FRONT_FACE = 9,
+ D3D10_NAME_SAMPLE_INDEX = 10,
+ D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
+ D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
+ D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
+ D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
+ D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
+ D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
+ D3D10_NAME_TARGET = 64,
+ D3D10_NAME_DEPTH = 65,
+ D3D10_NAME_COVERAGE = 66,
+ D3D11_NAME_DEPTH_GREATER_EQUAL = 67,
+ D3D11_NAME_DEPTH_LESS_EQUAL = 68
+} D3D_NAME;
+typedef enum _D3D_SHADER_INPUT_TYPE {
+ D3D_SIT_CBUFFER = 0,
+ D3D_SIT_TBUFFER = 1,
+ D3D_SIT_TEXTURE = 2,
+ D3D_SIT_SAMPLER = 3,
+ D3D_SIT_UAV_RWTYPED = 4,
+ D3D_SIT_STRUCTURED = 5,
+ D3D_SIT_UAV_RWSTRUCTURED = 6,
+ D3D_SIT_BYTEADDRESS = 7,
+ D3D_SIT_UAV_RWBYTEADDRESS = 8,
+ D3D_SIT_UAV_APPEND_STRUCTURED = 9,
+ D3D_SIT_UAV_CONSUME_STRUCTURED = 10,
+ D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = 11,
+ D3D_SIT_RTACCELERATIONSTRUCTURE = 12,
+ D3D_SIT_UAV_FEEDBACKTEXTURE = 13,
+ D3D10_SIT_CBUFFER = 0,
+ D3D10_SIT_TBUFFER = 1,
+ D3D10_SIT_TEXTURE = 2,
+ D3D10_SIT_SAMPLER = 3,
+ D3D11_SIT_UAV_RWTYPED = 4,
+ D3D11_SIT_STRUCTURED = 5,
+ D3D11_SIT_UAV_RWSTRUCTURED = 6,
+ D3D11_SIT_BYTEADDRESS = 7,
+ D3D11_SIT_UAV_RWBYTEADDRESS = 8,
+ D3D11_SIT_UAV_APPEND_STRUCTURED = 9,
+ D3D11_SIT_UAV_CONSUME_STRUCTURED = 10,
+ D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = 11
+} D3D_SHADER_INPUT_TYPE;
+typedef enum _D3D_SHADER_CBUFFER_FLAGS {
+ D3D_CBF_USERPACKED = 0x1,
+ D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED,
+ D3D_CBF_FORCE_DWORD = 0x7fffffff
+} D3D_SHADER_CBUFFER_FLAGS;
+typedef enum _D3D_PARAMETER_FLAGS {
+ D3D_PF_NONE = 0,
+ D3D_PF_IN = 1,
+ D3D_PF_OUT = 2,
+ D3D_PF_FORCE_DWORD = 0x7fffffff
+} D3D_PARAMETER_FLAGS;
+typedef enum _D3D_INTERPOLATION_MODE {
+ D3D_INTERPOLATION_UNDEFINED = 0,
+ D3D_INTERPOLATION_CONSTANT = 1,
+ D3D_INTERPOLATION_LINEAR = 2,
+ D3D_INTERPOLATION_LINEAR_CENTROID = 3,
+ D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
+ D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
+ D3D_INTERPOLATION_LINEAR_SAMPLE = 6,
+ D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7
+} D3D_INTERPOLATION_MODE;
+DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3dcommon_h__ */
diff --git a/d3dcompiler.h b/d3dcompiler.h
new file mode 100644
index 0000000..bdd718a
--- /dev/null
+++ b/d3dcompiler.h
@@ -0,0 +1,163 @@
+#include <_mingw_unicode.h>
+/*
+ * Copyright 2010 Matteo Bruni for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DCOMPILER_H__
+#define __D3DCOMPILER_H__
+
+#include "d3d11shader.h"
+#include "d3d12shader.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define D3DCOMPILER_DLL_W L"d3dcompiler_47.dll"
+#else
+static const WCHAR D3DCOMPILER_DLL_W[] = {'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0};
+#endif
+
+#define D3DCOMPILER_DLL_A "d3dcompiler_47.dll"
+#define D3DCOMPILER_DLL __MINGW_NAME_AW(D3DCOMPILER_DLL_)
+
+#ifndef D3D_COMPILER_VERSION
+#define D3D_COMPILER_VERSION 47
+#endif
+
+#define D3DCOMPILE_DEBUG 0x00000001
+#define D3DCOMPILE_SKIP_VALIDATION 0x00000002
+#define D3DCOMPILE_SKIP_OPTIMIZATION 0x00000004
+#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR 0x00000008
+#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR 0x00000010
+#define D3DCOMPILE_PARTIAL_PRECISION 0x00000020
+#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT 0x00000040
+#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT 0x00000080
+#define D3DCOMPILE_NO_PRESHADER 0x00000100
+#define D3DCOMPILE_AVOID_FLOW_CONTROL 0x00000200
+#define D3DCOMPILE_PREFER_FLOW_CONTROL 0x00000400
+#define D3DCOMPILE_ENABLE_STRICTNESS 0x00000800
+#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY 0x00001000
+#define D3DCOMPILE_IEEE_STRICTNESS 0x00002000
+#define D3DCOMPILE_OPTIMIZATION_LEVEL0 0x00004000
+#define D3DCOMPILE_OPTIMIZATION_LEVEL1 0x00000000
+#define D3DCOMPILE_OPTIMIZATION_LEVEL2 0x0000c000
+#define D3DCOMPILE_OPTIMIZATION_LEVEL3 0x00008000
+#define D3DCOMPILE_RESERVED16 0x00010000
+#define D3DCOMPILE_RESERVED17 0x00020000
+#define D3DCOMPILE_WARNINGS_ARE_ERRORS 0x00040000
+#define D3DCOMPILE_RESOURCES_MAY_ALIAS 0x00080000
+#define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES 0x00100000
+#define D3DCOMPILE_ALL_RESOURCES_BOUND 0x00200000
+#define D3DCOMPILE_DEBUG_NAME_FOR_SOURCE 0x00400000
+#define D3DCOMPILE_DEBUG_NAME_FOR_BINARY 0x00800000
+
+#define D3DCOMPILE_EFFECT_CHILD_EFFECT 0x00000001
+#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS 0x00000002
+
+#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST 0x00000000
+#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 0x00000010
+#define D3DCOMPILE_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 0x00000020
+
+#define D3D_DISASM_ENABLE_COLOR_CODE 0x00000001
+#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS 0x00000002
+#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004
+#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE 0x00000008
+#define D3D_DISASM_DISABLE_DEBUG_INFO 0x00000010
+#define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET 0x00000020
+#define D3D_DISASM_INSTRUCTION_ONLY 0x00000040
+#define D3D_DISASM_PRINT_HEX_LITERALS 0x00000080
+
+#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude *)(UINT_PTR)1)
+
+HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename,
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
+typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const char *filename,
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
+HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filename,
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
+ const char *target, UINT sflags, UINT eflags, UINT secondary_flags,
+ const void *secondary_data, SIZE_T secondary_data_size, ID3DBlob **shader,
+ ID3DBlob **error_messages);
+
+typedef enum D3DCOMPILER_STRIP_FLAGS
+{
+ D3DCOMPILER_STRIP_REFLECTION_DATA = 0x1,
+ D3DCOMPILER_STRIP_DEBUG_INFO = 0x2,
+ D3DCOMPILER_STRIP_TEST_BLOBS = 0x4,
+ D3DCOMPILER_STRIP_PRIVATE_DATA = 0x8,
+ D3DCOMPILER_STRIP_ROOT_SIGNATURE = 0x10,
+ D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff
+} D3DCOMPILER_STRIP_FLAGS;
+
+HRESULT WINAPI D3DStripShader(const void *data, SIZE_T data_size, UINT flags, ID3DBlob **blob);
+
+typedef enum D3D_BLOB_PART
+{
+ D3D_BLOB_INPUT_SIGNATURE_BLOB,
+ D3D_BLOB_OUTPUT_SIGNATURE_BLOB,
+ D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB,
+ D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB,
+ D3D_BLOB_ALL_SIGNATURE_BLOB,
+ D3D_BLOB_DEBUG_INFO,
+ D3D_BLOB_LEGACY_SHADER,
+ D3D_BLOB_XNA_PREPASS_SHADER,
+ D3D_BLOB_XNA_SHADER,
+ D3D_BLOB_PDB,
+ D3D_BLOB_PRIVATE_DATA,
+ D3D_BLOB_ROOT_SIGNATURE,
+ D3D_BLOB_DEBUG_NAME,
+ D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000,
+ D3D_BLOB_TEST_COMPILE_DETAILS,
+ D3D_BLOB_TEST_COMPILE_PERF,
+ D3D_BLOB_TEST_COMPILE_REPORT
+} D3D_BLOB_PART;
+
+HRESULT WINAPI D3DDisassemble(const void *data, SIZE_T data_size,
+ UINT flags, const char *comments, ID3DBlob **disassembly);
+typedef HRESULT (WINAPI *pD3DDisassemble)(const void *data, SIZE_T data_size,
+ UINT flags, const char *comments, ID3DBlob **disassembly);
+HRESULT WINAPI D3DCompileFromFile(const WCHAR *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *includes,
+ const char *entrypoint, const char *target, UINT flags1, UINT flags2, ID3DBlob **code, ID3DBlob **errors);
+HRESULT WINAPI D3DGetBlobPart(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob);
+HRESULT WINAPI D3DGetInputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
+HRESULT WINAPI D3DGetOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
+HRESULT WINAPI D3DGetInputAndOutputSignatureBlob(const void *data, SIZE_T data_size, ID3DBlob **blob);
+HRESULT WINAPI D3DGetDebugInfo(const void *data, SIZE_T data_size, ID3DBlob **blob);
+HRESULT WINAPI D3DReadFileToBlob(const WCHAR *filename, ID3DBlob **contents);
+HRESULT WINAPI D3DWriteBlobToFile(ID3DBlob *blob, const WCHAR *filename, WINBOOL overwrite);
+HRESULT WINAPI D3DReflect(const void *data, SIZE_T data_size, REFIID riid, void **reflector);
+
+HRESULT WINAPI D3DCreateBlob(SIZE_T data_size, ID3DBlob **blob);
+
+HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename,
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include,
+ ID3DBlob **shader, ID3DBlob **error_messages);
+typedef HRESULT (WINAPI *pD3DPreprocess)(const void *data, SIZE_T size, const char *filename,
+ const D3D_SHADER_MACRO *defines, ID3DInclude *include,
+ ID3DBlob **shader, ID3DBlob **error_messages);
+
+HRESULT WINAPI D3DLoadModule(const void *data, SIZE_T size, ID3D11Module **module);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/d3dhal.h b/d3dhal.h
new file mode 100644
index 0000000..a294016
--- /dev/null
+++ b/d3dhal.h
@@ -0,0 +1,589 @@
+/*
+ * Direct3D driver interface
+ * (DirectX 7 version)
+ *
+ * Copyright (C) 2001 Ove Kaaven
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3DHAL_H
+#define __WINE_D3DHAL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <d3d.h>
+
+/*****************************************************************************
+ * device info structures
+ */
+typedef struct _D3DDeviceDesc_V1 {
+ DWORD dwSize;
+ DWORD dwFlags;
+ D3DCOLORMODEL dcmColorModel;
+ DWORD dwDevCaps;
+ D3DTRANSFORMCAPS dtcTransformCaps;
+ WINBOOL bClipping;
+ D3DLIGHTINGCAPS dlcLightingCaps;
+ D3DPRIMCAPS dpcLineCaps;
+ D3DPRIMCAPS dpcTriCaps;
+ DWORD dwDeviceRenderBitDepth;
+ DWORD dwDeviceZBufferBitDepth;
+ DWORD dwMaxBufferSize;
+ DWORD dwMaxVertexCount;
+} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
+
+typedef struct _D3DDeviceDesc_V2
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ D3DCOLORMODEL dcmColorModel;
+ DWORD dwDevCaps;
+ D3DTRANSFORMCAPS dtcTransformCaps;
+ WINBOOL bClipping;
+ D3DLIGHTINGCAPS dlcLightingCaps;
+ D3DPRIMCAPS dpcLineCaps;
+ D3DPRIMCAPS dpcTriCaps;
+ DWORD dwDeviceRenderBitDepth;
+ DWORD dwDeviceZBufferBitDepth;
+ DWORD dwMaxBufferSize;
+ DWORD dwMaxVertexCount;
+
+ /* DirectX 5 */
+ DWORD dwMinTextureWidth;
+ DWORD dwMinTextureHeight;
+ DWORD dwMaxTextureWidth;
+ DWORD dwMaxTextureHeight;
+ DWORD dwMinStippleWidth;
+ DWORD dwMaxStippleWidth;
+ DWORD dwMinStippleHeight;
+ DWORD dwMaxStippleHeight;
+} D3DDEVICEDESC_V2, *LPD3DDEVICEDESC_V2;
+
+typedef struct _D3DDeviceDesc_V3
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ D3DCOLORMODEL dcmColorModel;
+ DWORD dwDevCaps;
+ D3DTRANSFORMCAPS dtcTransformCaps;
+ WINBOOL bClipping;
+ D3DLIGHTINGCAPS dlcLightingCaps;
+ D3DPRIMCAPS dpcLineCaps;
+ D3DPRIMCAPS dpcTriCaps;
+ DWORD dwDeviceRenderBitDepth;
+ DWORD dwDeviceZBufferBitDepth;
+ DWORD dwMaxBufferSize;
+ DWORD dwMaxVertexCount;
+
+ /* DirectX 5 */
+ DWORD dwMinTextureWidth;
+ DWORD dwMinTextureHeight;
+ DWORD dwMaxTextureWidth;
+ DWORD dwMaxTextureHeight;
+ DWORD dwMinStippleWidth;
+ DWORD dwMaxStippleWidth;
+ DWORD dwMinStippleHeight;
+ DWORD dwMaxStippleHeight;
+
+ /* DirectX 6 */
+ DWORD dwMaxTextureRepeat;
+ DWORD dwMaxTextureAspectRatio;
+ DWORD dwMaxAnisotropy;
+ D3DVALUE dvGuardBandLeft;
+ D3DVALUE dvGuardBandTop;
+ D3DVALUE dvGuardBandRight;
+ D3DVALUE dvGuardBandBottom;
+ D3DVALUE dvExtentsAdjust;
+ DWORD dwStencilCaps;
+ DWORD dwFVFCaps;
+ DWORD dwTextureOpCaps;
+ WORD wMaxTextureBlendStages;
+ WORD wMaxSimultaneousTextures;
+} D3DDEVICEDESC_V3, *LPD3DDEVICEDESC_V3;
+
+typedef struct _D3DHAL_GLOBALDRIVERDATA {
+ DWORD dwSize;
+ D3DDEVICEDESC_V1 hwCaps;
+ DWORD dwNumVertices;
+ DWORD dwNumClipVertices;
+ DWORD dwNumTextureFormats;
+ LPDDSURFACEDESC lpTextureFormats;
+} D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
+
+typedef struct _D3DHAL_D3DEXTENDEDCAPS {
+ DWORD dwSize;
+ /* DirectX 5 */
+ DWORD dwMinTextureWidth, dwMaxTextureWidth;
+ DWORD dwMinTextureHeight, dwMaxTextureHeight;
+ DWORD dwMinStippleWidth, dwMaxStippleWidth;
+ DWORD dwMinStippleHeight, dwMaxStippleHeight;
+ /* DirectX 6 */
+ DWORD dwMaxTextureRepeat;
+ DWORD dwMaxTextureAspectRatio;
+ DWORD dwMaxAnisotropy;
+ D3DVALUE dvGuardBandLeft;
+ D3DVALUE dvGuardBandTop;
+ D3DVALUE dvGuardBandRight;
+ D3DVALUE dvGuardBandBottom;
+ D3DVALUE dvExtentsAdjust;
+ DWORD dwStencilCaps;
+ DWORD dwFVFCaps;
+ DWORD dwTextureOpCaps;
+ WORD wMaxTextureBlendStages;
+ WORD wMaxSimultaneousTextures;
+ /* DirectX 7 */
+ DWORD dwMaxActiveLights;
+ D3DVALUE dvMaxVertexW;
+ WORD wMaxUserClipPlanes;
+ WORD wMaxVertexBlendMatrices;
+ DWORD dwVertexProcessingCaps;
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ DWORD dwReserved3;
+ DWORD dwReserved4;
+} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
+
+/*****************************************************************************
+ * d3d->driver callbacks
+ */
+typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
+typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
+typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
+typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
+typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
+typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
+typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
+typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
+typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
+typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
+typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
+
+typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
+typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
+typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
+typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
+typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
+typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
+typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
+
+typedef struct _D3DHAL_CALLBACKS {
+ DWORD dwSize;
+ LPD3DHAL_CONTEXTCREATECB ContextCreate;
+ LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
+ LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
+ LPD3DHAL_SCENECAPTURECB SceneCapture;
+ LPVOID lpReserved10;
+ LPVOID lpReserved11;
+ LPD3DHAL_RENDERSTATECB RenderState;
+ LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
+ DWORD dwReserved;
+ LPD3DHAL_TEXTURECREATECB TextureCreate;
+ LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
+ LPD3DHAL_TEXTURESWAPCB TextureSwap;
+ LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
+ /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
+ * all these reserved fields were available? we may never know */
+ LPVOID lpReserved12;
+ LPVOID lpReserved13;
+ LPVOID lpReserved14;
+ LPVOID lpReserved15;
+ LPVOID lpReserved16;
+ LPVOID lpReserved17;
+ LPVOID lpReserved18;
+ LPVOID lpReserved19;
+ LPVOID lpReserved20;
+ LPVOID lpReserved21;
+ LPD3DHAL_GETSTATECB GetState;
+ DWORD dwReserved0;
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+ DWORD dwReserved3;
+ DWORD dwReserved4;
+ DWORD dwReserved5;
+ DWORD dwReserved6;
+ DWORD dwReserved7;
+ DWORD dwReserved8;
+ DWORD dwReserved9;
+} D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
+
+typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
+typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
+typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
+typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
+typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
+
+typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
+typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
+
+typedef struct _D3DHAL_CALLBACKS2 {
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
+ LPD3DHAL_CLEARCB Clear;
+ LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
+ LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
+ LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
+} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
+
+typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
+typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
+typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
+
+typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
+typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
+typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
+
+typedef struct _D3DHAL_CALLBACKS3 {
+ DWORD dwSize;
+ DWORD dwFlags;
+ LPD3DHAL_CLEAR2CB Clear2;
+ LPVOID lpvReserved;
+ LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
+ LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
+} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
+
+/*****************************************************************************
+ * parameter structures
+ */
+typedef struct _D3DHAL_CONTEXTCREATEDATA {
+ union {
+ LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
+ LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
+ } DUMMYUNIONNAME1;
+ union {
+ LPDIRECTDRAWSURFACE lpDDS;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
+ } DUMMYUNIONNAME2;
+ union {
+ LPDIRECTDRAWSURFACE lpDDSZ;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
+ } DUMMYUNIONNAME3;
+ union {
+ DWORD dwPID;
+ ULONG_PTR dwrstates;
+ } DUMMYUNIONNAME4;
+ ULONG_PTR dwhContext;
+ HRESULT ddrval;
+} D3DHAL_CONTEXTCREATEDATA;
+
+typedef struct _D3DHAL_CONTEXTDESTROYDATA {
+ ULONG_PTR dwhContext;
+ HRESULT ddrval;
+} D3DHAL_CONTEXTDESTROYDATA;
+
+typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
+ DWORD dwPID;
+ HRESULT ddrval;
+} D3DHAL_CONTEXTDESTROYALLDATA;
+
+typedef struct _D3DHAL_SCENECAPTUREDATA {
+ ULONG_PTR dwhContext;
+ DWORD dwFlag;
+ HRESULT ddrval;
+} D3DHAL_SCENECAPTUREDATA;
+
+#define D3DHAL_SCENE_CAPTURE_START 0x00000000
+#define D3DHAL_SCENE_CAPTURE_END 0x00000001
+
+typedef struct _D3DHAL_SETRENDERTARGETDATA {
+ ULONG_PTR dwhContext;
+ union {
+ LPDIRECTDRAWSURFACE lpDDS;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
+ } DUMMYUNIONNAME1;
+ union {
+ LPDIRECTDRAWSURFACE lpDDSZ;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
+ } DUMMYUNIONNAME2;
+ HRESULT ddrval;
+} D3DHAL_SETRENDERTARGETDATA;
+
+typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
+ ULONG_PTR dwhContext;
+ DWORD dwFlags;
+ DWORD dwVertexType;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
+ DWORD dwCommandOffset;
+ DWORD dwCommandLength;
+ union {
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
+ LPVOID lpVertices;
+ } DUMMYUNIONNAME1;
+ DWORD dwVertexOffset;
+ DWORD dwVertexLength;
+ DWORD dwReqVertexBufSize;
+ DWORD dwReqCommandBufSize;
+ LPDWORD lpdwRStates;
+ union {
+ DWORD dwVertexSize;
+ HRESULT ddrval;
+ } DUMMYUNIONNAME2;
+ DWORD dwErrorOffset;
+} D3DHAL_DRAWPRIMITIVES2DATA;
+
+#define D3DHALDP2_USERMEMVERTICES 0x00000001
+#define D3DHALDP2_EXECUTEBUFFER 0x00000002
+#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
+#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
+#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
+#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
+#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
+#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
+
+/*****************************************************************************
+ * DrawPrimitives2 command structures
+ */
+typedef struct _D3DHAL_DP2COMMAND {
+ BYTE bCommand;
+ BYTE bReserved;
+ union {
+ WORD wPrimitiveCount;
+ WORD wStateCount;
+ } DUMMYUNIONNAME;
+} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
+
+typedef enum _D3DHAL_DP2OPERATION {
+ D3DDP2OP_POINTS = 1,
+ D3DDP2OP_INDEXEDLINELIST = 2,
+ D3DDP2OP_INDEXEDTRIANGLELIST = 3,
+ D3DDP2OP_RENDERSTATE = 8,
+ D3DDP2OP_LINELIST = 15,
+ D3DDP2OP_LINESTRIP = 16,
+ D3DDP2OP_INDEXEDLINESTRIP = 17,
+ D3DDP2OP_TRIANGLELIST = 18,
+ D3DDP2OP_TRIANGLESTRIP = 19,
+ D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
+ D3DDP2OP_TRIANGLEFAN = 21,
+ D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
+ D3DDP2OP_TRIANGLEFAN_IMM = 23,
+ D3DDP2OP_LINELIST_IMM = 24,
+ D3DDP2OP_TEXTURESTAGESTATE = 25,
+ D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
+ D3DDP2OP_INDEXEDLINELIST2 = 27,
+ D3DDP2OP_VIEWPORTINFO = 28,
+ D3DDP2OP_WINFO = 29,
+ /* pre-DirectX 7 interfaces */
+ D3DDP2OP_SETPALETTE = 30,
+ D3DDP2OP_UPDATEPALETTE = 31,
+ /* DirectX 7 interfaces */
+ D3DDP2OP_ZRANGE = 32,
+ D3DDP2OP_SETMATERIAL = 33,
+ D3DDP2OP_SETLIGHT = 34,
+ D3DDP2OP_CREATELIGHT = 35,
+ D3DDP2OP_SETTRANSFORM = 36,
+ D3DDP2OP_TEXBLT = 38,
+ D3DDP2OP_STATESET = 39,
+ D3DDP2OP_SETPRIORITY = 40,
+ /* all interfaces */
+ D3DDP2OP_SETRENDERTARGET = 41,
+ D3DDP2OP_CLEAR = 42,
+ /* DirectX 7 interfaces */
+ D3DDP2OP_SETTEXLOD = 43,
+ D3DPP2OP_SETCLIPPLANE = 44
+} D3DHAL_DP2OPERATION;
+
+/* point primitives */
+
+typedef struct _D3DHAL_POINTS {
+ WORD wCount;
+ WORD wVStart;
+} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
+
+/* line primitives */
+
+typedef struct _D3DHAL_DP2STARTVERTEX {
+ WORD wVStart;
+} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
+
+typedef struct _D3DHAL_DP2LINELIST {
+ WORD wVStart;
+} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
+
+typedef struct _D3DHAL_DP2INDEXEDLINELIST {
+ WORD wV1;
+ WORD wV2;
+} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
+
+typedef struct _D3DHAL_DP2LINESTRIP {
+ WORD wVStart;
+} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
+
+typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
+ WORD wV[2];
+} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
+
+/* triangle primitives */
+
+typedef struct _D3DHAL_DP2TRIANGLELIST {
+ WORD wVStart;
+} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
+
+typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
+ WORD wV1;
+ WORD wV2;
+ WORD wV3;
+ WORD wFlags;
+} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
+
+typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
+ WORD wV1;
+ WORD wV2;
+ WORD wV3;
+} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
+
+typedef struct _D3DHAL_DP2TRIANGLESTRIP {
+ WORD wVStart;
+} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
+
+typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
+ WORD wV[3];
+} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
+
+typedef struct _D3DHAL_DP2TRIANGLEFAN {
+ WORD wVStart;
+} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
+
+typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
+ WORD wV[3];
+} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
+
+typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
+ DWORD dwEdgeFlags;
+} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
+
+/* render states */
+typedef struct _D3DHAL_DP2RENDERSTATE {
+ D3DRENDERSTATETYPE RenderState;
+ union {
+ D3DVALUE dvState;
+ DWORD dwState;
+ } DUMMYUNIONNAME;
+} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
+
+typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
+ WORD wStage;
+ WORD TSState;
+ DWORD dwValue;
+} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
+
+#define D3DTSS_TEXTUREMAP 0
+
+typedef struct _D3DHAL_DP2VIEWPORTINFO {
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwWidth;
+ DWORD dwHeight;
+} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
+
+typedef struct _D3DHAL_DP2WINFO {
+ D3DVALUE dwWNear;
+ D3DVALUE dwWFar;
+} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
+
+typedef struct _D3DHAL_DP2SETPALETTE {
+ DWORD dwPaletteHandle;
+ DWORD dwPaletteFlags;
+ DWORD dwSurfaceHandle;
+} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
+
+typedef struct _D3DHAL_DP2UPDATEPALETTE {
+ DWORD dwPaletteHandle;
+ WORD wStartIndex;
+ WORD wNumEntries;
+} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
+
+typedef struct _D3DHAL_DP2ZRANGE {
+ D3DVALUE dvMinZ;
+ D3DVALUE dvMaxZ;
+} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
+
+typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
+
+typedef struct _D3DHAL_DP2SETLIGHT {
+ DWORD dwIndex;
+ DWORD dwDataType;
+} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
+
+#define D3DHAL_SETLIGHT_ENABLE 0
+#define D3DHAL_SETLIGHT_DISABLE 1
+#define D3DHAL_SETLIGHT_DATA 2
+
+typedef struct _D3DHAL_DP2CREATELIGHT {
+ DWORD dwIndex;
+} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
+
+typedef struct _D3DHAL_DP2SETTRANSFORM {
+ D3DTRANSFORMSTATETYPE xfrmType;
+ D3DMATRIX matrix;
+} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
+
+typedef struct _D3DHAL_DP2TEXBLT {
+ DWORD dwDDDestSurface;
+ DWORD dwDDSrcSurface;
+ POINT pDest;
+ RECTL rSrc;
+ DWORD dwFlags;
+} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
+
+typedef struct _D3DHAL_DP2STATESET {
+ DWORD dwOperation;
+ DWORD dwParam;
+ D3DSTATEBLOCKTYPE sbType;
+} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
+
+#define D3DHAL_STATESETBEGIN 0
+#define D3DHAL_STATESETEND 1
+#define D3DHAL_STATESETDELETE 2
+#define D3DHAL_STATESETEXECUTE 3
+#define D3DHAL_STATESETCAPTURE 4
+
+typedef struct _D3DHAL_DP2SETPRIORITY {
+ DWORD dwDDSurface;
+ DWORD dwPriority;
+} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
+
+typedef struct _D3DHAL_DP2SETRENDERTARGET {
+ DWORD hRenderTarget;
+ DWORD hZBuffer;
+} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
+
+typedef struct _D3DHAL_DP2CLEAR {
+ DWORD dwFlags;
+ DWORD dwFillColor;
+ D3DVALUE dvFillDepth;
+ DWORD dwFillStencil;
+ RECT Rects[1];
+} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
+
+typedef struct _D3DHAL_DP2SETTEXLOD {
+ DWORD dwDDSurface;
+ DWORD dwLOD;
+} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __WINE_D3DHAL_H */
diff --git a/d3drm.h b/d3drm.h
new file mode 100644
index 0000000..f305b54
--- /dev/null
+++ b/d3drm.h
@@ -0,0 +1,525 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2005 Peter Berg Larsen
+ * Copyright (C) 2010 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DRM_H__
+#define __D3DRM_H__
+
+#include <ddraw.h>
+
+typedef struct IDirect3DRM *LPDIRECT3DRM, **LPLPDIRECT3DRM;
+
+#include <d3drmobj.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Direct3DRM Object CLSID */
+DEFINE_GUID(CLSID_CDirect3DRM, 0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+
+/* Direct3DRM Interface GUIDs */
+DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRM2, 0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRM3, 0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+
+typedef struct IDirect3DRM2 *LPDIRECT3DRM2, **LPLPDIRECT3DRM2;
+typedef struct IDirect3DRM3 *LPDIRECT3DRM3, **LPLPDIRECT3DRM3;
+
+HRESULT WINAPI Direct3DRMCreate(struct IDirect3DRM **d3drm);
+
+/*****************************************************************************
+ * IDirect3DRMObject interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRM
+DECLARE_INTERFACE_(IDirect3DRM,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRM methods ***/
+ STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame **frame) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+ STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder **mesh_builder) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
+ STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
+ STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
+ STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
+ IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
+ STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice **device) PURE;
+ STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
+ IDirectDrawSurface *surface, IDirect3DRMDevice **device) PURE;
+ STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device,
+ IDirect3DRMDevice **device) PURE;
+ STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
+ int width, int height, IDirect3DRMDevice **device) PURE;
+ STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
+ IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
+ D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
+ IDirect3DRMVisual **shadow) PURE;
+ STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
+ DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
+ STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
+ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
+ D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
+ STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
+ STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(LoadTextureFromResource)(THIS_ HRSRC resource, IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
+ STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
+ STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
+ STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
+ STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
+ D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
+ IDirect3DRMFrame *parent_frame) PURE;
+ STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRM_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRM_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRM_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRM methods ***/
+#define IDirect3DRM_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,c,d)
+#define IDirect3DRM_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
+#define IDirect3DRM_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#define IDirect3DRM_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
+#define IDirect3DRM_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRM_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
+#define IDirect3DRM_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
+#define IDirect3DRM_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
+#define IDirect3DRM_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
+#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
+#define IDirect3DRM_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3DRM_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
+#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
+#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
+#define IDirect3DRM_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
+#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
+#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
+#define IDirect3DRM_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
+#define IDirect3DRM_LoadTextureFromResource(p,a,b) (p)->lpVtbl->LoadTextureFromResource(p,a,b)
+#define IDirect3DRM_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
+#define IDirect3DRM_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
+#define IDirect3DRM_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
+#define IDirect3DRM_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
+#define IDirect3DRM_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
+#define IDirect3DRM_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
+#define IDirect3DRM_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
+#define IDirect3DRM_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
+#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM_Tick(p,a) (p)->lpVtbl->Tick(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRM_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRM_AddRef(p) (p)->AddRef()
+#define IDirect3DRM_Release(p) (p)->Release()
+/*** IDirect3DRM methods ***/
+#define IDirect3DRM_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,c,d)
+#define IDirect3DRM_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
+#define IDirect3DRM_CreateMesh(p,a) (p)->CreateMesh(a)
+#define IDirect3DRM_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
+#define IDirect3DRM_CreateFace(p,a) (p)->CreateFace(a)
+#define IDirect3DRM_CreateAnimation(p,a) (p)->CreateAnimation(a)
+#define IDirect3DRM_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
+#define IDirect3DRM_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
+#define IDirect3DRM_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
+#define IDirect3DRM_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
+#define IDirect3DRM_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3DRM_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
+#define IDirect3DRM_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d)
+#define IDirect3DRM_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
+#define IDirect3DRM_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
+#define IDirect3DRM_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
+#define IDirect3DRM_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
+#define IDirect3DRM_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
+#define IDirect3DRM_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
+#define IDirect3DRM_LoadTextureFromResource(p,a,b) (p)->LoadTextureFromResource(a,b)
+#define IDirect3DRM_SetSearchPath(p,a) (p)->SetSearchPath(a)
+#define IDirect3DRM_AddSearchPath(p,a) (p)->AddSearchPath(a)
+#define IDirect3DRM_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
+#define IDirect3DRM_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
+#define IDirect3DRM_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
+#define IDirect3DRM_GetDevices(p,a) (p)->GetDevices(a)
+#define IDirect3DRM_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
+#define IDirect3DRM_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
+#define IDirect3DRM_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM_Tick(p,a) (p)->Tick(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRM2 interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRM2
+DECLARE_INTERFACE_(IDirect3DRM2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRM2 methods ***/
+ STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame *parent, IDirect3DRMFrame2 **frame) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+ STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder2 **mesh_builder) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
+ STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation **animation) PURE;
+ STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet **set) PURE;
+ STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture2 **texture) PURE;
+ STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
+ IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ D3DVALUE power, IDirect3DRMMaterial **material) PURE;
+ STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice2 **device) PURE;
+ STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
+ IDirectDrawSurface *surface, IDirect3DRMDevice2 **device) PURE;
+ STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
+ IDirect3DRMDevice2 **device) PURE;
+ STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
+ int width, int height, IDirect3DRMDevice2 **device) PURE;
+ STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
+ IDirect3DRMTexture2 **texture) PURE;
+ STDMETHOD(CreateShadow)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMLight *light,
+ D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
+ IDirect3DRMVisual **shadow) PURE;
+ STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice *device, IDirect3DRMFrame *camera,
+ DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport) PURE;
+ STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
+ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov,
+ D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap) PURE;
+ STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
+ STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture2 **texture) PURE;
+ STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
+ const char *resource_type, IDirect3DRMTexture2 **texture) PURE;
+ STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
+ STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
+ STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
+ STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
+ STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
+ D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
+ IDirect3DRMFrame *parent_frame) PURE;
+ STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRM2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRM2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRM2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRM2 methods ***/
+#define IDirect3DRM2_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,c,d)
+#define IDirect3DRM2_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
+#define IDirect3DRM2_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#define IDirect3DRM2_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
+#define IDirect3DRM2_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRM2_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
+#define IDirect3DRM2_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
+#define IDirect3DRM2_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
+#define IDirect3DRM2_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
+#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
+#define IDirect3DRM2_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3DRM2_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d)
+#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
+#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
+#define IDirect3DRM2_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
+#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
+#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM2_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
+#define IDirect3DRM2_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
+#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d) (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
+#define IDirect3DRM2_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
+#define IDirect3DRM2_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
+#define IDirect3DRM2_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
+#define IDirect3DRM2_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
+#define IDirect3DRM2_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
+#define IDirect3DRM2_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
+#define IDirect3DRM2_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
+#define IDirect3DRM2_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
+#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM2_Tick(p,a) (p)->lpVtbl->Tick(p,a)
+#define IDirect3DRM2_CreateProgressiveMesh(p,a) (p)->lpVtbl->CreateProgressiveMesh(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRM2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRM2_AddRef(p) (p)->AddRef()
+#define IDirect3DRM2_Release(p) (p)->Release()
+/*** IDirect3DRM2 methods ***/
+#define IDirect3DRM2_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,c,d)
+#define IDirect3DRM2_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
+#define IDirect3DRM2_CreateMesh(p,a) (p)->CreateMesh(a)
+#define IDirect3DRM2_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
+#define IDirect3DRM2_CreateFace(p,a) (p)->CreateFace(a)
+#define IDirect3DRM2_CreateAnimation(p,a) (p)->CreateAnimation(a)
+#define IDirect3DRM2_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
+#define IDirect3DRM2_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
+#define IDirect3DRM2_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
+#define IDirect3DRM2_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
+#define IDirect3DRM2_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3DRM2_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
+#define IDirect3DRM2_CreateDeviceFromSurface(p,a,b,c,d) (p)->CreateDeviceFromSurface(a,b,c,d)
+#define IDirect3DRM2_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
+#define IDirect3DRM2_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
+#define IDirect3DRM2_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
+#define IDirect3DRM2_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM2_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
+#define IDirect3DRM2_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM2_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
+#define IDirect3DRM2_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
+#define IDirect3DRM2_LoadTextureFromResource(p,a,b,c,d) (p)->LoadTextureFromResource(a,b,c,d)
+#define IDirect3DRM2_SetSearchPath(p,a) (p)->SetSearchPath(a)
+#define IDirect3DRM2_AddSearchPath(p,a) (p)->AddSearchPath(a)
+#define IDirect3DRM2_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
+#define IDirect3DRM2_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
+#define IDirect3DRM2_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
+#define IDirect3DRM2_GetDevices(p,a) (p)->GetDevices(a)
+#define IDirect3DRM2_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
+#define IDirect3DRM2_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
+#define IDirect3DRM2_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM2_Tick(p,a) (p)->Tick(a)
+#define IDirect3DRM2_CreateProgressiveMesh(p,a) (p)->CreateProgressiveMesh(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRM3 interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRM3
+DECLARE_INTERFACE_(IDirect3DRM3,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRM2 methods ***/
+ STDMETHOD(CreateObject)(THIS_ REFCLSID clsid, IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(CreateFrame)(THIS_ IDirect3DRMFrame3 *parent, IDirect3DRMFrame3 **frame) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+ STDMETHOD(CreateMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 **mesh_builder) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
+ STDMETHOD(CreateAnimation)(THIS_ IDirect3DRMAnimation2 **animation) PURE;
+ STDMETHOD(CreateAnimationSet)(THIS_ IDirect3DRMAnimationSet2 **set) PURE;
+ STDMETHOD(CreateTexture)(THIS_ D3DRMIMAGE *image, IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(CreateLight)(THIS_ D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateLightRGB)(THIS_ D3DRMLIGHTTYPE type, D3DVALUE r, D3DVALUE g, D3DVALUE b,
+ IDirect3DRMLight **light) PURE;
+ STDMETHOD(CreateMaterial)(THIS_ D3DVALUE, IDirect3DRMMaterial2 **material) PURE;
+ STDMETHOD(CreateDevice)(THIS_ DWORD width, DWORD height, IDirect3DRMDevice3 **device) PURE;
+ STDMETHOD(CreateDeviceFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw,
+ IDirectDrawSurface *surface, DWORD flags, IDirect3DRMDevice3 **device) PURE;
+ STDMETHOD(CreateDeviceFromD3D)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device,
+ IDirect3DRMDevice3 **device) PURE;
+ STDMETHOD(CreateDeviceFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid,
+ int width, int height, IDirect3DRMDevice3 **device) PURE;
+ STDMETHOD(CreateTextureFromSurface)(THIS_ IDirectDrawSurface *surface,
+ IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(CreateShadow)(THIS_ IUnknown *object, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz,
+ D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMShadow2 **shadow) PURE;
+ STDMETHOD(CreateViewport)(THIS_ IDirect3DRMDevice3 *device, IDirect3DRMFrame3 *camera,
+ DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport2 **viewport) PURE;
+ STDMETHOD(CreateWrap)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame3 *reference,
+ D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
+ D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv,
+ IDirect3DRMWrap **wrap) PURE;
+ STDMETHOD(CreateUserVisual)(THIS_ D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual) PURE;
+ STDMETHOD(LoadTexture)(THIS_ const char *filename, IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(LoadTextureFromResource)(THIS_ HMODULE module, const char *resource_name,
+ const char *resource_type, IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(SetSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(AddSearchPath)(THIS_ const char *path) PURE;
+ STDMETHOD(GetSearchPath)(THIS_ DWORD *size, char *path) PURE;
+ STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
+ STDMETHOD(GetDevices)(THIS_ IDirect3DRMDeviceArray **array) PURE;
+ STDMETHOD(GetNamedObject)(THIS_ const char *name, IDirect3DRMObject **object) PURE;
+ STDMETHOD(EnumerateObjects)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Load)(THIS_ void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags,
+ D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx,
+ IDirect3DRMFrame3 *parent_frame) PURE;
+ STDMETHOD(Tick)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(CreateProgressiveMesh)(THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
+ STDMETHOD(RegisterClient)(THIS_ REFGUID guid, DWORD *id) PURE;
+ STDMETHOD(UnregisterClient)(THIS_ REFGUID rguid) PURE;
+ STDMETHOD(CreateClippedVisual)(THIS_ IDirect3DRMVisual *visual, IDirect3DRMClippedVisual **clipped_visual) PURE;
+ STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
+ STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRM3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRM3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRM3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRM3 methods ***/
+#define IDirect3DRM3_CreateObject(p,a,b,c,d) (p)->lpVtbl->CreateObject(p,a,b,c,d)
+#define IDirect3DRM3_CreateFrame(p,a,b) (p)->lpVtbl->CreateFrame(p,a,b)
+#define IDirect3DRM3_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#define IDirect3DRM3_CreateMeshBuilder(p,a) (p)->lpVtbl->CreateMeshBuilder(p,a)
+#define IDirect3DRM3_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRM3_CreateAnimation(p,a) (p)->lpVtbl->CreateAnimation(p,a)
+#define IDirect3DRM3_CreateAnimationSet(p,a) (p)->lpVtbl->CreateAnimationSet(p,a)
+#define IDirect3DRM3_CreateTexture(p,a,b) (p)->lpVtbl->CreateTexture(p,a,b)
+#define IDirect3DRM3_CreateLight(p,a,b,c) (p)->lpVtbl->CreateLight(p,a,b,c)
+#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->lpVtbl->CreateLightRGB(p,a,b,c,d,e)
+#define IDirect3DRM3_CreateMaterial(p,a,b) (p)->lpVtbl->CreateMaterial(p,a,b)
+#define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->lpVtbl->CreateDevice(p,a,b,c)
+#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromSurface(p,a,b,c,d,e)
+#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->lpVtbl->CreateDeviceFromD3D(p,a,b,c)
+#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->lpVtbl->CreateDeviceFromClipper(p,a,b,c,d,e)
+#define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->lpVtbl->CreateTextureFromSurface(p,a,b)
+#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->CreateShadow(p,a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g) (p)->lpVtbl->CreateViewport(p,a,b,c,d,e,f,g)
+#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->lpVtbl->CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM3_CreateUserVisual(p,a,b,c) (p)->lpVtbl->CreateUserVisual(p,a,b,c)
+#define IDirect3DRM3_LoadTexture(p,a,b) (p)->lpVtbl->LoadTexture(p,a,b)
+#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d) (p)->lpVtbl->LoadTextureFromResource(p,a,b,c,d)
+#define IDirect3DRM3_SetSearchPath(p,a) (p)->lpVtbl->SetSearchPath(p,a)
+#define IDirect3DRM3_AddSearchPath(p,a) (p)->lpVtbl->AddSearchPath(p,a)
+#define IDirect3DRM3_GetSearchPath(p,a,b) (p)->lpVtbl->GetSearchPath(p,a,b)
+#define IDirect3DRM3_SetDefaultTextureColors(p,a) (p)->lpVtbl->SetDefaultTextureColors(p,a)
+#define IDirect3DRM3_SetDefaultTextureShades(p,a) (p)->lpVtbl->SetDefaultTextureShades(p,a)
+#define IDirect3DRM3_GetDevices(p,a) (p)->lpVtbl->GetDevices(p,a)
+#define IDirect3DRM3_GetNamedObject(p,a,b) (p)->lpVtbl->GetNamedObject(p,a,b)
+#define IDirect3DRM3_EnumerateObjects(p,a,b) (p)->lpVtbl->EnumerateObjects(p,a,b)
+#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM3_Tick(p,a) (p)->lpVtbl->Tick(p,a)
+#define IDirect3DRM3_CreateProgressiveMesh(p,a) (p)->lpVtbl->CreateProgressiveMesh(p,a)
+#define IDirect3DRM3_RegisterClient(p,a,b) (p)->lpVtbl->RegisterClient(p,a,b)
+#define IDirect3DRM3_UnregisterClient(p,a) (p)->lpVtbl->UnregisterClient(p,a)
+#define IDirect3DRM3_CreateClippedVisual(p,a,b) (p)->lpVtbl->CreateClippedVisual(p,a,b)
+#define IDirect3DRM3_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
+#define IDirect3DRM3_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRM3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRM3_AddRef(p) (p)->AddRef()
+#define IDirect3DRM3_Release(p) (p)->Release()
+/*** IDirect3DRM3 methods ***/
+#define IDirect3DRM3_CreateObject(p,a,b,c,d) (p)->CreateObject(a,b,c,d)
+#define IDirect3DRM3_CreateFrame(p,a,b) (p)->CreateFrame(a,b)
+#define IDirect3DRM3_CreateMesh(p,a) (p)->CreateMesh(a)
+#define IDirect3DRM3_CreateMeshBuilder(p,a) (p)->CreateMeshBuilder(a)
+#define IDirect3DRM3_CreateFace(p,a) (p)->CreateFace(a)
+#define IDirect3DRM3_CreateAnimation(p,a) (p)->CreateAnimation(a)
+#define IDirect3DRM3_CreateAnimationSet(p,a) (p)->CreateAnimationSet(a)
+#define IDirect3DRM3_CreateTexture(p,a,b) (p)->CreateTexture(a,b)
+#define IDirect3DRM3_CreateLight(p,a,b,c) (p)->CreateLight(a,b,c)
+#define IDirect3DRM3_CreateLightRGB(p,a,b,c,d,e) (p)->CreateLightRGB(a,b,c,d,e)
+#define IDirect3DRM3_CreateMaterial(p,a,b) (p)->CreateMaterial(a,b)
+#define IDirect3DRM3_CreateDevice(p,a,b,c) (p)->CreateDevice(a,b,c)
+#define IDirect3DRM3_CreateDeviceFromSurface(p,a,b,c,d,e) (p)->CreateDeviceFromSurface(a,b,c,d,e)
+#define IDirect3DRM3_CreateDeviceFromD3D(p,a,b,c) (p)->CreateDeviceFromD3D(a,b,c)
+#define IDirect3DRM3_CreateDeviceFromClipper(p,a,b,c,d,e) (p)->CreateDeviceFromClipper(a,b,c,d,e)
+#define IDirect3DRM3_CreateTextureFromSurface(p,a,b) (p)->CreateTextureFromSurface(a,b)
+#define IDirect3DRM3_CreateShadow(p,a,b,c,d,e,f,g,h,i) (p)->CreateShadow(a,b,c,d,e,f,g,h,i)
+#define IDirect3DRM3_CreateViewport(p,a,b,c,d,e,f,g) (p)->CreateViewport(a,b,c,d,e,f,g)
+#define IDirect3DRM3_CreateWrap(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q) (p)->CreateWrap(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,q)
+#define IDirect3DRM3_CreateUserVisual(p,a,b,c) (p)->CreateUserVisual(a,b,c)
+#define IDirect3DRM3_LoadTexture(p,a,b) (p)->LoadTexture(a,b)
+#define IDirect3DRM3_LoadTextureFromResource(p,a,b,c,d) (p)->LoadTextureFromResource(a,b,c,d)
+#define IDirect3DRM3_SetSearchPath(p,a) (p)->SetSearchPath(a)
+#define IDirect3DRM3_AddSearchPath(p,a) (p)->AddSearchPath(a)
+#define IDirect3DRM3_GetSearchPath(p,a,b) (p)->GetSearchPath(a,b)
+#define IDirect3DRM3_SetDefaultTextureColors(p,a) (p)->SetDefaultTextureColors(a)
+#define IDirect3DRM3_SetDefaultTextureShades(p,a) (p)->SetDefaultTextureShades(a)
+#define IDirect3DRM3_GetDevices(p,a) (p)->GetDevices(a)
+#define IDirect3DRM3_GetNamedObject(p,a,b) (p)->GetNamedObject(a,b)
+#define IDirect3DRM3_EnumerateObjects(p,a,b) (p)->EnumerateObjects(a,b)
+#define IDirect3DRM3_Load(p,a,b,c,d,e,f,g,h,i,j) (p)->Load(a,b,c,d,e,f,g,h,i,j)
+#define IDirect3DRM3_Tick(p,a) (p)->Tick(a)
+#define IDirect3DRM3_CreateProgressiveMesh(p,a) (p)->CreateProgressiveMesh(a)
+#define IDirect3DRM3_RegisterClient(p,a,b) (p)->RegisterClient(a,b)
+#define IDirect3DRM3_UnregisterClient(p,a) (p)->UnregisterClient(a)
+#define IDirect3DRM3_CreateClippedVisual(p,a,b) (p)->CreateClippedVisual(a,b)
+#define IDirect3DRM3_SetOptions(p,a) (p)->SetOptions(a)
+#define IDirect3DRM3_GetOptions(p,a) (p)->GetOptions(a)
+#endif
+
+#define D3DRM_OK DD_OK
+#define D3DRMERR_BADOBJECT MAKE_DDHRESULT(781)
+#define D3DRMERR_BADTYPE MAKE_DDHRESULT(782)
+#define D3DRMERR_BADALLOC MAKE_DDHRESULT(783)
+#define D3DRMERR_FACEUSED MAKE_DDHRESULT(784)
+#define D3DRMERR_NOTFOUND MAKE_DDHRESULT(785)
+#define D3DRMERR_NOTDONEYET MAKE_DDHRESULT(786)
+#define D3DRMERR_FILENOTFOUND MAKE_DDHRESULT(787)
+#define D3DRMERR_BADFILE MAKE_DDHRESULT(788)
+#define D3DRMERR_BADDEVICE MAKE_DDHRESULT(789)
+#define D3DRMERR_BADVALUE MAKE_DDHRESULT(790)
+#define D3DRMERR_BADMAJORVERSION MAKE_DDHRESULT(791)
+#define D3DRMERR_BADMINORVERSION MAKE_DDHRESULT(792)
+#define D3DRMERR_UNABLETOEXECUTE MAKE_DDHRESULT(793)
+#define D3DRMERR_LIBRARYNOTFOUND MAKE_DDHRESULT(794)
+#define D3DRMERR_INVALIDLIBRARY MAKE_DDHRESULT(795)
+#define D3DRMERR_PENDING MAKE_DDHRESULT(796)
+#define D3DRMERR_NOTENOUGHDATA MAKE_DDHRESULT(797)
+#define D3DRMERR_REQUESTTOOLARGE MAKE_DDHRESULT(798)
+#define D3DRMERR_REQUESTTOOSMALL MAKE_DDHRESULT(799)
+#define D3DRMERR_CONNECTIONLOST MAKE_DDHRESULT(800)
+#define D3DRMERR_LOADABORTED MAKE_DDHRESULT(801)
+#define D3DRMERR_NOINTERNET MAKE_DDHRESULT(802)
+#define D3DRMERR_BADCACHEFILE MAKE_DDHRESULT(803)
+#define D3DRMERR_BOXNOTSET MAKE_DDHRESULT(804)
+#define D3DRMERR_BADPMDATA MAKE_DDHRESULT(805)
+#define D3DRMERR_CLIENTNOTREGISTERED MAKE_DDHRESULT(806)
+#define D3DRMERR_NOTCREATEDFROMDDS MAKE_DDHRESULT(807)
+#define D3DRMERR_NOSUCHKEY MAKE_DDHRESULT(808)
+#define D3DRMERR_INCOMPATABLEKEY MAKE_DDHRESULT(809)
+#define D3DRMERR_ELEMENTINUSE MAKE_DDHRESULT(810)
+#define D3DRMERR_TEXTUREFORMATNOTFOUND MAKE_DDHRESULT(811)
+#define D3DRMERR_NOTAGGREGATED MAKE_DDHRESULT(812)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D3DRM_H__ */
diff --git a/d3drmdef.h b/d3drmdef.h
new file mode 100644
index 0000000..aa77c2c
--- /dev/null
+++ b/d3drmdef.h
@@ -0,0 +1,466 @@
+/*
+ * Copyright 2007,2010 Vijay Kiran Kamuju
+ * Copyright 2007 David ADAM
+ * Copyright 2010 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DRMDEFS_H__
+#define __D3DRMDEFS_H__
+
+#include <stddef.h>
+#include <d3dtypes.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+typedef struct _D3DRMVECTOR4D
+{
+ D3DVALUE x;
+ D3DVALUE y;
+ D3DVALUE z;
+ D3DVALUE w;
+} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
+
+typedef D3DVALUE D3DRMMATRIX4D[4][4];
+
+typedef struct _D3DRMQUATERNION {
+ D3DVALUE s;
+ D3DVECTOR v;
+} D3DRMQUATERNION, *LPD3DRMQUATERNION;
+
+typedef struct _D3DRMRAY {
+ D3DVECTOR dvDir;
+ D3DVECTOR dvPos;
+} D3DRMRAY, *LPD3DRMRAY;
+
+typedef struct _D3DRMBOX {
+ D3DVECTOR min;
+ D3DVECTOR max;
+} D3DRMBOX, *LPD3DRMBOX;
+
+typedef void (*D3DRMWRAPCALLBACK)(D3DVECTOR *vec, int *u, int *v, D3DVECTOR *a, D3DVECTOR *b, void *ctx);
+
+typedef enum _D3DRMLIGHTTYPE {
+ D3DRMLIGHT_AMBIENT,
+ D3DRMLIGHT_POINT,
+ D3DRMLIGHT_SPOT,
+ D3DRMLIGHT_DIRECTIONAL,
+ D3DRMLIGHT_PARALLELPOINT
+} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
+
+typedef enum _D3DRMSHADEMODE {
+ D3DRMSHADE_FLAT = 0,
+ D3DRMSHADE_GOURAUD = 1,
+ D3DRMSHADE_PHONG = 2,
+ D3DRMSHADE_MASK = 7,
+ D3DRMSHADE_MAX = 8
+} D3DRMSHADEMODE, *LPD3DRMSHADEMODE;
+
+typedef enum _D3DRMLIGHTMODE {
+ D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX,
+ D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX,
+ D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX,
+ D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX
+} D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE;
+
+typedef enum _D3DRMFILLMODE {
+ D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX,
+ D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX,
+ D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX,
+ D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX,
+ D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX
+} D3DRMFILLMODE, *LPD3DRMFILLMODE;
+
+typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
+
+#define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME)
+#define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID)
+#define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
+#define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
+#define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
+
+#define D3DRMRENDERMODE_BLENDEDTRANSPARENCY 1
+#define D3DRMRENDERMODE_SORTEDTRANSPARENCY 2
+#define D3DRMRENDERMODE_LIGHTINMODELSPACE 8
+#define D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR 16
+#define D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32
+
+typedef enum _D3DRMTEXTUREQUALITY {
+ D3DRMTEXTURE_NEAREST,
+ D3DRMTEXTURE_LINEAR,
+ D3DRMTEXTURE_MIPNEAREST,
+ D3DRMTEXTURE_MIPLINEAR,
+ D3DRMTEXTURE_LINEARMIPNEAREST,
+ D3DRMTEXTURE_LINEARMIPLINEAR
+} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
+
+#define D3DRMTEXTURE_FORCERESIDENT 0x00000001
+#define D3DRMTEXTURE_STATIC 0x00000002
+#define D3DRMTEXTURE_DOWNSAMPLEPOINT 0x00000004
+#define D3DRMTEXTURE_DOWNSAMPLEBILINEAR 0x00000008
+#define D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH 0x00000010
+#define D3DRMTEXTURE_DOWNSAMPLENONE 0x00000020
+#define D3DRMTEXTURE_CHANGEDPIXELS 0x00000040
+#define D3DRMTEXTURE_CHANGEDPALETTE 0x00000080
+#define D3DRMTEXTURE_INVALIDATEONLY 0x00000100
+
+#define D3DRMSHADOW_TRUEALPHA 0x00000001
+
+typedef enum _D3DRMCOMBINETYPE {
+ D3DRMCOMBINE_REPLACE,
+ D3DRMCOMBINE_BEFORE,
+ D3DRMCOMBINE_AFTER
+} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
+
+typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL;
+
+typedef enum _D3DRMPALETTEFLAGS
+{
+ D3DRMPALETTE_FREE,
+ D3DRMPALETTE_READONLY,
+ D3DRMPALETTE_RESERVED
+} D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS;
+
+typedef struct _D3DRMPALETTEENTRY {
+ unsigned char red;
+ unsigned char green;
+ unsigned char blue;
+ unsigned char flags;
+} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
+
+typedef struct _D3DRMIMAGE {
+ int width;
+ int height;
+ int aspectx;
+ int aspecty;
+ int depth;
+ int rgb;
+ int bytes_per_line;
+ void* buffer1;
+ void* buffer2;
+ ULONG red_mask;
+ ULONG green_mask;
+ ULONG blue_mask;
+ ULONG alpha_mask;
+ int palette_size;
+ D3DRMPALETTEENTRY* palette;
+} D3DRMIMAGE, *LPD3DRMIMAGE;
+
+typedef enum _D3DRMWRAPTYPE {
+ D3DRMWRAP_FLAT,
+ D3DRMWRAP_CYLINDER,
+ D3DRMWRAP_SPHERE,
+ D3DRMWRAP_CHROME,
+ D3DRMWRAP_SHEET,
+ D3DRMWRAP_BOX
+} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
+
+#define D3DRMWIREFRAME_CULL 1
+#define D3DRMWIREFRAME_HIDDENLINE 2
+
+typedef enum _D3DRMPROJECTIONTYPE
+{
+ D3DRMPROJECT_PERSPECTIVE,
+ D3DRMPROJECT_ORTHOGRAPHIC,
+ D3DRMPROJECT_RIGHTHANDPERSPECTIVE,
+ D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC
+} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
+
+#define D3DRMOPTIONS_LEFTHANDED 0x00000001
+#define D3DRMOPTIONS_RIGHTHANDED 0x00000002
+
+typedef enum _D3DRMXOFFORMAT {
+ D3DRMXOF_BINARY,
+ D3DRMXOF_COMPRESSED,
+ D3DRMXOF_TEXT
+} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
+
+typedef DWORD D3DRMSAVEOPTIONS;
+#define D3DRMXOFSAVE_NORMALS 1
+#define D3DRMXOFSAVE_TEXTURECOORDINATES 2
+#define D3DRMXOFSAVE_MATERIALS 4
+#define D3DRMXOFSAVE_TEXTURENAMES 8
+#define D3DRMXOFSAVE_ALL 15
+#define D3DRMXOFSAVE_TEMPLATES 16
+#define D3DRMXOFSAVE_TEXTURETOPOLOGY 32
+
+typedef enum _D3DRMCOLORSOURCE {
+ D3DRMCOLOR_FROMFACE,
+ D3DRMCOLOR_FROMVERTEX
+} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
+
+typedef enum _D3DRMFRAMECONSTRAINT {
+ D3DRMCONSTRAIN_Z,
+ D3DRMCONSTRAIN_Y,
+ D3DRMCONSTRAIN_X
+} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
+
+typedef enum _D3DRMMATERIALMODE {
+ D3DRMMATERIAL_FROMMESH,
+ D3DRMMATERIAL_FROMPARENT,
+ D3DRMMATERIAL_FROMFRAME
+} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
+
+typedef enum _D3DRMFOGMODE {
+ D3DRMFOG_LINEAR,
+ D3DRMFOG_EXPONENTIAL,
+ D3DRMFOG_EXPONENTIALSQUARED
+} D3DRMFOGMODE, *LPD3DRMFOGMODE;
+
+typedef enum _D3DRMZBUFFERMODE {
+ D3DRMZBUFFER_FROMPARENT,
+ D3DRMZBUFFER_ENABLE,
+ D3DRMZBUFFER_DISABLE
+} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
+
+typedef enum _D3DRMSORTMODE {
+ D3DRMSORT_FROMPARENT,
+ D3DRMSORT_NONE,
+ D3DRMSORT_FRONTTOBACK,
+ D3DRMSORT_BACKTOFRONT
+} D3DRMSORTMODE, *LPD3DRMSORTMODE;
+
+typedef struct _D3DRMMATERIALOVERRIDE {
+ DWORD dwSize;
+ DWORD dwFlags;
+ D3DCOLORVALUE dcDiffuse;
+ D3DCOLORVALUE dcAmbient;
+ D3DCOLORVALUE dcEmissive;
+ D3DCOLORVALUE dcSpecular;
+ D3DVALUE dvPower;
+ IUnknown *lpD3DRMTex;
+} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
+
+#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY 0x00000001
+#define D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY 0x00000002
+#define D3DRMMATERIALOVERRIDE_DIFFUSE 0x00000003
+#define D3DRMMATERIALOVERRIDE_AMBIENT 0x00000004
+#define D3DRMMATERIALOVERRIDE_EMISSIVE 0x00000008
+#define D3DRMMATERIALOVERRIDE_SPECULAR 0x00000010
+#define D3DRMMATERIALOVERRIDE_POWER 0x00000020
+#define D3DRMMATERIALOVERRIDE_TEXTURE 0x00000040
+#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY 0x00000080
+#define D3DRMMATERIALOVERRIDE_ALL 0x000000FF
+
+#define D3DRMFPTF_ALPHA 0x00000001
+#define D3DRMFPTF_NOALPHA 0x00000002
+#define D3DRMFPTF_PALETTIZED 0x00000004
+#define D3DRMFPTF_NOTPALETTIZED 0x00000008
+
+#define D3DRMSTATECHANGE_UPDATEONLY 0x000000001
+#define D3DRMSTATECHANGE_VOLATILE 0x000000002
+#define D3DRMSTATECHANGE_NONVOLATILE 0x000000004
+#define D3DRMSTATECHANGE_RENDER 0x000000020
+#define D3DRMSTATECHANGE_LIGHT 0x000000040
+
+#define D3DRMDEVICE_NOZBUFFER 0x00000001
+
+#define D3DRMCALLBACK_PREORDER 0
+#define D3DRMCALLBACK_POSTORDER 1
+
+#define D3DRMRAYPICK_ONLYBOUNDINGBOXES 0x01
+#define D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES 0x02
+#define D3DRMRAYPICK_INTERPOLATEUV 0x04
+#define D3DRMRAYPICK_INTERPOLATECOLOR 0x08
+#define D3DRMRAYPICK_INTERPOLATENORMAL 0x10
+
+#define D3DRMADDFACES_VERTICESONLY 1
+
+#define D3DRMGENERATENORMALS_PRECOMPACT 1
+#define D3DRMGENERATENORMALS_USECREASEANGLE 2
+
+#define D3DRMMESHBUILDER_DIRECTPARENT 1
+#define D3DRMMESHBUILDER_ROOTMESH 2
+
+#define D3DRMMESHBUILDER_RENDERENABLE 0x00000001
+#define D3DRMMESHBUILDER_PICKENABLE 0x00000002
+
+#define D3DRMADDMESHBUILDER_DONTCOPYAPPDATA 1
+#define D3DRMADDMESHBUILDER_FLATTENSUBMESHES 2
+#define D3DRMADDMESHBUILDER_NOSUBMESHES 4
+
+#define D3DRMMESHBUILDERAGE_GEOMETRY 0x00000001
+#define D3DRMMESHBUILDERAGE_MATERIALS 0x00000002
+#define D3DRMMESHBUILDERAGE_TEXTURES 0x00000004
+
+#define D3DRMFVF_TYPE 0x00000001
+#define D3DRMFVF_NORMAL 0x00000002
+#define D3DRMFVF_COLOR 0x00000004
+#define D3DRMFVF_TEXTURECOORDS 0x00000008
+
+#define D3DRMVERTEX_STRIP 0x00000001
+#define D3DRMVERTEX_FAN 0x00000002
+#define D3DRMVERTEX_LIST 0x00000004
+
+#define D3DRMCLEAR_TARGET 0x00000001
+#define D3DRMCLEAR_ZBUFFER 0x00000002
+#define D3DRMCLEAR_DIRTYRECTS 0x00000004
+#define D3DRMCLEAR_ALL (D3DRMCLEAR_TARGET | D3DRMCLEAR_ZBUFFER | D3DRMCLEAR_DIRTYRECTS)
+
+#define D3DRMFOGMETHOD_VERTEX 0x00000001
+#define D3DRMFOGMETHOD_TABLE 0x00000002
+#define D3DRMFOGMETHOD_ANY 0x00000004
+
+#define D3DRMFRAME_RENDERENABLE 0x00000001
+#define D3DRMFRAME_PICKENABLE 0x00000002
+
+typedef DWORD D3DRMANIMATIONOPTIONS;
+#define D3DRMANIMATION_OPEN 0x00000001
+#define D3DRMANIMATION_CLOSED 0x00000002
+#define D3DRMANIMATION_LINEARPOSITION 0x00000004
+#define D3DRMANIMATION_SPLINEPOSITION 0x00000008
+#define D3DRMANIMATION_SCALEANDROTATION 0x00000010
+#define D3DRMANIMATION_POSITION 0x00000020
+
+typedef DWORD D3DRMINTERPOLATIONOPTIONS;
+#define D3DRMINTERPOLATION_OPEN 0x0001
+#define D3DRMINTERPOLATION_CLOSED 0x0002
+#define D3DRMINTERPOLATION_NEAREST 0x0100
+#define D3DRMINTERPOLATION_LINEAR 0x0004
+#define D3DRMINTERPOLATION_SPLINE 0x0008
+#define D3DRMINTERPOLATION_VERTEXCOLOR 0x0040
+#define D3DRMINTERPOLATION_SLERPNORMALS 0x0080
+
+typedef DWORD D3DRMLOADOPTIONS;
+
+#define D3DRMLOAD_FROMFILE __MSABI_LONG(0x000)
+#define D3DRMLOAD_FROMRESOURCE __MSABI_LONG(0x001)
+#define D3DRMLOAD_FROMMEMORY __MSABI_LONG(0x002)
+#define D3DRMLOAD_FROMSTREAM __MSABI_LONG(0x004)
+#define D3DRMLOAD_FROMURL __MSABI_LONG(0x008)
+
+#define D3DRMLOAD_BYNAME __MSABI_LONG(0x010)
+#define D3DRMLOAD_BYPOSITION __MSABI_LONG(0x020)
+#define D3DRMLOAD_BYGUID __MSABI_LONG(0x040)
+#define D3DRMLOAD_FIRST __MSABI_LONG(0x080)
+
+#define D3DRMLOAD_INSTANCEBYREFERENCE __MSABI_LONG(0x100)
+#define D3DRMLOAD_INSTANCEBYCOPYING __MSABI_LONG(0x200)
+
+#define D3DRMLOAD_ASYNCHRONOUS __MSABI_LONG(0x400)
+
+typedef struct _D3DRMLOADRESOURCE
+{
+ HMODULE hModule;
+ const char *lpName;
+ const char *lpType;
+} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
+
+typedef struct _D3DRMLOADMEMORY
+{
+ void *lpMemory;
+ DWORD dSize;
+} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
+
+#define D3DRMPMESHSTATUS_VALID 0x01
+#define D3DRMPMESHSTATUS_INTERRUPTED 0x02
+#define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04
+#define D3DRMPMESHSTATUS_COMPLETE 0x08
+#define D3DRMPMESHSTATUS_RENDERABLE 0x10
+
+#define D3DRMPMESHEVENT_BASEMESH 0x01
+#define D3DRMPMESHEVENT_COMPLETE 0x02
+
+typedef struct _D3DRMPMESHLOADSTATUS {
+ DWORD dwSize;
+ DWORD dwPMeshSize;
+ DWORD dwBaseMeshSize;
+ DWORD dwBytesLoaded;
+ DWORD dwVerticesLoaded;
+ DWORD dwFacesLoaded;
+ HRESULT dwLoadResult;
+ DWORD dwFlags;
+} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
+
+typedef enum _D3DRMUSERVISUALREASON {
+ D3DRMUSERVISUAL_CANSEE,
+ D3DRMUSERVISUAL_RENDER
+} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
+
+typedef struct _D3DRMANIMATIONKEY
+{
+ DWORD dwSize;
+ DWORD dwKeyType;
+ D3DVALUE dvTime;
+ DWORD dwID;
+#if !defined(__cplusplus) || !defined(D3D_OVERLOADS)
+ union
+ {
+ D3DRMQUATERNION dqRotateKey;
+ D3DVECTOR dvScaleKey;
+ D3DVECTOR dvPositionKey;
+ } DUMMYUNIONNAME;
+#else
+ D3DVALUE dvK[4];
+#endif
+} D3DRMANIMATIONKEY;
+typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY;
+
+#define D3DRMANIMATION_ROTATEKEY 0x01
+#define D3DRMANIMATION_SCALEKEY 0x02
+#define D3DRMANIMATION_POSITIONKEY 0x03
+
+typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING;
+static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1;
+static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2;
+static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4;
+
+typedef struct _D3DRMVERTEX {
+ D3DVECTOR position;
+ D3DVECTOR normal;
+ D3DVALUE tu;
+ D3DVALUE tv;
+ D3DCOLOR color;
+} D3DRMVERTEX, *LPD3DRMVERTEX;
+
+typedef LONG D3DRMGROUPINDEX;
+static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1;
+
+void WINAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D m, D3DRMQUATERNION *q);
+
+D3DRMQUATERNION * WINAPI D3DRMQuaternionFromRotation(D3DRMQUATERNION *x, D3DVECTOR *axis, D3DVALUE theta);
+D3DRMQUATERNION * WINAPI D3DRMQuaternionMultiply(D3DRMQUATERNION *ret, D3DRMQUATERNION *x, D3DRMQUATERNION *y);
+D3DRMQUATERNION * WINAPI D3DRMQuaternionSlerp(D3DRMQUATERNION *ret,
+ D3DRMQUATERNION *x, D3DRMQUATERNION *y, D3DVALUE alpha);
+
+D3DVECTOR * WINAPI D3DRMVectorAdd(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
+D3DVECTOR * WINAPI D3DRMVectorCrossProduct(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
+D3DVALUE WINAPI D3DRMVectorDotProduct(D3DVECTOR *x, D3DVECTOR *y);
+D3DVECTOR * WINAPI D3DRMVectorNormalize(D3DVECTOR *x);
+
+#define D3DRMVectorNormalise D3DRMVectorNormalize
+
+D3DVALUE WINAPI D3DRMVectorModulus(D3DVECTOR *x);
+D3DVECTOR * WINAPI D3DRMVectorRandom(D3DVECTOR *ret);
+D3DVECTOR * WINAPI D3DRMVectorRotate(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *axis, D3DVALUE theta);
+D3DVECTOR * WINAPI D3DRMVectorReflect(D3DVECTOR *ret, D3DVECTOR *ray, D3DVECTOR *normal);
+D3DVECTOR * WINAPI D3DRMVectorScale(D3DVECTOR *ret, D3DVECTOR *x, D3DVALUE scale);
+D3DVECTOR * WINAPI D3DRMVectorSubtract(D3DVECTOR *ret, D3DVECTOR *x, D3DVECTOR *y);
+
+D3DCOLOR WINAPI D3DRMCreateColorRGB(D3DVALUE, D3DVALUE, D3DVALUE);
+D3DCOLOR WINAPI D3DRMCreateColorRGBA(D3DVALUE, D3DVALUE, D3DVALUE, D3DVALUE);
+D3DVALUE WINAPI D3DRMColorGetAlpha(D3DCOLOR);
+D3DVALUE WINAPI D3DRMColorGetBlue(D3DCOLOR);
+D3DVALUE WINAPI D3DRMColorGetGreen(D3DCOLOR);
+D3DVALUE WINAPI D3DRMColorGetRed(D3DCOLOR);
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif
diff --git a/d3drmobj.h b/d3drmobj.h
new file mode 100644
index 0000000..0484322
--- /dev/null
+++ b/d3drmobj.h
@@ -0,0 +1,4703 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2008 Vijay Kiran Kamuju
+ * Copyright (C) 2010 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DRMOBJ_H__
+#define __D3DRMOBJ_H__
+
+#include <objbase.h>
+#define VIRTUAL
+#include <d3drmdef.h>
+#include <d3d.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Direct3DRM object CLSIDs */
+
+DEFINE_GUID(CLSID_CDirect3DRMDevice, 0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMViewport, 0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMFrame, 0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMMesh, 0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder, 0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMFace, 0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMLight, 0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMTexture, 0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMWrap, 0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMMaterial, 0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMAnimation, 0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMAnimationSet, 0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMUserVisual, 0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMShadow, 0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator, 0xde9eaa1, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator, 0xde9eaa2, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator, 0xde9eaa3, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator, 0xde9eaa6, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator, 0xde9eaa7, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator, 0xde9eaa8, 0x3b84, 0x11d0, 0x9b, 0x6d, 0x0, 0x0, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh, 0x4516ec40, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(CLSID_CDirect3DRMClippedVisual, 0x5434e72d, 0x6d66, 0x11d1, 0xbb, 0xb, 0x0, 0x0, 0xf8, 0x75, 0x86, 0x5a);
+
+/* Direct3DRM object interface GUIDs */
+
+DEFINE_GUID(IID_IDirect3DRMObject, 0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMObject2, 0x4516ec7c, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMDevice, 0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMDevice2, 0x4516ec78, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMDevice3, 0x549f498b, 0xbfeb, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
+DEFINE_GUID(IID_IDirect3DRMViewport, 0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMViewport2, 0x4a1b1be6, 0xbfed, 0x11d1, 0x8e, 0xd8, 0x00, 0xa0, 0xc9, 0x67, 0xa4, 0x82);
+DEFINE_GUID(IID_IDirect3DRMFrame, 0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMFrame2, 0xc3dfbd60, 0x3988, 0x11d0, 0x9e, 0xc2, 0x00, 0x00, 0xc0, 0x29, 0x1a, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMFrame3, 0xff6b7f70, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
+DEFINE_GUID(IID_IDirect3DRMVisual, 0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMMesh, 0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMMeshBuilder, 0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMMeshBuilder2, 0x4516ec77, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMMeshBuilder3, 0x4516ec82, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMFace, 0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMFace2, 0x4516ec81, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMLight, 0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMTexture, 0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMTexture2, 0x120f30c0, 0x1629, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b);
+DEFINE_GUID(IID_IDirect3DRMTexture3, 0xff6b7f73, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
+DEFINE_GUID(IID_IDirect3DRMWrap, 0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMMaterial, 0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMMaterial2, 0xff6b7f75, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
+DEFINE_GUID(IID_IDirect3DRMAnimation, 0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMAnimation2, 0xff6b7f77, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
+DEFINE_GUID(IID_IDirect3DRMAnimationSet, 0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMAnimationSet2, 0xff6b7f79, 0xa40e, 0x11d1, 0x91, 0xf9, 0x00, 0x00, 0xf8, 0x75, 0x8e, 0x66);
+DEFINE_GUID(IID_IDirect3DRMObjectArray, 0x242f6bc2, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMDeviceArray, 0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMViewportArray, 0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMFrameArray, 0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMVisualArray, 0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMLightArray, 0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMPickedArray, 0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMFaceArray, 0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMAnimationArray, 0xd5f1cae0, 0x4bd7, 0x11d1, 0xb9, 0x74, 0x00, 0x60, 0x08, 0x3e, 0x45, 0xf3);
+DEFINE_GUID(IID_IDirect3DRMUserVisual, 0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMShadow, 0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x00, 0x00, 0xc0, 0x38, 0x25, 0xa1);
+DEFINE_GUID(IID_IDirect3DRMShadow2, 0x86b44e25, 0x9c82, 0x11d1, 0xbb, 0x0b, 0x00, 0xa0, 0xc9, 0x81, 0xa0, 0xa6);
+DEFINE_GUID(IID_IDirect3DRMInterpolator, 0x242f6bc1, 0x3849, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMProgressiveMesh, 0x4516ec79, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMPicked2Array, 0x4516ec7b, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+DEFINE_GUID(IID_IDirect3DRMClippedVisual, 0x5434e733, 0x6d66, 0x11d1, 0xbb, 0x0b, 0x00, 0x00, 0xf8, 0x75, 0x86, 0x5a);
+
+/*****************************************************************************
+ * Predeclare the interfaces
+ */
+
+typedef struct IDirect3DRMObject *LPDIRECT3DRMOBJECT, **LPLPDIRECT3DRMOBJECT;
+typedef struct IDirect3DRMObject2 *LPDIRECT3DRMOBJECT2, **LPLPDIRECT3DRMOBJECT2;
+typedef struct IDirect3DRMDevice *LPDIRECT3DRMDEVICE, **LPLPDIRECT3DRMDEVICE;
+typedef struct IDirect3DRMDevice2 *LPDIRECT3DRMDEVICE2, **LPLPDIRECT3DRMDEVICE2;
+typedef struct IDirect3DRMDevice3 *LPDIRECT3DRMDEVICE3, **LPLPDIRECT3DRMDEVICE3;
+typedef struct IDirect3DRMViewport *LPDIRECT3DRMVIEWPORT, **LPLPDIRECT3DRMVIEWPORT;
+typedef struct IDirect3DRMViewport2 *LPDIRECT3DRMVIEWPORT2, **LPLPDIRECT3DRMVIEWPORT2;
+typedef struct IDirect3DRMFrame *LPDIRECT3DRMFRAME, **LPLPDIRECT3DRMFRAME;
+typedef struct IDirect3DRMFrame2 *LPDIRECT3DRMFRAME2, **LPLPDIRECT3DRMFRAME2;
+typedef struct IDirect3DRMFrame3 *LPDIRECT3DRMFRAME3, **LPLPDIRECT3DRMFRAME3;
+typedef struct IDirect3DRMVisual *LPDIRECT3DRMVISUAL, **LPLPDIRECT3DRMVISUAL;
+typedef struct IDirect3DRMMesh *LPDIRECT3DRMMESH, **LPLPDIRECT3DRMMESH;
+typedef struct IDirect3DRMMeshBuilder *LPDIRECT3DRMMESHBUILDER, **LPLPDIRECT3DRMMESHBUILDER;
+typedef struct IDirect3DRMMeshBuilder2 *LPDIRECT3DRMMESHBUILDER2, **LPLPDIRECT3DRMMESHBUILDER2;
+typedef struct IDirect3DRMMeshBuilder3 *LPDIRECT3DRMMESHBUILDER3, **LPLPDIRECT3DRMMESHBUILDER3;
+typedef struct IDirect3DRMFace *LPDIRECT3DRMFACE, **LPLPDIRECT3DRMFACE;
+typedef struct IDirect3DRMFace2 *LPDIRECT3DRMFACE2, **LPLPDIRECT3DRMFACE2;
+typedef struct IDirect3DRMLight *LPDIRECT3DRMLIGHT, **LPLPDIRECT3DRMLIGHT;
+typedef struct IDirect3DRMTexture *LPDIRECT3DRMTEXTURE, **LPLPDIRECT3DRMTEXTURE;
+typedef struct IDirect3DRMTexture2 *LPDIRECT3DRMTEXTURE2, **LPLPDIRECT3DRMTEXTURE2;
+typedef struct IDirect3DRMTexture3 *LPDIRECT3DRMTEXTURE3, **LPLPDIRECT3DRMTEXTURE3;
+typedef struct IDirect3DRMWrap *LPDIRECT3DRMWRAP, **LPLPDIRECT3DRMWRAP;
+typedef struct IDirect3DRMMaterial *LPDIRECT3DRMMATERIAL, **LPLPDIRECT3DRMMATERIAL;
+typedef struct IDirect3DRMMaterial2 *LPDIRECT3DRMMATERIAL2, **LPLPDIRECT3DRMMATERIAL2;
+typedef struct IDirect3DRMAnimation *LPDIRECT3DRMANIMATION, **LPLPDIRECT3DRMANIMATION;
+typedef struct IDirect3DRMAnimation2 *LPDIRECT3DRMANIMATION2, **LPLPDIRECT3DRMANIMATION2;
+typedef struct IDirect3DRMAnimationSet *LPDIRECT3DRMANIMATIONSET, **LPLPDIRECT3DRMANIMATIONSET;
+typedef struct IDirect3DRMAnimationSet2 *LPDIRECT3DRMANIMATIONSET2, **LPLPDIRECT3DRMANIMATIONSET2;
+typedef struct IDirect3DRMUserVisual *LPDIRECT3DRMUSERVISUAL, **LPLPDIRECT3DRMUSERVISUAL;
+typedef struct IDirect3DRMShadow *LPDIRECT3DRMSHADOW, **LPLPDIRECT3DRMSHADOW;
+typedef struct IDirect3DRMShadow2 *LPDIRECT3DRMSHADOW2, **LPLPDIRECT3DRMSHADOW2;
+typedef struct IDirect3DRMArray *LPDIRECT3DRMARRAY, **LPLPDIRECT3DRMARRAY;
+typedef struct IDirect3DRMObjectArray *LPDIRECT3DRMOBJECTARRAY, **LPLPDIRECT3DRMOBJECTARRAY;
+typedef struct IDirect3DRMDeviceArray *LPDIRECT3DRMDEVICEARRAY, **LPLPDIRECT3DRMDEVICEARRAY;
+typedef struct IDirect3DRMFaceArray *LPDIRECT3DRMFACEARRAY, **LPLPDIRECT3DRMFACEARRAY;
+typedef struct IDirect3DRMViewportArray *LPDIRECT3DRMVIEWPORTARRAY, **LPLPDIRECT3DRMVIEWPORTARRAY;
+typedef struct IDirect3DRMFrameArray *LPDIRECT3DRMFRAMEARRAY, **LPLPDIRECT3DRMFRAMEARRAY;
+typedef struct IDirect3DRMAnimationArray *LPDIRECT3DRMANIMATIONARRAY, **LPLPDIRECT3DRMANIMATIONARRAY;
+typedef struct IDirect3DRMVisualArray *LPDIRECT3DRMVISUALARRAY, **LPLPDIRECT3DRMVISUALARRAY;
+typedef struct IDirect3DRMPickedArray *LPDIRECT3DRMPICKEDARRAY, **LPLPDIRECT3DRMPICKEDARRAY;
+typedef struct IDirect3DRMPicked2Array *LPDIRECT3DRMPICKED2ARRAY, **LPLPDIRECT3DRMPICKED2ARRAY;
+typedef struct IDirect3DRMLightArray *LPDIRECT3DRMLIGHTARRAY, **LPLPDIRECT3DRMLIGHTARRAY;
+typedef struct IDirect3DRMProgressiveMesh *LPDIRECT3DRMPROGRESSIVEMESH, **LPLPDIRECT3DRMPROGRESSIVEMESH;
+typedef struct IDirect3DRMClippedVisual *LPDIRECT3DRMCLIPPEDVISUAL, **LPLPDIRECT3DRMCLIPPEDVISUAL;
+
+/* ********************************************************************
+ Types and structures
+ ******************************************************************** */
+
+typedef void (__cdecl *D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg);
+typedef void (__cdecl *D3DRMFRAMEMOVECALLBACK)(struct IDirect3DRMFrame *frame, void *ctx, D3DVALUE delta);
+typedef void (__cdecl *D3DRMFRAME3MOVECALLBACK)(struct IDirect3DRMFrame3 *frame, void *ctx, D3DVALUE delta);
+typedef void (__cdecl *D3DRMUPDATECALLBACK)(struct IDirect3DRMDevice *device, void *ctx, int count, D3DRECT *rects);
+typedef void (__cdecl *D3DRMDEVICE3UPDATECALLBACK)(struct IDirect3DRMDevice3 *device, void *ctx,
+ int count, D3DRECT *rects);
+typedef int (__cdecl *D3DRMUSERVISUALCALLBACK)(struct IDirect3DRMUserVisual *visual, void *ctx,
+ D3DRMUSERVISUALREASON reason, struct IDirect3DRMDevice *device, struct IDirect3DRMViewport *viewport);
+typedef HRESULT (__cdecl *D3DRMLOADTEXTURECALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture **texture);
+typedef HRESULT (__cdecl *D3DRMLOADTEXTURE3CALLBACK)(char *tex_name, void *arg, struct IDirect3DRMTexture3 **texture);
+typedef void (__cdecl *D3DRMLOADCALLBACK)(struct IDirect3DRMObject *object, REFIID objectguid, void *arg);
+typedef HRESULT (__cdecl *D3DRMDOWNSAMPLECALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
+ IDirectDrawSurface *src_surface, IDirectDrawSurface *dst_surface);
+typedef HRESULT (__cdecl *D3DRMVALIDATIONCALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx,
+ DWORD flags, DWORD rect_count, RECT *rects);
+
+typedef struct _D3DRMPICKDESC
+{
+ ULONG ulFaceIdx;
+ LONG lGroupIdx;
+ D3DVECTOR vPosition;
+} D3DRMPICKDESC, *LPD3DRMPICKDESC;
+
+typedef struct _D3DRMPICKDESC2
+{
+ ULONG ulFaceIdx;
+ LONG lGroupIdx;
+ D3DVECTOR vPosition;
+ D3DVALUE tu;
+ D3DVALUE tv;
+ D3DVECTOR dvNormal;
+ D3DCOLOR dcColor;
+} D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
+
+/*****************************************************************************
+ * IDirect3DRMObject interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRMObject
+DECLARE_INTERFACE_(IDirect3DRMObject,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMObject_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMObject_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMObject_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMObject_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMObject_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMObject_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMObject_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMObject_AddRef(p) (p)->AddRef()
+#define IDirect3DRMObject_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMObject_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMObject_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMObject_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMObject_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMObject_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMObject_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMObject_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMObject_GetClassName(p,a,b) (p)->GetClassName(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMObject2 interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRMObject2
+DECLARE_INTERFACE_(IDirect3DRMObject2,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject2 methods ***/
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(GetClientData)(THIS_ DWORD id, void **data) PURE;
+ STDMETHOD(GetDirect3DRM)(THIS_ struct IDirect3DRM **d3drm) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(SetClientData)(THIS_ DWORD id, void *data, DWORD flags) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetAge)(THIS_ DWORD flags, DWORD *age) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMObject2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMObject2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject2 methods ***/
+#define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMObject2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMObject2_GetClientData(p,a,b) (p)->lpVtbl->SetClientData(p,a,b)
+#define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->lpVtbl->GetDirect3DRM(p,a)
+#define IDirect3DRMObject2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->lpVtbl->SetClientData(p,a,b,c)
+#define IDirect3DRMObject2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMObject2_GetAge(p,a,b) (p)->lpVtbl->GetAge(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMObject2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMObject2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMObject2_Release(p) (p)->Release()
+/*** IDirect3DRMObject2 methods ***/
+#define IDirect3DRMObject2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMObject2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMObject2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMObject2_GetClientData(p,a,b) (p)->SetClientData(a,b)
+#define IDirect3DRMObject2_GetDirect3DRM(p,a) (p)->GetDirect3DRM(a)
+#define IDirect3DRMObject2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMObject2_SetClientData(p,a,b,c) (p)->SetClientData(a,b,c)
+#define IDirect3DRMObject2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMObject2_GetAge(p,a,b) (p)->GetAge(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMVisual interface
+ */
+#define INTERFACE IDirect3DRMVisual
+DECLARE_INTERFACE_(IDirect3DRMVisual,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMVisual_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMVisual_AddRef(p) (p)->AddRef()
+#define IDirect3DRMVisual_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMVisual_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMVisual_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMVisual_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMVisual_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMDevice interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRMDevice
+DECLARE_INTERFACE_(IDirect3DRMDevice,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMDevice methods ***/
+ STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
+ STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
+ STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
+ STDMETHOD(Update)(THIS) PURE;
+ STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
+ STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
+ STDMETHOD(SetDither)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
+ STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
+ STDMETHOD_(WINBOOL, GetDither)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
+ STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
+ STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
+ STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMDevice_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMDevice_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMDevice_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMDevice_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMDevice_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMDevice_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMDevice_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
+#define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
+#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
+#define IDirect3DRMDevice_Update(p) (p)->lpVtbl->Update(p)
+#define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
+#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
+#define IDirect3DRMDevice_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
+#define IDirect3DRMDevice_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
+#define IDirect3DRMDevice_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
+#define IDirect3DRMDevice_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMDevice_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
+#define IDirect3DRMDevice_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
+#define IDirect3DRMDevice_GetDither(p) (p)->lpVtbl->GetDither(p)
+#define IDirect3DRMDevice_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMDevice_GetHeight(p) (p)->lpVtbl->GetHeight(p)
+#define IDirect3DRMDevice_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
+#define IDirect3DRMDevice_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
+#define IDirect3DRMDevice_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMDevice_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
+#define IDirect3DRMDevice_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
+#define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMDevice_AddRef(p) (p)->AddRef()
+#define IDirect3DRMDevice_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMDevice_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMDevice_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMDevice_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMDevice_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMDevice_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMDevice_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMDevice_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice_Init(p,a,b) (p)->Init(a,b)
+#define IDirect3DRMDevice_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
+#define IDirect3DRMDevice_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
+#define IDirect3DRMDevice_Update(p) (p)->Update()
+#define IDirect3DRMDevice_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
+#define IDirect3DRMDevice_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
+#define IDirect3DRMDevice_SetBufferCount(p,a) (p)->SetBufferCount(a)
+#define IDirect3DRMDevice_GetBufferCount(p) (p)->GetBufferCount()
+#define IDirect3DRMDevice_SetDither(p,a) (p)->SetDither(a)
+#define IDirect3DRMDevice_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMDevice_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMDevice_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
+#define IDirect3DRMDevice_GetViewports(p,a) (p)->GetViewports(a)
+#define IDirect3DRMDevice_GetDither(p) (p)->GetDither()
+#define IDirect3DRMDevice_GetShades(p) (p)->GetShades()
+#define IDirect3DRMDevice_GetHeight(p) (p)->GetHeight()
+#define IDirect3DRMDevice_GetWidth(p) (p)->GetWidth()
+#define IDirect3DRMDevice_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
+#define IDirect3DRMDevice_GetWireframeOptions(p) (p)->GetWireframeOptions()
+#define IDirect3DRMDevice_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMDevice_GetColorModel(p) (p)->GetColorModel()
+#define IDirect3DRMDevice_GetTextureQuality(p) (p)->GetTextureQuality()
+#define IDirect3DRMDevice_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMDevice2 interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRMDevice2
+DECLARE_INTERFACE_(IDirect3DRMDevice2,IDirect3DRMDevice)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMDevice methods ***/
+ STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
+ STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
+ STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
+ STDMETHOD(Update)(THIS) PURE;
+ STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
+ STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
+ STDMETHOD(SetDither)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
+ STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
+ STDMETHOD_(WINBOOL, GetDither)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
+ STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
+ STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
+ STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
+ /*** IDirect3DRMDevice2 methods ***/
+ STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
+ STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
+ STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
+ STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
+ STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMDevice2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMDevice2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMDevice2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMDevice2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMDevice2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMDevice2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice2_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
+#define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
+#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
+#define IDirect3DRMDevice2_Update(p) (p)->lpVtbl->Update(p)
+#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
+#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
+#define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
+#define IDirect3DRMDevice2_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
+#define IDirect3DRMDevice2_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
+#define IDirect3DRMDevice2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMDevice2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
+#define IDirect3DRMDevice2_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
+#define IDirect3DRMDevice2_GetDither(p) (p)->lpVtbl->GetDither(p)
+#define IDirect3DRMDevice2_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMDevice2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
+#define IDirect3DRMDevice2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
+#define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
+#define IDirect3DRMDevice2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMDevice2_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
+#define IDirect3DRMDevice2_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
+#define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
+/*** IDirect3DRMDevice2 methods ***/
+#define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
+#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
+#define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
+#define IDirect3DRMDevice2_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
+#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMDevice2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMDevice2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMDevice2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMDevice2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMDevice2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMDevice2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMDevice2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMDevice2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMDevice2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice2_Init(p,a,b) (p)->Init(a,b)
+#define IDirect3DRMDevice2_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
+#define IDirect3DRMDevice2_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
+#define IDirect3DRMDevice2_Update(p) (p)->Update()
+#define IDirect3DRMDevice2_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
+#define IDirect3DRMDevice2_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
+#define IDirect3DRMDevice2_SetBufferCount(p,a) (p)->SetBufferCount(a)
+#define IDirect3DRMDevice2_GetBufferCount(p) (p)->GetBufferCount()
+#define IDirect3DRMDevice2_SetDither(p,a) (p)->SetDither(a)
+#define IDirect3DRMDevice2_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMDevice2_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMDevice2_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
+#define IDirect3DRMDevice2_GetViewports(p,a) (p)->GetViewports(a)
+#define IDirect3DRMDevice2_GetDither(p) (p)->GetDither()
+#define IDirect3DRMDevice2_GetShades(p) (p)->GetShades()
+#define IDirect3DRMDevice2_GetHeight(p) (p)->GetHeight()
+#define IDirect3DRMDevice2_GetWidth(p) (p)->GetWidth()
+#define IDirect3DRMDevice2_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
+#define IDirect3DRMDevice2_GetWireframeOptions(p) (p)->GetWireframeOptions()
+#define IDirect3DRMDevice2_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMDevice2_GetColorModel(p) (p)->GetColorModel()
+#define IDirect3DRMDevice2_GetTextureQuality(p) (p)->GetTextureQuality()
+#define IDirect3DRMDevice2_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
+/*** IDirect3DRMDevice2 methods ***/
+#define IDirect3DRMDevice2_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
+#define IDirect3DRMDevice2_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
+#define IDirect3DRMDevice2_SetRenderMode(p,a) (p)->SetRenderMode(a)
+#define IDirect3DRMDevice2_GetRenderMode(p) (p)->GetRenderMode()
+#define IDirect3DRMDevice2_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMDevice3 interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetClassName
+#endif
+#define INTERFACE IDirect3DRMDevice3
+DECLARE_INTERFACE_(IDirect3DRMDevice3,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMDevice methods ***/
+ STDMETHOD(Init)(THIS_ ULONG width, ULONG height) PURE;
+ STDMETHOD(InitFromD3D)(THIS_ IDirect3D *d3d, IDirect3DDevice *d3d_device) PURE;
+ STDMETHOD(InitFromClipper)(THIS_ IDirectDrawClipper *clipper, GUID *guid, int width, int height) PURE;
+ STDMETHOD(Update)(THIS) PURE;
+ STDMETHOD(AddUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteUpdateCallback)(THIS_ D3DRMUPDATECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetBufferCount)(THIS_ DWORD) PURE;
+ STDMETHOD_(DWORD, GetBufferCount)(THIS) PURE;
+ STDMETHOD(SetDither)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetTextureQuality)(THIS_ D3DRMTEXTUREQUALITY) PURE;
+ STDMETHOD(GetViewports)(THIS_ struct IDirect3DRMViewportArray **array) PURE;
+ STDMETHOD_(WINBOOL, GetDither)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
+ STDMETHOD_(DWORD, GetTrianglesDrawn)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWireframeOptions)(THIS) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(D3DCOLORMODEL, GetColorModel)(THIS) PURE;
+ STDMETHOD_(D3DRMTEXTUREQUALITY, GetTextureQuality)(THIS) PURE;
+ STDMETHOD(GetDirect3DDevice)(THIS_ IDirect3DDevice **d3d_device) PURE;
+ /*** IDirect3DRMDevice2 methods ***/
+ STDMETHOD(InitFromD3D2)(THIS_ IDirect3D2 *d3d, IDirect3DDevice2 *device) PURE;
+ STDMETHOD(InitFromSurface)(THIS_ GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *surface) PURE;
+ STDMETHOD(SetRenderMode)(THIS_ DWORD flags) PURE;
+ STDMETHOD_(DWORD, GetRenderMode)(THIS) PURE;
+ STDMETHOD(GetDirect3DDevice2)(THIS_ IDirect3DDevice2 **device) PURE;
+ /*** IDirect3DRMDevice3 methods ***/
+ STDMETHOD(FindPreferredTextureFormat)(THIS_ DWORD BitDepths, DWORD flags, DDPIXELFORMAT *format) PURE;
+ STDMETHOD(RenderStateChange)(THIS_ D3DRENDERSTATETYPE drsType, DWORD val, DWORD flags) PURE;
+ STDMETHOD(LightStateChange)(THIS_ D3DLIGHTSTATETYPE drsType, DWORD val, DWORD flags) PURE;
+ STDMETHOD(GetStateChangeOptions)(THIS_ DWORD state_class, DWORD state_idx, DWORD *flags) PURE;
+ STDMETHOD(SetStateChangeOptions)(THIS_ DWORD StateClass, DWORD StateNum, DWORD flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMDevice3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMDevice3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMDevice3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMDevice3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMDevice3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMDevice3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice3_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
+#define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->lpVtbl->InitFromD3D(p,a,b)
+#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->lpVtbl->InitFromClipper(p,a,b,c,d)
+#define IDirect3DRMDevice3_Update(p) (p)->lpVtbl->Update(p)
+#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->lpVtbl->AddUpdateCallback(p,a,b)
+#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->lpVtbl->DeleteUpdateCallback(p,a,b)
+#define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->lpVtbl->SetBufferCount(p,a)
+#define IDirect3DRMDevice3_GetBufferCount(p) (p)->lpVtbl->GetBufferCount(p)
+#define IDirect3DRMDevice3_SetDither(p,a) (p)->lpVtbl->SetDither(p,a)
+#define IDirect3DRMDevice3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMDevice3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->lpVtbl->SetTextureQuality(p,a)
+#define IDirect3DRMDevice3_GetViewports(p,a) (p)->lpVtbl->GetViewports(p,a)
+#define IDirect3DRMDevice3_GetDither(p) (p)->lpVtbl->GetDither(p)
+#define IDirect3DRMDevice3_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMDevice3_GetHeight(p) (p)->lpVtbl->GetHeight(p)
+#define IDirect3DRMDevice3_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->lpVtbl->GetTrianglesDrawn(p)
+#define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->lpVtbl->GetWireframeOptions(p)
+#define IDirect3DRMDevice3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMDevice3_GetColorModel(p) (p)->lpVtbl->GetColorModel(p)
+#define IDirect3DRMDevice3_GetTextureQuality(p) (p)->lpVtbl->GetTextureQuality(p)
+#define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->lpVtbl->GetDirect3DDevice(p,a)
+/*** IDirect3DRMDevice2 methods ***/
+#define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->lpVtbl->InitFromD3D2(p,a,b)
+#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->lpVtbl->InitFromSurface(p,a,b,c)
+#define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->lpVtbl->SetRenderMode(p,a)
+#define IDirect3DRMDevice3_GetRenderMode(p) (p)->lpVtbl->GetRenderMode(p)
+#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->lpVtbl->GetDirect3DDevice2(p,a)
+/*** IDirect3DRMDevice3 methods ***/
+#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->lpVtbl->FindPreferredTextureFormat(p,a,b,c)
+#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->lpVtbl->RenderStateChange(p,a,b,c)
+#define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->lpVtbl->LightStateChange(p,a,b,c)
+#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->lpVtbl->GetStateChangeOptions(p,a,b,c)
+#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->lpVtbl->SetStateChangeOptions(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMDevice3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMDevice3_AddRef(p) (p)->AddRef()
+#define IDirect3DRMDevice3_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMDevice3_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMDevice3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMDevice3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMDevice3_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMDevice3_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMDevice3_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMDevice3_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMDevice3_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMDevice methods ***/
+#define IDirect3DRMDevice3_Init(p,a,b) (p)->Init(a,b)
+#define IDirect3DRMDevice3_InitFromD3D(p,a,b) (p)->InitFromD3D(a,b)
+#define IDirect3DRMDevice3_InitFromClipper(p,a,b,c,d) (p)->InitFromClipper(a,b,c,d)
+#define IDirect3DRMDevice3_Update(p) (p)->Update()
+#define IDirect3DRMDevice3_AddUpdateCallback(p,a,b) (p)->AddUpdateCallback(a,b)
+#define IDirect3DRMDevice3_DeleteUpdateCallback(p,a,b) (p)->DeleteUpdateCallback(a,b)
+#define IDirect3DRMDevice3_SetBufferCount(p,a) (p)->SetBufferCount(a)
+#define IDirect3DRMDevice3_GetBufferCount(p) (p)->GetBufferCount()
+#define IDirect3DRMDevice3_SetDither(p,a) (p)->SetDither(a)
+#define IDirect3DRMDevice3_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMDevice3_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMDevice3_SetTextureQuality(p,a) (p)->SetTextureQuality(a)
+#define IDirect3DRMDevice3_GetViewports(p,a) (p)->GetViewports(a)
+#define IDirect3DRMDevice3_GetDither(p) (p)->GetDither()
+#define IDirect3DRMDevice3_GetShades(p) (p)->GetShades()
+#define IDirect3DRMDevice3_GetHeight(p) (p)->GetHeight()
+#define IDirect3DRMDevice3_GetWidth(p) (p)->GetWidth()
+#define IDirect3DRMDevice3_GetTrianglesDrawn(p) (p)->GetTrianglesDrawn()
+#define IDirect3DRMDevice3_GetWireframeOptions(p) (p)->GetWireframeOptions()
+#define IDirect3DRMDevice3_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMDevice3_GetColorModel(p) (p)->GetColorModel()
+#define IDirect3DRMDevice3_GetTextureQuality(p) (p)->GetTextureQuality()
+#define IDirect3DRMDevice3_GetDirect3DDevice(p,a) (p)->GetDirect3DDevice(a)
+/*** IDirect3DRMDevice2 methods ***/
+#define IDirect3DRMDevice3_InitFromD3D2(p,a,b) (p)->InitFromD3D2(a,b)
+#define IDirect3DRMDevice3_InitFromSurface(p,a,b,c) (p)->InitFromSurface(a,b,c)
+#define IDirect3DRMDevice3_SetRenderMode(p,a) (p)->SetRenderMode(a)
+#define IDirect3DRMDevice3_GetRenderMode(p) (p)->GetRenderMode()
+#define IDirect3DRMDevice3_GetDirect3DDevice2(p,a) (p)->GetDirect3DDevice2(a)
+/*** IDirect3DRMDevice3 methods ***/
+#define IDirect3DRMDevice3_FindPreferredTextureFormat(p,a,b,c) (p)->FindPreferredTextureFormat(a,b,c)
+#define IDirect3DRMDevice3_RenderStateChange(p,a,b,c) (p)->RenderStateChange(a,b,c)
+#define IDirect3DRMDevice3_LightStateChange(p,a,b,c) (p)->LightStateChange(a,b,c)
+#define IDirect3DRMDevice3_GetStateChangeOptions(p,a,b,c) (p)->GetStateChangeOptions(a,b,c)
+#define IDirect3DRMDevice3_SetStateChangeOptions(p,a,b,c) (p)->SetStateChangeOptions(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMViewport interface
+ */
+#define INTERFACE IDirect3DRMViewport
+DECLARE_INTERFACE_(IDirect3DRMViewport,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMViewport methods ***/
+ STDMETHOD(Init) (THIS_ IDirect3DRMDevice *device, struct IDirect3DRMFrame *camera,
+ DWORD x, DWORD y, DWORD width, DWORD height) PURE;
+ STDMETHOD(Clear)(THIS) PURE;
+ STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame *frame) PURE;
+ STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetUniformScaling)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame *camera) PURE;
+ STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
+ STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
+ STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
+ STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
+ STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
+ STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
+ STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame **camera) PURE;
+ STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice **device) PURE;
+ STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
+ STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
+ STDMETHOD_(WINBOOL, GetUniformScaling)(THIS) PURE;
+ STDMETHOD_(LONG, GetX)(THIS) PURE;
+ STDMETHOD_(LONG, GetY)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
+ STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
+ STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
+ STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMViewport_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMViewport_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMViewport_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMViewport_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMViewport_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMViewport_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMViewport_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMViewport_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMViewport methods ***/
+#define IDirect3DRMViewport_Init(p,a,b,c,d,e,f) (p)->lpVtbl->Init(p,a,b,c,d,e,f)
+#define IDirect3DRMViewport_Clear(p) (p)->lpVtbl->Clear(p)
+#define IDirect3DRMViewport_Render(p,a) (p)->lpVtbl->Render(p,a)
+#define IDirect3DRMViewport_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
+#define IDirect3DRMViewport_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
+#define IDirect3DRMViewport_SetField(p,a) (p)->lpVtbl->SetField(p,a)
+#define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
+#define IDirect3DRMViewport_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
+#define IDirect3DRMViewport_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
+#define IDirect3DRMViewport_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
+#define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
+#define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
+#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
+#define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
+#define IDirect3DRMViewport_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
+#define IDirect3DRMViewport_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
+#define IDirect3DRMViewport_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
+#define IDirect3DRMViewport_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
+#define IDirect3DRMViewport_GetX(p) (p)->lpVtbl->GetX(p)
+#define IDirect3DRMViewport_GetY(p) (p)->lpVtbl->GetY(p)
+#define IDirect3DRMViewport_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define IDirect3DRMViewport_GetHeight(p) (p)->lpVtbl->GetHeight(p)
+#define IDirect3DRMViewport_GetField(p) (p)->lpVtbl->GetField(p)
+#define IDirect3DRMViewport_GetBack(p) (p)->lpVtbl->GetBack(p)
+#define IDirect3DRMViewport_GetFront(p) (p)->lpVtbl->GetFront(p)
+#define IDirect3DRMViewport_GetProjection(p) (p)->lpVtbl->GetProjection(p)
+#define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMViewport_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMViewport_AddRef(p) (p)->AddRef()
+#define IDirect3DRMViewport_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMViewport_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMViewport_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMViewport_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMViewport_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMViewport_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMViewport_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMViewport_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMViewport_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMViewport methods ***/
+#define IDirect3DRMViewport_Init(p,a,b,c,d,e,f) (p)->Init(a,b,c,d,e,f)
+#define IDirect3DRMViewport_Clear(p) (p)->Clear()
+#define IDirect3DRMViewport_Render(p,a) (p)->Render(a)
+#define IDirect3DRMViewport_SetFront(p,a) (p)->SetFront(a)
+#define IDirect3DRMViewport_SetBack(p,a) (p)->SetBack(a)
+#define IDirect3DRMViewport_SetField(p,a) (p)->SetField(a)
+#define IDirect3DRMViewport_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
+#define IDirect3DRMViewport_SetCamera(p,a) (p)->SetCamera(a)
+#define IDirect3DRMViewport_SetProjection(p,a) (p)->SetProjection(a)
+#define IDirect3DRMViewport_Transform(p,a,b) (p)->Transform(a,b)
+#define IDirect3DRMViewport_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
+#define IDirect3DRMViewport_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
+#define IDirect3DRMViewport_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
+#define IDirect3DRMViewport_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
+#define IDirect3DRMViewport_GetCamera(p,a) (p)->GetCamera(a)
+#define IDirect3DRMViewport_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DRMViewport_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
+#define IDirect3DRMViewport_Pick(p,a,b,c) (p)->Pick(a,b,c)
+#define IDirect3DRMViewport_GetUniformScaling(p) (p)->GetUniformScaling()
+#define IDirect3DRMViewport_GetX(p) (p)->GetX()
+#define IDirect3DRMViewport_GetY(p) (p)->GetY()
+#define IDirect3DRMViewport_GetWidth(p) (p)->GetWidth()
+#define IDirect3DRMViewport_GetHeight(p) (p)->GetHeight()
+#define IDirect3DRMViewport_GetField(p) (p)->GetField()
+#define IDirect3DRMViewport_GetBack(p) (p)->GetBack()
+#define IDirect3DRMViewport_GetFront(p) (p)->GetFront()
+#define IDirect3DRMViewport_GetProjection(p) (p)->GetProjection()
+#define IDirect3DRMViewport_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMViewport2 interface
+ */
+#define INTERFACE IDirect3DRMViewport2
+DECLARE_INTERFACE_(IDirect3DRMViewport2,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMViewport2 methods ***/
+ STDMETHOD(Init) (THIS_ IDirect3DRMDevice3 *device, struct IDirect3DRMFrame3 *camera,
+ DWORD x, DWORD y, DWORD width, DWORD height) PURE;
+ STDMETHOD(Clear)(THIS_ DWORD flags) PURE;
+ STDMETHOD(Render)(THIS_ struct IDirect3DRMFrame3 *frame) PURE;
+ STDMETHOD(SetFront)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetBack)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetField)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetUniformScaling)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetCamera)(THIS_ struct IDirect3DRMFrame3 *camera) PURE;
+ STDMETHOD(SetProjection)(THIS_ D3DRMPROJECTIONTYPE) PURE;
+ STDMETHOD(Transform)(THIS_ D3DRMVECTOR4D *d, D3DVECTOR *s) PURE;
+ STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DRMVECTOR4D *s) PURE;
+ STDMETHOD(Configure)(THIS_ LONG x, LONG y, DWORD width, DWORD height) PURE;
+ STDMETHOD(ForceUpdate)(THIS_ DWORD x1, DWORD y1, DWORD x2, DWORD y2) PURE;
+ STDMETHOD(SetPlane)(THIS_ D3DVALUE left, D3DVALUE right, D3DVALUE bottom, D3DVALUE top) PURE;
+ STDMETHOD(GetCamera)(THIS_ struct IDirect3DRMFrame3 **camera) PURE;
+ STDMETHOD(GetDevice)(THIS_ IDirect3DRMDevice3 **device) PURE;
+ STDMETHOD(GetPlane)(THIS_ D3DVALUE *left, D3DVALUE *right, D3DVALUE *bottom, D3DVALUE *top) PURE;
+ STDMETHOD(Pick)(THIS_ LONG x, LONG y, struct IDirect3DRMPickedArray **visuals) PURE;
+ STDMETHOD_(WINBOOL, GetUniformScaling)(THIS) PURE;
+ STDMETHOD_(LONG, GetX)(THIS) PURE;
+ STDMETHOD_(LONG, GetY)(THIS) PURE;
+ STDMETHOD_(DWORD, GetWidth)(THIS) PURE;
+ STDMETHOD_(DWORD, GetHeight)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetField)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetBack)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetFront)(THIS) PURE;
+ STDMETHOD_(D3DRMPROJECTIONTYPE, GetProjection)(THIS) PURE;
+ STDMETHOD(GetDirect3DViewport)(THIS_ IDirect3DViewport **viewport) PURE;
+ STDMETHOD(TransformVectors)(THIS_ DWORD vector_count, D3DRMVECTOR4D *dst_vectors,
+ D3DVECTOR *src_vectors) PURE;
+ STDMETHOD(InverseTransformVectors)(THIS_ DWORD vector_count, D3DVECTOR *dst_vectors,
+ D3DRMVECTOR4D *src_vectors) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMViewport2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMViewport2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMViewport_2Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMViewport2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMViewport2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMViewport2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMViewport2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMViewport2 methods ***/
+#define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f) (p)->lpVtbl->Init(p,a,b,c,d,e,f)
+#define IDirect3DRMViewport2_Clear(p,a) (p)->lpVtbl->Clear(p,a)
+#define IDirect3DRMViewport2_Render(p,a) (p)->lpVtbl->Render(p,a)
+#define IDirect3DRMViewport2_SetFront(p,a) (p)->lpVtbl->SetFront(p,a)
+#define IDirect3DRMViewport2_SetBack(p,a) (p)->lpVtbl->SetBack(p,a)
+#define IDirect3DRMViewport2_SetField(p,a) (p)->lpVtbl->SetField(p,a)
+#define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->lpVtbl->SetUniformScaling(p,a)
+#define IDirect3DRMViewport2_SetCamera(p,a) (p)->lpVtbl->SetCamera(p,a)
+#define IDirect3DRMViewport2_SetProjection(p,a) (p)->lpVtbl->SetProjection(p,a)
+#define IDirect3DRMViewport2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
+#define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
+#define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->lpVtbl->Configure(p,a,b,c,d)
+#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->lpVtbl->ForceUpdate(p,a,b,c,d)
+#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->lpVtbl->SetPlane(p,a,b,c,d)
+#define IDirect3DRMViewport2_GetCamera(p,a) (p)->lpVtbl->GetCamera(p,a)
+#define IDirect3DRMViewport2_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->lpVtbl->GetPlane(p,a,b,c,d)
+#define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->lpVtbl->Pick(p,a,b,c)
+#define IDirect3DRMViewport2_GetUniformScaling(p) (p)->lpVtbl->GetUniformScaling(p)
+#define IDirect3DRMViewport2_GetX(p) (p)->lpVtbl->GetX(p)
+#define IDirect3DRMViewport2_GetY(p) (p)->lpVtbl->GetY(p)
+#define IDirect3DRMViewport2_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define IDirect3DRMViewport2_GetHeight(p) (p)->lpVtbl->GetHeight(p)
+#define IDirect3DRMViewport2_GetField(p) (p)->lpVtbl->GetField(p)
+#define IDirect3DRMViewport2_GetBack(p) (p)->lpVtbl->GetBack(p)
+#define IDirect3DRMViewport2_GetFront(p) (p)->lpVtbl->GetFront(p)
+#define IDirect3DRMViewport2_GetProjection(p) (p)->lpVtbl->GetProjection(p)
+#define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->lpVtbl->GetDirect3DViewport(p,a)
+#define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->lpVtbl->TransformVectors(p,a,b,c)
+#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->lpVtbl->InverseTransformVectors(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMViewport2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMViewport2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMViewport2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMViewport2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMViewport2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMViewport2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMViewport2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMViewport2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMViewport2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMViewport2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMViewport2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMViewport2 methods ***/
+#define IDirect3DRMViewport2_Init(p,a,b,c,d,e,f) (p)->Init(a,b,c,d,e,f)
+#define IDirect3DRMViewport2_Clear(p) (p)->Clear()
+#define IDirect3DRMViewport2_Render(p,a) (p)->Render(a)
+#define IDirect3DRMViewport2_SetFront(p,a) (p)->SetFront(a)
+#define IDirect3DRMViewport2_SetBack(p,a) (p)->SetBack(a)
+#define IDirect3DRMViewport2_SetField(p,a) (p)->SetField(a)
+#define IDirect3DRMViewport2_SetUniformScaling(p,a) (p)->SetUniformScaling(a)
+#define IDirect3DRMViewport2_SetCamera(p,a) (p)->SetCamera(a)
+#define IDirect3DRMViewport2_SetProjection(p,a) (p)->SetProjection(a)
+#define IDirect3DRMViewport2_Transform(p,a,b) (p)->Transform(a,b)
+#define IDirect3DRMViewport2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
+#define IDirect3DRMViewport2_Configure(p,a,b,c,d) (p)->Configure(a,b,c,d)
+#define IDirect3DRMViewport2_ForceUpdate(p,a,b,c,d) (p)->ForceUpdate(a,b,c,d)
+#define IDirect3DRMViewport2_SetPlane(p,a,b,c,d) (p)->SetPlane(a,b,c,d)
+#define IDirect3DRMViewport2_GetCamera(p,a) (p)->GetCamera(a)
+#define IDirect3DRMViewport2_GetDevice(p,a) (p)->GetDevice(a)
+#define IDirect3DRMViewport2_GetPlane(p,a,b,c,d) (p)->GetPlane(a,b,c,d)
+#define IDirect3DRMViewport2_Pick(p,a,b,c) (p)->Pick(a,b,c)
+#define IDirect3DRMViewport2_GetUniformScaling(p) (p)->GetUniformScaling()
+#define IDirect3DRMViewport2_GetX(p) (p)->GetX()
+#define IDirect3DRMViewport2_GetY(p) (p)->GetY()
+#define IDirect3DRMViewport2_GetWidth(p) (p)->GetWidth()
+#define IDirect3DRMViewport2_GetHeight(p) (p)->GetHeight()
+#define IDirect3DRMViewport2_GetField(p) (p)->GetField()
+#define IDirect3DRMViewport2_GetBack(p) (p)->GetBack()
+#define IDirect3DRMViewport2_GetFront(p) (p)->GetFront()
+#define IDirect3DRMViewport2_GetProjection(p) (p)->GetProjection()
+#define IDirect3DRMViewport2_GetDirect3DViewport(p,a) (p)->GetDirect3DViewport(a)
+#define IDirect3DRMViewport2_TransformVectors(p,a,b,c) (p)->TransformVectors(a,b,c)
+#define IDirect3DRMViewport2_InverseTransformVectors(p,a,b,c) (p)->InverseTransformVectors(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFrame interface
+ */
+#define INTERFACE IDirect3DRMFrame
+DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMFrame methods ***/
+ STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
+ STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+ STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+ STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+ STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
+ STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
+ STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
+ STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
+ STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
+ STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
+ STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
+ STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
+ STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, WINBOOL with_rotation) PURE;
+ STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
+ STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
+ STDMETHOD(GetTextureTopology)(THIS_ WINBOOL *wrap_u, WINBOOL *wrap_v) PURE;
+ STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
+ STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
+ D3DRMFRAMECONSTRAINT constraint) PURE;
+ STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+ STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
+ STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+ STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetSceneFogEnable)(THIS) PURE;
+ STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
+ STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
+ STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetSceneFogEnable)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
+ STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
+ STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
+ STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
+ D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
+ STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
+ D3DVALUE x, D3DVALUE y, D3DVALUE z, WINBOOL with_rotation) PURE;
+ STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
+ STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFrame_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMFrame_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMFrame_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMFrame_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMFrame_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMFrame_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMFrame methods ***/
+#define IDirect3DRMFrame_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
+#define IDirect3DRMFrame_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
+#define IDirect3DRMFrame_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
+#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
+#define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
+#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
+#define IDirect3DRMFrame_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
+#define IDirect3DRMFrame_GetColor(p) (p)->lpVtbl->GetColor(p)
+#define IDirect3DRMFrame_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
+#define IDirect3DRMFrame_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
+#define IDirect3DRMFrame_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
+#define IDirect3DRMFrame_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
+#define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
+#define IDirect3DRMFrame_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
+#define IDirect3DRMFrame_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
+#define IDirect3DRMFrame_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
+#define IDirect3DRMFrame_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
+#define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
+#define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
+#define IDirect3DRMFrame_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
+#define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
+#define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
+#define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
+#define IDirect3DRMFrame_Move(p,a) (p)->lpVtbl->Move(p,a)
+#define IDirect3DRMFrame_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
+#define IDirect3DRMFrame_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
+#define IDirect3DRMFrame_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
+#define IDirect3DRMFrame_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
+#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
+#define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
+#define IDirect3DRMFrame_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
+#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
+#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
+#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
+#define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
+#define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
+#define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
+#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMFrame_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
+#define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
+#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
+#define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
+#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
+#define IDirect3DRMFrame_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
+#define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
+#define IDirect3DRMFrame_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFrame_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFrame_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMFrame_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMFrame_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMFrame_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMFrame_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMFrame_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMFrame_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMFrame_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMFrame methods ***/
+#define IDirect3DRMFrame_AddChild(p,a) (p)->AddChild(a)
+#define IDirect3DRMFrame_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DRMFrame_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
+#define IDirect3DRMFrame_AddTransform(p,a,b) (p)->AddTransform(a,b)
+#define IDirect3DRMFrame_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
+#define IDirect3DRMFrame_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
+#define IDirect3DRMFrame_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
+#define IDirect3DRMFrame_AddVisual(p,a) (p)->AddVisual(a)
+#define IDirect3DRMFrame_GetChildren(p,a) (p)->GetChildren(a)
+#define IDirect3DRMFrame_GetColor(p) (p)->GetColor()
+#define IDirect3DRMFrame_GetLights(p,a) (p)->GetLights(a)
+#define IDirect3DRMFrame_GetMaterialMode(p) (p)->GetMaterialMode()
+#define IDirect3DRMFrame_GetParent(p,a) (p)->GetParent(a)
+#define IDirect3DRMFrame_GetPosition(p,a,b) (p)->GetPosition(a,b)
+#define IDirect3DRMFrame_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
+#define IDirect3DRMFrame_GetScene(p,a) (p)->GetScene(a)
+#define IDirect3DRMFrame_GetSortMode(p) (p)->GetSortMode()
+#define IDirect3DRMFrame_GetTexture(p,a) (p)->GetTexture(a)
+#define IDirect3DRMFrame_GetTransform(p,a) (p)->GetTransform(a)
+#define IDirect3DRMFrame_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
+#define IDirect3DRMFrame_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
+#define IDirect3DRMFrame_GetVisuals(p,a) (p)->GetVisuals(a)
+#define IDirect3DRMFrame_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
+#define IDirect3DRMFrame_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
+#define IDirect3DRMFrame_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMFrame_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
+#define IDirect3DRMFrame_Move(p,a) (p)->Move(a)
+#define IDirect3DRMFrame_DeleteChild(p,a) (p)->DeleteChild(a)
+#define IDirect3DRMFrame_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DRMFrame_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
+#define IDirect3DRMFrame_DeleteVisual(p,a) (p)->DeleteVisual(a)
+#define IDirect3DRMFrame_GetSceneBackground(p) (p)->GetSceneBackground()
+#define IDirect3DRMFrame_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame_GetSceneFogColor(p) (p)->GetSceneFogColor()
+#define IDirect3DRMFrame_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
+#define IDirect3DRMFrame_GetSceneFogMode(p) (p)->GetSceneFogMode()
+#define IDirect3DRMFrame_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
+#define IDirect3DRMFrame_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
+#define IDirect3DRMFrame_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
+#define IDirect3DRMFrame_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
+#define IDirect3DRMFrame_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
+#define IDirect3DRMFrame_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
+#define IDirect3DRMFrame_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMFrame_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMFrame_GetZbufferMode(p) (p)->GetZbufferMode()
+#define IDirect3DRMFrame_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
+#define IDirect3DRMFrame_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
+#define IDirect3DRMFrame_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
+#define IDirect3DRMFrame_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
+#define IDirect3DRMFrame_SetSortMode(p,a) (p)->SetSortMode(a)
+#define IDirect3DRMFrame_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMFrame_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMFrame_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
+#define IDirect3DRMFrame_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
+#define IDirect3DRMFrame_Transform(p,a,b) (p)->Transform(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFrame2 interface
+ */
+#define INTERFACE IDirect3DRMFrame2
+DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMFrame methods ***/
+ STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
+ STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+ STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(AddVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+ STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+ STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
+ STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
+ STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame **parent) PURE;
+ STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_position) PURE;
+ STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
+ STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame **scene) PURE;
+ STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
+ STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(GetTransform)(THIS_ D3DRMMATRIX4D return_matrix) PURE;
+ STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *return_velocity, WINBOOL with_rotation) PURE;
+ STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
+ STDMETHOD(GetVisuals)(THIS_ struct IDirect3DRMVisualArray **visuals) PURE;
+ STDMETHOD(GetTextureTopology)(THIS_ WINBOOL *wrap_u, WINBOOL *wrap_v) PURE;
+ STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx)PURE;
+ STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame *target, IDirect3DRMFrame *reference,
+ D3DRMFRAMECONSTRAINT constraint) PURE;
+ STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+ STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
+ STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+ STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetSceneFogEnable)(THIS) PURE;
+ STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
+ STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end, D3DVALUE *return_density) PURE;
+ STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetSceneFogEnable)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
+ STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
+ STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
+ STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
+ D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
+ STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame *reference,
+ D3DVALUE x, D3DVALUE y, D3DVALUE z, WINBOOL with_rotation) PURE;
+ STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
+ STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+ /*** IDirect3DRMFrame2 methods ***/
+ STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx, DWORD flags) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD_(WINBOOL, GetBoxEnable)(THIS) PURE;
+ STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
+ STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
+ STDMETHOD_(WINBOOL, GetInheritAxes)(THIS);
+ STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD(SetBoxEnable)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
+ STDMETHOD(SetInheritAxes)(THIS_ WINBOOL inherit_from_parent);
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
+ STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame *reference, D3DRMQUATERNION *q) PURE;
+ STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame *reference, D3DRMRAY *ray, DWORD flags,
+ struct IDirect3DRMPicked2Array **return_visuals) PURE;
+ STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags);
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFrame2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFrame2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMFrame2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMFrame2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMFrame2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMFrame2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMFrame methods ***/
+#define IDirect3DRMFrame2_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
+#define IDirect3DRMFrame2_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->lpVtbl->AddMoveCallback(p,a,b)
+#define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
+#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
+#define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
+#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame2_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
+#define IDirect3DRMFrame2_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
+#define IDirect3DRMFrame2_GetColor(p) (p)->lpVtbl->GetColor(p)
+#define IDirect3DRMFrame2_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
+#define IDirect3DRMFrame2_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
+#define IDirect3DRMFrame2_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
+#define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
+#define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
+#define IDirect3DRMFrame2_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
+#define IDirect3DRMFrame2_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
+#define IDirect3DRMFrame2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
+#define IDirect3DRMFrame2_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
+#define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
+#define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
+#define IDirect3DRMFrame2_GetVisuals(p,a) (p)->lpVtbl->GetVisuals(p,a)
+#define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
+#define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
+#define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
+#define IDirect3DRMFrame2_Move(p,a) (p)->lpVtbl->Move(p,a)
+#define IDirect3DRMFrame2_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
+#define IDirect3DRMFrame2_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
+#define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
+#define IDirect3DRMFrame2_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
+#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
+#define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
+#define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
+#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
+#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
+#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
+#define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
+#define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
+#define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
+#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMFrame2_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
+#define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
+#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
+#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
+#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame2_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
+#define IDirect3DRMFrame2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
+#define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
+#define IDirect3DRMFrame2_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
+/*** IDirect3DRMFrame2 methods ***/
+#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->lpVtbl->AddMoveCallback2(p,a,b,c)
+#define IDirect3DRMFrame2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMFrame2_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
+#define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
+#define IDirect3DRMFrame2_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->lpVtbl->GetInheritAxes(p,a,b)
+#define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
+#define IDirect3DRMFrame2_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
+#define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
+#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
+#define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
+#define IDirect3DRMFrame2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
+#define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
+#define IDirect3DRMFrame2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFrame2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFrame2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMFrame2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMFrame2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMFrame2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMFrame2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMFrame2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMFrame2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMFrame2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMFrame methods ***/
+#define IDirect3DRMFrame2_AddChild(p,a) (p)->AddChild(a)
+#define IDirect3DRMFrame2_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DRMFrame2_AddMoveCallback(p,a,b) (p)->AddMoveCallback(a,b)
+#define IDirect3DRMFrame2_AddTransform(p,a,b) (p)->AddTransform(a,b)
+#define IDirect3DRMFrame2_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
+#define IDirect3DRMFrame2_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
+#define IDirect3DRMFrame2_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
+#define IDirect3DRMFrame2_AddVisual(p,a) (p)->AddVisual(a)
+#define IDirect3DRMFrame2_GetChildren(p,a) (p)->GetChildren(a)
+#define IDirect3DRMFrame2_GetColor(p) (p)->GetColor()
+#define IDirect3DRMFrame2_GetLights(p,a) (p)->GetLights(a)
+#define IDirect3DRMFrame2_GetMaterialMode(p) (p)->GetMaterialMode()
+#define IDirect3DRMFrame2_GetParent(p,a) (p)->GetParent(a)
+#define IDirect3DRMFrame2_GetPosition(p,a,b) (p)->GetPosition(a,b)
+#define IDirect3DRMFrame2_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
+#define IDirect3DRMFrame2_GetScene(p,a) (p)->GetScene(a)
+#define IDirect3DRMFrame2_GetSortMode(p) (p)->GetSortMode()
+#define IDirect3DRMFrame2_GetTexture(p,a) (p)->GetTexture(a)
+#define IDirect3DRMFrame2_GetTransform(p,a) (p)->GetTransform(a)
+#define IDirect3DRMFrame2_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
+#define IDirect3DRMFrame2_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
+#define IDirect3DRMFrame2_GetVisuals(p,a) (p)->GetVisuals(a)
+#define IDirect3DRMFrame2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
+#define IDirect3DRMFrame2_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
+#define IDirect3DRMFrame2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMFrame2_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
+#define IDirect3DRMFrame2_Move(p,a) (p)->Move(a)
+#define IDirect3DRMFrame2_DeleteChild(p,a) (p)->DeleteChild(a)
+#define IDirect3DRMFrame2_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DRMFrame2_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
+#define IDirect3DRMFrame2_DeleteVisual(p,a) (p)->DeleteVisual(a)
+#define IDirect3DRMFrame2_GetSceneBackground(p) (p)->GetSceneBackground()
+#define IDirect3DRMFrame2_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame2_GetSceneFogColor(p) (p)->GetSceneFogColor()
+#define IDirect3DRMFrame2_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
+#define IDirect3DRMFrame2_GetSceneFogMode(p) (p)->GetSceneFogMode()
+#define IDirect3DRMFrame2_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame2_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
+#define IDirect3DRMFrame2_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
+#define IDirect3DRMFrame2_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame2_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
+#define IDirect3DRMFrame2_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
+#define IDirect3DRMFrame2_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
+#define IDirect3DRMFrame2_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
+#define IDirect3DRMFrame2_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame2_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMFrame2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMFrame2_GetZbufferMode(p) (p)->GetZbufferMode()
+#define IDirect3DRMFrame2_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
+#define IDirect3DRMFrame2_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
+#define IDirect3DRMFrame2_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
+#define IDirect3DRMFrame2_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
+#define IDirect3DRMFrame2_SetSortMode(p,a) (p)->SetSortMode(a)
+#define IDirect3DRMFrame2_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMFrame2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMFrame2_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
+#define IDirect3DRMFrame2_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
+#define IDirect3DRMFrame2_Transform(p,a,b) (p)->Transform(a,b)
+/*** IDirect3DRMFrame2 methods ***/
+#define IDirect3DRMFrame2_AddMoveCallback2(p,a,b,c) (p)->AddMoveCallback2(a,b,c)
+#define IDirect3DRMFrame2_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMFrame2_GetBoxEnable(p) (p)->GetBoxEnable()
+#define IDirect3DRMFrame2_GetAxes(p,a,b) (p)->GetAxes(a,b)
+#define IDirect3DRMFrame2_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DRMFrame2_GetInheritAxes(p,a,b) (p)->GetInheritAxes(a,b)
+#define IDirect3DRMFrame2_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
+#define IDirect3DRMFrame2_SetBox(p,a) (p)->SetBox(a)
+#define IDirect3DRMFrame2_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
+#define IDirect3DRMFrame2_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
+#define IDirect3DRMFrame2_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
+#define IDirect3DRMFrame2_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMFrame2_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
+#define IDirect3DRMFrame2_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
+#define IDirect3DRMFrame2_Save(p,a,b,c) (p)->Save(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFrame3 interface
+ */
+#define INTERFACE IDirect3DRMFrame3
+DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMFrame3 methods ***/
+ STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
+ STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx, DWORD flags) PURE;
+ STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+ STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(AddRotation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(AddVisual)(THIS_ IUnknown *visual) PURE;
+ STDMETHOD(GetChildren)(THIS_ struct IDirect3DRMFrameArray **children) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+ STDMETHOD(GetLights)(THIS_ struct IDirect3DRMLightArray **lights) PURE;
+ STDMETHOD_(D3DRMMATERIALMODE, GetMaterialMode)(THIS) PURE;
+ STDMETHOD(GetParent)(THIS_ IDirect3DRMFrame3 **parent) PURE;
+ STDMETHOD(GetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_position) PURE;
+ STDMETHOD(GetRotation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *axis, D3DVALUE *return_theta) PURE;
+ STDMETHOD(GetScene)(THIS_ IDirect3DRMFrame3 **scene) PURE;
+ STDMETHOD_(D3DRMSORTMODE, GetSortMode)(THIS) PURE;
+ STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(GetTransform)(THIS_ IDirect3DRMFrame3 *reference, D3DRMMATRIX4D matrix) PURE;
+ STDMETHOD(GetVelocity)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *return_velocity, WINBOOL with_rotation) PURE;
+ STDMETHOD(GetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *dir, D3DVECTOR *up) PURE;
+ STDMETHOD(GetVisuals)(THIS_ DWORD *count, IUnknown **visuals) PURE;
+ STDMETHOD(InverseTransform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
+ STDMETHOD(LookAt)(THIS_ IDirect3DRMFrame3 *target, IDirect3DRMFrame3 *reference,
+ D3DRMFRAMECONSTRAINT constraint) PURE;
+ STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+ STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
+ STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+ STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteVisual)(THIS_ IUnknown *visual) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+ STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+ STDMETHOD_(D3DCOLOR, GetSceneFogColor)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetSceneFogEnable)(THIS) PURE;
+ STDMETHOD_(D3DRMFOGMODE, GetSceneFogMode)(THIS) PURE;
+ STDMETHOD(GetSceneFogParams)(THIS_ D3DVALUE *return_start, D3DVALUE *return_end,
+ D3DVALUE *return_density) PURE;
+ STDMETHOD(SetSceneBackground)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneBackgroundRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetSceneBackgroundDepth)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(SetSceneBackgroundImage)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
+ STDMETHOD(SetSceneFogEnable)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetSceneFogColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetSceneFogMode)(THIS_ D3DRMFOGMODE) PURE;
+ STDMETHOD(SetSceneFogParams)(THIS_ D3DVALUE start, D3DVALUE end, D3DVALUE density) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD_(D3DRMZBUFFERMODE, GetZbufferMode)(THIS) PURE;
+ STDMETHOD(SetMaterialMode)(THIS_ D3DRMMATERIALMODE) PURE;
+ STDMETHOD(SetOrientation)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
+ D3DVALUE ux, D3DVALUE uy, D3DVALUE uz) PURE;
+ STDMETHOD(SetPosition)(THIS_ IDirect3DRMFrame3 *reference, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetRotation)(THIS_ IDirect3DRMFrame3 *reference,
+ D3DVALUE x, D3DVALUE y, D3DVALUE z, D3DVALUE theta) PURE;
+ STDMETHOD(SetSortMode)(THIS_ D3DRMSORTMODE) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
+ STDMETHOD(SetVelocity)(THIS_ IDirect3DRMFrame3 *reference,
+ D3DVALUE x, D3DVALUE y, D3DVALUE z, WINBOOL with_rotation) PURE;
+ STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
+ STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD_(WINBOOL, GetBoxEnable)(THIS) PURE;
+ STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
+ STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
+ STDMETHOD_(WINBOOL, GetInheritAxes)(THIS);
+ STDMETHOD(GetHierarchyBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD(SetBox)(THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD(SetBoxEnable)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetAxes)(THIS_ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz);
+ STDMETHOD(SetInheritAxes)(THIS_ WINBOOL inherit_from_parent);
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
+ STDMETHOD(SetQuaternion)(THIS_ IDirect3DRMFrame3 *reference, D3DRMQUATERNION *q) PURE;
+ STDMETHOD(RayPick)(THIS_ IDirect3DRMFrame3 *reference, D3DRMRAY *ray, DWORD flags,
+ struct IDirect3DRMPicked2Array **return_visuals) PURE;
+ STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT format, D3DRMSAVEOPTIONS flags);
+ STDMETHOD(TransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
+ D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
+ STDMETHOD(InverseTransformVectors)(THIS_ IDirect3DRMFrame3 *reference, DWORD vector_count,
+ D3DVECTOR *dst_vectors, D3DVECTOR *src_vectors) PURE;
+ STDMETHOD(SetTraversalOptions)(THIS_ DWORD flags) PURE;
+ STDMETHOD(GetTraversalOptions)(THIS_ DWORD *flags) PURE;
+ STDMETHOD(SetSceneFogMethod)(THIS_ DWORD flags) PURE;
+ STDMETHOD(GetSceneFogMethod)(THIS_ DWORD *fog_mode) PURE;
+ STDMETHOD(SetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
+ STDMETHOD(GetMaterialOverride)(THIS_ D3DRMMATERIALOVERRIDE *override) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFrame3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFrame3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMFrame3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMFrame3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMFrame3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMFrame3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMFrame3 methods ***/
+#define IDirect3DRMFrame3_AddChild(p,a) (p)->lpVtbl->AddChild(p,a)
+#define IDirect3DRMFrame3_AddLight(p,a) (p)->lpVtbl->AddLight(p,a)
+#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->lpVtbl->AddMoveCallback(p,a,b,c)
+#define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->lpVtbl->AddTransform(p,a,b)
+#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->lpVtbl->AddTranslation(p,a,b,c,d)
+#define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->lpVtbl->AddScale(p,a,b,c,d)
+#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->lpVtbl->AddRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame3_AddVisual(p,a) (p)->lpVtbl->AddVisual(p,a)
+#define IDirect3DRMFrame3_GetChildren(p,a) (p)->lpVtbl->GetChildren(p,a)
+#define IDirect3DRMFrame3_GetColor(p) (p)->lpVtbl->GetColor(p)
+#define IDirect3DRMFrame3_GetLights(p,a) (p)->lpVtbl->GetLights(p,a)
+#define IDirect3DRMFrame3_GetMaterialMode(p) (p)->lpVtbl->GetMaterialMode(p)
+#define IDirect3DRMFrame3_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
+#define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
+#define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->lpVtbl->GetRotation(p,a,b,c)
+#define IDirect3DRMFrame3_GetScene(p,a) (p)->lpVtbl->GetScene(p,a)
+#define IDirect3DRMFrame3_GetSortMode(p) (p)->lpVtbl->GetSortMode(p)
+#define IDirect3DRMFrame3_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
+#define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->lpVtbl->GetTransform(p,a,b)
+#define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->lpVtbl->GetVelocity(p,a,b,c)
+#define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->lpVtbl->GetOrientation(p,a,b,c)
+#define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->lpVtbl->GetVisuals(p,a,b)
+#define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->lpVtbl->InverseTransform(p,a,b)
+#define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->lpVtbl->LookAt(p,a,b,c)
+#define IDirect3DRMFrame3_Move(p,a) (p)->lpVtbl->Move(p,a)
+#define IDirect3DRMFrame3_DeleteChild(p,a) (p)->lpVtbl->DeleteChild(p,a)
+#define IDirect3DRMFrame3_DeleteLight(p,a) (p)->lpVtbl->DeleteLight(p,a)
+#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->lpVtbl->DeleteMoveCallback(p,a,b)
+#define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->lpVtbl->DeleteVisual(p,a)
+#define IDirect3DRMFrame3_GetSceneBackground(p) (p)->lpVtbl->GetSceneBackground(p)
+#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->lpVtbl->GetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->lpVtbl->GetSceneFogColor(p)
+#define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->lpVtbl->GetSceneFogEnable(p)
+#define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->lpVtbl->GetSceneFogMode(p)
+#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->lpVtbl->GetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->lpVtbl->SetSceneBackground(p,a)
+#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->lpVtbl->SetSceneBackgroundRGB(p,a,b,c)
+#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->lpVtbl->SetSceneBackgroundDepth(p,a)
+#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->lpVtbl->SetSceneBackgroundImage(p,a)
+#define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->lpVtbl->SetSceneFogEnable(p,a)
+#define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->lpVtbl->SetSceneFogColor(p,a)
+#define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->lpVtbl->SetSceneFogMode(p,a)
+#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->lpVtbl->SetSceneFogParams(p,a,b,c)
+#define IDirect3DRMFrame3_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMFrame3_GetZbufferMode(p) (p)->lpVtbl->GetZbufferMode(p)
+#define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->lpVtbl->SetMaterialMode(p,a)
+#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->lpVtbl->SetOrientation(p,a,b,c,d,e,f,g)
+#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->lpVtbl->SetPosition(p,a,b,c,d)
+#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->lpVtbl->SetRotation(p,a,b,c,d,e)
+#define IDirect3DRMFrame3_SetSortMode(p,a) (p)->lpVtbl->SetSortMode(p,a)
+#define IDirect3DRMFrame3_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->lpVtbl->SetVelocity(p,a,b,c,d,e)
+#define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->lpVtbl->SetZbufferMode(p,a)
+#define IDirect3DRMFrame3_Transform(p,a,b) (p)->lpVtbl->Transform(p,a,b)
+#define IDirect3DRMFrame3_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMFrame3_GetBoxEnable(p) (p)->lpVtbl->GetBoxEnable(p)
+#define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->lpVtbl->GetAxes(p,a,b)
+#define IDirect3DRMFrame3_GetMaterial(p,a) (p)->lpVtbl->GetMaterial(p,a)
+#define IDirect3DRMFrame3_GetInheritAxes(p) (p)->lpVtbl->GetInheritAxes(p)
+#define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->lpVtbl->GetHierarchyBox(p,a)
+#define IDirect3DRMFrame3_SetBox(p,a) (p)->lpVtbl->SetBox(p,a)
+#define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->lpVtbl->SetBoxEnable(p,a)
+#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->lpVtbl->SetAxes(p,a,b,c,d,e,f)
+#define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->lpVtbl->SetInheritAxes(p,a)
+#define IDirect3DRMFrame3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->lpVtbl->SetQuaternion(p,a,b)
+#define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->lpVtbl->RayPick(p,a,b,c,d)
+#define IDirect3DRMFrame3_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
+#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->lpVtbl->TransformVectors(p,a,b,c,d)
+#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->lpVtbl->InverseTransformVectors(p,a,b,c,d)
+#define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->lpVtbl->SetTraversalOptions(p,a)
+#define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->lpVtbl->GetTraversalOptions(p,a)
+#define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->lpVtbl->SetSceneFogMethod(p,a)
+#define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->lpVtbl->GetSceneFogMethod(p,a)
+#define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->lpVtbl->SetMaterialOverride(p,a)
+#define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->lpVtbl->GetMaterialOverride(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFrame3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFrame3_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFrame3_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFrame3_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMFrame3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMFrame3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMFrame3_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMFrame3_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMFrame3_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMFrame3_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMFrame3_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMFrame3 methods ***/
+#define IDirect3DRMFrame3_AddChild(p,a) (p)->AddChild(a)
+#define IDirect3DRMFrame3_AddLight(p,a) (p)->AddLight(a)
+#define IDirect3DRMFrame3_AddMoveCallback(p,a,b,c) (p)->AddMoveCallback(a,b,c)
+#define IDirect3DRMFrame3_AddTransform(p,a,b) (p)->AddTransform(a,b)
+#define IDirect3DRMFrame3_AddTranslation(p,a,b,c,d) (p)->AddTranslation(a,b,c,d)
+#define IDirect3DRMFrame3_AddScale(p,a,b,c,d) (p)->AddScale(a,b,c,d)
+#define IDirect3DRMFrame3_AddRotation(p,a,b,c,d,e) (p)->AddRotation(a,b,c,d,e)
+#define IDirect3DRMFrame3_AddVisual(p,a) (p)->AddVisual(a)
+#define IDirect3DRMFrame3_GetChildren(p,a) (p)->GetChildren(a)
+#define IDirect3DRMFrame3_GetColor(p) (p)->GetColor()
+#define IDirect3DRMFrame3_GetLights(p,a) (p)->GetLights(a)
+#define IDirect3DRMFrame3_GetMaterialMode(p) (p)->GetMaterialMode()
+#define IDirect3DRMFrame3_GetParent(p,a) (p)->GetParent(a)
+#define IDirect3DRMFrame3_GetPosition(p,a,b) (p)->GetPosition(a,b)
+#define IDirect3DRMFrame3_GetRotation(p,a,b,c) (p)->GetRotation(a,b,c)
+#define IDirect3DRMFrame3_GetScene(p,a) (p)->GetScene(a)
+#define IDirect3DRMFrame3_GetSortMode(p) (p)->GetSortMode()
+#define IDirect3DRMFrame3_GetTexture(p,a) (p)->GetTexture(a)
+#define IDirect3DRMFrame3_GetTransform(p,a,b) (p)->GetTransform(a,b)
+#define IDirect3DRMFrame3_GetVelocity(p,a,b,c) (p)->GetVelocity(a,b,c)
+#define IDirect3DRMFrame3_GetOrientation(p,a,b,c) (p)->GetOrientation(a,b,c)
+#define IDirect3DRMFrame3_GetVisuals(p,a,b) (p)->GetVisuals(a,b)
+#define IDirect3DRMFrame3_InverseTransform(p,a,b) (p)->InverseTransform(a,b)
+#define IDirect3DRMFrame3_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMFrame3_LookAt(p,a,b,c) (p)->LookAt(a,b,c)
+#define IDirect3DRMFrame3_Move(p,a) (p)->Move(a)
+#define IDirect3DRMFrame3_DeleteChild(p,a) (p)->DeleteChild(a)
+#define IDirect3DRMFrame3_DeleteLight(p,a) (p)->DeleteLight(a)
+#define IDirect3DRMFrame3_DeleteMoveCallback(p,a,b) (p)->DeleteMoveCallback(a,b)
+#define IDirect3DRMFrame3_DeleteVisual(p,a) (p)->DeleteVisual(a)
+#define IDirect3DRMFrame3_GetSceneBackground(p) (p)->GetSceneBackground()
+#define IDirect3DRMFrame3_GetSceneBackgroundDepth(p,a) (p)->GetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame3_GetSceneFogColor(p) (p)->GetSceneFogColor()
+#define IDirect3DRMFrame3_GetSceneFogEnable(p) (p)->GetSceneFogEnable()
+#define IDirect3DRMFrame3_GetSceneFogMode(p) (p)->GetSceneFogMode()
+#define IDirect3DRMFrame3_GetSceneFogParams(p,a,b,c) (p)->GetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame3_SetSceneBackground(p,a) (p)->SetSceneBackground(a)
+#define IDirect3DRMFrame3_SetSceneBackgroundRGB(p,a,b,c) (p)->SetSceneBackgroundRGB(a,b,c)
+#define IDirect3DRMFrame3_SetSceneBackgroundDepth(p,a) (p)->SetSceneBackgroundDepth(a)
+#define IDirect3DRMFrame3_SetSceneBackgroundImage(p,a) (p)->SetSceneBackgroundImage(a)
+#define IDirect3DRMFrame3_SetSceneFogEnable(p,a) (p)->SetSceneFogEnable(a)
+#define IDirect3DRMFrame3_SetSceneFogColor(p,a) (p)->SetSceneFogColor(a)
+#define IDirect3DRMFrame3_SetSceneFogMode(p,a) (p)->SetSceneFogMode(a)
+#define IDirect3DRMFrame3_SetSceneFogParams(p,a,b,c) (p)->SetSceneFogParams(a,b,c)
+#define IDirect3DRMFrame3_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMFrame3_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMFrame3_GetZbufferMode(p) (p)->GetZbufferMode()
+#define IDirect3DRMFrame3_SetMaterialMode(p,a) (p)->SetMaterialMode(a)
+#define IDirect3DRMFrame3_SetOrientation(p,a,b,c,d,e,f,g) (p)->SetOrientation(a,b,c,d,e,f,g)
+#define IDirect3DRMFrame3_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d)
+#define IDirect3DRMFrame3_SetRotation(p,a,b,c,d,e) (p)->SetRotation(a,b,c,d,e)
+#define IDirect3DRMFrame3_SetSortMode(p,a) (p)->SetSortMode(a)
+#define IDirect3DRMFrame3_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMFrame3_SetVelocity(p,a,b,c,d,e) (p)->SetVelocity(a,b,c,d,e)
+#define IDirect3DRMFrame3_SetZbufferMode(p,a) (p)->SetZbufferMode(a)
+#define IDirect3DRMFrame3_Transform(p,a,b) (p)->Transform(a,b)
+#define IDirect3DRMFrame3_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMFrame3_GetBoxEnable(p) (p)->GetBoxEnable()
+#define IDirect3DRMFrame3_GetAxes(p,a,b) (p)->GetAxes(a,b)
+#define IDirect3DRMFrame3_GetMaterial(p,a) (p)->GetMaterial(a)
+#define IDirect3DRMFrame3_GetInheritAxes(p) (p)->GetInheritAxes()
+#define IDirect3DRMFrame3_GetHierarchyBox(p,a) (p)->GetHierarchyBox(a)
+#define IDirect3DRMFrame3_SetBox(p,a) (p)->SetBox(a)
+#define IDirect3DRMFrame3_SetBoxEnable(p,a) (p)->SetBoxEnable(a)
+#define IDirect3DRMFrame3_SetAxes(p,a,b,c,d,e,f) (p)->SetAxes(a,b,c,d,e,f)
+#define IDirect3DRMFrame3_SetInheritAxes(p,a) (p)->SetInheritAxes(a)
+#define IDirect3DRMFrame3_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMFrame3_SetQuaternion(p,a,b) (p)->SetQuaternion(a,b)
+#define IDirect3DRMFrame3_RayPick(p,a,b,c,d) (p)->RayPick(a,b,c,d)
+#define IDirect3DRMFrame3_Save(p,a,b,c) (p)->Save(a,b,c)
+#define IDirect3DRMFrame3_TransformVectors(p,a,b,c,d) (p)->TransformVectors(a,b,c,d)
+#define IDirect3DRMFrame3_InverseTransformVectors(p,a,b,c,d) (p)->InverseTransformVectors(a,b,c,d)
+#define IDirect3DRMFrame3_SetTraversalOptions(p,a) (p)->SetTraversalOptions(a)
+#define IDirect3DRMFrame3_GetTraversalOptions(p,a) (p)->GetTraversalOptions(a)
+#define IDirect3DRMFrame3_SetSceneFogMethod(p,a) (p)->SetSceneFogMethod(a)
+#define IDirect3DRMFrame3_GetSceneFogMethod(p,a) (p)->GetSceneFogMethod(a)
+#define IDirect3DRMFrame3_SetMaterialOverride(p,a) (p)->SetMaterialOverride(a)
+#define IDirect3DRMFrame3_GetMaterialOverride(p,a) (p)->GetMaterialOverride(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMesh interface
+ */
+#define INTERFACE IDirect3DRMMesh
+DECLARE_INTERFACE_(IDirect3DRMMesh,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMesh methods ***/
+ STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
+ STDMETHOD(AddGroup)(THIS_ unsigned vCount, unsigned fCount, unsigned vPerFace, unsigned *fData,
+ D3DRMGROUPINDEX *returnId) PURE;
+ STDMETHOD(SetVertices)(THIS_ D3DRMGROUPINDEX id, unsigned index, unsigned count,
+ D3DRMVERTEX *values) PURE;
+ STDMETHOD(SetGroupColor)(THIS_ D3DRMGROUPINDEX id, D3DCOLOR value) PURE;
+ STDMETHOD(SetGroupColorRGB)(THIS_ D3DRMGROUPINDEX id, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetGroupMapping)(THIS_ D3DRMGROUPINDEX id, D3DRMMAPPING value) PURE;
+ STDMETHOD(SetGroupQuality)(THIS_ D3DRMGROUPINDEX id, D3DRMRENDERQUALITY value) PURE;
+ STDMETHOD(SetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial *material) PURE;
+ STDMETHOD(SetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD_(unsigned, GetGroupCount)(THIS) PURE;
+ STDMETHOD(GetGroup)(THIS_ D3DRMGROUPINDEX id, unsigned *vCount, unsigned *fCount, unsigned *vPerFace,
+ DWORD *fDataSize, unsigned *fData) PURE;
+ STDMETHOD(GetVertices)(THIS_ D3DRMGROUPINDEX id, DWORD index, DWORD count, D3DRMVERTEX *returnPtr) PURE;
+ STDMETHOD_(D3DCOLOR, GetGroupColor)(THIS_ D3DRMGROUPINDEX id) PURE;
+ STDMETHOD_(D3DRMMAPPING, GetGroupMapping)(THIS_ D3DRMGROUPINDEX id) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetGroupQuality)(THIS_ D3DRMGROUPINDEX id) PURE;
+ STDMETHOD(GetGroupMaterial)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMMaterial **material) PURE;
+ STDMETHOD(GetGroupTexture)(THIS_ D3DRMGROUPINDEX id, struct IDirect3DRMTexture **texture) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMesh_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMMesh methods ***/
+#define IDirect3DRMMesh_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
+#define IDirect3DRMMesh_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
+#define IDirect3DRMMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->lpVtbl->AddGroup(p,a,b,c,d,e)
+#define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->lpVtbl->SetVertices(p,a,b,c,d)
+#define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->lpVtbl->SetGroupColor(p,a,b)
+#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->lpVtbl->SetGroupColorRGB(p,a,b,c,d)
+#define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->lpVtbl->SetGroupMapping(p,a,b)
+#define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->lpVtbl->SetGroupQuality(p,a,b)
+#define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->lpVtbl->SetGroupMaterial(p,a,b)
+#define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->lpVtbl->SetGroupTexture(p,a,b)
+#define IDirect3DRMMesh_GetGroupCount(p) (p)->lpVtbl->GetGroupCount(p)
+#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->lpVtbl->GetGroup(p,a,b,c,d,e,f)
+#define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->lpVtbl->GetVertices(p,a,b,c,d)
+#define IDirect3DRMMesh_GetGroupColor(p,a) (p)->lpVtbl->GetGroupColor(p,a)
+#define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->lpVtbl->GetGroupMapping(p,a)
+#define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->lpVtbl->GetGroupQuality(p,a)
+#define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->lpVtbl->GetGroupMaterial(p,a,b)
+#define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->lpVtbl->GetGroupTexture(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMesh_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMesh_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMesh_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMesh_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMesh_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMesh_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMesh methods ***/
+#define IDirect3DRMMesh_Scale(p,a,b,c) (p)->Scale(a,b,c)
+#define IDirect3DRMMesh_Translate(p,a,b,c) (p)->Translate(a,b,c)
+#define IDirect3DRMMesh_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMMesh_AddGroup(p,a,b,c,d,e) (p)->AddGroup(a,b,c,d,e)
+#define IDirect3DRMMesh_SetVertices(p,a,b,c,d) (p)->SetVertices(a,b,c,d)
+#define IDirect3DRMMesh_SetGroupColor(p,a,b) (p)->SetGroupColor(a,b)
+#define IDirect3DRMMesh_SetGroupColorRGB(p,a,b,c,d) (p)->SetGroupColorRGB(a,b,c,d)
+#define IDirect3DRMMesh_SetGroupMapping(p,a,b) (p)->SetGroupMapping(a,b)
+#define IDirect3DRMMesh_SetGroupQuality(p,a,b) (p)->SetGroupQuality(a,b)
+#define IDirect3DRMMesh_SetGroupMaterial(p,a,b) (p)->SetGroupMaterial(a,b)
+#define IDirect3DRMMesh_SetGroupTexture(p,a,b) (p)->SetGroupTexture(a,b)
+#define IDirect3DRMMesh_GetGroupCount(p) (p)->GetGroupCount()
+#define IDirect3DRMMesh_GetGroup(p,a,b,c,d,e,f) (p)->GetGroup(a,b,c,d,e,f)
+#define IDirect3DRMMesh_GetVertices(p,a,b,c,d) (p)->GetVertices(a,b,c,d)
+#define IDirect3DRMMesh_GetGroupColor(p,a) (p)->GetGroupColor(a)
+#define IDirect3DRMMesh_GetGroupMapping(p,a) (p)->GetGroupMapping(a)
+#define IDirect3DRMMesh_GetGroupQuality(p,a) (p)->GetGroupQuality(a)
+#define IDirect3DRMMesh_GetGroupMaterial(p,a,b) (p)->GetGroupMaterial(a,b)
+#define IDirect3DRMMesh_GetGroupTexture(p,a,b) (p)->GetGroupTexture(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMProgressiveMesh interface
+ */
+#define INTERFACE IDirect3DRMProgressiveMesh
+DECLARE_INTERFACE_(IDirect3DRMProgressiveMesh,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMProgressiveMesh methods ***/
+ STDMETHOD(Load) (THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(GetLoadStatus) (THIS_ D3DRMPMESHLOADSTATUS *status) PURE;
+ STDMETHOD(SetMinRenderDetail) (THIS_ D3DVALUE d3dVal) PURE;
+ STDMETHOD(Abort) (THIS_ DWORD flags) PURE;
+ STDMETHOD(GetFaceDetail) (THIS_ DWORD *count) PURE;
+ STDMETHOD(GetVertexDetail) (THIS_ DWORD *count) PURE;
+ STDMETHOD(SetFaceDetail) (THIS_ DWORD count) PURE;
+ STDMETHOD(SetVertexDetail) (THIS_ DWORD count) PURE;
+ STDMETHOD(GetFaceDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
+ STDMETHOD(GetVertexDetailRange) (THIS_ DWORD *min_detail, DWORD *max_detail) PURE;
+ STDMETHOD(GetDetail) (THIS_ D3DVALUE *pdvVal) PURE;
+ STDMETHOD(SetDetail) (THIS_ D3DVALUE d3dVal) PURE;
+ STDMETHOD(RegisterEvents) (THIS_ HANDLE event, DWORD flags, DWORD reserved) PURE;
+ STDMETHOD(CreateMesh) (THIS_ IDirect3DRMMesh **mesh) PURE;
+ STDMETHOD(Duplicate) (THIS_ IDirect3DRMProgressiveMesh **mesh) PURE;
+ STDMETHOD(GetBox) (THIS_ D3DRMBOX *box) PURE;
+ STDMETHOD(SetQuality) (THIS_ D3DRMRENDERQUALITY quality) PURE;
+ STDMETHOD(GetQuality) (THIS_ D3DRMRENDERQUALITY *quality) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMProgressiveMesh_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMProgressiveMesh_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMProgressiveMesh methods ***/
+#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->lpVtbl->GetLoadStatus(p,a)
+#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->lpVtbl->SetMinRenderDetail(p,a)
+#define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->lpVtbl->Abort(p,a)
+#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->lpVtbl->GetFaceDetail(p,a)
+#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->lpVtbl->GetVertexDetail(p,a)
+#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->lpVtbl->SetFaceDetail(p,a)
+#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->lpVtbl->SetVertexDetail(p,a)
+#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->lpVtbl->GetFaceDetailRange(p,a,b)
+#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->lpVtbl->GetVertexDetailRange(p,a,b)
+#define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->lpVtbl->GetDetail(p,a)
+#define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->lpVtbl->SetDetail(p,a)
+#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->lpVtbl->RegisterEvents(p,a,b,c)
+#define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->lpVtbl->Duplicate(p,a)
+#define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->lpVtbl->GetQuality(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMProgressiveMesh_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMProgressiveMesh_AddRef(p) (p)->AddRef()
+#define IDirect3DRMProgressiveMesh_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMProgressiveMesh_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMProgressiveMesh_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMProgressiveMesh_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMProgressiveMesh_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMProgressiveMesh_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMProgressiveMesh_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMProgressiveMesh_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMProgressiveMesh_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMProgressiveMesh methods ***/
+#define IDirect3DRMProgressiveMesh_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMProgressiveMesh_GetLoadStatus(p,a) (p)->GetLoadStatus(a)
+#define IDirect3DRMProgressiveMesh_SetMinRenderDetail(p,a) (p)->SetMinRenderDetail(a)
+#define IDirect3DRMProgressiveMesh_Abort(p,a) (p)->Abort(a)
+#define IDirect3DRMProgressiveMesh_GetFaceDetail(p,a) (p)->GetFaceDetail(a)
+#define IDirect3DRMProgressiveMesh_GetVertexDetail(p,a) (p)->GetVertexDetail(a)
+#define IDirect3DRMProgressiveMesh_SetFaceDetail(p,a) (p)->SetFaceDetail(a)
+#define IDirect3DRMProgressiveMesh_SetVertexDetail(p,a) (p)->SetVertexDetail(a)
+#define IDirect3DRMProgressiveMesh_GetFaceDetailRange(p,a,b) (p)->GetFaceDetailRange(a,b)
+#define IDirect3DRMProgressiveMesh_GetVertexDetailRange(p,a,b) (p)->GetVertexDetailRange(a,b)
+#define IDirect3DRMProgressiveMesh_GetDetail(p,a) (p)->GetDetail(a)
+#define IDirect3DRMProgressiveMesh_SetDetail(p,a) (p)->SetDetail(a)
+#define IDirect3DRMProgressiveMesh_RegisterEvents(p,a,b,c) (p)->RegisterEvents(a,b,c)
+#define IDirect3DRMProgressiveMesh_CreateMesh(p,a) (p)->CreateMesh(a)
+#define IDirect3DRMProgressiveMesh_Duplicate(p,a) (p)->Duplicate(a)
+#define IDirect3DRMProgressiveMesh_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMProgressiveMesh_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMProgressiveMesh_GetQuality(p,a) (p)->GetQuality(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMShadow interface
+ */
+#define INTERFACE IDirect3DRMShadow
+DECLARE_INTERFACE_(IDirect3DRMShadow,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMShadow methods ***/
+ STDMETHOD(Init)(THIS_ IDirect3DRMVisual *visual, struct IDirect3DRMLight *light,
+ D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMShadow_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMShadow_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMShadow_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMShadow_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMShadow_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMShadow_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMShadow_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMShadow_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMShadow methods ***/
+#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Load(p,a,b,c,d,e,f,g)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMShadow_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMShadow_AddRef(p) (p)->AddRef()
+#define IDirect3DRMShadow_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMShadow_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMShadow_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMShadow_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMShadow_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMShadow_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMShadow_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMShadow_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMShadow_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMShadow methods ***/
+#define IDirect3DRMShadow_Init(p,a,b,c,d,e,f,g) (p)->Load(a,b,c,d,e,f,g)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMShadow2 interface
+ */
+#define INTERFACE IDirect3DRMShadow2
+DECLARE_INTERFACE_(IDirect3DRMShadow2,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMShadow methods ***/
+ STDMETHOD(Init)(THIS_ IUnknown *object, struct IDirect3DRMLight *light,
+ D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz) PURE;
+ /*** IDirect3DRMShadow2 methods ***/
+ STDMETHOD(GetVisual)(THIS_ IDirect3DRMVisual **visual) PURE;
+ STDMETHOD(SetVisual)(THIS_ IUnknown *visual, DWORD flags) PURE;
+ STDMETHOD(GetLight)(THIS_ struct IDirect3DRMLight **light) PURE;
+ STDMETHOD(SetLight)(THIS_ struct IDirect3DRMLight *light, DWORD flags) PURE;
+ STDMETHOD(GetPlane)(THIS_ D3DVALUE *px, D3DVALUE *py, D3DVALUE *pz,
+ D3DVALUE *nx, D3DVALUE *ny, D3DVALUE *nz) PURE;
+ STDMETHOD(SetPlane)(THIS_ D3DVALUE px, D3DVALUE py, D3DVALUE pz,
+ D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, DWORD) PURE;
+ STDMETHOD(GetOptions)(THIS_ DWORD *flags) PURE;
+ STDMETHOD(SetOptions)(THIS_ DWORD) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMShadow2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMShadow2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMShadow2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMShadow2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMShadow2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMShadow2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMShadow methods ***/
+#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->lpVtbl->Init(p,a,b,c,d,e,f,g)
+/*** IDirect3DRMShadow2 methods ***/
+#define IDirect3DRMShadow2_GetVisual(p,a) (p)->lpVtbl->GetVisual(p,a)
+#define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->lpVtbl->SetVisual(p,a,b)
+#define IDirect3DRMShadow2_GetLight(p,a) (p)->lpVtbl->GetLight(p,a)
+#define IDirect3DRMShadow2_SetLight(p,a,b) (p)->lpVtbl->SetLight(p,a,b)
+#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->GetPlane(p,a,b,c,d,e,f)
+#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->lpVtbl->SetPlane(p,a,b,c,d,e,f)
+#define IDirect3DRMShadow2_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a)
+#define IDirect3DRMShadow2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMShadow2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMShadow2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMShadow2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMShadow2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMShadow2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMShadow2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMShadow2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMShadow2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMShadow2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMShadow2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMShadow2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMShadow methods ***/
+#define IDirect3DRMShadow2_Init(p,a,b,c,d,e,f,g) (p)->Init(a,b,c,d,e,f,g)
+/*** IDirect3DRMShadow2 methods ***/
+#define IDirect3DRMShadow2_GetVisual(p,a) (p)->GetVisual(a)
+#define IDirect3DRMShadow2_SetVisual(p,a,b) (p)->SetVisual(a,b)
+#define IDirect3DRMShadow2_GetLight(p,a) (p)->GetLight(a)
+#define IDirect3DRMShadow2_SetLight(p,a,b) (p)->SetLight(a,b)
+#define IDirect3DRMShadow2_GetPlane(p,a,b,c,d,e,f) (p)->GetPlane(a,b,c,d,e,f)
+#define IDirect3DRMShadow2_SetPlane(p,a,b,c,d,e,f) (p)->SetPlane(a,b,c,d,e,f)
+#define IDirect3DRMShadow2_GetOptions(p,a) (p)->GetOptions(a)
+#define IDirect3DRMShadow2_SetOptions(p,a) (p)->SetOptions(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFace interface
+ */
+#define INTERFACE IDirect3DRMFace
+DECLARE_INTERFACE_(IDirect3DRMFace,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMFace methods ***/
+ STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
+ STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
+ STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
+ STDMETHOD(GetTextureTopology)(THIS_ WINBOOL *wrap_u, WINBOOL *wrap_v) PURE;
+ STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
+ STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture **texture) PURE;
+ STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial **material) PURE;
+ STDMETHOD_(int, GetVertexCount)(THIS) PURE;
+ STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
+ STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFace_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFace_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFace_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFace_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMFace_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMFace_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMFace_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMFace_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMFace_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMFace methods ***/
+#define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
+#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
+#define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMFace_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMFace_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMFace_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
+#define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
+#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
+#define IDirect3DRMFace_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
+#define IDirect3DRMFace_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
+#define IDirect3DRMFace_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
+#define IDirect3DRMFace_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
+#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
+#define IDirect3DRMFace_GetColor(p) (p)->lpVtbl->GetColor(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFace_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFace_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFace_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFace_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMFace_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMFace_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMFace_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMFace_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMFace_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMFace_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMFace_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMFace methods ***/
+#define IDirect3DRMFace_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
+#define IDirect3DRMFace_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
+#define IDirect3DRMFace_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMFace_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMFace_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMFace_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
+#define IDirect3DRMFace_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMFace_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMFace_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
+#define IDirect3DRMFace_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
+#define IDirect3DRMFace_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
+#define IDirect3DRMFace_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
+#define IDirect3DRMFace_GetNormal(p,a) (p)->GetNormal(a)
+#define IDirect3DRMFace_GetTexture(p,a) (p)->GetTexture(a)
+#define IDirect3DRMFace_GetVertexCount(p) (p)->GetVertexCount()
+#define IDirect3DRMFace_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
+#define IDirect3DRMFace_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
+#define IDirect3DRMFace_GetColor(p) (p)->GetColor()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFace2 interface
+ */
+#define INTERFACE IDirect3DRMFace2
+DECLARE_INTERFACE_(IDirect3DRMFace2,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMFace methods ***/
+ STDMETHOD(AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddVertexAndNormalIndexed)(THIS_ DWORD vertex, DWORD normal) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE, D3DVALUE, D3DVALUE) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
+ STDMETHOD(SetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE u, D3DVALUE v) PURE;
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vertex, D3DVECTOR *normal) PURE;
+ STDMETHOD(GetVertices)(THIS_ DWORD *vertex_count, D3DVECTOR *coords, D3DVECTOR *normals);
+ STDMETHOD(GetTextureCoordinates)(THIS_ DWORD vertex, D3DVALUE *u, D3DVALUE *v) PURE;
+ STDMETHOD(GetTextureTopology)(THIS_ WINBOOL *wrap_u, WINBOOL *wrap_v) PURE;
+ STDMETHOD(GetNormal)(THIS_ D3DVECTOR *) PURE;
+ STDMETHOD(GetTexture)(THIS_ struct IDirect3DRMTexture3 **texture) PURE;
+ STDMETHOD(GetMaterial)(THIS_ struct IDirect3DRMMaterial2 **material) PURE;
+ STDMETHOD_(int, GetVertexCount)(THIS) PURE;
+ STDMETHOD_(int, GetVertexIndex)(THIS_ DWORD which) PURE;
+ STDMETHOD_(int, GetTextureCoordinateIndex)(THIS_ DWORD which) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFace2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFace2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFace2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMFace2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMFace2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMFace2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMFace2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMFace2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMFace methods ***/
+#define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
+#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->lpVtbl->AddVertexAndNormalIndexed(p,a,b)
+#define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMFace2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMFace2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMFace2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->lpVtbl->GetVertex(p,a,b,c)
+#define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
+#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->lpVtbl->GetTextureTopology(p,a,b)
+#define IDirect3DRMFace2_GetNormal(p,a) (p)->lpVtbl->GetNormal(p,a)
+#define IDirect3DRMFace2_GetTexture(p,a) (p)->lpVtbl->GetTexture(p,a)
+#define IDirect3DRMFace2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
+#define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->lpVtbl->GetVertexIndex(p,a)
+#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->lpVtbl->GetTextureCoordinateIndex(p,a)
+#define IDirect3DRMFace2_GetColor(p) (p)->lpVtbl->GetColor(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFace2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFace2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFace2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMFace2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMFace2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMFace2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMFace2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMFace2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMFace2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMFace2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMFace2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMFace methods ***/
+#define IDirect3DRMFace2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
+#define IDirect3DRMFace2_AddVertexAndNormalIndexed(p,a,b) (p)->AddVertexAndNormalIndexed(a,b)
+#define IDirect3DRMFace2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMFace2_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMFace2_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMFace2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
+#define IDirect3DRMFace2_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMFace2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMFace2_GetVertex(p,a,b,c) (p)->GetVertex(a,b,c)
+#define IDirect3DRMFace2_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
+#define IDirect3DRMFace2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
+#define IDirect3DRMFace2_GetTextureTopology(p,a,b) (p)->GetTextureTopology(a,b)
+#define IDirect3DRMFace2_GetNormal(p,a) (p)->GetNormal(a)
+#define IDirect3DRMFace2_GetTexture(p,a) (p)->GetTexture(a)
+#define IDirect3DRMFace2_GetVertexCount(p) (p)->GetVertexCount()
+#define IDirect3DRMFace2_GetVertexIndex(p,a) (p)->GetVertexIndex(a)
+#define IDirect3DRMFace2_GetTextureCoordinateIndex(p,a) (p)->GetTextureCoordinateIndex(a)
+#define IDirect3DRMFace2_GetColor(p) (p)->GetColor()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMeshBuilder interface
+ */
+#define INTERFACE IDirect3DRMMeshBuilder
+DECLARE_INTERFACE_(IDirect3DRMMeshBuilder,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMeshBuilder methods ***/
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
+ STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
+ STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
+ STDMETHOD(GenerateNormals)(THIS) PURE;
+ STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
+ STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
+ STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
+ STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
+ STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
+ STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
+ D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetPerspective)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
+ STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
+ STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
+ DWORD *face_data_size, DWORD *face_data) PURE;
+ STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
+ STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetPerspective)(THIS) PURE;
+ STDMETHOD_(int, GetFaceCount)(THIS) PURE;
+ STDMETHOD_(int, GetVertexCount)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMeshBuilder_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMeshBuilder_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMeshBuilder_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMeshBuilder_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMMeshBuilder methods ***/
+#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
+#define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
+#define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
+#define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
+#define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
+#define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
+#define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
+#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
+#define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
+#define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
+#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
+#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
+#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
+#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
+#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
+#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
+#define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRMMeshBuilder_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
+#define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
+#define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
+#define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
+#define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMeshBuilder_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMeshBuilder_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMeshBuilder_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMeshBuilder_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMeshBuilder_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMeshBuilder_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMeshBuilder_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMeshBuilder methods ***/
+#define IDirect3DRMMeshBuilder_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMMeshBuilder_Save(p,a,b,c) (p)->Save(a,b,c)
+#define IDirect3DRMMeshBuilder_Scale(p,a,b,c) (p)->Scale(a,b,c)
+#define IDirect3DRMMeshBuilder_Translate(p,a,b,c) (p)->Translate(a)
+#define IDirect3DRMMeshBuilder_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
+#define IDirect3DRMMeshBuilder_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMMeshBuilder_GenerateNormals(p) (p)->GenerateNormals()
+#define IDirect3DRMMeshBuilder_GetColorSource(p) (p)->GetColorSource()
+#define IDirect3DRMMeshBuilder_AddMesh(p,a) (p)-->AddMesh(a)
+#define IDirect3DRMMeshBuilder_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
+#define IDirect3DRMMeshBuilder_AddFrame(p,a) (p)->AddFrame(a)
+#define IDirect3DRMMeshBuilder_AddFace(p,a) (p)->AddFace(a)
+#define IDirect3DRMMeshBuilder_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
+#define IDirect3DRMMeshBuilder_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMMeshBuilder_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMMeshBuilder_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMMeshBuilder_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMMeshBuilder_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMMeshBuilder_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMMeshBuilder_SetPerspective(p,a) (p)->SetPerspective(a)
+#define IDirect3DRMMeshBuilder_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
+#define IDirect3DRMMeshBuilder_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
+#define IDirect3DRMMeshBuilder_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
+#define IDirect3DRMMeshBuilder_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
+#define IDirect3DRMMeshBuilder_GetFaces(p,a) (p)->GetFaces(a)
+#define IDirect3DRMMeshBuilder_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
+#define IDirect3DRMMeshBuilder_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
+#define IDirect3DRMMeshBuilder_CreateFace(p,a) (p)->CreateFace(a)
+#define IDirect3DRMMeshBuilder_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMMeshBuilder_GetPerspective(p) (p)->GetPerspective()
+#define IDirect3DRMMeshBuilder_GetFaceCount(p) (p)->GetFaceCount()
+#define IDirect3DRMMeshBuilder_GetVertexCount(p) (p)->GetVertexCount()
+#define IDirect3DRMMeshBuilder_GetVertexColor(p,a) (p)->GetVertexColor(a)
+#define IDirect3DRMMeshBuilder_CreateMesh(p,a) (p)->CreateMesh(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMeshBuilder2 interface
+ */
+#define INTERFACE IDirect3DRMMeshBuilder2
+DECLARE_INTERFACE_(IDirect3DRMMeshBuilder2,IDirect3DRMMeshBuilder)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMeshBuilder methods ***/
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
+ STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
+ STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
+ STDMETHOD(GenerateNormals)(THIS) PURE;
+ STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
+ STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
+ STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder *mesh_builder) PURE;
+ STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
+ STDMETHOD(AddFace)(THIS_ IDirect3DRMFace *face) PURE;
+ STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
+ D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture *texture) PURE;
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial *material) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetPerspective)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
+ STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
+ STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(GetVertices)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
+ DWORD *face_data_size, DWORD *face_data) PURE;
+ STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
+ STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace **face) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetPerspective)(THIS) PURE;
+ STDMETHOD_(int, GetFaceCount)(THIS) PURE;
+ STDMETHOD_(int, GetVertexCount)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+ /*** IDirect3DRMMeshBuilder2 methods ***/
+ STDMETHOD(GenerateNormals2)(THIS_ D3DVALUE crease, DWORD flags) PURE;
+ STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace **face) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMeshBuilder2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMeshBuilder2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMMeshBuilder methods ***/
+#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
+#define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->lpVtbl->GenerateNormals(p)
+#define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
+#define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
+#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
+#define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
+#define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
+#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
+#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
+#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
+#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->lpVtbl->GetVertices(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
+#define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
+#define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
+#define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
+#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
+#define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+/*** IDirect3DRMMeshBuilder2 methods ***/
+#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->lpVtbl->GenerateNormals2(p,a,b)
+#define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->lpVtbl->GetFace(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMeshBuilder2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMeshBuilder2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMeshBuilder2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMeshBuilder2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMeshBuilder2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMeshBuilder2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMeshBuilder2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMeshBuilder methods ***/
+#define IDirect3DRMMeshBuilder2_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMMeshBuilder2_Save(p,a,b,c) (p)->Save(a,b,c)
+#define IDirect3DRMMeshBuilder2_Scale(p,a,b,c) (p)->Scale(a,b,c)
+#define IDirect3DRMMeshBuilder2_Translate(p,a,b,c) (p)->Translate(a)
+#define IDirect3DRMMeshBuilder2_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
+#define IDirect3DRMMeshBuilder2_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMMeshBuilder2_GenerateNormals(p) (p)->GenerateNormals()
+#define IDirect3DRMMeshBuilder2_GetColorSource(p) (p)->GetColorSource()
+#define IDirect3DRMMeshBuilder2_AddMesh(p,a) (p)-->AddMesh(a)
+#define IDirect3DRMMeshBuilder2_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
+#define IDirect3DRMMeshBuilder2_AddFrame(p,a) (p)->AddFrame(a)
+#define IDirect3DRMMeshBuilder2_AddFace(p,a) (p)->AddFace(a)
+#define IDirect3DRMMeshBuilder2_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder2_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
+#define IDirect3DRMMeshBuilder2_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMMeshBuilder2_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMMeshBuilder2_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMMeshBuilder2_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMMeshBuilder2_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMMeshBuilder2_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMMeshBuilder2_SetPerspective(p,a) (p)->SetPerspective(a)
+#define IDirect3DRMMeshBuilder2_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
+#define IDirect3DRMMeshBuilder2_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
+#define IDirect3DRMMeshBuilder2_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder2_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
+#define IDirect3DRMMeshBuilder2_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
+#define IDirect3DRMMeshBuilder2_GetFaces(p,a) (p)->GetFaces(a)
+#define IDirect3DRMMeshBuilder2_GetVertices(p,a,b,c,d,e,f) (p)->GetVertices(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder2_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder2_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
+#define IDirect3DRMMeshBuilder2_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
+#define IDirect3DRMMeshBuilder2_CreateFace(p,a) (p)->CreateFace(a)
+#define IDirect3DRMMeshBuilder2_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMMeshBuilder2_GetPerspective(p) (p)->GetPerspective()
+#define IDirect3DRMMeshBuilder2_GetFaceCount(p) (p)->GetFaceCount()
+#define IDirect3DRMMeshBuilder2_GetVertexCount(p) (p)->GetVertexCount()
+#define IDirect3DRMMeshBuilder2_GetVertexColor(p,a) (p)->GetVertexColor(a)
+#define IDirect3DRMMeshBuilder2_CreateMesh(p,a) (p)->CreateMesh(a)
+/*** IDirect3DRMMeshBuilder2 methods ***/
+#define IDirect3DRMMeshBuilder2_GenerateNormals2(p,a,b) (p)->GenerateNormals2(a,b)
+#define IDirect3DRMMeshBuilder2_GetFace(p,a,b) (p)->GetFace(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMeshBuilder3 interface
+ */
+#define INTERFACE IDirect3DRMMeshBuilder3
+DECLARE_INTERFACE_(IDirect3DRMMeshBuilder3,IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMeshBuilder3 methods ***/
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURE3CALLBACK cb, void *ctx) PURE;
+ STDMETHOD(Save)(THIS_ const char *filename, D3DRMXOFFORMAT, D3DRMSAVEOPTIONS save) PURE;
+ STDMETHOD(Scale)(THIS_ D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+ STDMETHOD(Translate)(THIS_ D3DVALUE tx, D3DVALUE ty, D3DVALUE tz) PURE;
+ STDMETHOD(SetColorSource)(THIS_ D3DRMCOLORSOURCE) PURE;
+ STDMETHOD(GetBox)(THIS_ D3DRMBOX *) PURE;
+ STDMETHOD(GenerateNormals)(THIS_ D3DVALUE crease, DWORD flags) PURE;
+ STDMETHOD_(D3DRMCOLORSOURCE, GetColorSource)(THIS) PURE;
+ STDMETHOD(AddMesh)(THIS_ IDirect3DRMMesh *mesh) PURE;
+ STDMETHOD(AddMeshBuilder)(THIS_ IDirect3DRMMeshBuilder3 *mesh_builder, DWORD flags) PURE;
+ STDMETHOD(AddFrame)(THIS_ IDirect3DRMFrame3 *frame) PURE;
+ STDMETHOD(AddFace)(THIS_ IDirect3DRMFace2 *face) PURE;
+ STDMETHOD(AddFaces)(THIS_ DWORD vertex_count, D3DVECTOR *vertices, DWORD normal_count,
+ D3DVECTOR *normals, DWORD *face_data, struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(ReserveSpace)(THIS_ DWORD vertex_Count, DWORD normal_count, DWORD face_count) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetTexture)(THIS_ struct IDirect3DRMTexture3 *texture) PURE;
+ STDMETHOD(SetMaterial)(THIS_ struct IDirect3DRMMaterial2 *material) PURE;
+ STDMETHOD(SetTextureTopology)(THIS_ WINBOOL wrap_u, WINBOOL wrap_v) PURE;
+ STDMETHOD(SetQuality)(THIS_ D3DRMRENDERQUALITY) PURE;
+ STDMETHOD(SetPerspective)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetVertex)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetNormal)(THIS_ DWORD index, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(SetTextureCoordinates)(THIS_ DWORD index, D3DVALUE u, D3DVALUE v) PURE;
+ STDMETHOD(SetVertexColor)(THIS_ DWORD index, D3DCOLOR) PURE;
+ STDMETHOD(SetVertexColorRGB)(THIS_ DWORD index, D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(GetFaces)(THIS_ struct IDirect3DRMFaceArray **array) PURE;
+ STDMETHOD(GetGeometry)(THIS_ DWORD *vcount, D3DVECTOR *vertices, DWORD *ncount, D3DVECTOR *normals,
+ DWORD *face_data_size, DWORD *face_data) PURE;
+ STDMETHOD(GetTextureCoordinates)(THIS_ DWORD index, D3DVALUE *u, D3DVALUE *v) PURE;
+ STDMETHOD_(int, AddVertex)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD_(int, AddNormal)(THIS_ D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(CreateFace)(THIS_ IDirect3DRMFace2 **face) PURE;
+ STDMETHOD_(D3DRMRENDERQUALITY, GetQuality)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetPerspective)(THIS) PURE;
+ STDMETHOD_(int, GetFaceCount)(THIS) PURE;
+ STDMETHOD_(int, GetVertexCount)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetVertexColor)(THIS_ DWORD index) PURE;
+ STDMETHOD(CreateMesh)(THIS_ IDirect3DRMMesh **mesh) PURE;
+ STDMETHOD(GetFace)(THIS_ DWORD index, IDirect3DRMFace2 **face) PURE;
+ STDMETHOD(GetVertex)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
+ STDMETHOD(GetNormal)(THIS_ DWORD index, D3DVECTOR *vector) PURE;
+ STDMETHOD(DeleteVertices)(THIS_ DWORD IndexFirst, DWORD count) PURE;
+ STDMETHOD(DeleteNormals)(THIS_ DWORD IndexFirst, DWORD count) PURE;
+ STDMETHOD(DeleteFace)(THIS_ IDirect3DRMFace2 *face) PURE;
+ STDMETHOD(Empty)(THIS_ DWORD flags) PURE;
+ STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
+ STDMETHOD(AddFacesIndexed)(THIS_ DWORD flags, DWORD *pvIndices, DWORD *pIndexFirst, DWORD *pCount) PURE;
+ STDMETHOD(CreateSubMesh)(THIS_ IUnknown **mesh) PURE;
+ STDMETHOD(GetParentMesh)(THIS_ DWORD flags, IUnknown **parent) PURE;
+ STDMETHOD(GetSubMeshes)(THIS_ DWORD *count, IUnknown **meshes) PURE;
+ STDMETHOD(DeleteSubMesh)(THIS_ IUnknown *mesh) PURE;
+ STDMETHOD(Enable)(THIS_ DWORD) PURE;
+ STDMETHOD(GetEnable)(THIS_ DWORD *) PURE;
+ STDMETHOD(AddTriangles)(THIS_ DWORD flags, DWORD format, DWORD vertex_count, void *data) PURE;
+ STDMETHOD(SetVertices)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v) PURE;
+ STDMETHOD(GetVertices)(THIS_ DWORD start_idx, DWORD *count, D3DVECTOR *v) PURE;
+ STDMETHOD(SetNormals)(THIS_ DWORD start_idx, DWORD count, D3DVECTOR *v) PURE;
+ STDMETHOD(GetNormals)(THIS_ DWORD start_idx, DWORD *count, D3DVECTOR *v) PURE;
+ STDMETHOD_(int, GetNormalCount)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMeshBuilder3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMeshBuilder3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMeshBuilder3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMeshBuilder3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMeshBuilder3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMeshBuilder3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+
+/*** IDirect3DRMMeshBuilder3 methods ***/
+#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e) (p)->lpVtbl->Load(p,a,b,c,d,e)
+#define IDirect3DRMMeshBuilder3_Save(p,a,b,c) (p)->lpVtbl->Save(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a)
+#define IDirect3DRMMeshBuilder3_SetColorSource(p,a) (p)->lpVtbl->SetColorSource(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_GetBox(p,a) (p)->lpVtbl->GetBox(p,a)
+#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b) (p)->lpVtbl->GenerateNormals(p,a,b)
+#define IDirect3DRMMeshBuilder3_GetColorSource(p) (p)->lpVtbl->GetColorSource(p)
+#define IDirect3DRMMeshBuilder3_AddMesh(p,a) (p)->lpVtbl->AddMesh(p,a)
+#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a) (p)->lpVtbl->AddMeshBuilder(p,a)
+#define IDirect3DRMMeshBuilder3_AddFrame(p,a) (p)->lpVtbl->AddFrame(p,a)
+#define IDirect3DRMMeshBuilder3_AddFace(p,a) (p)->lpVtbl->AddFace(p,a)
+#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f) (p)->lpVtbl->AddFaces(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c) (p)->lpVtbl->ReserveSpace(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMMeshBuilder3_SetTexture(p,a) (p)->lpVtbl->SetTexture(p,a)
+#define IDirect3DRMMeshBuilder3_SetMaterial(p,a) (p)->lpVtbl->SetMaterial(p,a)
+#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b) (p)->lpVtbl->SetTextureTopology(p,a,b)
+#define IDirect3DRMMeshBuilder3_SetQuality(p,a) (p)->lpVtbl->SetQuality(p,a)
+#define IDirect3DRMMeshBuilder3_SetPerspective(p,a) (p)->lpVtbl->SetPerspective(p,a)
+#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d) (p)->lpVtbl->SetVertex(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d) (p)->lpVtbl->SetNormal(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c) (p)->lpVtbl->SetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b) (p)->lpVtbl->SetVertexColor(p,a,b)
+#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d) (p)->lpVtbl->SetVertexColorRGB(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder3_GetFaces(p,a) (p)->lpVtbl->GetFaces(p,a)
+#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f) (p)->lpVtbl->GetGeometry(p,a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c) (p)->lpVtbl->GetTextureCoordinates(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c) (p)->lpVtbl->AddVertex(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c) (p)->lpVtbl->AddNormal(p,a,b,c)
+
+#define IDirect3DRMMeshBuilder3_CreateFace(p,a) (p)->lpVtbl->CreateFace(p,a)
+#define IDirect3DRMMeshBuilder3_GetQuality(p) (p)->lpVtbl->GetQuality(p)
+#define IDirect3DRMMeshBuilder3_GetPerspective(p) (p)->lpVtbl->GetPerspective(p)
+
+#define IDirect3DRMMeshBuilder3_GetFaceCount(p) (p)->lpVtbl->GetFaceCount(p)
+#define IDirect3DRMMeshBuilder3_GetVertexCount(p) (p)->lpVtbl->GetVertexCount(p)
+#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a) (p)->lpVtbl->GetVertexColor(p,a)
+#define IDirect3DRMMeshBuilder3_CreateMesh(p,a) (p)->lpVtbl->CreateMesh(p,a)
+#define IDirect3DRMMeshBuilder3_GetFace(p,a,b) (p)->lpVtbl->GetFace(p,a,b)
+#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b) (p)->lpVtbl->GetVertex(p,a,b)
+#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b) (p)->lpVtbl->GetNormal(p,a,b)
+#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b) (p)->lpVtbl->DeleteVertices(p,a,b)
+#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b) (p)->lpVtbl->DeleteNormals(p,a,b)
+#define IDirect3DRMMeshBuilder3_DeleteFace(p,a) (p)->lpVtbl->DeleteFace(p,a)
+#define IDirect3DRMMeshBuilder3_Empty(p,a) (p)->lpVtbl->Empty(p,a)
+#define IDirect3DRMMeshBuilder3_Optimize(p,a) (p)->lpVtbl->Optimize(p,a)
+#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d) (p)->lpVtbl->AddFacesIndexed(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a) (p)->lpVtbl->CreateSubMesh(p,a)
+#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b) (p)->lpVtbl->GetParentMesh(p,a,b)
+#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b) (p)->lpVtbl->GetSubMeshes(p,a,b)
+#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a) (p)->lpVtbl->DeleteSubMesh(p,a)
+#define IDirect3DRMMeshBuilder3_Enable(p,a) (p)->lpVtbl->Enable(p,a)
+#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d) (p)->lpVtbl->AddTriangles(p,a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c) (p)->lpVtbl->SetVertices(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c) (p)->lpVtbl->GetVertices(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c) (p)->lpVtbl->SetNormals(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c) (p)->lpVtbl->GetNormals(p,a,b,c)
+#define IDirect3DRMMeshBuilder3_GetNormalCount(p) (p)->lpVtbl->GetNormalCount(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMeshBuilder3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMeshBuilder3_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMeshBuilder3_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMeshBuilder3_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMeshBuilder3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMeshBuilder3_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMeshBuilder3_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMeshBuilder3_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMeshBuilder3_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMeshBuilder3_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMeshBuilder3 methods ***/
+#define IDirect3DRMMeshBuilder3_Load(p,a,b,c,d,e) (p)->Load(a,b,c,d,e)
+#define IDirect3DRMMeshBuilder3_Save(p,a,b,c) (p)->Save(a,b,c)
+#define IDirect3DRMMeshBuilder3_Scale(p,a,b,c) (p)->Scale(a,b,c)
+#define IDirect3DRMMeshBuilder3_Translate(p,a,b,c) (p)->Translate(a)
+#define IDirect3DRMMeshBuilder3_SetColorSource(p,a) (p)->SetColorSource(a,b,c)
+#define IDirect3DRMMeshBuilder3_GetBox(p,a) (p)->GetBox(a)
+#define IDirect3DRMMeshBuilder3_GenerateNormals(p,a,b) (p)->GenerateNormals(a,b)
+#define IDirect3DRMMeshBuilder3_GetColorSource(p) (p)->GetColorSource()
+#define IDirect3DRMMeshBuilder3_AddMesh(p,a) (p)-->AddMesh(a)
+#define IDirect3DRMMeshBuilder3_AddMeshBuilder(p,a) (p)->AddMeshBuilder(a)
+#define IDirect3DRMMeshBuilder3_AddFrame(p,a) (p)->AddFrame(a)
+#define IDirect3DRMMeshBuilder3_AddFace(p,a) (p)->AddFace(a)
+#define IDirect3DRMMeshBuilder3_AddFaces(p,a,b,c,d,e,f) (p)->AddFaces(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder3_ReserveSpace(p,a,b,c) (p)->ReserveSpace(a,b,c)
+#define IDirect3DRMMeshBuilder3_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMMeshBuilder3_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMMeshBuilder3_SetTexture(p,a) (p)->SetTexture(a)
+#define IDirect3DRMMeshBuilder3_SetMaterial(p,a) (p)->SetMaterial(a)
+#define IDirect3DRMMeshBuilder3_SetTextureTopology(p,a,b) (p)->SetTextureTopology(a,b)
+#define IDirect3DRMMeshBuilder3_SetQuality(p,a) (p)->SetQuality(a)
+#define IDirect3DRMMeshBuilder3_SetPerspective(p,a) (p)->SetPerspective(a)
+#define IDirect3DRMMeshBuilder3_SetVertex(p,a,b,c,d) (p)->SetVertex(a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetNormal(p,a,b,c,d) (p)->SetNormal(a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetTextureCoordinates(p,a,b,c) (p)->SetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder3_SetVertexColor(p,a,b) (p)->SetVertexColor(a,b)
+#define IDirect3DRMMeshBuilder3_SetVertexColorRGB(p,a,b,c,d) (p)->SetVertexColorRGB(a,b,c,d)
+#define IDirect3DRMMeshBuilder3_GetFaces(p,a) (p)->GetFaces(a)
+#define IDirect3DRMMeshBuilder3_GetGeometry(p,a,b,c,d,e,f) (p)->GetGeometry(a,b,c,d,e,f)
+#define IDirect3DRMMeshBuilder3_GetTextureCoordinates(p,a,b,c) (p)->GetTextureCoordinates(a,b,c)
+#define IDirect3DRMMeshBuilder3_AddVertex(p,a,b,c) (p)->AddVertex(a,b,c)
+#define IDirect3DRMMeshBuilder3_AddNormal(p,a,b,c) (p)->AddNormal(a,b,c)
+#define IDirect3DRMMeshBuilder3_CreateFace(p,a) (p)->CreateFace(a)
+
+#define IDirect3DRMMeshBuilder3_GetQuality(p) (p)->GetQuality()
+#define IDirect3DRMMeshBuilder3_GetPerspective(p) (p)->GetPerspective()
+#define IDirect3DRMMeshBuilder3_GetFaceCount(p) (p)->GetFaceCount()
+#define IDirect3DRMMeshBuilder3_GetVertexCount(p) (p)->GetVertexCount()
+#define IDirect3DRMMeshBuilder3_GetVertexColor(p,a) (p)->GetVertexColor(a)
+#define IDirect3DRMMeshBuilder3_CreateMesh(p,a) (p)->CreateMesh(a)
+#define IDirect3DRMMeshBuilder3_GetFace(p,a,b) (p)->GetFace(a,b)
+#define IDirect3DRMMeshBuilder3_GetVertex(p,a,b) (p)->GetVertex(a,b)
+#define IDirect3DRMMeshBuilder3_GetNormal(p,a,b) (p)->GetNormal(a,b)
+#define IDirect3DRMMeshBuilder3_DeleteVertices(p,a,b) (p)->DeleteVertices(a,b)
+#define IDirect3DRMMeshBuilder3_DeleteNormals(p,a,b) (p)->DeleteNormals(a,b)
+#define IDirect3DRMMeshBuilder3_DeleteFace(p,a) (p)->DeleteFace(a)
+#define IDirect3DRMMeshBuilder3_Empty(p,a) (p)->Empty(a)
+#define IDirect3DRMMeshBuilder3_Optimize(p,a) (p)->Optimize(a)
+#define IDirect3DRMMeshBuilder3_AddFacesIndexed(p,a,b,c,d) (p)->AddFacesIndexed(a,b,c,d)
+#define IDirect3DRMMeshBuilder3_CreateSubMesh(p,a) (p)->CreateSubMesh(a)
+#define IDirect3DRMMeshBuilder3_GetParentMesh(p,a,b) (p)->GetParentMesh(a,b)
+#define IDirect3DRMMeshBuilder3_GetSubMeshes(p,a,b) (p)->GetSubMeshes(a,b)
+#define IDirect3DRMMeshBuilder3_DeleteSubMesh(p,a) (p)->DeleteSubMesh(a)
+#define IDirect3DRMMeshBuilder3_Enable(p,a) (p)->Enable(a)
+#define IDirect3DRMMeshBuilder3_AddTriangles(p,a,b,c,d) (p)->AddTriangles(a,b,c,d)
+#define IDirect3DRMMeshBuilder3_SetVertices(p,a,b,c) (p)->SetVertices(a,b,c)
+#define IDirect3DRMMeshBuilder3_GetVertices(p,a,b,c) (p)->GetVertices(a,b,c)
+#define IDirect3DRMMeshBuilder3_SetNormals(p,a,b,c) (p)->SetNormals(a,b,c)
+#define IDirect3DRMMeshBuilder3_GetNormals(p,a,b,c) (p)->GetNormals(a,b,c)
+#define IDirect3DRMMeshBuilder3_GetNormalCount(p) (p)->GetNormalCount()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMLight interface
+ */
+#define INTERFACE IDirect3DRMLight
+DECLARE_INTERFACE_(IDirect3DRMLight,IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMLight methods ***/
+ STDMETHOD(SetType)(THIS_ D3DRMLIGHTTYPE) PURE;
+ STDMETHOD(SetColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(SetColorRGB)(THIS_ D3DVALUE red, D3DVALUE green, D3DVALUE blue) PURE;
+ STDMETHOD(SetRange)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetUmbra)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetPenumbra)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetConstantAttenuation)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetLinearAttenuation)(THIS_ D3DVALUE) PURE;
+ STDMETHOD(SetQuadraticAttenuation)(THIS_ D3DVALUE) PURE;
+ STDMETHOD_(D3DVALUE, GetRange)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetUmbra)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetPenumbra)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetConstantAttenuation)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetLinearAttenuation)(THIS) PURE;
+ STDMETHOD_(D3DVALUE, GetQuadraticAttenuation)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetColor)(THIS) PURE;
+ STDMETHOD_(D3DRMLIGHTTYPE, GetType)(THIS) PURE;
+ STDMETHOD(SetEnableFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
+ STDMETHOD(GetEnableFrame)(THIS_ IDirect3DRMFrame **frame) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMLight_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMLight_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMLight_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMLight_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMLight_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMLight_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMLight_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMLight_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMLight_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMLight_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMLight_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMLight methods ***/
+#define IDirect3DRMLight_SetType(p,a) (p)->lpVtbl->SetType(p,a)
+#define IDirect3DRMLight_SetColor(p,a) (p)->lpVtbl->SetColor(p,a)
+#define IDirect3DRMLight_SetColorRGB(p,a,b,c) (p)->lpVtbl->SetColorRGB(p,a,b,c)
+#define IDirect3DRMLight_SetRange(p,a) (p)->lpVtbl->SetRange(p,a)
+#define IDirect3DRMLight_SetUmbra(p,a) (p)->lpVtbl->SetUmbra(p,a)
+#define IDirect3DRMLight_SetPenumbra(p,a) (p)->lpVtbl->SetPenumbra(p,a)
+#define IDirect3DRMLight_SetConstantAttenuation(p,a) (p)->lpVtbl->SetConstantAttenuation(p,a)
+#define IDirect3DRMLight_SetLinearAttenuation(p,a) (p)->lpVtbl->SetLinearAttenuation(p,a)
+#define IDirect3DRMLight_SetQuadraticAttenuation(p,a) (p)->lpVtbl->SetQuadraticAttenuation(p,a)
+#define IDirect3DRMLight_GetRange(p) (p)->lpVtbl->GetRange(p)
+#define IDirect3DRMLight_GetUmbra(p) (p)->lpVtbl->GetUmbra(p)
+#define IDirect3DRMLight_GetPenumbra(p) (p)->lpVtbl->GetPenumbra(p)
+#define IDirect3DRMLight_GetConstantAttenuation(p) (p)->lpVtbl->GetConstantAttenuation(p)
+#define IDirect3DRMLight_GetLinearAttenuation(p) (p)->lpVtbl->GetLinearAttenuation(p)
+#define IDirect3DRMLight_GetQuadraticAttenuation(p) (p)->lpVtbl->GetQuadraticAttenuation(p)
+#define IDirect3DRMLight_GetColor(p) (p)->lpVtbl->GetColor(p)
+#define IDirect3DRMLight_GetType(p) (p)->lpVtbl->GetType(p)
+#define IDirect3DRMLight_SetEnableFrame(p,a) (p)->lpVtbl->SetEnableFrame(p,a)
+#define IDirect3DRMLight_GetEnableFrame(p,a) (p)->lpVtbl->GetEnableFrame(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMLight_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMLight_AddRef(p) (p)->AddRef()
+#define IDirect3DRMLight_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMLight_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMLight_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMLight_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMLight_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMLight_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMLight_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMLight_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMLight_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMLight methods ***/
+#define IDirect3DRMLight_SetType(p,a) (p)->SetType(a)
+#define IDirect3DRMLight_SetColor(p,a) (p)->SetColor(a)
+#define IDirect3DRMLight_SetColorRGB(p,a,b,c) (p)->SetColorRGB(a,b,c)
+#define IDirect3DRMLight_SetRange(p,a) (p)->SetRange(a)
+#define IDirect3DRMLight_SetUmbra(p,a) (p)->SetUmbra(a)
+#define IDirect3DRMLight_SetPenumbra(p,a) (p)->SetPenumbra(a)
+#define IDirect3DRMLight_SetConstantAttenuation(p,a) (p)->SetConstantAttenuation(a)
+#define IDirect3DRMLight_SetLinearAttenuation(p,a) (p)->SetLinearAttenuation(a)
+#define IDirect3DRMLight_SetQuadraticAttenuation(p,a) (p)->SetQuadraticAttenuation(a)
+#define IDirect3DRMLight_GetRange(p) (p)->GetRange()
+#define IDirect3DRMLight_GetUmbra(p) (p)->GetUmbra()
+#define IDirect3DRMLight_GetPenumbra(p) (p)->GetPenumbra()
+#define IDirect3DRMLight_GetConstantAttenuation(p) (p)->GetConstantAttenuation()
+#define IDirect3DRMLight_GetLinearAttenuation(p) (p)->GetLinearAttenuation()
+#define IDirect3DRMLight_GetQuadraticAttenuation(p) (p)->GetQuadraticAttenuation()
+#define IDirect3DRMLight_GetColor(p) (p)->GetColor()
+#define IDirect3DRMLight_GetType(p) (p)->GetType()
+#define IDirect3DRMLight_SetEnableFrame(p,a) (p)->SetEnableFrame(a)
+#define IDirect3DRMLight_GetEnableFrame(p,a) (p)->GetEnableFrame(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMTexture interface
+ */
+#define INTERFACE IDirect3DRMTexture
+DECLARE_INTERFACE_(IDirect3DRMTexture, IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMTexture methods ***/
+ STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
+ STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
+ STDMETHOD(Changed)(THIS_ WINBOOL pixels, WINBOOL palette) PURE;
+ STDMETHOD(SetColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
+ STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
+ STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalTransparency)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
+ STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
+ STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetColors)(THIS) PURE;
+ STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetDecalTransparency)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMTexture_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMTexture_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMTexture_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMTexture_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMTexture_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMTexture_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMTexture_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMTexture_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMTexture_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMTexture methods ***/
+#define IDirect3DRMTexture_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
+#define IDirect3DRMTexture_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
+#define IDirect3DRMTexture_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
+#define IDirect3DRMTexture_Changed(p,a,b) (p)->lpVtbl->Changed(p,a,b)
+#define IDirect3DRMTexture_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
+#define IDirect3DRMTexture_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMTexture_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
+#define IDirect3DRMTexture_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
+#define IDirect3DRMTexture_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
+#define IDirect3DRMTexture_SetDecalTransparencyColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
+#define IDirect3DRMTexture_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
+#define IDirect3DRMTexture_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture_GetImage(p) (p)->lpVtbl->GetImage(p)
+#define IDirect3DRMTexture_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMTexture_GetColors(p) (p)->lpVtbl->GetColors(p)
+#define IDirect3DRMTexture_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
+#define IDirect3DRMTexture_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
+#define IDirect3DRMTexture_GetDecalTransparencyColor(p) (p)->lpVtbl->GetDecalTransparencyColor(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMTexture_AddRef(p) (p)->AddRef()
+#define IDirect3DRMTexture_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMTexture_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMTexture_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMTexture_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMTexture_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMTexture_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMTexture_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMTexture_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMTexture methods ***/
+#define IDirect3DRMTexture_InitFromFile(p,a) (p)->InitFromFile(a)
+#define IDirect3DRMTexture_InitFromSurface(p,a) (p)->InitFromSurface(a)
+#define IDirect3DRMTexture_InitFromResource(p,a) (p)->InitFromResource(a)
+#define IDirect3DRMTexture_Changed(p,a,b) (p)->Changed(a,b)
+#define IDirect3DRMTexture_SetColors(p,a) (p)->SetColors(a)
+#define IDirect3DRMTexture_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMTexture_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
+#define IDirect3DRMTexture_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
+#define IDirect3DRMTexture_SetDecalScale(p,a) (p)->SetDecalScale(a)
+#define IDirect3DRMTexture_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
+#define IDirect3DRMTexture_SetDecalTransparentColor(p,a) (p)->SetDecalTransparentColor(a)
+#define IDirect3DRMTexture_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
+#define IDirect3DRMTexture_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
+#define IDirect3DRMTexture_GetImage(p) (p)->GetImage()
+#define IDirect3DRMTexture_GetShades(p) (p)->GetShades()
+#define IDirect3DRMTexture_GetColors(p) (p)->GetColors()
+#define IDirect3DRMTexture_GetDecalScale(p) (p)->GetDecalScale()
+#define IDirect3DRMTexture_GetDecalTransparency(p) (p)->GetDecalTransparency()
+#define IDirect3DRMTexture_GetDecalTransparentColor(p) (p)->GetDecalTransparentColor()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMTexture2 interface
+ */
+#define INTERFACE IDirect3DRMTexture2
+DECLARE_INTERFACE_(IDirect3DRMTexture2, IDirect3DRMTexture)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMTexture methods ***/
+ STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
+ STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
+ STDMETHOD(Changed)(THIS_ WINBOOL pixels, WINBOOL palette) PURE;
+ STDMETHOD(SetColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
+ STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
+ STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalTransparency)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
+ STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
+ STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetColors)(THIS) PURE;
+ STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetDecalTransparency)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
+ /*** IDirect3DRMTexture2 methods ***/
+ STDMETHOD(InitFromImage)(THIS_ D3DRMIMAGE *image) PURE;
+ STDMETHOD(InitFromResource2)(THIS_ HMODULE module, const char *name, const char *type) PURE;
+ STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMTexture2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMTexture2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMTexture2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMTexture2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMTexture2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMTexture2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMTexture2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMTexture2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMTexture2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMTexture methods ***/
+#define IDirect3DRMTexture2_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
+#define IDirect3DRMTexture2_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
+#define IDirect3DRMTexture2_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
+#define IDirect3DRMTexture2_Changed(p,a,b) (p)->lpVtbl->Changed(p,a,b)
+#define IDirect3DRMTexture2_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
+#define IDirect3DRMTexture2_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMTexture2_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
+#define IDirect3DRMTexture2_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture2_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
+#define IDirect3DRMTexture2_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
+#define IDirect3DRMTexture2_SetDecalTransparencyColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
+#define IDirect3DRMTexture2_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
+#define IDirect3DRMTexture2_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture2_GetImage(p) (p)->lpVtbl->GetImage(p)
+#define IDirect3DRMTexture2_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMTexture2_GetColors(p) (p)->lpVtbl->GetColors(p)
+#define IDirect3DRMTexture2_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
+#define IDirect3DRMTexture2_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
+#define IDirect3DRMTexture2_GetDecalTransparencyColor(p) (p)->lpVtbl->GetDecalTransparencyColor(p)
+/*** IDirect3DRMTexture2 methods ***/
+#define IDirect3DRMTexture2_InitFromImage(p,a) (p)->lpVtbl->InitFromImage(p,a)
+#define IDirect3DRMTexture2_InitFromResource2(p,a,b,c) (p)->lpVtbl->InitFromResource2(p,a,b,c)
+#define IDirect3DRMTexture2_GenerateMIPMap(p,a) (p)->lpVtbl->GenerateMIPMap(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMTexture2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMTexture2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMTexture2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMTexture2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMTexture2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMTexture2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMTexture2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMTexture2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMTexture2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMTexture methods ***/
+#define IDirect3DRMTexture2_InitFromFile(p,a) (p)->InitFromFile(a)
+#define IDirect3DRMTexture2_InitFromSurface(p,a) (p)->InitFromSurface(a)
+#define IDirect3DRMTexture2_InitFromResource(p,a) (p)->InitFromResource(a)
+#define IDirect3DRMTexture2_Changed(p,a,b) (p)->Changed(a,b)
+#define IDirect3DRMTexture2_SetColors(p,a) (p)->SetColors(a)
+#define IDirect3DRMTexture2_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMTexture2_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
+#define IDirect3DRMTexture2_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
+#define IDirect3DRMTexture2_SetDecalScale(p,a) (p)->SetDecalScale(a)
+#define IDirect3DRMTexture2_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
+#define IDirect3DRMTexture2_SetDecalTransparentColor(p,a) (p)->SetDecalTransparentColor(a)
+#define IDirect3DRMTexture2_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
+#define IDirect3DRMTexture2_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
+#define IDirect3DRMTexture2_GetImage(p) (p)->GetImage()
+#define IDirect3DRMTexture2_GetShades(p) (p)->GetShades()
+#define IDirect3DRMTexture2_GetColors(p) (p)->GetColors()
+#define IDirect3DRMTexture2_GetDecalScale(p) (p)->GetDecalScale()
+#define IDirect3DRMTexture2_GetDecalTransparency(p) (p)->GetDecalTransparency()
+#define IDirect3DRMTexture2_GetDecalTransparentColor(p) (p)->GetDecalTransparentColor()
+/*** IDirect3DRMTexture2 methods ***/
+#define IDirect3DRMTexture2_InitFromImage(p,a) (p)->InitFromImage(a)
+#define IDirect3DRMTexture2_InitFromResource2(p,a,b,c) (p)->InitFromResource2(a,b,c)
+#define IDirect3DRMTexture2_GenerateMIPMap(p,a) (p)->GenerateMIPMap(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMTexture3 interface
+ */
+#define INTERFACE IDirect3DRMTexture3
+DECLARE_INTERFACE_(IDirect3DRMTexture3, IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMTexture3 methods ***/
+ STDMETHOD(InitFromFile)(THIS_ const char *filename) PURE;
+ STDMETHOD(InitFromSurface)(THIS_ IDirectDrawSurface *surface) PURE;
+ STDMETHOD(InitFromResource)(THIS_ HRSRC) PURE;
+ STDMETHOD(Changed)(THIS_ DWORD flags, DWORD rect_count, RECT *rects) PURE;
+ STDMETHOD(SetColors)(THIS_ DWORD) PURE;
+ STDMETHOD(SetShades)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalSize)(THIS_ D3DVALUE width, D3DVALUE height) PURE;
+ STDMETHOD(SetDecalOrigin)(THIS_ LONG x, LONG y) PURE;
+ STDMETHOD(SetDecalScale)(THIS_ DWORD) PURE;
+ STDMETHOD(SetDecalTransparency)(THIS_ WINBOOL) PURE;
+ STDMETHOD(SetDecalTransparentColor)(THIS_ D3DCOLOR) PURE;
+ STDMETHOD(GetDecalSize)(THIS_ D3DVALUE *width_return, D3DVALUE *height_return) PURE;
+ STDMETHOD(GetDecalOrigin)(THIS_ LONG *x_return, LONG *y_return) PURE;
+ STDMETHOD_(D3DRMIMAGE *, GetImage)(THIS) PURE;
+ STDMETHOD_(DWORD, GetShades)(THIS) PURE;
+ STDMETHOD_(DWORD, GetColors)(THIS) PURE;
+ STDMETHOD_(DWORD, GetDecalScale)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetDecalTransparency)(THIS) PURE;
+ STDMETHOD_(D3DCOLOR, GetDecalTransparentColor)(THIS) PURE;
+ STDMETHOD(InitFromImage)(THIS_ D3DRMIMAGE *image) PURE;
+ STDMETHOD(InitFromResource2)(THIS_ HMODULE module, const char *name, const char *type) PURE;
+ STDMETHOD(GenerateMIPMap)(THIS_ DWORD) PURE;
+ STDMETHOD(GetSurface)(THIS_ DWORD flags, IDirectDrawSurface **surface) PURE;
+ STDMETHOD(SetCacheOptions)(THIS_ LONG lImportance, DWORD dwFlags) PURE;
+ STDMETHOD(GetCacheOptions)(THIS_ LONG *importance, DWORD *flags) PURE;
+ STDMETHOD(SetDownsampleCallback)(THIS_ D3DRMDOWNSAMPLECALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetValidationCallback)(THIS_ D3DRMVALIDATIONCALLBACK cb, void *ctx) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMTexture3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMTexture3_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture3_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMTexture3_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMTexture3_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMTexture3_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMTexture3_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMTexture3_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMTexture3_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMTexture3_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMTexture3 methods ***/
+#define IDirect3DRMTexture3_InitFromFile(p,a) (p)->lpVtbl->InitFromFile(p,a)
+#define IDirect3DRMTexture3_InitFromSurface(p,a) (p)->lpVtbl->InitFromSurface(p,a)
+#define IDirect3DRMTexture3_InitFromResource(p,a) (p)->lpVtbl->InitFromResource(p,a)
+#define IDirect3DRMTexture3_Changed(p,a,b,c) (p)->lpVtbl->Changed(p,a,b,c)
+#define IDirect3DRMTexture3_SetColors(p,a) (p)->lpVtbl->SetColors(p,a)
+#define IDirect3DRMTexture3_SetShades(p,a) (p)->lpVtbl->SetShades(p,a)
+#define IDirect3DRMTexture3_SetDecalSize(p,a,b) (p)->lpVtbl->SetDecalSize(p,a,b)
+#define IDirect3DRMTexture3_SetDecalOrigin(p,a,b) (p)->lpVtbl->SetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture3_SetDecalScale(p,a) (p)->lpVtbl->SetDecalScale(p,a)
+#define IDirect3DRMTexture3_SetDecalTransparency(p,a) (p)->lpVtbl->SetDecalTransparency(p,a)
+#define IDirect3DRMTexture3_SetDecalTransparentColor(p,a) (p)->lpVtbl->SetDecalTransparentColor(p,a)
+#define IDirect3DRMTexture3_GetDecalSize(p,a,b) (p)->lpVtbl->GetDecalSize(p,a,b)
+#define IDirect3DRMTexture3_GetDecalOrigin(p,a,b) (p)->lpVtbl->GetDecalOrigin(p,a,b)
+#define IDirect3DRMTexture3_GetImage(p) (p)->lpVtbl->GetImage(p)
+#define IDirect3DRMTexture3_GetShades(p) (p)->lpVtbl->GetShades(p)
+#define IDirect3DRMTexture3_GetColors(p) (p)->lpVtbl->GetColors(p)
+#define IDirect3DRMTexture3_GetDecalScale(p) (p)->lpVtbl->GetDecalScale(p)
+#define IDirect3DRMTexture3_GetDecalTransparency(p) (p)->lpVtbl->GetDecalTransparency(p)
+#define IDirect3DRMTexture3_GetDecalTransparentColor(p) (p)->lpVtbl->GetDecalTransparentColor(p)
+#define IDirect3DRMTexture3_InitFromImage(p,a) (p)->lpVtbl->InitFromImage(p,a)
+#define IDirect3DRMTexture3_InitFromResource2(p,a,b,c) (p)->lpVtbl->InitFromResource2(p,a,b,c)
+#define IDirect3DRMTexture3_GenerateMIPMap(p,a) (p)->lpVtbl->GenerateMIPMap(p,a)
+#define IDirect3DRMTexture3_GetSurface(p,a,b) (p)->lpVtbl->GetSurface(p,a,b)
+#define IDirect3DRMTexture3_SetCacheOptions(p,a,b) (p)->lpVtbl->SetCacheOptions(p,a,b)
+#define IDirect3DRMTexture3_GetCacheOptions(p,a,b) (p)->lpVtbl->GetCacheOptions(p,a,b)
+#define IDirect3DRMTexture3_SetDownsampleCallback(p,a,b) (p)->lpVtbl->SetDownsampleCallback(p,a,b)
+#define IDirect3DRMTexture3_SetValidationCallback(p,a,b) (p)->lpVtbl->SetValidationCallback(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMTexture3_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMTexture3_AddRef(p) (p)->AddRef()
+#define IDirect3DRMTexture3_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMTexture3_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMTexture3_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMTexture3_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMTexture3_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMTexture3_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMTexture3_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMTexture3_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMTexture3_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMTexture3 methods ***/
+#define IDirect3DRMTexture3_InitFromFile(p,a) (p)->InitFromFile(a)
+#define IDirect3DRMTexture3_InitFromSurface(p,a) (p)->InitFromSurface(a)
+#define IDirect3DRMTexture3_InitFromResource(p,a) (p)->InitFromResource(a)
+#define IDirect3DRMTexture3_Changed(p,a,b,c) (p)->Changed(a,b,c)
+#define IDirect3DRMTexture3_SetColors(p,a) (p)->SetColors(a)
+#define IDirect3DRMTexture3_SetShades(p,a) (p)->SetShades(a)
+#define IDirect3DRMTexture3_SetDecalSize(p,a,b) (p)->SetDecalSize(a,b)
+#define IDirect3DRMTexture3_SetDecalOrigin(p,a,b) (p)->SetDecalOrigin(a,b)
+#define IDirect3DRMTexture3_SetDecalScale(p,a) (p)->SetDecalScale(a)
+#define IDirect3DRMTexture3_SetDecalTransparency(p,a) (p)->SetDecalTransparency(a)
+#define IDirect3DRMTexture3_SetDecalTransparencyColor(p,a) (p)->SetDecalTransparentColor(a)
+#define IDirect3DRMTexture3_GetDecalSize(p,a,b) (p)->GetDecalSize(a,b)
+#define IDirect3DRMTexture3_GetDecalOrigin(p,a,b) (p)->GetDecalOrigin(a,b)
+#define IDirect3DRMTexture3_GetImage(p) (p)->GetImage()
+#define IDirect3DRMTexture3_GetShades(p) (p)->GetShades()
+#define IDirect3DRMTexture3_GetColors(p) (p)->GetColors()
+#define IDirect3DRMTexture3_GetDecalScale(p) (p)->GetDecalScale()
+#define IDirect3DRMTexture3_GetDecalTransparency(p) (p)->GetDecalTransparency()
+#define IDirect3DRMTexture3_GetDecalTransparencyColor(p) (p)->GetDecalTransparencyColor()
+#define IDirect3DRMTexture3_InitFromImage(p,a) (p)->InitFromImage(a)
+#define IDirect3DRMTexture3_InitFromResource2(p,a,b,c) (p)->InitFromResource2(a,b,c)
+#define IDirect3DRMTexture3_GenerateMIPMap(p,a) (p)->GenerateMIPMap(a)
+#define IDirect3DRMTexture3_GetSurface(p,a,b) (p)->GetSurface(a,b)
+#define IDirect3DRMTexture3_SetCacheOptions(p,a,b) (p)->SetCacheOptions(a,b)
+#define IDirect3DRMTexture3_GetCacheOptions(p,a,b) (p)->GetCacheOptions(a,b)
+#define IDirect3DRMTexture3_SetDownsampleCallback(p,a,b) (p)->SetDownsampleCallback(a,b)
+#define IDirect3DRMTexture3_SetValidationCallback(p,a,b) (p)->SetValidationCallback(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMWrap interface
+ */
+#define INTERFACE IDirect3DRMWrap
+DECLARE_INTERFACE_(IDirect3DRMWrap, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMWrap methods ***/
+ STDMETHOD(Init)(THIS_ D3DRMWRAPTYPE type, IDirect3DRMFrame *reference, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
+ D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
+ D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv) PURE;
+ STDMETHOD(Apply)(THIS_ IDirect3DRMObject *object) PURE;
+ STDMETHOD(ApplyRelative)(THIS_ IDirect3DRMFrame *frame, IDirect3DRMObject *object) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMWrap_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMWrap_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMWrap_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMWrap_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMWrap_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMWrap_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMWrap_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMWrap_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMWrap_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMWrap_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMWrap_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMWrap methods ***/
+#define IDirect3DRMWrap_Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->lpVtbl->Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
+#define IDirect3DRMWrap_Apply(p,a) (p)->lpVtbl->Apply(p,a)
+#define IDirect3DRMWrap_ApplyRelative(p,a,b) (p)->lpVtbl->ApplyRelative(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMWrap_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMWrap_AddRef(p) (p)->AddRef()
+#define IDirect3DRMWrap_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMWrap_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMWrap_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMWrap_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMWrap_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMWrap_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMWrap_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMWrap_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMWrap_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMWrap methods ***/
+#define IDirect3DRMWrap_Init(p,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) (p)->Init(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
+#define IDirect3DRMWrap_Apply(p,a) (p)->Apply(a)
+#define IDirect3DRMWrap_ApplyRelative(p,a,b) (p)->ApplyRelative(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMaterial interface
+ */
+#define INTERFACE IDirect3DRMMaterial
+DECLARE_INTERFACE_(IDirect3DRMMaterial, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMaterial methods ***/
+ STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
+ STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
+ STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
+ STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
+ STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
+ STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMaterial_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMaterial_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMaterial_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMaterial_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMaterial_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMaterial_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMaterial_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMaterial_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMaterial_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMaterial_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMaterial_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMMaterial methods ***/
+#define IDirect3DRMMaterial_SetPower(p,a) (p)->lpVtbl->SetPower(p,a)
+#define IDirect3DRMMaterial_SetSpecular(p,a,b,c) (p)->lpVtbl->SetSpecular(p,a,b,c)
+#define IDirect3DRMMaterial_SetEmissive(p,a,b,c) (p)->lpVtbl->SetEmissive(p,a,b,c)
+#define IDirect3DRMMaterial_GetPower(p) (p)->lpVtbl->GetPower(p)
+#define IDirect3DRMMaterial_GetSpecular(p,a,b,c) (p)->lpVtbl->GetSpecular(p,a,b,c)
+#define IDirect3DRMMaterial_GetEmissive(p,a,b,c) (p)->lpVtbl->GetEmissive(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMaterial_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMaterial_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMaterial_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMaterial_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMaterial_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMaterial_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMaterial_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMaterial_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMaterial_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMaterial_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMaterial_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMaterial methods ***/
+#define IDirect3DRMMaterial_SetPower(p,a) (p)->SetPower(a)
+#define IDirect3DRMMaterial_SetSpecular(p,a,b,c) (p)->SetSpecular(a,b,c)
+#define IDirect3DRMMaterial_SetEmissive(p,a,b,c) (p)->SetEmissive(a,b,c)
+#define IDirect3DRMMaterial_GetPower(p) (p)->GetPower()
+#define IDirect3DRMMaterial_GetSpecular(p,a,b,c) (p)->GetSpecular(a,b,c)
+#define IDirect3DRMMaterial_GetEmissive(p,a,b,c) (p)->GetEmissive(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMMaterial2 interface
+ */
+#define INTERFACE IDirect3DRMMaterial2
+DECLARE_INTERFACE_(IDirect3DRMMaterial2, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMMaterial2 methods ***/
+ STDMETHOD(SetPower)(THIS_ D3DVALUE power) PURE;
+ STDMETHOD(SetSpecular)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
+ STDMETHOD(SetEmissive)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
+ STDMETHOD_(D3DVALUE, GetPower)(THIS) PURE;
+ STDMETHOD(GetSpecular)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
+ STDMETHOD(GetEmissive)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
+ STDMETHOD(GetAmbient)(THIS_ D3DVALUE* r, D3DVALUE* g, D3DVALUE* b) PURE;
+ STDMETHOD(SetAmbient)(THIS_ D3DVALUE r, D3DVALUE g, D3DVALUE b) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMMaterial2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMMaterial2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMMaterial2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMaterial2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMMaterial2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMMaterial2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMMaterial2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMMaterial2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMMaterial2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMMaterial2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMMaterial2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMMaterial2 methods ***/
+#define IDirect3DRMMaterial2_SetPower(p,a) (p)->lpVtbl->SetPower(p,a)
+#define IDirect3DRMMaterial2_SetSpecular(p,a,b,c) (p)->lpVtbl->SetSpecular(p,a,b,c)
+#define IDirect3DRMMaterial2_SetEmissive(p,a,b,c) (p)->lpVtbl->SetEmissive(p,a,b,c)
+#define IDirect3DRMMaterial2_GetPower(p) (p)->lpVtbl->GetPower(p)
+#define IDirect3DRMMaterial2_GetSpecular(p,a,b,c) (p)->lpVtbl->GetSpecular(p,a,b,c)
+#define IDirect3DRMMaterial2_GetEmissive(p,a,b,c) (p)->lpVtbl->GetEmissive(p,a,b,c)
+#define IDirect3DRMMaterial2_SetAmbient(p,a,b,c) (p)->lpVtbl->SetAmbient(p,a,b,c)
+#define IDirect3DRMMaterial2_GetAmbient(p,a,b,c) (p)->lpVtbl->GetAmbient(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMMaterial2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMMaterial2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMMaterial2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMMaterial2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMMaterial2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMMaterial2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMMaterial2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMMaterial2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMMaterial2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMMaterial2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMMaterial2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMMaterial2 methods ***/
+#define IDirect3DRMMaterial2_SetPower(p,a) (p)->SetPower(a)
+#define IDirect3DRMMaterial2_SetSpecular(p,a,b,c) (p)->SetSpecular(a,b,c)
+#define IDirect3DRMMaterial2_SetEmissive(p,a,b,c) (p)->SetEmissive(a,b,c)
+#define IDirect3DRMMaterial2_GetPower(p) (p)->GetPower()
+#define IDirect3DRMMaterial2_GetSpecular(p,a,b,c) (p)->GetSpecular(a,b,c)
+#define IDirect3DRMMaterial2_GetEmissive(p,a,b,c) (p)->GetEmissive(a,b,c)
+#define IDirect3DRMMaterial2_SetAmbient(p,a,b,c) (p)->SetAmbient(a,b,c)
+#define IDirect3DRMMaterial2_GetAmbient(p,a,b,c) (p)->GetAmbient(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMAnimation interface
+ */
+#define INTERFACE IDirect3DRMAnimation
+DECLARE_INTERFACE_(IDirect3DRMAnimation, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMAnimation methods ***/
+ STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
+ STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
+ STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
+ STDMETHOD(SetFrame)(THIS_ IDirect3DRMFrame *frame) PURE;
+ STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
+ STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMAnimation_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMAnimation_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimation_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMAnimation_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMAnimation_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMAnimation_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMAnimation_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMAnimation_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMAnimation_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMAnimation_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMAnimation methods ***/
+#define IDirect3DRMAnimation_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
+#define IDirect3DRMAnimation_AddRotateKey(p,a,b) (p)->lpVtbl->AddRotateKey(p,a,b)
+#define IDirect3DRMAnimation_AddPositionKey(p,a,b,c,d) (p)->lpVtbl->AddPositionKey(p,a,b,c,d)
+#define IDirect3DRMAnimation_AddScaleKey(p,a,b,c,d) (p)->lpVtbl->AddScaleKey(p,a,b,c,d)
+#define IDirect3DRMAnimation_DeleteKey(p,a) (p)->lpVtbl->DeleteKey(p,a)
+#define IDirect3DRMAnimation_SetFrame(p,a) (p)->lpVtbl->SetFrame(p,a)
+#define IDirect3DRMAnimation_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
+#define IDirect3DRMAnimation_GetOptions(p) (p)->lpVtbl->GetOptions(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimation_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMAnimation_AddRef(p) (p)->AddRef()
+#define IDirect3DRMAnimation_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimation_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMAnimation_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMAnimation_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMAnimation_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMAnimation_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMAnimation_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMAnimation_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMAnimation_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMAnimation methods ***/
+#define IDirect3DRMAnimation_SetOptions(p,a) (p)->SetOptions(a)
+#define IDirect3DRMAnimation_AddRotateKey(p,a,b) (p)->AddRotateKey(a,b)
+#define IDirect3DRMAnimation_AddPositionKey(p,a,b,c,d) (p)->AddPositionKey(a,b,c,d)
+#define IDirect3DRMAnimation_AddScaleKey(p,a,b,c,d) (p)->AddScaleKey(a,b,c,d)
+#define IDirect3DRMAnimation_DeleteKey(p,a) (p)->DeleteKey(a)
+#define IDirect3DRMAnimation_SetFrame(p,a) (p)->SetFrame(a)
+#define IDirect3DRMAnimation_SetTime(p,a) (p)->SetTime(a)
+#define IDirect3DRMAnimation_GetOptions(p) (p)->GetOptions()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMAnimation2 interface
+ */
+#define INTERFACE IDirect3DRMAnimation2
+DECLARE_INTERFACE_(IDirect3DRMAnimation2, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMAnimation2 methods ***/
+ STDMETHOD(SetOptions)(THIS_ D3DRMANIMATIONOPTIONS flags) PURE;
+ STDMETHOD(AddRotateKey)(THIS_ D3DVALUE time, D3DRMQUATERNION *q) PURE;
+ STDMETHOD(AddPositionKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(AddScaleKey)(THIS_ D3DVALUE time, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+ STDMETHOD(DeleteKey)(THIS_ D3DVALUE time) PURE;
+ STDMETHOD(SetFrame)(THIS_ IDirect3DRMFrame3 *frame) PURE;
+ STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
+ STDMETHOD_(D3DRMANIMATIONOPTIONS, GetOptions)(THIS) PURE;
+ STDMETHOD(GetFrame)(THIS_ IDirect3DRMFrame3 **frame) PURE;
+ STDMETHOD(DeleteKeyByID)(THIS_ DWORD dwID) PURE;
+ STDMETHOD(AddKey)(THIS_ D3DRMANIMATIONKEY *key) PURE;
+ STDMETHOD(ModifyKey)(THIS_ D3DRMANIMATIONKEY *key) PURE;
+ STDMETHOD(GetKeys)(THIS_ D3DVALUE time_min, D3DVALUE time_max, DWORD *key_count, D3DRMANIMATIONKEY *keys);
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimation2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMAnimation2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMAnimation2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimation2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMAnimation2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMAnimation2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMAnimation2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMAnimation2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMAnimation2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMAnimation2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMAnimation2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMAnimation2 methods ***/
+#define IDirect3DRMAnimation2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a)
+#define IDirect3DRMAnimation2_AddRotateKey(p,a,b) (p)->lpVtbl->AddRotateKey(p,a,b)
+#define IDirect3DRMAnimation2_AddPositionKey(p,a,b,c,d) (p)->lpVtbl->AddPositionKey(p,a,b,c,d)
+#define IDirect3DRMAnimation2_AddScaleKey(p,a,b,c,d) (p)->lpVtbl->AddScaleKey(p,a,b,c,d)
+#define IDirect3DRMAnimation2_DeleteKey(p,a) (p)->lpVtbl->DeleteKey(p,a)
+#define IDirect3DRMAnimation2_SetFrame(p,a) (p)->lpVtbl->SetFrame(p,a)
+#define IDirect3DRMAnimation2_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
+#define IDirect3DRMAnimation2_GetOptions(p) (p)->lpVtbl->GetOptions(p)
+#define IDirect3DRMAnimation2_GetFrame(p,a) (p)->lpVtbl->GetFrame(p,a)
+#define IDirect3DRMAnimation2_DeleteKeyByID(p,a) (p)->lpVtbl->DeleteKeyByID(p,a)
+#define IDirect3DRMAnimation2_AddKey(p,a) (p)->lpVtbl->AddKey(p,a)
+#define IDirect3DRMAnimation2_ModifyKey(p,a) (p)->lpVtbl->ModifyKey(p,a)
+#define IDirect3DRMAnimation2_GetKeys(p,a,b,c,d) (p)->lpVtbl->GetKeys(p,a,b,c,d)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimation2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMAnimation2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMAnimation2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimation2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMAnimation2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMAnimation2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMAnimation2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMAnimation2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMAnimation2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMAnimation2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMAnimation2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMAnimation2 methods ***/
+#define IDirect3DRMAnimation2_SetOptions(p,a) (p)->SetOptions(a)
+#define IDirect3DRMAnimation2_AddRotateKey(p,a,b) (p)->AddRotateKey(a,b)
+#define IDirect3DRMAnimation2_AddPositionKey(p,a,b,c,d) (p)->AddPositionKey(a,b,c,d)
+#define IDirect3DRMAnimation2_AddScaleKey(p,a,b,c,d) (p)->AddScaleKey(a,b,c,d)
+#define IDirect3DRMAnimation2_DeleteKey(p,a) (p)->DeleteKey(a)
+#define IDirect3DRMAnimation2_SetFrame(p,a) (p)->SetFrame(a)
+#define IDirect3DRMAnimation2_SetTime(p,a) (p)->SetTime(a)
+#define IDirect3DRMAnimation2_GetOptions(p) (p)->GetOptions()
+#define IDirect3DRMAnimation2_GetFrame(p,a) (p)->GetFrame(a)
+#define IDirect3DRMAnimation2_DeleteKeyByID(p,a) (p)->DeleteKeyByID(a)
+#define IDirect3DRMAnimation2_AddKey(p,a) (p)->AddKey(a)
+#define IDirect3DRMAnimation2_ModifyKey(p,a) (p)->ModifyKey(a)
+#define IDirect3DRMAnimation2_GetKeys(p,a,b,c,d) (p)->GetKeys(a,b,c,d)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMAnimationSet interface
+ */
+#define INTERFACE IDirect3DRMAnimationSet
+DECLARE_INTERFACE_(IDirect3DRMAnimationSet, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMAnimationSet methods ***/
+ STDMETHOD(AddAnimation)(THIS_ IDirect3DRMAnimation *animation) PURE;
+ STDMETHOD(Load)(THIS_ void *filename, void *name, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURECALLBACK cb, void *ctx, IDirect3DRMFrame *parent)PURE;
+ STDMETHOD(DeleteAnimation)(THIS_ IDirect3DRMAnimation *animation) PURE;
+ STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationSet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMAnimationSet_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMAnimationSet_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimationSet_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMAnimationSet_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMAnimationSet_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMAnimationSet_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMAnimationSet_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMAnimationSet_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMAnimationSet_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMAnimationSet_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMAnimationSet methods ***/
+#define IDirect3DRMAnimationSet_AddAnimation(p,a) (p)->lpVtbl->AddAnimation(p,a)
+#define IDirect3DRMAnimationSet_Load(p,a,b,c,d,e,f) (p)->lpVtbl->Load(p,a,b,c,d,e,f)
+#define IDirect3DRMAnimationSet_DeleteAnimation(p,a) (p)->lpVtbl->DeleteAnimation(p,a)
+#define IDirect3DRMAnimationSet_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationSet_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMAnimationSet_AddRef(p) (p)->AddRef()
+#define IDirect3DRMAnimationSet_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimationSet_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMAnimationSet_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMAnimationSet_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMAnimationSet_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMAnimationSet_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMAnimationSet_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMAnimationSet_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMAnimationSet_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMAnimationSet methods ***/
+#define IDirect3DRMAnimationSet_AddAnimation(p,a) (p)->AddAnimation(a)
+#define IDirect3DRMAnimationSet_Load(p,a,b,c,d,e,f) (p)->Load(a,b,c,d,e,f)
+#define IDirect3DRMAnimationSet_DeleteAnimation(p,a) (p)->DeleteAnimation(a)
+#define IDirect3DRMAnimationSet_SetTime(p,a) (p)->SetTime(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMAnimationSet2 interface
+ */
+#define INTERFACE IDirect3DRMAnimationSet2
+DECLARE_INTERFACE_(IDirect3DRMAnimationSet2, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMAnimationSet2 methods ***/
+ STDMETHOD(AddAnimation)(THIS_ IDirect3DRMAnimation2 *animation) PURE;
+ STDMETHOD(Load)(THIS_ void *source, void *object_id, D3DRMLOADOPTIONS flags,
+ D3DRMLOADTEXTURE3CALLBACK cb, void *ctx, IDirect3DRMFrame3 *parent_frame)PURE;
+ STDMETHOD(DeleteAnimation)(THIS_ IDirect3DRMAnimation2 *animation) PURE;
+ STDMETHOD(SetTime)(THIS_ D3DVALUE time) PURE;
+ STDMETHOD(GetAnimations)(THIS_ struct IDirect3DRMAnimationArray **array) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationSet2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMAnimationSet2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMAnimationSet2_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimationSet2_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMAnimationSet2_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMAnimationSet2_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMAnimationSet2_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMAnimationSet2_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMAnimationSet2_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMAnimationSet2_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMAnimationSet2_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMAnimationSet2 methods ***/
+#define IDirect3DRMAnimationSet2_AddAnimation(p,a) (p)->lpVtbl->AddAnimation(p,a)
+#define IDirect3DRMAnimationSet2_Load(p,a,b,c,d,e,f) (p)->lpVtbl->Load(p,a,b,c,d,e,f)
+#define IDirect3DRMAnimationSet2_DeleteAnimation(p,a) (p)->lpVtbl->DeleteAnimation(p,a)
+#define IDirect3DRMAnimationSet2_SetTime(p,a) (p)->lpVtbl->SetTime(p,a)
+#define IDirect3DRMAnimationSet2_GetAnimations(p,a) (p)->lpVtbl->GetAnimations(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationSet2_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMAnimationSet2_AddRef(p) (p)->AddRef()
+#define IDirect3DRMAnimationSet2_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMAnimationSet2_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMAnimationSet2_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMAnimationSet2_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMAnimationSet2_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMAnimationSet2_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMAnimationSet2_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMAnimationSet2_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMAnimationSet2_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMAnimationSet2 methods ***/
+#define IDirect3DRMAnimationSet2_AddAnimation(p,a) (p)->AddAnimation(a)
+#define IDirect3DRMAnimationSet2_Load(p,a,b,c,d,e,f) (p)->Load(a,b,c,d,e,f)
+#define IDirect3DRMAnimationSet2_DeleteAnimation(p,a) (p)->DeleteAnimation(a)
+#define IDirect3DRMAnimationSet2_SetTime(p,a) (p)->SetTime(a)
+#define IDirect3DRMAnimationSet2_GetAnimations(p,a) (p)->GetAnimations(a)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMUserVisual interface
+ */
+#define INTERFACE IDirect3DRMUserVisual
+DECLARE_INTERFACE_(IDirect3DRMUserVisual, IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMUserVisual methods ***/
+ STDMETHOD(Init)(THIS_ D3DRMUSERVISUALCALLBACK fn, void *arg) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMUserVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMUserVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMUserVisual_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMUserVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMUserVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMUserVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMUserVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMUserVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMUserVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMUserVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMUserVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMUserVisual methods ***/
+#define IDirect3DRMUserVisual_Init(p,a,b) (p)->lpVtbl->Init(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMUserVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMUserVisual_AddRef(p) (p)->AddRef()
+#define IDirect3DRMUserVisual_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMUserVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMUserVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMUserVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMUserVisual_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMUserVisual_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMUserVisual_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMUserVisual_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMUserVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMUserVisual methods ***/
+#define IDirect3DRMUserVisual_Init(p,a,b) (p)->Init(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMArray interface
+ */
+#define INTERFACE IDirect3DRMArray
+DECLARE_INTERFACE_(IDirect3DRMArray, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMArray_GetSize(p) (p)->GetSize()
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMObjectArray interface
+ */
+#define INTERFACE IDirect3DRMObjectArray
+DECLARE_INTERFACE_(IDirect3DRMObjectArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMObjectArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMObject **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMObjectArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMObjectArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMObjectArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMObjectArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMObjectArray methods ***/
+#define IDirect3DRMObjectArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMObjectArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMObjectArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMObjectArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMObjectArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMObjectArray methods ***/
+#define IDirect3DRMObjectArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMDeviceArray interface
+ */
+#define INTERFACE IDirect3DRMDeviceArray
+DECLARE_INTERFACE_(IDirect3DRMDeviceArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMDeviceArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMDevice **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMDeviceArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMDeviceArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMDeviceArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMDeviceArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMDeviceArray methods ***/
+#define IDirect3DRMDeviceArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMDeviceArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMDeviceArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMDeviceArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMDeviceArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMDeviceArray methods ***/
+#define IDirect3DRMDeviceArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFrameArray interface
+ */
+#define INTERFACE IDirect3DRMFrameArray
+DECLARE_INTERFACE_(IDirect3DRMFrameArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMFrameArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMFrame **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFrameArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFrameArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFrameArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMFrameArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMFrameArray methods ***/
+#define IDirect3DRMFrameArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFrameArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFrameArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFrameArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMFrameArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMFrameArray methods ***/
+#define IDirect3DRMFrameArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMViewportArray interface
+ */
+#define INTERFACE IDirect3DRMViewportArray
+DECLARE_INTERFACE_(IDirect3DRMViewportArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMViewportArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMViewport **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMViewportArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMViewportArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMViewportArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMViewportArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMViewportArray methods ***/
+#define IDirect3DRMViewportArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMViewportArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMViewportArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMViewportArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMViewportArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMViewportArray methods ***/
+#define IDirect3DRMviewportArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMVisualArray interface
+ */
+#define INTERFACE IDirect3DRMVisualArray
+DECLARE_INTERFACE_(IDirect3DRMVisualArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMVisualArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMVisual **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMVisualArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMVisualArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMVisualArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMVisualArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMVisualArray methods ***/
+#define IDirect3DRMVisualArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMVisualArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMVisualArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMVisualArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMVisualArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMVisualArray methods ***/
+#define IDirect3DRMVisualArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMAnimationArray interface
+ */
+#define INTERFACE IDirect3DRMAnimationArray
+DECLARE_INTERFACE_(IDirect3DRMAnimationArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMAnimationArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMAnimation2 **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMAnimationArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMAnimationArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMAnimationArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMAnimationArray methods ***/
+#define IDirect3DRMAnimationArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMAnimationArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMAnimationArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMAnimationArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMAnimationArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMAnimationArray methods ***/
+#define IDirect3DRMAnimationArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMPickedArray interface
+ */
+#define INTERFACE IDirect3DRMPickedArray
+DECLARE_INTERFACE_(IDirect3DRMPickedArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMPickedArray methods ***/
+ STDMETHOD(GetPick)(THIS_ DWORD index, IDirect3DRMVisual **visual,
+ IDirect3DRMFrameArray **frame_array, D3DRMPICKDESC *pick_desc) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMPickedArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMPickedArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMPickedArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMPickedArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMPickedArray methods ***/
+#define IDirect3DRMPickedArray_GetPick(p,a,b,c,d) (p)->lpVtbl->GetPick(p,a,b,c,d)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMPickedArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMPickedArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMPickedArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMPickedArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMPickedArray methods ***/
+#define IDirect3DRMPickedArray_GetPick(p,a,b,c,d) (p)->GetPick(a,b,c,d)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMLightArray interface
+ */
+#define INTERFACE IDirect3DRMLightArray
+DECLARE_INTERFACE_(IDirect3DRMLightArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMLightArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMLight **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMLightArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMLightArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMLightArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMLightArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMLightArray methods ***/
+#define IDirect3DRMLightArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMLightArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMLightArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMLightArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMLightArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMLightArray methods ***/
+#define IDirect3DRMLightArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMFaceArray interface
+ */
+#define INTERFACE IDirect3DRMFaceArray
+DECLARE_INTERFACE_(IDirect3DRMFaceArray, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMFaceArray methods ***/
+ STDMETHOD(GetElement)(THIS_ DWORD index, IDirect3DRMFace **element) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMFaceArray_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMFaceArray_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMFaceArray_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMFaceArray_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMFaceArray methods ***/
+#define IDirect3DRMFaceArray_GetElement(p,a,b) (p)->lpVtbl->GetElement(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMFaceArray_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMFaceArray_AddRef(p) (p)->AddRef()
+#define IDirect3DRMFaceArray_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMFaceArray_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMFaceArray methods ***/
+#define IDirect3DRMFaceArray_GetElement(p,a,b) (p)->GetElement(a,b)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMPicked2Array interface
+ */
+#define INTERFACE IDirect3DRMPicked2Array
+DECLARE_INTERFACE_(IDirect3DRMPicked2Array, IDirect3DRMArray)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMArray methods ***/
+ STDMETHOD_(DWORD, GetSize)(THIS) PURE;
+ /*** IDirect3DRMPicked2Array methods ***/
+ STDMETHOD(GetPick)(THIS_ DWORD index, IDirect3DRMVisual **visual,
+ IDirect3DRMFrameArray **frame_array, D3DRMPICKDESC2 *pick_desc) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMPicked2Array_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMPicked2Array_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMPicked2Array_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMPicked2Array_GetSize(p) (p)->lpVtbl->GetSize(p)
+/*** IDirect3DRMPicked2Array methods ***/
+#define IDirect3DRMPicked2Array_GetPick(p,a,b,c,d) (p)->lpVtbl->GetPick(p,a,b,c,d)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMPicked2Array_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMPicked2Array_AddRef(p) (p)->AddRef()
+#define IDirect3DRMPicked2Array_Release(p) (p)->Release()
+/*** IDirect3DRMArray methods ***/
+#define IDirect3DRMPicked2Array_GetSize(p) (p)->GetSize()
+/*** IDirect3DRMPicked2Array methods ***/
+#define IDirect3DRMPicked2Array_GetPick(p,a,b,c,d) (p)->GetPick(a,b,c,d)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMInterpolator interface
+ */
+#define INTERFACE IDirect3DRMInterpolator
+DECLARE_INTERFACE_(IDirect3DRMInterpolator, IDirect3DRMObject)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMInterpolator methods ***/
+ STDMETHOD(AttachObject)(THIS_ IDirect3DRMObject *object) PURE;
+ STDMETHOD(GetAttachedObjects)(THIS_ IDirect3DRMObjectArray **array) PURE;
+ STDMETHOD(DetachObject)(THIS_ IDirect3DRMObject *object) PURE;
+ STDMETHOD(SetIndex)(THIS_ D3DVALUE) PURE;
+ STDMETHOD_(D3DVALUE, GetIndex)(THIS) PURE;
+ STDMETHOD(Interpolate)(THIS_ D3DVALUE index, IDirect3DRMObject *object, D3DRMINTERPOLATIONOPTIONS flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMInterpolator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMInterpolator_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMInterpolator_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMInterpolator_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMInterpolator_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMInterpolator_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMInterpolator_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMInterpolator_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMInterpolator_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMInterpolator_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMInterpolator_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMInterpolator methods ***/
+#define IDirect3DRMInterpolator_AttachObject(p,a) (p)->lpVtbl->AttachObject(p,a)
+#define IDirect3DRMInterpolator_GetAttachedObjects(p,a) (p)->lpVtbl->GetAttachedObjects(p,a)
+#define IDirect3DRMInterpolator_DetachObject(p,a) (p)->lpVtbl->DetachObject(p,a)
+#define IDirect3DRMInterpolator_SetIndex(p,a) (p)->lpVtbl->SetIndex(p,a)
+#define IDirect3DRMInterpolator_GetIndex(p) (p)->lpVtbl->GetIndex(p)
+#define IDirect3DRMInterpolator_Interpolate(p,a,b,c) (p)->lpVtbl->Interpolate(p,a,b,c)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMInterpolator_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMInterpolator_AddRef(p) (p)->AddRef()
+#define IDirect3DRMInterpolator_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMInterpolator_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMInterpolator_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMInterpolator_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMInterpolator_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMInterpolator_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMInterpolator_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMInterpolator_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMInterpolator_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMInterpolator methods ***/
+#define IDirect3DRMInterpolator_AttachObject(p,a) (p)->AttachObject(a)
+#define IDirect3DRMInterpolator_GetAttachedObjects(p,a) (p)->GetAttachedObjects(a)
+#define IDirect3DRMInterpolator_DetachObject(p,a) (p)->DetachObject(a)
+#define IDirect3DRMInterpolator_SetIndex(p,a) (p)->SetIndex(a)
+#define IDirect3DRMInterpolator_GetIndex(p) (p)->GetIndex()
+#define IDirect3DRMInterpolator_Interpolate(p,a,b,c) (p)->Interpolate(a,b,c)
+#endif
+
+/*****************************************************************************
+ * IDirect3DRMClippedVisual interface
+ */
+#define INTERFACE IDirect3DRMClippedVisual
+DECLARE_INTERFACE_(IDirect3DRMClippedVisual, IDirect3DRMVisual)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirect3DRMObject methods ***/
+ STDMETHOD(Clone)(THIS_ IUnknown *outer, REFIID iid, void **out) PURE;
+ STDMETHOD(AddDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(DeleteDestroyCallback)(THIS_ D3DRMOBJECTCALLBACK cb, void *ctx) PURE;
+ STDMETHOD(SetAppData)(THIS_ DWORD data) PURE;
+ STDMETHOD_(DWORD, GetAppData)(THIS) PURE;
+ STDMETHOD(SetName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetName)(THIS_ DWORD *size, char *name) PURE;
+ STDMETHOD(GetClassName)(THIS_ DWORD *size, char *name) PURE;
+ /*** IDirect3DRMClippedVisual methods ***/
+ STDMETHOD(Init) (THIS_ IDirect3DRMVisual *visual) PURE;
+ STDMETHOD(AddPlane) (THIS_ IDirect3DRMFrame3 *reference, D3DVECTOR *point,
+ D3DVECTOR *normal, DWORD flags, DWORD *id) PURE;
+ STDMETHOD(DeletePlane)(THIS_ DWORD, DWORD) PURE;
+ STDMETHOD(GetPlaneIDs)(THIS_ DWORD *count, DWORD *id, DWORD flags) PURE;
+ STDMETHOD(GetPlane) (THIS_ DWORD id, IDirect3DRMFrame3 *reference, D3DVECTOR *point,
+ D3DVECTOR *normal, DWORD flags) PURE;
+ STDMETHOD(SetPlane) (THIS_ DWORD id, IDirect3DRMFrame3 *reference, D3DVECTOR *point,
+ D3DVECTOR *normal, DWORD flags) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDirect3DRMClippedVisual_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirect3DRMClippedVisual_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirect3DRMClippedVisual_Release(p) (p)->lpVtbl->Release(p)
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMClippedVisual_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IDirect3DRMClippedVisual_AddDestroyCallback(p,a,b) (p)->lpVtbl->AddDestroyCallback(p,a,b)
+#define IDirect3DRMClippedVisual_DeleteDestroyCallback(p,a,b) (p)->lpVtbl->DeleteDestroyCallback(p,a,b)
+#define IDirect3DRMClippedVisual_SetAppData(p,a) (p)->lpVtbl->SetAppData(p,a)
+#define IDirect3DRMClippedVisual_GetAppData(p) (p)->lpVtbl->GetAppData(p)
+#define IDirect3DRMClippedVisual_SetName(p,a) (p)->lpVtbl->SetName(p,a)
+#define IDirect3DRMClippedVisual_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirect3DRMClippedVisual_GetClassName(p,a,b) (p)->lpVtbl->GetClassName(p,a,b)
+/*** IDirect3DRMClippedVisual methods ***/
+#define IDirect3DRMClippedVisual_Init(p,a) (p)->lpVtbl->Init(p,a)
+#define IDirect3DRMClippedVisual_AddPlane(p,a,b,c,d,e) (p)->lpVtbl->AddPlane(p,a,b,c,d,e)
+#define IDirect3DRMClippedVisual_DeletePlane(p,a,b) (p)->lpVtbl->DeletePlane(p,a,b)
+#define IDirect3DRMClippedVisual_GetPlaneIDs(p,a,b,c) (p)->lpVtbl->GetPlaneIDs(p,a,b,c)
+#define IDirect3DRMClippedVisual_GetPlane(p,a,b,c,d,e) (p)->lpVtbl->GetPlane(p,a,b,c,d,e)
+#define IDirect3DRMClippedVisual_SetPlane(p,a,b,c,d,e) (p)->lpVtbl->SetPlane(p,a,b,c,d,e)
+#else
+/*** IUnknown methods ***/
+#define IDirect3DRMClippedVisual_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDirect3DRMClippedVisual_AddRef(p) (p)->AddRef()
+#define IDirect3DRMClippedVisual_Release(p) (p)->Release()
+/*** IDirect3DRMObject methods ***/
+#define IDirect3DRMClippedVisual_Clone(p,a,b,c) (p)->Clone(a,b,c)
+#define IDirect3DRMClippedVisual_AddDestroyCallback(p,a,b) (p)->AddDestroyCallback(a,b)
+#define IDirect3DRMClippedVisual_DeleteDestroyCallback(p,a,b) (p)->DeleteDestroyCallback(a,b)
+#define IDirect3DRMClippedVisual_SetAppData(p,a) (p)->SetAppData(a)
+#define IDirect3DRMClippedVisual_GetAppData(p) (p)->GetAppData()
+#define IDirect3DRMClippedVisual_SetName(p,a) (p)->SetName(a)
+#define IDirect3DRMClippedVisual_GetName(p,a,b) (p)->GetName(a,b)
+#define IDirect3DRMClippedVisual_GetClassName(p,a,b) (p)->GetClassName(a,b)
+/*** IDirect3DRMClippedVisual methods ***/
+#define IDirect3DRMClippedVisual_Init(p,a) (p)->Init(a)
+#define IDirect3DRMClippedVisual_AddPlane(p,a,b,c,d,e) (p)->AddPlane(a,b,c,d,e)
+#define IDirect3DRMClippedVisual_DeletePlane(p,a,b) (p)->DeletePlane(a,b)
+#define IDirect3DRMClippedVisual_GetPlaneIDs(p,a,b,c) (p)->GetPlaneIDs(a,b,c)
+#define IDirect3DRMClippedVisual_GetPlane(p,a,b,c,d,e) (p)->GetPlane(a,b,c,d,e)
+#define IDirect3DRMClippedVisual_SetPlane(p,a,b,c,d,e) (p)->SetPlane(a,b,c,d,e)
+#endif
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* __D3DRMOBJ_H__ */
diff --git a/d3dtypes.h b/d3dtypes.h
new file mode 100644
index 0000000..e7ae4d5
--- /dev/null
+++ b/d3dtypes.h
@@ -0,0 +1,1370 @@
+/*
+ * Copyright (C) 2000 Peter Hunnisett
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* FIXME: Need to add C++ code for certain structs for headers - this is going to be a problem
+ if WINE continues to only use C code - I suppose that we could always inline in
+ the header file to get around that little problem... */
+/* FIXME: We need to implement versioning on everything directx 5 and up if these headers
+ are going to be generically useful for directx stuff */
+
+#ifndef __WINE_D3DTYPES_H
+#define __WINE_D3DTYPES_H
+
+#include <windows.h>
+#include <float.h>
+#include <ddraw.h>
+
+#ifdef __i386__
+#include <pshpack4.h>
+#endif
+
+#define D3DVALP(val, prec) ((float)(val))
+#define D3DVAL(val) ((float)(val))
+#define D3DDivide(a, b) (float)((double) (a) / (double) (b))
+#define D3DMultiply(a, b) ((a) * (b))
+
+typedef LONG D3DFIXED;
+
+
+#ifndef RGB_MAKE
+#define CI_GETALPHA(ci) ((ci) >> 24)
+#define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff)
+#define CI_GETFRACTION(ci) ((ci) & 0xff)
+#define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80)
+#define CI_MASKALPHA(ci) ((ci) & 0xffffff)
+#define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f))
+
+#define RGBA_GETALPHA(rgb) ((rgb) >> 24)
+#define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff)
+#define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff)
+#define RGBA_GETBLUE(rgb) ((rgb) & 0xff)
+#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
+
+#define D3DRGB(r, g, b) \
+ (0xff000000 | ( ((LONG)((r) * 255)) << 16) | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255))
+#define D3DRGBA(r, g, b, a) \
+ ( (((LONG)((a) * 255)) << 24) | (((LONG)((r) * 255)) << 16) \
+ | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255) \
+ )
+
+#define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff)
+#define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff)
+#define RGB_GETBLUE(rgb) ((rgb) & 0xff)
+#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff))
+#define RGB_MAKE(r, g, b) ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b)))
+#define RGBA_TORGB(rgba) ((D3DCOLOR) ((rgba) & 0xffffff))
+#define RGB_TORGBA(rgb) ((D3DCOLOR) ((rgb) | 0xff000000))
+
+#endif
+
+#define D3DENUMRET_CANCEL DDENUMRET_CANCEL
+#define D3DENUMRET_OK DDENUMRET_OK
+
+typedef HRESULT (CALLBACK *LPD3DVALIDATECALLBACK)(void *ctx, DWORD offset);
+typedef HRESULT (CALLBACK *LPD3DENUMTEXTUREFORMATSCALLBACK)(DDSURFACEDESC *surface_desc, void *ctx);
+typedef HRESULT (CALLBACK *LPD3DENUMPIXELFORMATSCALLBACK)(DDPIXELFORMAT *format, void *ctx);
+
+#ifndef DX_SHARED_DEFINES
+
+typedef float D3DVALUE,*LPD3DVALUE;
+
+#ifndef D3DCOLOR_DEFINED
+typedef DWORD D3DCOLOR, *LPD3DCOLOR;
+#define D3DCOLOR_DEFINED
+#endif
+
+#ifndef D3DVECTOR_DEFINED
+typedef struct _D3DVECTOR {
+ union {
+ D3DVALUE x;
+ D3DVALUE dvX;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE y;
+ D3DVALUE dvY;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE z;
+ D3DVALUE dvZ;
+ } DUMMYUNIONNAME3;
+#if defined(__cplusplus) && defined(D3D_OVERLOADS)
+ /* the definitions for these methods are in d3dvec.inl */
+public:
+ /*** constructors ***/
+ _D3DVECTOR() {}
+ _D3DVECTOR(D3DVALUE f);
+ _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z);
+ _D3DVECTOR(const D3DVALUE f[3]);
+
+ /*** assignment operators ***/
+ _D3DVECTOR& operator += (const _D3DVECTOR& v);
+ _D3DVECTOR& operator -= (const _D3DVECTOR& v);
+ _D3DVECTOR& operator *= (const _D3DVECTOR& v);
+ _D3DVECTOR& operator /= (const _D3DVECTOR& v);
+ _D3DVECTOR& operator *= (D3DVALUE s);
+ _D3DVECTOR& operator /= (D3DVALUE s);
+
+ /*** unary operators ***/
+ friend _D3DVECTOR operator + (const _D3DVECTOR& v);
+ friend _D3DVECTOR operator - (const _D3DVECTOR& v);
+
+ /*** binary operators ***/
+ friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
+ friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
+
+ friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s);
+ friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v);
+ friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s);
+
+ friend D3DVALUE SquareMagnitude(const _D3DVECTOR& v);
+ friend D3DVALUE Magnitude(const _D3DVECTOR& v);
+
+ friend _D3DVECTOR Normalize(const _D3DVECTOR& v);
+
+ friend D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
+ friend _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);
+#endif
+} D3DVECTOR,*LPD3DVECTOR;
+#define D3DVECTOR_DEFINED
+#endif
+
+#define DX_SHARED_DEFINES
+#endif /* DX_SHARED_DEFINES */
+
+typedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE;
+typedef DWORD D3DTEXTUREHANDLE, *LPD3DTEXTUREHANDLE;
+typedef DWORD D3DMATRIXHANDLE, *LPD3DMATRIXHANDLE;
+
+typedef struct _D3DCOLORVALUE {
+ union {
+ D3DVALUE r;
+ D3DVALUE dvR;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE g;
+ D3DVALUE dvG;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE b;
+ D3DVALUE dvB;
+ } DUMMYUNIONNAME3;
+ union {
+ D3DVALUE a;
+ D3DVALUE dvA;
+ } DUMMYUNIONNAME4;
+} D3DCOLORVALUE,*LPD3DCOLORVALUE;
+
+typedef struct _D3DRECT {
+ union {
+ LONG x1;
+ LONG lX1;
+ } DUMMYUNIONNAME1;
+ union {
+ LONG y1;
+ LONG lY1;
+ } DUMMYUNIONNAME2;
+ union {
+ LONG x2;
+ LONG lX2;
+ } DUMMYUNIONNAME3;
+ union {
+ LONG y2;
+ LONG lY2;
+ } DUMMYUNIONNAME4;
+} D3DRECT, *LPD3DRECT;
+
+typedef struct _D3DHVERTEX {
+ DWORD dwFlags;
+ union {
+ D3DVALUE hx;
+ D3DVALUE dvHX;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE hy;
+ D3DVALUE dvHY;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE hz;
+ D3DVALUE dvHZ;
+ } DUMMYUNIONNAME3;
+} D3DHVERTEX, *LPD3DHVERTEX;
+
+/*
+ * Transformed/lit vertices
+ */
+typedef struct _D3DTLVERTEX {
+ union {
+ D3DVALUE sx;
+ D3DVALUE dvSX;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE sy;
+ D3DVALUE dvSY;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE sz;
+ D3DVALUE dvSZ;
+ } DUMMYUNIONNAME3;
+ union {
+ D3DVALUE rhw;
+ D3DVALUE dvRHW;
+ } DUMMYUNIONNAME4;
+ union {
+ D3DCOLOR color;
+ D3DCOLOR dcColor;
+ } DUMMYUNIONNAME5;
+ union {
+ D3DCOLOR specular;
+ D3DCOLOR dcSpecular;
+ } DUMMYUNIONNAME6;
+ union {
+ D3DVALUE tu;
+ D3DVALUE dvTU;
+ } DUMMYUNIONNAME7;
+ union {
+ D3DVALUE tv;
+ D3DVALUE dvTV;
+ } DUMMYUNIONNAME8;
+#if defined(__cplusplus) && defined(D3D_OVERLOADS)
+public:
+ _D3DTLVERTEX() {}
+ _D3DTLVERTEX(const D3DVECTOR& v, float _rhw, D3DCOLOR _color, D3DCOLOR _specular, float _tu, float _tv) {
+ sx = v.x; sy = v.y; sz = v.z; rhw = _rhw;
+ color = _color; specular = _specular;
+ tu = _tu; tv = _tv;
+ }
+#endif
+} D3DTLVERTEX, *LPD3DTLVERTEX;
+
+typedef struct _D3DLVERTEX {
+ union {
+ D3DVALUE x;
+ D3DVALUE dvX;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE y;
+ D3DVALUE dvY;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE z;
+ D3DVALUE dvZ;
+ } DUMMYUNIONNAME3;
+ DWORD dwReserved;
+ union {
+ D3DCOLOR color;
+ D3DCOLOR dcColor;
+ } DUMMYUNIONNAME4;
+ union {
+ D3DCOLOR specular;
+ D3DCOLOR dcSpecular;
+ } DUMMYUNIONNAME5;
+ union {
+ D3DVALUE tu;
+ D3DVALUE dvTU;
+ } DUMMYUNIONNAME6;
+ union {
+ D3DVALUE tv;
+ D3DVALUE dvTV;
+ } DUMMYUNIONNAME7;
+} D3DLVERTEX, *LPD3DLVERTEX;
+
+typedef struct _D3DVERTEX {
+ union {
+ D3DVALUE x;
+ D3DVALUE dvX;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DVALUE y;
+ D3DVALUE dvY;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DVALUE z;
+ D3DVALUE dvZ;
+ } DUMMYUNIONNAME3;
+ union {
+ D3DVALUE nx;
+ D3DVALUE dvNX;
+ } DUMMYUNIONNAME4;
+ union {
+ D3DVALUE ny;
+ D3DVALUE dvNY;
+ } DUMMYUNIONNAME5;
+ union {
+ D3DVALUE nz;
+ D3DVALUE dvNZ;
+ } DUMMYUNIONNAME6;
+ union {
+ D3DVALUE tu;
+ D3DVALUE dvTU;
+ } DUMMYUNIONNAME7;
+ union {
+ D3DVALUE tv;
+ D3DVALUE dvTV;
+ } DUMMYUNIONNAME8;
+#if defined(__cplusplus) && defined(D3D_OVERLOADS)
+public:
+ _D3DVERTEX() {}
+ _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv) {
+ x = v.x; y = v.y; z = v.z;
+ nx = n.x; ny = n.y; nz = n.z;
+ tu = _tu; tv = _tv;
+ }
+#endif
+} D3DVERTEX, *LPD3DVERTEX;
+
+typedef struct _D3DMATRIX {
+ D3DVALUE _11, _12, _13, _14;
+ D3DVALUE _21, _22, _23, _24;
+ D3DVALUE _31, _32, _33, _34;
+ D3DVALUE _41, _42, _43, _44;
+#if defined(__cplusplus) && defined(D3D_OVERLOADS)
+ _D3DMATRIX() { }
+
+ /* This is different from MS, but avoids anonymous structs. */
+ D3DVALUE &operator () (int r, int c)
+ { return (&_11)[r*4 + c]; }
+ const D3DVALUE &operator() (int r, int c) const
+ { return (&_11)[r*4 + c]; }
+#endif
+} D3DMATRIX, *LPD3DMATRIX;
+
+#if defined(__cplusplus) && defined(D3D_OVERLOADS)
+#include <d3dvec.inl>
+#endif
+
+typedef struct _D3DVIEWPORT {
+ DWORD dwSize;
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwWidth;
+ DWORD dwHeight;
+ D3DVALUE dvScaleX;
+ D3DVALUE dvScaleY;
+ D3DVALUE dvMaxX;
+ D3DVALUE dvMaxY;
+ D3DVALUE dvMinZ;
+ D3DVALUE dvMaxZ;
+} D3DVIEWPORT, *LPD3DVIEWPORT;
+
+typedef struct _D3DVIEWPORT2 {
+ DWORD dwSize;
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwWidth;
+ DWORD dwHeight;
+ D3DVALUE dvClipX;
+ D3DVALUE dvClipY;
+ D3DVALUE dvClipWidth;
+ D3DVALUE dvClipHeight;
+ D3DVALUE dvMinZ;
+ D3DVALUE dvMaxZ;
+} D3DVIEWPORT2, *LPD3DVIEWPORT2;
+
+typedef struct _D3DVIEWPORT7 {
+ DWORD dwX;
+ DWORD dwY;
+ DWORD dwWidth;
+ DWORD dwHeight;
+ D3DVALUE dvMinZ;
+ D3DVALUE dvMaxZ;
+} D3DVIEWPORT7, *LPD3DVIEWPORT7;
+
+#define D3DMAXUSERCLIPPLANES 32
+
+#define D3DCLIPPLANE0 (1 << 0)
+#define D3DCLIPPLANE1 (1 << 1)
+#define D3DCLIPPLANE2 (1 << 2)
+#define D3DCLIPPLANE3 (1 << 3)
+#define D3DCLIPPLANE4 (1 << 4)
+#define D3DCLIPPLANE5 (1 << 5)
+
+#define D3DCLIP_LEFT 0x00000001
+#define D3DCLIP_RIGHT 0x00000002
+#define D3DCLIP_TOP 0x00000004
+#define D3DCLIP_BOTTOM 0x00000008
+#define D3DCLIP_FRONT 0x00000010
+#define D3DCLIP_BACK 0x00000020
+#define D3DCLIP_GEN0 0x00000040
+#define D3DCLIP_GEN1 0x00000080
+#define D3DCLIP_GEN2 0x00000100
+#define D3DCLIP_GEN3 0x00000200
+#define D3DCLIP_GEN4 0x00000400
+#define D3DCLIP_GEN5 0x00000800
+
+#define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT
+#define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT
+#define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP
+#define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM
+#define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT
+#define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK
+#define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0
+#define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1
+#define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2
+#define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3
+#define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4
+#define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5
+
+#define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000
+#define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000
+#define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000
+#define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000
+#define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000
+#define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000
+#define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000
+#define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000
+#define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000
+#define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000
+#define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000
+#define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000
+#define D3DSTATUS_ZNOTVISIBLE 0x01000000
+
+#define D3DSTATUS_CLIPUNIONALL ( \
+ D3DSTATUS_CLIPUNIONLEFT | \
+ D3DSTATUS_CLIPUNIONRIGHT | \
+ D3DSTATUS_CLIPUNIONTOP | \
+ D3DSTATUS_CLIPUNIONBOTTOM | \
+ D3DSTATUS_CLIPUNIONFRONT | \
+ D3DSTATUS_CLIPUNIONBACK | \
+ D3DSTATUS_CLIPUNIONGEN0 | \
+ D3DSTATUS_CLIPUNIONGEN1 | \
+ D3DSTATUS_CLIPUNIONGEN2 | \
+ D3DSTATUS_CLIPUNIONGEN3 | \
+ D3DSTATUS_CLIPUNIONGEN4 | \
+ D3DSTATUS_CLIPUNIONGEN5 \
+ )
+
+#define D3DSTATUS_CLIPINTERSECTIONALL ( \
+ D3DSTATUS_CLIPINTERSECTIONLEFT | \
+ D3DSTATUS_CLIPINTERSECTIONRIGHT | \
+ D3DSTATUS_CLIPINTERSECTIONTOP | \
+ D3DSTATUS_CLIPINTERSECTIONBOTTOM | \
+ D3DSTATUS_CLIPINTERSECTIONFRONT | \
+ D3DSTATUS_CLIPINTERSECTIONBACK | \
+ D3DSTATUS_CLIPINTERSECTIONGEN0 | \
+ D3DSTATUS_CLIPINTERSECTIONGEN1 | \
+ D3DSTATUS_CLIPINTERSECTIONGEN2 | \
+ D3DSTATUS_CLIPINTERSECTIONGEN3 | \
+ D3DSTATUS_CLIPINTERSECTIONGEN4 | \
+ D3DSTATUS_CLIPINTERSECTIONGEN5 \
+ )
+
+#define D3DSTATUS_DEFAULT ( \
+ D3DSTATUS_CLIPINTERSECTIONALL | \
+ D3DSTATUS_ZNOTVISIBLE)
+
+#define D3DTRANSFORM_CLIPPED 0x00000001
+#define D3DTRANSFORM_UNCLIPPED 0x00000002
+
+typedef struct _D3DTRANSFORMDATA {
+ DWORD dwSize;
+ void *lpIn;
+ DWORD dwInSize;
+ void *lpOut;
+ DWORD dwOutSize;
+ D3DHVERTEX *lpHOut;
+ DWORD dwClip;
+ DWORD dwClipIntersection;
+ DWORD dwClipUnion;
+ D3DRECT drExtent;
+} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA;
+
+typedef struct _D3DLIGHTINGELEMENT {
+ D3DVECTOR dvPosition;
+ D3DVECTOR dvNormal;
+} D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT;
+
+typedef struct _D3DMATERIAL {
+ DWORD dwSize;
+ union {
+ D3DCOLORVALUE diffuse;
+ D3DCOLORVALUE dcvDiffuse;
+ } DUMMYUNIONNAME;
+ union {
+ D3DCOLORVALUE ambient;
+ D3DCOLORVALUE dcvAmbient;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DCOLORVALUE specular;
+ D3DCOLORVALUE dcvSpecular;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DCOLORVALUE emissive;
+ D3DCOLORVALUE dcvEmissive;
+ } DUMMYUNIONNAME3;
+ union {
+ D3DVALUE power;
+ D3DVALUE dvPower;
+ } DUMMYUNIONNAME4;
+ D3DTEXTUREHANDLE hTexture;
+ DWORD dwRampSize;
+} D3DMATERIAL, *LPD3DMATERIAL;
+
+typedef struct _D3DMATERIAL7 {
+ union {
+ D3DCOLORVALUE diffuse;
+ D3DCOLORVALUE dcvDiffuse;
+ } DUMMYUNIONNAME;
+ union {
+ D3DCOLORVALUE ambient;
+ D3DCOLORVALUE dcvAmbient;
+ } DUMMYUNIONNAME1;
+ union {
+ D3DCOLORVALUE specular;
+ D3DCOLORVALUE dcvSpecular;
+ } DUMMYUNIONNAME2;
+ union {
+ D3DCOLORVALUE emissive;
+ D3DCOLORVALUE dcvEmissive;
+ } DUMMYUNIONNAME3;
+ union {
+ D3DVALUE power;
+ D3DVALUE dvPower;
+ } DUMMYUNIONNAME4;
+} D3DMATERIAL7, *LPD3DMATERIAL7;
+
+typedef enum {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+ D3DLIGHT_PARALLELPOINT = 4,
+ D3DLIGHT_GLSPOT = 5,
+ D3DLIGHT_FORCE_DWORD = 0x7fffffff
+} D3DLIGHTTYPE;
+
+typedef struct _D3DLIGHT {
+ DWORD dwSize;
+ D3DLIGHTTYPE dltType;
+ D3DCOLORVALUE dcvColor;
+ D3DVECTOR dvPosition;
+ D3DVECTOR dvDirection;
+ D3DVALUE dvRange;
+ D3DVALUE dvFalloff;
+ D3DVALUE dvAttenuation0;
+ D3DVALUE dvAttenuation1;
+ D3DVALUE dvAttenuation2;
+ D3DVALUE dvTheta;
+ D3DVALUE dvPhi;
+} D3DLIGHT,*LPD3DLIGHT;
+
+typedef struct _D3DLIGHT7 {
+ D3DLIGHTTYPE dltType;
+ D3DCOLORVALUE dcvDiffuse;
+ D3DCOLORVALUE dcvSpecular;
+ D3DCOLORVALUE dcvAmbient;
+ D3DVECTOR dvPosition;
+ D3DVECTOR dvDirection;
+ D3DVALUE dvRange;
+ D3DVALUE dvFalloff;
+ D3DVALUE dvAttenuation0;
+ D3DVALUE dvAttenuation1;
+ D3DVALUE dvAttenuation2;
+ D3DVALUE dvTheta;
+ D3DVALUE dvPhi;
+} D3DLIGHT7, *LPD3DLIGHT7;
+
+#define D3DLIGHT_ACTIVE 0x00000001
+#define D3DLIGHT_NO_SPECULAR 0x00000002
+#define D3DLIGHT_ALL (D3DLIGHT_ACTIVE | D3DLIGHT_NO_SPECULAR) /* 0x3 */
+
+#define D3DLIGHT_RANGE_MAX ((float)sqrt(FLT_MAX))
+
+typedef struct _D3DLIGHT2 {
+ DWORD dwSize;
+ D3DLIGHTTYPE dltType;
+ D3DCOLORVALUE dcvColor;
+ D3DVECTOR dvPosition;
+ D3DVECTOR dvDirection;
+ D3DVALUE dvRange;
+ D3DVALUE dvFalloff;
+ D3DVALUE dvAttenuation0;
+ D3DVALUE dvAttenuation1;
+ D3DVALUE dvAttenuation2;
+ D3DVALUE dvTheta;
+ D3DVALUE dvPhi;
+ DWORD dwFlags;
+} D3DLIGHT2, *LPD3DLIGHT2;
+
+typedef struct _D3DLIGHTDATA {
+ DWORD dwSize;
+ D3DLIGHTINGELEMENT *lpIn;
+ DWORD dwInSize;
+ D3DTLVERTEX *lpOut;
+ DWORD dwOutSize;
+} D3DLIGHTDATA, *LPD3DLIGHTDATA;
+
+#define D3DCOLOR_MONO 1
+#define D3DCOLOR_RGB 2
+
+typedef DWORD D3DCOLORMODEL;
+
+
+#define D3DCLEAR_TARGET 0x00000001
+#define D3DCLEAR_ZBUFFER 0x00000002
+#define D3DCLEAR_STENCIL 0x00000004
+
+typedef enum _D3DOPCODE {
+ D3DOP_POINT = 1,
+ D3DOP_LINE = 2,
+ D3DOP_TRIANGLE = 3,
+ D3DOP_MATRIXLOAD = 4,
+ D3DOP_MATRIXMULTIPLY = 5,
+ D3DOP_STATETRANSFORM = 6,
+ D3DOP_STATELIGHT = 7,
+ D3DOP_STATERENDER = 8,
+ D3DOP_PROCESSVERTICES = 9,
+ D3DOP_TEXTURELOAD = 10,
+ D3DOP_EXIT = 11,
+ D3DOP_BRANCHFORWARD = 12,
+ D3DOP_SPAN = 13,
+ D3DOP_SETSTATUS = 14,
+
+ D3DOP_FORCE_DWORD = 0x7fffffff
+} D3DOPCODE;
+
+typedef struct _D3DINSTRUCTION {
+ BYTE bOpcode;
+ BYTE bSize;
+ WORD wCount;
+} D3DINSTRUCTION, *LPD3DINSTRUCTION;
+
+typedef struct _D3DTEXTURELOAD {
+ D3DTEXTUREHANDLE hDestTexture;
+ D3DTEXTUREHANDLE hSrcTexture;
+} D3DTEXTURELOAD, *LPD3DTEXTURELOAD;
+
+typedef struct _D3DPICKRECORD {
+ BYTE bOpcode;
+ BYTE bPad;
+ DWORD dwOffset;
+ D3DVALUE dvZ;
+} D3DPICKRECORD, *LPD3DPICKRECORD;
+
+typedef enum {
+ D3DSHADE_FLAT = 1,
+ D3DSHADE_GOURAUD = 2,
+ D3DSHADE_PHONG = 3,
+ D3DSHADE_FORCE_DWORD = 0x7fffffff
+} D3DSHADEMODE;
+
+typedef enum {
+ D3DFILL_POINT = 1,
+ D3DFILL_WIREFRAME = 2,
+ D3DFILL_SOLID = 3,
+ D3DFILL_FORCE_DWORD = 0x7fffffff
+} D3DFILLMODE;
+
+typedef struct _D3DLINEPATTERN {
+ WORD wRepeatFactor;
+ WORD wLinePattern;
+} D3DLINEPATTERN;
+
+typedef enum {
+ D3DFILTER_NEAREST = 1,
+ D3DFILTER_LINEAR = 2,
+ D3DFILTER_MIPNEAREST = 3,
+ D3DFILTER_MIPLINEAR = 4,
+ D3DFILTER_LINEARMIPNEAREST = 5,
+ D3DFILTER_LINEARMIPLINEAR = 6,
+ D3DFILTER_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREFILTER;
+
+typedef enum {
+ D3DBLEND_ZERO = 1,
+ D3DBLEND_ONE = 2,
+ D3DBLEND_SRCCOLOR = 3,
+ D3DBLEND_INVSRCCOLOR = 4,
+ D3DBLEND_SRCALPHA = 5,
+ D3DBLEND_INVSRCALPHA = 6,
+ D3DBLEND_DESTALPHA = 7,
+ D3DBLEND_INVDESTALPHA = 8,
+ D3DBLEND_DESTCOLOR = 9,
+ D3DBLEND_INVDESTCOLOR = 10,
+ D3DBLEND_SRCALPHASAT = 11,
+ D3DBLEND_BOTHSRCALPHA = 12,
+ D3DBLEND_BOTHINVSRCALPHA = 13,
+ D3DBLEND_FORCE_DWORD = 0x7fffffff
+} D3DBLEND;
+
+typedef enum {
+ D3DTBLEND_DECAL = 1,
+ D3DTBLEND_MODULATE = 2,
+ D3DTBLEND_DECALALPHA = 3,
+ D3DTBLEND_MODULATEALPHA = 4,
+ D3DTBLEND_DECALMASK = 5,
+ D3DTBLEND_MODULATEMASK = 6,
+ D3DTBLEND_COPY = 7,
+ D3DTBLEND_ADD = 8,
+ D3DTBLEND_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREBLEND;
+
+typedef enum _D3DTEXTUREADDRESS {
+ D3DTADDRESS_WRAP = 1,
+ D3DTADDRESS_MIRROR = 2,
+ D3DTADDRESS_CLAMP = 3,
+ D3DTADDRESS_BORDER = 4,
+ D3DTADDRESS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREADDRESS;
+
+typedef enum {
+ D3DCULL_NONE = 1,
+ D3DCULL_CW = 2,
+ D3DCULL_CCW = 3,
+ D3DCULL_FORCE_DWORD = 0x7fffffff
+} D3DCULL;
+
+typedef enum {
+ D3DCMP_NEVER = 1,
+ D3DCMP_LESS = 2,
+ D3DCMP_EQUAL = 3,
+ D3DCMP_LESSEQUAL = 4,
+ D3DCMP_GREATER = 5,
+ D3DCMP_NOTEQUAL = 6,
+ D3DCMP_GREATEREQUAL = 7,
+ D3DCMP_ALWAYS = 8,
+ D3DCMP_FORCE_DWORD = 0x7fffffff
+} D3DCMPFUNC;
+
+typedef enum _D3DSTENCILOP {
+ D3DSTENCILOP_KEEP = 1,
+ D3DSTENCILOP_ZERO = 2,
+ D3DSTENCILOP_REPLACE = 3,
+ D3DSTENCILOP_INCRSAT = 4,
+ D3DSTENCILOP_DECRSAT = 5,
+ D3DSTENCILOP_INVERT = 6,
+ D3DSTENCILOP_INCR = 7,
+ D3DSTENCILOP_DECR = 8,
+ D3DSTENCILOP_FORCE_DWORD = 0x7fffffff
+} D3DSTENCILOP;
+
+typedef enum _D3DFOGMODE {
+ D3DFOG_NONE = 0,
+ D3DFOG_EXP = 1,
+ D3DFOG_EXP2 = 2,
+ D3DFOG_LINEAR = 3,
+ D3DFOG_FORCE_DWORD = 0x7fffffff
+} D3DFOGMODE;
+
+typedef enum _D3DZBUFFERTYPE {
+ D3DZB_FALSE = 0,
+ D3DZB_TRUE = 1,
+ D3DZB_USEW = 2,
+ D3DZB_FORCE_DWORD = 0x7fffffff
+} D3DZBUFFERTYPE;
+
+typedef enum _D3DANTIALIASMODE {
+ D3DANTIALIAS_NONE = 0,
+ D3DANTIALIAS_SORTDEPENDENT = 1,
+ D3DANTIALIAS_SORTINDEPENDENT = 2,
+ D3DANTIALIAS_FORCE_DWORD = 0x7fffffff
+} D3DANTIALIASMODE;
+
+typedef enum {
+ D3DVT_VERTEX = 1,
+ D3DVT_LVERTEX = 2,
+ D3DVT_TLVERTEX = 3,
+ D3DVT_FORCE_DWORD = 0x7fffffff
+} D3DVERTEXTYPE;
+
+typedef enum {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+ D3DPT_FORCE_DWORD = 0x7fffffff
+} D3DPRIMITIVETYPE;
+
+#define D3DSTATE_OVERRIDE_BIAS 256
+
+#define D3DSTATE_OVERRIDE(type) (D3DRENDERSTATETYPE)(((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS))
+
+typedef enum _D3DTRANSFORMSTATETYPE {
+ D3DTRANSFORMSTATE_WORLD = 1,
+ D3DTRANSFORMSTATE_VIEW = 2,
+ D3DTRANSFORMSTATE_PROJECTION = 3,
+ D3DTRANSFORMSTATE_WORLD1 = 4,
+ D3DTRANSFORMSTATE_WORLD2 = 5,
+ D3DTRANSFORMSTATE_WORLD3 = 6,
+ D3DTRANSFORMSTATE_TEXTURE0 = 16,
+ D3DTRANSFORMSTATE_TEXTURE1 = 17,
+ D3DTRANSFORMSTATE_TEXTURE2 = 18,
+ D3DTRANSFORMSTATE_TEXTURE3 = 19,
+ D3DTRANSFORMSTATE_TEXTURE4 = 20,
+ D3DTRANSFORMSTATE_TEXTURE5 = 21,
+ D3DTRANSFORMSTATE_TEXTURE6 = 22,
+ D3DTRANSFORMSTATE_TEXTURE7 = 23,
+ D3DTRANSFORMSTATE_FORCE_DWORD = 0x7fffffff
+} D3DTRANSFORMSTATETYPE;
+
+typedef enum {
+ D3DLIGHTSTATE_MATERIAL = 1,
+ D3DLIGHTSTATE_AMBIENT = 2,
+ D3DLIGHTSTATE_COLORMODEL = 3,
+ D3DLIGHTSTATE_FOGMODE = 4,
+ D3DLIGHTSTATE_FOGSTART = 5,
+ D3DLIGHTSTATE_FOGEND = 6,
+ D3DLIGHTSTATE_FOGDENSITY = 7,
+ D3DLIGHTSTATE_COLORVERTEX = 8,
+ D3DLIGHTSTATE_FORCE_DWORD = 0x7fffffff
+} D3DLIGHTSTATETYPE;
+
+typedef enum {
+ D3DRENDERSTATE_TEXTUREHANDLE = 1,
+ D3DRENDERSTATE_ANTIALIAS = 2,
+ D3DRENDERSTATE_TEXTUREADDRESS = 3,
+ D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4,
+ D3DRENDERSTATE_WRAPU = 5, /* <= d3d6 */
+ D3DRENDERSTATE_WRAPV = 6, /* <= d3d6 */
+ D3DRENDERSTATE_ZENABLE = 7,
+ D3DRENDERSTATE_FILLMODE = 8,
+ D3DRENDERSTATE_SHADEMODE = 9,
+ D3DRENDERSTATE_LINEPATTERN = 10,
+ D3DRENDERSTATE_MONOENABLE = 11, /* <= d3d6 */
+ D3DRENDERSTATE_ROP2 = 12, /* <= d3d6 */
+ D3DRENDERSTATE_PLANEMASK = 13, /* <= d3d6 */
+ D3DRENDERSTATE_ZWRITEENABLE = 14,
+ D3DRENDERSTATE_ALPHATESTENABLE = 15,
+ D3DRENDERSTATE_LASTPIXEL = 16,
+ D3DRENDERSTATE_TEXTUREMAG = 17,
+ D3DRENDERSTATE_TEXTUREMIN = 18,
+ D3DRENDERSTATE_SRCBLEND = 19,
+ D3DRENDERSTATE_DESTBLEND = 20,
+ D3DRENDERSTATE_TEXTUREMAPBLEND = 21,
+ D3DRENDERSTATE_CULLMODE = 22,
+ D3DRENDERSTATE_ZFUNC = 23,
+ D3DRENDERSTATE_ALPHAREF = 24,
+ D3DRENDERSTATE_ALPHAFUNC = 25,
+ D3DRENDERSTATE_DITHERENABLE = 26,
+ D3DRENDERSTATE_ALPHABLENDENABLE = 27,
+ D3DRENDERSTATE_FOGENABLE = 28,
+ D3DRENDERSTATE_SPECULARENABLE = 29,
+ D3DRENDERSTATE_ZVISIBLE = 30,
+ D3DRENDERSTATE_SUBPIXEL = 31, /* <= d3d6 */
+ D3DRENDERSTATE_SUBPIXELX = 32, /* <= d3d6 */
+ D3DRENDERSTATE_STIPPLEDALPHA = 33,
+ D3DRENDERSTATE_FOGCOLOR = 34,
+ D3DRENDERSTATE_FOGTABLEMODE = 35,
+ D3DRENDERSTATE_FOGTABLESTART = 36,
+ D3DRENDERSTATE_FOGTABLEEND = 37,
+ D3DRENDERSTATE_FOGTABLEDENSITY = 38,
+ D3DRENDERSTATE_FOGSTART = 36,
+ D3DRENDERSTATE_FOGEND = 37,
+ D3DRENDERSTATE_FOGDENSITY = 38,
+ D3DRENDERSTATE_STIPPLEENABLE = 39, /* <= d3d6 */
+ /* d3d5 */
+ D3DRENDERSTATE_EDGEANTIALIAS = 40,
+ D3DRENDERSTATE_COLORKEYENABLE = 41,
+ D3DRENDERSTATE_BORDERCOLOR = 43,
+ D3DRENDERSTATE_TEXTUREADDRESSU = 44,
+ D3DRENDERSTATE_TEXTUREADDRESSV = 45,
+ D3DRENDERSTATE_MIPMAPLODBIAS = 46, /* <= d3d6 */
+ D3DRENDERSTATE_ZBIAS = 47,
+ D3DRENDERSTATE_RANGEFOGENABLE = 48,
+ D3DRENDERSTATE_ANISOTROPY = 49, /* <= d3d6 */
+ D3DRENDERSTATE_FLUSHBATCH = 50, /* <= d3d6 */
+ /* d3d6 */
+ D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT = 51, /* <= d3d6 */
+
+ D3DRENDERSTATE_STENCILENABLE = 52,
+ D3DRENDERSTATE_STENCILFAIL = 53,
+ D3DRENDERSTATE_STENCILZFAIL = 54,
+ D3DRENDERSTATE_STENCILPASS = 55,
+ D3DRENDERSTATE_STENCILFUNC = 56,
+ D3DRENDERSTATE_STENCILREF = 57,
+ D3DRENDERSTATE_STENCILMASK = 58,
+ D3DRENDERSTATE_STENCILWRITEMASK = 59,
+ D3DRENDERSTATE_TEXTUREFACTOR = 60,
+
+ D3DRENDERSTATE_STIPPLEPATTERN00 = 64,
+ D3DRENDERSTATE_STIPPLEPATTERN01 = 65,
+ D3DRENDERSTATE_STIPPLEPATTERN02 = 66,
+ D3DRENDERSTATE_STIPPLEPATTERN03 = 67,
+ D3DRENDERSTATE_STIPPLEPATTERN04 = 68,
+ D3DRENDERSTATE_STIPPLEPATTERN05 = 69,
+ D3DRENDERSTATE_STIPPLEPATTERN06 = 70,
+ D3DRENDERSTATE_STIPPLEPATTERN07 = 71,
+ D3DRENDERSTATE_STIPPLEPATTERN08 = 72,
+ D3DRENDERSTATE_STIPPLEPATTERN09 = 73,
+ D3DRENDERSTATE_STIPPLEPATTERN10 = 74,
+ D3DRENDERSTATE_STIPPLEPATTERN11 = 75,
+ D3DRENDERSTATE_STIPPLEPATTERN12 = 76,
+ D3DRENDERSTATE_STIPPLEPATTERN13 = 77,
+ D3DRENDERSTATE_STIPPLEPATTERN14 = 78,
+ D3DRENDERSTATE_STIPPLEPATTERN15 = 79,
+ D3DRENDERSTATE_STIPPLEPATTERN16 = 80,
+ D3DRENDERSTATE_STIPPLEPATTERN17 = 81,
+ D3DRENDERSTATE_STIPPLEPATTERN18 = 82,
+ D3DRENDERSTATE_STIPPLEPATTERN19 = 83,
+ D3DRENDERSTATE_STIPPLEPATTERN20 = 84,
+ D3DRENDERSTATE_STIPPLEPATTERN21 = 85,
+ D3DRENDERSTATE_STIPPLEPATTERN22 = 86,
+ D3DRENDERSTATE_STIPPLEPATTERN23 = 87,
+ D3DRENDERSTATE_STIPPLEPATTERN24 = 88,
+ D3DRENDERSTATE_STIPPLEPATTERN25 = 89,
+ D3DRENDERSTATE_STIPPLEPATTERN26 = 90,
+ D3DRENDERSTATE_STIPPLEPATTERN27 = 91,
+ D3DRENDERSTATE_STIPPLEPATTERN28 = 92,
+ D3DRENDERSTATE_STIPPLEPATTERN29 = 93,
+ D3DRENDERSTATE_STIPPLEPATTERN30 = 94,
+ D3DRENDERSTATE_STIPPLEPATTERN31 = 95,
+
+ D3DRENDERSTATE_WRAP0 = 128,
+ D3DRENDERSTATE_WRAP1 = 129,
+ D3DRENDERSTATE_WRAP2 = 130,
+ D3DRENDERSTATE_WRAP3 = 131,
+ D3DRENDERSTATE_WRAP4 = 132,
+ D3DRENDERSTATE_WRAP5 = 133,
+ D3DRENDERSTATE_WRAP6 = 134,
+ D3DRENDERSTATE_WRAP7 = 135,
+ /* d3d7 */
+ D3DRENDERSTATE_CLIPPING = 136,
+ D3DRENDERSTATE_LIGHTING = 137,
+ D3DRENDERSTATE_EXTENTS = 138,
+ D3DRENDERSTATE_AMBIENT = 139,
+ D3DRENDERSTATE_FOGVERTEXMODE = 140,
+ D3DRENDERSTATE_COLORVERTEX = 141,
+ D3DRENDERSTATE_LOCALVIEWER = 142,
+ D3DRENDERSTATE_NORMALIZENORMALS = 143,
+ D3DRENDERSTATE_COLORKEYBLENDENABLE = 144,
+ D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145,
+ D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146,
+ D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147,
+ D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148,
+ D3DRENDERSTATE_VERTEXBLEND = 151,
+ D3DRENDERSTATE_CLIPPLANEENABLE = 152,
+
+ D3DRENDERSTATE_FORCE_DWORD = 0x7fffffff
+
+ /* FIXME: We have some retired values that are being reused for DirectX 7 */
+} D3DRENDERSTATETYPE;
+
+typedef enum _D3DMATERIALCOLORSOURCE
+{
+ D3DMCS_MATERIAL = 0,
+ D3DMCS_COLOR1 = 1,
+ D3DMCS_COLOR2 = 2,
+ D3DMCS_FORCE_DWORD = 0x7fffffff
+} D3DMATERIALCOLORSOURCE;
+
+#define D3DRENDERSTATE_BLENDENABLE D3DRENDERSTATE_ALPHABLENDENABLE
+#define D3DRENDERSTATE_WRAPBIAS __MSABI_LONG(128U)
+#define D3DWRAP_U __MSABI_LONG(0x00000001)
+#define D3DWRAP_V __MSABI_LONG(0x00000002)
+
+#define D3DWRAPCOORD_0 __MSABI_LONG(0x00000001)
+#define D3DWRAPCOORD_1 __MSABI_LONG(0x00000002)
+#define D3DWRAPCOORD_2 __MSABI_LONG(0x00000004)
+#define D3DWRAPCOORD_3 __MSABI_LONG(0x00000008)
+
+#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
+
+typedef struct _D3DSTATE {
+ union {
+ D3DTRANSFORMSTATETYPE dtstTransformStateType;
+ D3DLIGHTSTATETYPE dlstLightStateType;
+ D3DRENDERSTATETYPE drstRenderStateType;
+ } DUMMYUNIONNAME1;
+ union {
+ DWORD dwArg[1];
+ D3DVALUE dvArg[1];
+ } DUMMYUNIONNAME2;
+} D3DSTATE, *LPD3DSTATE;
+
+typedef struct _D3DMATRIXLOAD {
+ D3DMATRIXHANDLE hDestMatrix;
+ D3DMATRIXHANDLE hSrcMatrix;
+} D3DMATRIXLOAD, *LPD3DMATRIXLOAD;
+
+typedef struct _D3DMATRIXMULTIPLY {
+ D3DMATRIXHANDLE hDestMatrix;
+ D3DMATRIXHANDLE hSrcMatrix1;
+ D3DMATRIXHANDLE hSrcMatrix2;
+} D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY;
+
+typedef struct _D3DPROCESSVERTICES {
+ DWORD dwFlags;
+ WORD wStart;
+ WORD wDest;
+ DWORD dwCount;
+ DWORD dwReserved;
+} D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES;
+
+#define D3DPROCESSVERTICES_TRANSFORMLIGHT __MSABI_LONG(0x00000000)
+#define D3DPROCESSVERTICES_TRANSFORM __MSABI_LONG(0x00000001)
+#define D3DPROCESSVERTICES_COPY __MSABI_LONG(0x00000002)
+#define D3DPROCESSVERTICES_OPMASK __MSABI_LONG(0x00000007)
+
+#define D3DPROCESSVERTICES_UPDATEEXTENTS __MSABI_LONG(0x00000008)
+#define D3DPROCESSVERTICES_NOCOLOR __MSABI_LONG(0x00000010)
+
+typedef enum _D3DTEXTURESTAGESTATETYPE
+{
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_ADDRESS = 12,
+ D3DTSS_ADDRESSU = 13,
+ D3DTSS_ADDRESSV = 14,
+ D3DTSS_BORDERCOLOR = 15,
+ D3DTSS_MAGFILTER = 16,
+ D3DTSS_MINFILTER = 17,
+ D3DTSS_MIPFILTER = 18,
+ D3DTSS_MIPMAPLODBIAS = 19,
+ D3DTSS_MAXMIPLEVEL = 20,
+ D3DTSS_MAXANISOTROPY = 21,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURESTAGESTATETYPE;
+
+#define D3DTSS_TCI_PASSTHRU 0x00000000
+#define D3DTSS_TCI_CAMERASPACENORMAL 0x00010000
+#define D3DTSS_TCI_CAMERASPACEPOSITION 0x00020000
+#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x00030000
+
+typedef enum _D3DTEXTUREOP
+{
+ D3DTOP_DISABLE = 1,
+ D3DTOP_SELECTARG1 = 2,
+ D3DTOP_SELECTARG2 = 3,
+
+ D3DTOP_MODULATE = 4,
+ D3DTOP_MODULATE2X = 5,
+ D3DTOP_MODULATE4X = 6,
+
+ D3DTOP_ADD = 7,
+ D3DTOP_ADDSIGNED = 8,
+ D3DTOP_ADDSIGNED2X = 9,
+ D3DTOP_SUBTRACT = 10,
+ D3DTOP_ADDSMOOTH = 11,
+
+ D3DTOP_BLENDDIFFUSEALPHA = 12,
+ D3DTOP_BLENDTEXTUREALPHA = 13,
+ D3DTOP_BLENDFACTORALPHA = 14,
+ D3DTOP_BLENDTEXTUREALPHAPM = 15,
+ D3DTOP_BLENDCURRENTALPHA = 16,
+
+ D3DTOP_PREMODULATE = 17,
+ D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
+ D3DTOP_MODULATECOLOR_ADDALPHA = 19,
+ D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
+ D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
+
+ D3DTOP_BUMPENVMAP = 22,
+ D3DTOP_BUMPENVMAPLUMINANCE = 23,
+ D3DTOP_DOTPRODUCT3 = 24,
+
+ D3DTOP_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREOP;
+
+#define D3DTA_SELECTMASK 0x0000000f
+#define D3DTA_DIFFUSE 0x00000000
+#define D3DTA_CURRENT 0x00000001
+#define D3DTA_TEXTURE 0x00000002
+#define D3DTA_TFACTOR 0x00000003
+#define D3DTA_SPECULAR 0x00000004
+#define D3DTA_COMPLEMENT 0x00000010
+#define D3DTA_ALPHAREPLICATE 0x00000020
+
+typedef enum _D3DTEXTUREMAGFILTER
+{
+ D3DTFG_POINT = 1,
+ D3DTFG_LINEAR = 2,
+ D3DTFG_FLATCUBIC = 3,
+ D3DTFG_GAUSSIANCUBIC = 4,
+ D3DTFG_ANISOTROPIC = 5,
+ D3DTFG_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREMAGFILTER;
+
+typedef enum _D3DTEXTUREMINFILTER
+{
+ D3DTFN_POINT = 1,
+ D3DTFN_LINEAR = 2,
+ D3DTFN_ANISOTROPIC = 3,
+ D3DTFN_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREMINFILTER;
+
+typedef enum _D3DTEXTUREMIPFILTER
+{
+ D3DTFP_NONE = 1,
+ D3DTFP_POINT = 2,
+ D3DTFP_LINEAR = 3,
+ D3DTFP_FORCE_DWORD = 0x7fffffff
+} D3DTEXTUREMIPFILTER;
+
+#define D3DTRIFLAG_START __MSABI_LONG(0x00000000)
+#define D3DTRIFLAG_STARTFLAT(len) (len)
+#define D3DTRIFLAG_ODD __MSABI_LONG(0x0000001e)
+#define D3DTRIFLAG_EVEN __MSABI_LONG(0x0000001f)
+
+#define D3DTRIFLAG_EDGEENABLE1 __MSABI_LONG(0x00000100)
+#define D3DTRIFLAG_EDGEENABLE2 __MSABI_LONG(0x00000200)
+#define D3DTRIFLAG_EDGEENABLE3 __MSABI_LONG(0x00000400)
+#define D3DTRIFLAG_EDGEENABLETRIANGLE \
+ (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
+
+typedef struct _D3DTRIANGLE {
+ union {
+ WORD v1;
+ WORD wV1;
+ } DUMMYUNIONNAME1;
+ union {
+ WORD v2;
+ WORD wV2;
+ } DUMMYUNIONNAME2;
+ union {
+ WORD v3;
+ WORD wV3;
+ } DUMMYUNIONNAME3;
+ WORD wFlags;
+} D3DTRIANGLE, *LPD3DTRIANGLE;
+
+typedef struct _D3DLINE {
+ union {
+ WORD v1;
+ WORD wV1;
+ } DUMMYUNIONNAME1;
+ union {
+ WORD v2;
+ WORD wV2;
+ } DUMMYUNIONNAME2;
+} D3DLINE, *LPD3DLINE;
+
+typedef struct _D3DSPAN {
+ WORD wCount;
+ WORD wFirst;
+} D3DSPAN, *LPD3DSPAN;
+
+typedef struct _D3DPOINT {
+ WORD wCount;
+ WORD wFirst;
+} D3DPOINT, *LPD3DPOINT;
+
+typedef struct _D3DBRANCH {
+ DWORD dwMask;
+ DWORD dwValue;
+ WINBOOL bNegate;
+ DWORD dwOffset;
+} D3DBRANCH, *LPD3DBRANCH;
+
+typedef struct _D3DSTATUS {
+ DWORD dwFlags;
+ DWORD dwStatus;
+ D3DRECT drExtent;
+} D3DSTATUS, *LPD3DSTATUS;
+
+#define D3DSETSTATUS_STATUS __MSABI_LONG(0x00000001)
+#define D3DSETSTATUS_EXTENTS __MSABI_LONG(0x00000002)
+#define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
+
+typedef struct _D3DCLIPSTATUS {
+ DWORD dwFlags;
+ DWORD dwStatus;
+ float minx, maxx;
+ float miny, maxy;
+ float minz, maxz;
+} D3DCLIPSTATUS, *LPD3DCLIPSTATUS;
+
+#define D3DCLIPSTATUS_STATUS __MSABI_LONG(0x00000001)
+#define D3DCLIPSTATUS_EXTENTS2 __MSABI_LONG(0x00000002)
+#define D3DCLIPSTATUS_EXTENTS3 __MSABI_LONG(0x00000004)
+
+typedef struct {
+ DWORD dwSize;
+ DWORD dwTrianglesDrawn;
+ DWORD dwLinesDrawn;
+ DWORD dwPointsDrawn;
+ DWORD dwSpansDrawn;
+ DWORD dwVerticesProcessed;
+} D3DSTATS, *LPD3DSTATS;
+
+#define D3DEXECUTE_CLIPPED __MSABI_LONG(0x00000001)
+#define D3DEXECUTE_UNCLIPPED __MSABI_LONG(0x00000002)
+
+typedef struct _D3DEXECUTEDATA {
+ DWORD dwSize;
+ DWORD dwVertexOffset;
+ DWORD dwVertexCount;
+ DWORD dwInstructionOffset;
+ DWORD dwInstructionLength;
+ DWORD dwHVertexOffset;
+ D3DSTATUS dsStatus;
+} D3DEXECUTEDATA, *LPD3DEXECUTEDATA;
+
+#define D3DPAL_FREE 0x00
+#define D3DPAL_READONLY 0x40
+#define D3DPAL_RESERVED 0x80
+
+typedef struct _D3DVERTEXBUFFERDESC {
+ DWORD dwSize;
+ DWORD dwCaps;
+ DWORD dwFVF;
+ DWORD dwNumVertices;
+} D3DVERTEXBUFFERDESC, *LPD3DVERTEXBUFFERDESC;
+
+#define D3DVBCAPS_SYSTEMMEMORY __MSABI_LONG(0x00000800)
+#define D3DVBCAPS_WRITEONLY __MSABI_LONG(0x00010000)
+#define D3DVBCAPS_OPTIMIZED __MSABI_LONG(0x80000000)
+#define D3DVBCAPS_DONOTCLIP __MSABI_LONG(0x00000001)
+
+#define D3DVOP_LIGHT (1 << 10)
+#define D3DVOP_TRANSFORM (1 << 0)
+#define D3DVOP_CLIP (1 << 2)
+#define D3DVOP_EXTENTS (1 << 3)
+
+#define D3DMAXNUMVERTICES ((1<<16) - 1)
+
+#define D3DMAXNUMPRIMITIVES ((1<<16) - 1)
+
+#define D3DPV_DONOTCOPYDATA (1 << 0)
+
+#define D3DFVF_RESERVED0 0x001
+#define D3DFVF_POSITION_MASK 0x00E
+#define D3DFVF_XYZ 0x002
+#define D3DFVF_XYZRHW 0x004
+#define D3DFVF_XYZB1 0x006
+#define D3DFVF_XYZB2 0x008
+#define D3DFVF_XYZB3 0x00a
+#define D3DFVF_XYZB4 0x00c
+#define D3DFVF_XYZB5 0x00e
+
+#define D3DFVF_NORMAL 0x010
+#define D3DFVF_RESERVED1 0x020
+#define D3DFVF_DIFFUSE 0x040
+#define D3DFVF_SPECULAR 0x080
+#define D3DFVF_TEXCOUNT_MASK 0xf00
+#define D3DFVF_TEXCOUNT_SHIFT 8
+#define D3DFVF_TEX0 0x000
+#define D3DFVF_TEX1 0x100
+#define D3DFVF_TEX2 0x200
+#define D3DFVF_TEX3 0x300
+#define D3DFVF_TEX4 0x400
+#define D3DFVF_TEX5 0x500
+#define D3DFVF_TEX6 0x600
+#define D3DFVF_TEX7 0x700
+#define D3DFVF_TEX8 0x800
+
+#define D3DFVF_RESERVED2 0xf000
+
+#define D3DFVF_VERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 )
+#define D3DFVF_LVERTEX ( D3DFVF_XYZ | D3DFVF_RESERVED1 | D3DFVF_DIFFUSE | \
+ D3DFVF_SPECULAR | D3DFVF_TEX1 )
+#define D3DFVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | \
+ D3DFVF_TEX1 )
+
+typedef struct _D3DDP_PTRSTRIDE
+{
+ void *lpvData;
+ DWORD dwStride;
+} D3DDP_PTRSTRIDE;
+
+#define D3DDP_MAXTEXCOORD 8
+
+typedef struct _D3DDRAWPRIMITIVESTRIDEDDATA {
+ D3DDP_PTRSTRIDE position;
+ D3DDP_PTRSTRIDE normal;
+ D3DDP_PTRSTRIDE diffuse;
+ D3DDP_PTRSTRIDE specular;
+ D3DDP_PTRSTRIDE textureCoords[D3DDP_MAXTEXCOORD];
+} D3DDRAWPRIMITIVESTRIDEDDATA ,*LPD3DDRAWPRIMITIVESTRIDEDDATA;
+
+#define D3DVIS_INSIDE_FRUSTUM 0
+#define D3DVIS_INTERSECT_FRUSTUM 1
+#define D3DVIS_OUTSIDE_FRUSTUM 2
+#define D3DVIS_INSIDE_LEFT 0
+#define D3DVIS_INTERSECT_LEFT (1 << 2)
+#define D3DVIS_OUTSIDE_LEFT (2 << 2)
+#define D3DVIS_INSIDE_RIGHT 0
+#define D3DVIS_INTERSECT_RIGHT (1 << 4)
+#define D3DVIS_OUTSIDE_RIGHT (2 << 4)
+#define D3DVIS_INSIDE_TOP 0
+#define D3DVIS_INTERSECT_TOP (1 << 6)
+#define D3DVIS_OUTSIDE_TOP (2 << 6)
+#define D3DVIS_INSIDE_BOTTOM 0
+#define D3DVIS_INTERSECT_BOTTOM (1 << 8)
+#define D3DVIS_OUTSIDE_BOTTOM (2 << 8)
+#define D3DVIS_INSIDE_NEAR 0
+#define D3DVIS_INTERSECT_NEAR (1 << 10)
+#define D3DVIS_OUTSIDE_NEAR (2 << 10)
+#define D3DVIS_INSIDE_FAR 0
+#define D3DVIS_INTERSECT_FAR (1 << 12)
+#define D3DVIS_OUTSIDE_FAR (2 << 12)
+
+#define D3DVIS_MASK_FRUSTUM (3 << 0)
+#define D3DVIS_MASK_LEFT (3 << 2)
+#define D3DVIS_MASK_RIGHT (3 << 4)
+#define D3DVIS_MASK_TOP (3 << 6)
+#define D3DVIS_MASK_BOTTOM (3 << 8)
+#define D3DVIS_MASK_NEAR (3 << 10)
+#define D3DVIS_MASK_FAR (3 << 12)
+
+#define D3DDEVINFOID_TEXTUREMANAGER 1
+#define D3DDEVINFOID_D3DTEXTUREMANAGER 2
+#define D3DDEVINFOID_TEXTURING 3
+
+typedef enum _D3DSTATEBLOCKTYPE
+{
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+ D3DSBT_FORCE_DWORD = 0xffffffff
+} D3DSTATEBLOCKTYPE;
+
+typedef enum _D3DVERTEXBLENDFLAGS
+{
+ D3DVBLEND_DISABLE = 0,
+ D3DVBLEND_1WEIGHT = 1,
+ D3DVBLEND_2WEIGHTS = 2,
+ D3DVBLEND_3WEIGHTS = 3,
+} D3DVERTEXBLENDFLAGS;
+
+typedef enum _D3DTEXTURETRANSFORMFLAGS {
+ D3DTTFF_DISABLE = 0,
+ D3DTTFF_COUNT1 = 1,
+ D3DTTFF_COUNT2 = 2,
+ D3DTTFF_COUNT3 = 3,
+ D3DTTFF_COUNT4 = 4,
+ D3DTTFF_PROJECTED = 256,
+ D3DTTFF_FORCE_DWORD = 0x7fffffff
+} D3DTEXTURETRANSFORMFLAGS;
+
+#define D3DFVF_TEXTUREFORMAT2 0
+#define D3DFVF_TEXTUREFORMAT1 3
+#define D3DFVF_TEXTUREFORMAT3 1
+#define D3DFVF_TEXTUREFORMAT4 2
+
+#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
+#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
+#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
+
+#ifdef __i386__
+#include <poppack.h>
+#endif
+
+#endif
diff --git a/d3dvec.inl b/d3dvec.inl
new file mode 100644
index 0000000..96f669b
--- /dev/null
+++ b/d3dvec.inl
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2000 Ove Kaaven
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3DVEC_INL
+#define __WINE_D3DVEC_INL
+
+#include <math.h>
+
+/*** constructors ***/
+
+inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
+{
+ x = y = z = f;
+}
+
+inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
+{
+ x = _x; y = _y; z = _z;
+}
+
+/*** assignment operators ***/
+
+inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
+{
+ x += v.x; y += v.y; z += v.z;
+ return *this;
+}
+
+inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
+{
+ x -= v.x; y -= v.y; z -= v.z;
+ return *this;
+}
+
+inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
+{
+ x *= v.x; y *= v.y; z *= v.z;
+ return *this;
+}
+
+inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
+{
+ x /= v.x; y /= v.y; z /= v.z;
+ return *this;
+}
+
+inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
+{
+ x *= s; y *= s; z *= s;
+ return *this;
+}
+
+inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
+{
+ x /= s; y /= s; z /= s;
+ return *this;
+}
+
+/*** unary operators ***/
+
+inline _D3DVECTOR operator + (const _D3DVECTOR& v)
+{
+ return v;
+}
+
+inline _D3DVECTOR operator - (const _D3DVECTOR& v)
+{
+ return _D3DVECTOR(-v.x, -v.y, -v.z);
+}
+
+/*** binary operators ***/
+
+inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
+{
+ return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
+}
+
+inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
+{
+ return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
+}
+
+inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
+{
+ return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
+}
+
+inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
+{
+ return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
+}
+
+inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
+{
+ return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
+}
+
+inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v)
+{
+ return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */
+}
+
+inline D3DVALUE Magnitude(const _D3DVECTOR& v)
+{
+ return sqrt(SquareMagnitude(v));
+}
+
+inline _D3DVECTOR Normalize(const _D3DVECTOR& v)
+{
+ return v / Magnitude(v);
+}
+
+inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
+{
+ return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
+}
+
+inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
+{
+ _D3DVECTOR res;
+ /* this is a left-handed cross product, right? */
+ res.x = v1.y * v2.z - v1.z * v2.y;
+ res.y = v1.z * v2.x - v1.x * v2.z;
+ res.z = v1.x * v2.y - v1.y * v2.x;
+ return res;
+}
+
+#endif
diff --git a/d3dx9.h b/d3dx9.h
new file mode 100644
index 0000000..97d4234
--- /dev/null
+++ b/d3dx9.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DX9_H__
+#define __D3DX9_H__
+
+#include <limits.h>
+
+#define D3DX_DEFAULT ((UINT)-1)
+#define D3DX_DEFAULT_NONPOW2 ((UINT)-2)
+#define D3DX_DEFAULT_FLOAT FLT_MAX
+#define D3DX_FROM_FILE ((UINT)-3)
+#define D3DFMT_FROM_FILE ((D3DFORMAT)-3)
+
+#include "d3d9.h"
+#include "d3dx9math.h"
+#include "d3dx9core.h"
+#include "d3dx9xof.h"
+#include "d3dx9mesh.h"
+#include "d3dx9shader.h"
+#include "d3dx9effect.h"
+#include "d3dx9shape.h"
+#include "d3dx9anim.h"
+#include "d3dx9tex.h"
+
+#define _FACDD 0x876
+#define MAKE_DDHRESULT(code) MAKE_HRESULT(1, _FACDD, code)
+
+enum _D3DXERR {
+ D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
+ D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901),
+ D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902),
+ D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903),
+ D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904),
+ D3DXERR_INVALIDDATA = MAKE_DDHRESULT(2905),
+ D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906),
+ D3DXERR_DUPLICATENAMEDFRAGMENT = MAKE_DDHRESULT(2907),
+ D3DXERR_CANNOTREMOVELASTITEM = MAKE_DDHRESULT(2908),
+};
+
+#endif
diff --git a/d3dx9anim.h b/d3dx9anim.h
new file mode 100644
index 0000000..dcd4470
--- /dev/null
+++ b/d3dx9anim.h
@@ -0,0 +1,410 @@
+#include <_mingw_unicode.h>
+#undef INTERFACE
+/*
+ * Copyright 2011 Dylan Smith
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3DX9ANIM_H
+#define __WINE_D3DX9ANIM_H
+
+DEFINE_GUID(IID_ID3DXAnimationSet, 0x698cfb3f, 0x9289, 0x4d95, 0x9a, 0x57, 0x33, 0xa9, 0x4b, 0x5a, 0x65, 0xf9);
+DEFINE_GUID(IID_ID3DXKeyframedAnimationSet, 0xfa4e8e3a, 0x9786, 0x407d, 0x8b, 0x4c, 0x59, 0x95, 0x89, 0x37, 0x64, 0xaf);
+DEFINE_GUID(IID_ID3DXCompressedAnimationSet, 0x6cc2480d, 0x3808, 0x4739, 0x9f, 0x88, 0xde, 0x49, 0xfa, 0xcd, 0x8d, 0x4c);
+DEFINE_GUID(IID_ID3DXAnimationController, 0xac8948ec, 0xf86d, 0x43e2, 0x96, 0xde, 0x31, 0xfc, 0x35, 0xf9, 0x6d, 0x9e);
+
+typedef enum _D3DXMESHDATATYPE
+{
+ D3DXMESHTYPE_MESH = 1,
+ D3DXMESHTYPE_PMESH = 2,
+ D3DXMESHTYPE_PATCHMESH = 3,
+ D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff,
+} D3DXMESHDATATYPE;
+
+typedef enum _D3DXCALLBACK_SEARCH_FLAGS
+{
+ D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = 0x00000001,
+ D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = 0x00000002,
+ D3DXCALLBACK_SEARCH_FORCE_DWORD = 0x7fffffff,
+} D3DXCALLBACK_SEARCH_FLAGS;
+
+typedef enum _D3DXPLAYBACK_TYPE
+{
+ D3DXPLAY_LOOP = 0,
+ D3DXPLAY_ONCE = 1,
+ D3DXPLAY_PINGPONG = 2,
+ D3DXPLAY_FORCE_DWORD = 0x7fffffff,
+} D3DXPLAYBACK_TYPE;
+
+typedef enum _D3DXCOMPRESSION_FLAGS
+{
+ D3DXCOMPRESSION_DEFAULT = 0x00000000,
+ D3DXCOMPRESSION_FORCE_DWORD = 0x7fffffff,
+} D3DXCOMPRESSION_FLAGS;
+
+typedef enum _D3DXPRIORITY_TYPE
+{
+ D3DXPRIORITY_LOW = 0,
+ D3DXPRIORITY_HIGH = 1,
+ D3DXPRIORITY_FORCE_DWORD = 0x7fffffff,
+} D3DXPRIORITY_TYPE;
+
+typedef enum _D3DXEVENT_TYPE
+{
+ D3DXEVENT_TRACKSPEED = 0,
+ D3DXEVENT_TRACKWEIGHT = 1,
+ D3DXEVENT_TRACKPOSITION = 2,
+ D3DXEVENT_TRACKENABLE = 3,
+ D3DXEVENT_PRIORITYBLEND = 4,
+ D3DXEVENT_FORCE_DWORD = 0x7fffffff,
+} D3DXEVENT_TYPE;
+
+typedef enum _D3DXTRANSITION_TYPE
+{
+ D3DXTRANSITION_LINEAR = 0,
+ D3DXTRANSITION_EASEINEASEOUT = 1,
+ D3DXTRANSITION_FORCE_DWORD = 0x7fffffff,
+} D3DXTRANSITION_TYPE;
+
+
+typedef struct _D3DXMESHDATA
+{
+ D3DXMESHDATATYPE Type;
+
+ union
+ {
+ ID3DXMesh *pMesh;
+ ID3DXPMesh *pPMesh;
+ ID3DXPatchMesh *pPatchMesh;
+ } DUMMYUNIONNAME;
+} D3DXMESHDATA, *LPD3DXMESHDATA;
+
+typedef struct _D3DXMESHCONTAINER
+{
+ char *Name;
+ D3DXMESHDATA MeshData;
+ LPD3DXMATERIAL pMaterials;
+ LPD3DXEFFECTINSTANCE pEffects;
+ DWORD NumMaterials;
+ DWORD *pAdjacency;
+ ID3DXSkinInfo *pSkinInfo;
+ struct _D3DXMESHCONTAINER *pNextMeshContainer;
+} D3DXMESHCONTAINER, *LPD3DXMESHCONTAINER;
+
+typedef struct _D3DXFRAME
+{
+ char *Name;
+ D3DXMATRIX TransformationMatrix;
+ LPD3DXMESHCONTAINER pMeshContainer;
+ struct _D3DXFRAME *pFrameSibling;
+ struct _D3DXFRAME *pFrameFirstChild;
+} D3DXFRAME, *LPD3DXFRAME;
+
+typedef struct _D3DXKEY_VECTOR3
+{
+ FLOAT Time;
+ D3DXVECTOR3 Value;
+} D3DXKEY_VECTOR3, *LPD3DXKEY_VECTOR3;
+
+typedef struct _D3DXKEY_QUATERNION
+{
+ FLOAT Time;
+ D3DXQUATERNION Value;
+} D3DXKEY_QUATERNION, *LPD3DXKEY_QUATERNION;
+
+typedef struct _D3DXKEY_CALLBACK
+{
+ float Time;
+ void *pCallbackData;
+} D3DXKEY_CALLBACK, *LPD3DXKEY_CALLBACK;
+
+typedef struct _D3DXTRACK_DESC
+{
+ D3DXPRIORITY_TYPE Priority;
+ FLOAT Weight;
+ FLOAT Speed;
+ DOUBLE Position;
+ WINBOOL Enable;
+} D3DXTRACK_DESC, *LPD3DXTRACK_DESC;
+
+typedef struct _D3DXEVENT_DESC
+{
+ D3DXEVENT_TYPE Type;
+ UINT Track;
+ DOUBLE StartTime;
+ DOUBLE Duration;
+ D3DXTRANSITION_TYPE Transition;
+ union
+ {
+ FLOAT Weight;
+ FLOAT Speed;
+ DOUBLE Position;
+ WINBOOL Enable;
+ } DUMMYUNIONNAME;
+} D3DXEVENT_DESC, *LPD3DXEVENT_DESC;
+
+typedef DWORD D3DXEVENTHANDLE, *LPD3DXEVENTHANDLE;
+
+typedef interface ID3DXAllocateHierarchy *LPD3DXALLOCATEHIERARCHY;
+typedef interface ID3DXLoadUserData *LPD3DXLOADUSERDATA;
+typedef interface ID3DXSaveUserData *LPD3DXSAVEUSERDATA;
+typedef interface ID3DXAnimationSet *LPD3DXANIMATIONSET;
+typedef interface ID3DXKeyframedAnimationSet *LPD3DXKEYFRAMEDANIMATIONSET;
+typedef interface ID3DXCompressedAnimationSet *LPD3DXCOMPRESSEDANIMATIONSET;
+typedef interface ID3DXAnimationCallbackHandler *LPD3DXANIMATIONCALLBACKHANDLER;
+typedef interface ID3DXAnimationController *LPD3DXANIMATIONCONTROLLER;
+
+#undef INTERFACE
+
+#define INTERFACE ID3DXAllocateHierarchy
+DECLARE_INTERFACE(ID3DXAllocateHierarchy)
+{
+ STDMETHOD(CreateFrame)(THIS_ const char *name, D3DXFRAME **new_frame) PURE;
+ STDMETHOD(CreateMeshContainer)(THIS_ const char *name, const D3DXMESHDATA *mesh_data,
+ const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances,
+ DWORD num_materials, const DWORD *adjacency, ID3DXSkinInfo *skin_info,
+ D3DXMESHCONTAINER **new_mesh_container) PURE;
+ STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME frame) PURE;
+ STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER mesh_container) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXLoadUserData
+DECLARE_INTERFACE(ID3DXLoadUserData)
+{
+ STDMETHOD(LoadTopLevelData)(ID3DXFileData *child_data) PURE;
+ STDMETHOD(LoadFrameChildData)(D3DXFRAME *frame, ID3DXFileData *child_data) PURE;
+ STDMETHOD(LoadMeshChildData)(D3DXMESHCONTAINER *mesh_container, ID3DXFileData *child_data) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXSaveUserData
+DECLARE_INTERFACE(ID3DXSaveUserData)
+{
+ STDMETHOD(AddFrameChildData)(const D3DXFRAME *frame,
+ ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *frame_data) PURE;
+ STDMETHOD(AddMeshChildData)(const D3DXMESHCONTAINER *mesh_container,
+ ID3DXFileSaveObject *save_obj, ID3DXFileSaveData *mesh_data) PURE;
+ STDMETHOD(AddTopLevelDataObjectsPre)(ID3DXFileSaveObject *save_obj) PURE;
+ STDMETHOD(AddTopLevelDataObjectsPost)(ID3DXFileSaveObject *save_obj) PURE;
+ STDMETHOD(RegisterTemplates)(ID3DXFile *file) PURE;
+ STDMETHOD(SaveTemplates)(ID3DXFileSaveObject *save_obj) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXAnimationSet
+DECLARE_INTERFACE_(ID3DXAnimationSet, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXAnimationSet methods ***/
+ STDMETHOD_(const char *, GetName)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
+ STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
+ STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
+ STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
+ STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
+ D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
+ STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
+ void **callback_data) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXKeyframedAnimationSet
+DECLARE_INTERFACE_(ID3DXKeyframedAnimationSet, ID3DXAnimationSet)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXAnimationSet methods ***/
+ STDMETHOD_(const char *, GetName)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
+ STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
+ STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
+ STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
+ STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
+ D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
+ STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
+ void **callback_data) PURE;
+ /*** ID3DXKeyframedAnimationSet methods ***/
+ STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumScaleKeys)(THIS_ UINT animation) PURE;
+ STDMETHOD(GetScaleKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 scale_keys) PURE;
+ STDMETHOD(GetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE;
+ STDMETHOD(SetScaleKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 scale_key) PURE;
+ STDMETHOD_(UINT, GetNumRotationKeys)(THIS_ UINT animation) PURE;
+ STDMETHOD(GetRotationKeys)(THIS_ UINT animation, LPD3DXKEY_QUATERNION rotation_keys) PURE;
+ STDMETHOD(GetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE;
+ STDMETHOD(SetRotationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_QUATERNION rotation_key) PURE;
+ STDMETHOD_(UINT, GetNumTranslationKeys)(THIS_ UINT animation) PURE;
+ STDMETHOD(GetTranslationKeys)(THIS_ UINT animation, LPD3DXKEY_VECTOR3 translation_keys) PURE;
+ STDMETHOD(GetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE;
+ STDMETHOD(SetTranslationKey)(THIS_ UINT animation, UINT key, LPD3DXKEY_VECTOR3 translation_key) PURE;
+ STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
+ STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE;
+ STDMETHOD(GetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE;
+ STDMETHOD(SetCallbackKey)(THIS_ UINT key, LPD3DXKEY_CALLBACK callback_key) PURE;
+ STDMETHOD(UnregisterScaleKey)(THIS_ UINT animation, UINT key) PURE;
+ STDMETHOD(UnregisterRotationKey)(THIS_ UINT animation, UINT key) PURE;
+ STDMETHOD(UnregisterTranslationKey)(THIS_ UINT animation, UINT key) PURE;
+ STDMETHOD(RegisterAnimationSRTKeys)(THIS_ const char *name, UINT num_scale_keys,
+ UINT num_rotation_keys, UINT num_translation_keys, const D3DXKEY_VECTOR3 *scale_keys,
+ const D3DXKEY_QUATERNION *rotation_keys, const D3DXKEY_VECTOR3 *translation_keys,
+ DWORD *animation_index) PURE;
+ STDMETHOD(Compress)(THIS_ DWORD flags, float lossiness, D3DXFRAME *hierarchy,
+ ID3DXBuffer **compressed_data) PURE;
+ STDMETHOD(UnregisterAnimation)(THIS_ UINT index) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXCompressedAnimationSet
+DECLARE_INTERFACE_(ID3DXCompressedAnimationSet, ID3DXAnimationSet)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXAnimationSet methods ***/
+ STDMETHOD_(const char *, GetName)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetPeriodicPosition)(THIS_ DOUBLE position) PURE;
+ STDMETHOD_(UINT, GetNumAnimations)(THIS) PURE;
+ STDMETHOD(GetAnimationNameByIndex)(THIS_ UINT index, const char **name) PURE;
+ STDMETHOD(GetAnimationIndexByName)(THIS_ const char *name, UINT *index) PURE;
+ STDMETHOD(GetSRT)(THIS_ DOUBLE periodic_position, UINT animation, D3DXVECTOR3 *scale,
+ D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
+ STDMETHOD(GetCallback)(THIS_ double position, DWORD flags, double *callback_position,
+ void **callback_data) PURE;
+ /*** ID3DXCompressedAnimationSet methods ***/
+ STDMETHOD_(D3DXPLAYBACK_TYPE, GetPlaybackType)(THIS) PURE;
+ STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
+ STDMETHOD(GetCompressedData)(THIS_ ID3DXBuffer **compressed_data) PURE;
+ STDMETHOD_(UINT, GetNumCallbackKeys)(THIS) PURE;
+ STDMETHOD(GetCallbackKeys)(THIS_ LPD3DXKEY_CALLBACK callback_keys) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXAnimationCallbackHandler
+DECLARE_INTERFACE(ID3DXAnimationCallbackHandler)
+{
+ STDMETHOD(HandleCallback)(THIS_ UINT track, void *callback_data) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXAnimationController
+DECLARE_INTERFACE_(ID3DXAnimationController, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXAnimationController methods ***/
+ STDMETHOD_(UINT, GetMaxNumAnimationOutputs)(THIS) PURE;
+ STDMETHOD_(UINT, GetMaxNumAnimationSets)(THIS) PURE;
+ STDMETHOD_(UINT, GetMaxNumTracks)(THIS) PURE;
+ STDMETHOD_(UINT, GetMaxNumEvents)(THIS) PURE;
+ STDMETHOD(RegisterAnimationOutput)(THIS_ const char *name, D3DXMATRIX *matrix,
+ D3DXVECTOR3 *scale, D3DXQUATERNION *rotation, D3DXVECTOR3 *translation) PURE;
+ STDMETHOD(RegisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE;
+ STDMETHOD(UnregisterAnimationSet)(THIS_ ID3DXAnimationSet *anim_set) PURE;
+ STDMETHOD_(UINT, GetNumAnimationSets)(THIS) PURE;
+ STDMETHOD(GetAnimationSet)(THIS_ UINT index, ID3DXAnimationSet **anim_set) PURE;
+ STDMETHOD(GetAnimationSetByName)(THIS_ const char *name, ID3DXAnimationSet **anim_set) PURE;
+ STDMETHOD(AdvanceTime)(THIS_ double time_delta, ID3DXAnimationCallbackHandler *callback_handler) PURE;
+ STDMETHOD(ResetTime)(THIS) PURE;
+ STDMETHOD_(double, GetTime)(THIS) PURE;
+ STDMETHOD(SetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet *anim_set) PURE;
+ STDMETHOD(GetTrackAnimationSet)(THIS_ UINT track, ID3DXAnimationSet **anim_set) PURE;
+ STDMETHOD(SetTrackPriority)(THIS_ UINT track, D3DXPRIORITY_TYPE priority) PURE;
+ STDMETHOD(SetTrackSpeed)(THIS_ UINT track, float speed) PURE;
+ STDMETHOD(SetTrackWeight)(THIS_ UINT track, float weight) PURE;
+ STDMETHOD(SetTrackPosition)(THIS_ UINT track, double position) PURE;
+ STDMETHOD(SetTrackEnable)(THIS_ UINT track, WINBOOL enable) PURE;
+ STDMETHOD(SetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE;
+ STDMETHOD(GetTrackDesc)(THIS_ UINT track, D3DXTRACK_DESC *desc) PURE;
+ STDMETHOD(SetPriorityBlend)(THIS_ float blend_weight) PURE;
+ STDMETHOD_(float, GetPriorityBlend)(THIS) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, KeyTrackSpeed)(THIS_ UINT track, float new_speed,
+ double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, KeyTrackWeight)(THIS_ UINT track, float new_weight,
+ double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, KeyTrackPosition)(THIS_ UINT track, double new_position, double start_time) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, KeyTrackEnable)(THIS_ UINT track, WINBOOL new_enable, double start_time) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, KeyPriorityBlend)(THIS_ float new_blend_weight,
+ double start_time, double duration, D3DXTRANSITION_TYPE transition) PURE;
+ STDMETHOD(UnkeyEvent)(THIS_ D3DXEVENTHANDLE event) PURE;
+ STDMETHOD(UnkeyAllTrackEvents)(THIS_ UINT track) PURE;
+ STDMETHOD(UnkeyAllPriorityBlends)(THIS) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, GetCurrentTrackEvent)(THIS_ UINT track, D3DXEVENT_TYPE event_type) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, GetCurrentPriorityBlend)(THIS) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingTrackEvent)(THIS_ UINT track, D3DXEVENTHANDLE event) PURE;
+ STDMETHOD_(D3DXEVENTHANDLE, GetUpcomingPriorityBlend)(THIS_ D3DXEVENTHANDLE event) PURE;
+ STDMETHOD(ValidateEvent)(THIS_ D3DXEVENTHANDLE event) PURE;
+ STDMETHOD(GetEventDesc)(THIS_ D3DXEVENTHANDLE event, D3DXEVENT_DESC *desc) PURE;
+ STDMETHOD(CloneAnimationController)(THIS_ UINT max_num_anim_outputs, UINT max_num_anim_sets,
+ UINT max_num_tracks, UINT max_num_events, ID3DXAnimationController **anim_controller) PURE;
+};
+#undef INTERFACE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3DXLoadMeshHierarchyFromXA(const char *filename, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader,
+ D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller);
+HRESULT WINAPI D3DXLoadMeshHierarchyFromXW(const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXAllocateHierarchy *alloc, struct ID3DXLoadUserData *user_data_loader,
+ D3DXFRAME **frame_hierarchy, struct ID3DXAnimationController **animation_controller);
+#define D3DXLoadMeshHierarchyFromX __MINGW_NAME_AW(D3DXLoadMeshHierarchyFromX)
+HRESULT WINAPI D3DXLoadMeshHierarchyFromXInMemory(const void *data, DWORD data_size, DWORD flags,
+ struct IDirect3DDevice9 *device, struct ID3DXAllocateHierarchy *alloc,
+ struct ID3DXLoadUserData *user_data_loader, D3DXFRAME **frame_hierarchy,
+ struct ID3DXAnimationController **animation_controller);
+HRESULT WINAPI D3DXSaveMeshHierarchyToFileA(const char *filename, DWORD format,
+ const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller,
+ ID3DXSaveUserData *user_data_saver);
+HRESULT WINAPI D3DXSaveMeshHierarchyToFileW(const WCHAR *filename, DWORD format,
+ const D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller,
+ ID3DXSaveUserData *user_data_saver);
+#define D3DXSaveMeshHierarchyToFile __MINGW_NAME_AW(D3DXSaveMeshHierarchyToFile)
+HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame_root, ID3DXAllocateHierarchy *alloc);
+HRESULT WINAPI D3DXFrameAppendChild(D3DXFRAME *parent, const D3DXFRAME *child);
+D3DXFRAME * WINAPI D3DXFrameFind(const D3DXFRAME *root, const char *name);
+HRESULT WINAPI D3DXFrameRegisterNamedMatrices(D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller);
+UINT WINAPI D3DXFrameNumNamedMatrices(const D3DXFRAME *frame_root);
+HRESULT WINAPI D3DXFrameCalculateBoundingSphere(const D3DXFRAME *frame_root, D3DXVECTOR3 *center,
+ FLOAT *radius);
+HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_per_second,
+ D3DXPLAYBACK_TYPE playback_type, UINT animation_count, UINT callback_key_count,
+ const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set);
+HRESULT WINAPI D3DXCreateCompressedAnimationSet(const char *name, double ticks_per_second,
+ D3DXPLAYBACK_TYPE playback_type, ID3DXBuffer *compressed_data, UINT callback_key_count,
+ const D3DXKEY_CALLBACK *callback_keys, ID3DXCompressedAnimationSet **animation_set);
+HRESULT WINAPI D3DXCreateAnimationController(UINT max_animation_output_count, UINT max_animation_set_count,
+ UINT max_track_count, UINT max_event_count, ID3DXAnimationController **animation_controller);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3DX9ANIM_H */
diff --git a/d3dx9core.h b/d3dx9core.h
new file mode 100644
index 0000000..da7cce9
--- /dev/null
+++ b/d3dx9core.h
@@ -0,0 +1,507 @@
+#include <_mingw_unicode.h>
+#undef INTERFACE
+/*
+ * Copyright (C) 2007, 2008 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __WINE_D3DX9CORE_H
+#define __WINE_D3DX9CORE_H
+
+/**********************************************
+ ***************** Definitions ****************
+ **********************************************/
+#define D3DX_VERSION 0x0902
+#ifndef D3DX_SDK_VERSION
+#define D3DX_SDK_VERSION 43
+#endif
+#define D3DXSPRITE_DONOTSAVESTATE 0x00000001
+#define D3DXSPRITE_DONOTMODIFY_RENDERSTATE 0x00000002
+#define D3DXSPRITE_OBJECTSPACE 0x00000004
+#define D3DXSPRITE_BILLBOARD 0x00000008
+#define D3DXSPRITE_ALPHABLEND 0x00000010
+#define D3DXSPRITE_SORT_TEXTURE 0x00000020
+#define D3DXSPRITE_SORT_DEPTH_FRONTTOBACK 0x00000040
+#define D3DXSPRITE_SORT_DEPTH_BACKTOFRONT 0x00000080
+#define D3DXSPRITE_DO_NOT_ADDREF_TEXTURE 0x00000100
+
+/**********************************************
+ ******************** GUIDs *******************
+ **********************************************/
+DEFINE_GUID(IID_ID3DXBuffer, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
+DEFINE_GUID(IID_ID3DXFont, 0xd79dbb70, 0x5f21, 0x4d36, 0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc);
+DEFINE_GUID(IID_ID3DXLine, 0xd379ba7f, 0x9042, 0x4ac4, 0x9f, 0x5e, 0x58, 0x19, 0x2a, 0x4c, 0x6b, 0xd8);
+DEFINE_GUID(IID_ID3DXRenderToEnvMap, 0x313f1b4b, 0xc7b0, 0x4fa2, 0x9d, 0x9d, 0x8d, 0x38, 0xb, 0x64, 0x38, 0x5e);
+DEFINE_GUID(IID_ID3DXRenderToSurface, 0x6985f346, 0x2c3d, 0x43b3, 0xbe, 0x8b, 0xda, 0xae, 0x8a, 0x3, 0xd8, 0x94);
+DEFINE_GUID(IID_ID3DXSprite, 0xba0b762d, 0x7d28, 0x43ec, 0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x6, 0x14);
+
+/**********************************************
+ ****************** typedefs ******************
+ **********************************************/
+typedef struct ID3DXBuffer *LPD3DXBUFFER;
+typedef struct ID3DXFont *LPD3DXFONT;
+typedef struct ID3DXLine *LPD3DXLINE;
+typedef struct ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
+typedef struct ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
+typedef struct ID3DXSprite *LPD3DXSPRITE;
+
+/**********************************************
+ *********** interface declarations ***********
+ **********************************************/
+#define INTERFACE ID3DXBuffer
+DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBuffer methods ***/
+ STDMETHOD_(void *, GetBufferPointer)(THIS) PURE;
+ STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXBuffer methods ***/
+#define ID3DXBuffer_GetBufferPointer(p) (p)->lpVtbl->GetBufferPointer(p)
+#define ID3DXBuffer_GetBufferSize(p) (p)->lpVtbl->GetBufferSize(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXBuffer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXBuffer_AddRef(p) (p)->AddRef()
+#define ID3DXBuffer_Release(p) (p)->Release()
+/*** ID3DXBuffer methods ***/
+#define ID3DXBuffer_GetBufferPointer(p) (p)->GetBufferPointer()
+#define ID3DXBuffer_GetBufferSize(p) (p)->GetBufferSize()
+#endif
+
+typedef struct _D3DXFONT_DESCA
+{
+ INT Height;
+ UINT Width;
+ UINT Weight;
+ UINT MipLevels;
+ WINBOOL Italic;
+ BYTE CharSet;
+ BYTE OutputPrecision;
+ BYTE Quality;
+ BYTE PitchAndFamily;
+ CHAR FaceName[LF_FACESIZE];
+} D3DXFONT_DESCA, *LPD3DXFONT_DESCA;
+
+typedef struct _D3DXFONT_DESCW
+{
+ INT Height;
+ UINT Width;
+ UINT Weight;
+ UINT MipLevels;
+ WINBOOL Italic;
+ BYTE CharSet;
+ BYTE OutputPrecision;
+ BYTE Quality;
+ BYTE PitchAndFamily;
+ WCHAR FaceName[LF_FACESIZE];
+} D3DXFONT_DESCW, *LPD3DXFONT_DESCW;
+
+__MINGW_TYPEDEF_AW(D3DXFONT_DESC)
+__MINGW_TYPEDEF_AW(LPD3DXFONT_DESC)
+
+#define INTERFACE ID3DXFont
+DECLARE_INTERFACE_(ID3DXFont, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXFont methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(GetDescA)(THIS_ D3DXFONT_DESCA *desc) PURE;
+ STDMETHOD(GetDescW)(THIS_ D3DXFONT_DESCW *desc) PURE;
+ STDMETHOD_(WINBOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *metrics) PURE;
+ STDMETHOD_(WINBOOL, GetTextMetricsW)(THIS_ TEXTMETRICW *metrics) PURE;
+
+ STDMETHOD_(HDC, GetDC)(THIS) PURE;
+ STDMETHOD(GetGlyphData)(THIS_ UINT glyph, struct IDirect3DTexture9 **texture,
+ RECT *blackbox, POINT *cellinc) PURE;
+
+ STDMETHOD(PreloadCharacters)(THIS_ UINT first, UINT last) PURE;
+ STDMETHOD(PreloadGlyphs)(THIS_ UINT first, UINT last) PURE;
+ STDMETHOD(PreloadTextA)(THIS_ const char *string, INT count) PURE;
+ STDMETHOD(PreloadTextW)(THIS_ const WCHAR *string, INT count) PURE;
+
+ STDMETHOD_(INT, DrawTextA)(THIS_ struct ID3DXSprite *sprite, const char *string,
+ INT count, RECT *rect, DWORD format, D3DCOLOR color) PURE;
+ STDMETHOD_(INT, DrawTextW)(THIS_ struct ID3DXSprite *sprite, const WCHAR *string,
+ INT count, RECT *rect, DWORD format, D3DCOLOR color) PURE;
+
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+
+/*** IUnknown methods ***/
+#define ID3DXFont_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXFont_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXFont_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXFont methods ***/
+#define ID3DXFont_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define ID3DXFont_GetDescA(p,a) (p)->lpVtbl->GetDescA(p,a)
+#define ID3DXFont_GetDescW(p,a) (p)->lpVtbl->GetDescW(p,a)
+#define ID3DXFont_GetTextMetricsA(p,a) (p)->lpVtbl->GetTextMetricsA(p,a)
+#define ID3DXFont_GetTextMetricsW(p,a) (p)->lpVtbl->GetTextMetricsW(p,a)
+#define ID3DXFont_GetDC(p) (p)->lpVtbl->GetDC(p)
+#define ID3DXFont_GetGlyphData(p,a,b,c,d) (p)->lpVtbl->GetGlyphData(p,a,b,c,d)
+#define ID3DXFont_PreloadCharacters(p,a,b) (p)->lpVtbl->PreloadCharacters(p,a,b)
+#define ID3DXFont_PreloadGlyphs(p,a,b) (p)->lpVtbl->PreloadGlyphs(p,a,b)
+#define ID3DXFont_PreloadTextA(p,a,b) (p)->lpVtbl->PreloadTextA(p,a,b)
+#define ID3DXFont_PreloadTextW(p,a,b) (p)->lpVtbl->PreloadTextW(p,a,b)
+#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextA(p,a,b,c,d,e,f)
+#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->lpVtbl->DrawTextW(p,a,b,c,d,e,f)
+#define ID3DXFont_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#define ID3DXFont_OnResetDevice(p) (p)->lpVtbl->OnResetDevice(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXFont_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXFont_AddRef(p) (p)->AddRef()
+#define ID3DXFont_Release(p) (p)->Release()
+/*** ID3DXFont methods ***/
+#define ID3DXFont_GetDevice(p,a) (p)->GetDevice(a)
+#define ID3DXFont_GetDescA(p,a) (p)->GetDescA(a)
+#define ID3DXFont_GetDescW(p,a) (p)->GetDescW(a)
+#define ID3DXFont_GetTextMetricsA(p,a) (p)->GetTextMetricsA(a)
+#define ID3DXFont_GetTextMetricsW(p,a) (p)->GetTextMetricsW(a)
+#define ID3DXFont_GetDC(p) (p)->GetDC()
+#define ID3DXFont_GetGlyphData(p,a,b,c,d) (p)->GetGlyphData(a,b,c,d)
+#define ID3DXFont_PreloadCharacters(p,a,b) (p)->PreloadCharacters(a,b)
+#define ID3DXFont_PreloadGlyphs(p,a,b) (p)->PreloadGlyphs(a,b)
+#define ID3DXFont_PreloadTextA(p,a,b) (p)->PreloadTextA(a,b)
+#define ID3DXFont_PreloadTextW(p,a,b) (p)->PreloadTextW(a,b)
+#define ID3DXFont_DrawTextA(p,a,b,c,d,e,f) (p)->DrawTextA(a,b,c,d,e,f)
+#define ID3DXFont_DrawTextW(p,a,b,c,d,e,f) (p)->DrawTextW(a,b,c,d,e,f)
+#define ID3DXFont_OnLostDevice(p) (p)->OnLostDevice()
+#define ID3DXFont_OnResetDevice(p) (p)->OnResetDevice()
+#endif
+#define ID3DXFont_DrawText __MINGW_NAME_AW(ID3DXFont_DrawText)
+#define ID3DXFont_GetDesc __MINGW_NAME_AW(ID3DXFont_GetDesc)
+#define ID3DXFont_GetTextMetrics __MINGW_NAME_AW(ID3DXFont_GetTextMetrics)
+#define ID3DXFont_PreloadText __MINGW_NAME_AW(ID3DXFont_PreloadText)
+
+#define INTERFACE ID3DXLine
+DECLARE_INTERFACE_(ID3DXLine, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /*** ID3DXLine methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+
+ STDMETHOD(Begin)(THIS) PURE;
+ STDMETHOD(Draw)(THIS_ const D3DXVECTOR2 *vertexlist, DWORD vertexlistcount, D3DCOLOR color) PURE;
+ STDMETHOD(DrawTransform)(THIS_ const D3DXVECTOR3 *vertexlist, DWORD vertexlistcount,
+ const D3DXMATRIX *transform, D3DCOLOR color) PURE;
+ STDMETHOD(SetPattern)(THIS_ DWORD pattern) PURE;
+ STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
+ STDMETHOD(SetPatternScale)(THIS_ FLOAT scale) PURE;
+ STDMETHOD_(FLOAT, GetPatternScale)(THIS) PURE;
+ STDMETHOD(SetWidth)(THIS_ FLOAT width) PURE;
+ STDMETHOD_(FLOAT, GetWidth)(THIS) PURE;
+ STDMETHOD(SetAntialias)(THIS_ WINBOOL antialias) PURE;
+ STDMETHOD_(WINBOOL, GetAntialias)(THIS) PURE;
+ STDMETHOD(SetGLLines)(THIS_ WINBOOL gl_lines) PURE;
+ STDMETHOD_(WINBOOL, GetGLLines)(THIS) PURE;
+ STDMETHOD(End)(THIS) PURE;
+
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXLine_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXLine_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXLine_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXLine methods ***/
+#define ID3DXLine_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define ID3DXLine_Begin(p) (p)->lpVtbl->Begin(p)
+#define ID3DXLine_Draw(p,a,b,c) (p)->lpVtbl->Draw(p,a,b,c)
+#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->lpVtbl->DrawTransform(p,a,b,c,d)
+#define ID3DXLine_SetPattern(p,a) (p)->lpVtbl->SetPattern(p,a)
+#define ID3DXLine_GetPattern(p) (p)->lpVtbl->GetPattern(p)
+#define ID3DXLine_SetPatternScale(p,a) (p)->lpVtbl->SetPatternScale(p,a)
+#define ID3DXLine_GetPatternScale(p) (p)->lpVtbl->GetPatternScale(p)
+#define ID3DXLine_SetWidth(p,a) (p)->lpVtbl->SetWidth(p,a)
+#define ID3DXLine_GetWidth(p) (p)->lpVtbl->GetWidth(p)
+#define ID3DXLine_SetAntialias(p,a) (p)->lpVtbl->SetAntialias(p,a)
+#define ID3DXLine_GetAntialias(p) (p)->lpVtbl->GetAntialias(p)
+#define ID3DXLine_SetGLLines(p,a) (p)->lpVtbl->SetGLLines(p,a)
+#define ID3DXLine_GetGLLines(p) (p)->lpVtbl->GetGLLines(p)
+#define ID3DXLine_End(p) (p)->lpVtbl->End(p)
+#define ID3DXLine_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#define ID3DXLine_OnResetDevice(p) (p)->lpVtbl->OnResetDevice(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXLine_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXLine_AddRef(p) (p)->AddRef()
+#define ID3DXLine_Release(p) (p)->Release()
+/*** ID3DXLine methods ***/
+#define ID3DXLine_GetDevice(p,a) (p)->GetDevice(a)
+#define ID3DXLine_Begin(p) (p)->Begin()
+#define ID3DXLine_Draw(p,a,b,c) (p)->Draw(a,b,c)
+#define ID3DXLine_DrawTransform(p,a,b,c,d) (p)->DrawTransform(a,b,c,d)
+#define ID3DXLine_SetPattern(p,a) (p)->SetPattern(a)
+#define ID3DXLine_GetPattern(p) (p)->GetPattern()
+#define ID3DXLine_SetPatternScale(p,a) (p)->SetPatternScale(a)
+#define ID3DXLine_GetPatternScale(p) (p)->GetPatternScale()
+#define ID3DXLine_SetWidth(p,a) (p)->SetWidth(a)
+#define ID3DXLine_GetWidth(p) (p)->GetWidth()
+#define ID3DXLine_SetAntialias(p,a) (p)->SetAntialias(a)
+#define ID3DXLine_GetAntialias(p) (p)->GetAntialias()
+#define ID3DXLine_SetGLLines(p,a) (p)->SetGLLines(a)
+#define ID3DXLine_GetGLLines(p) (p)->GetGLLines()
+#define ID3DXLine_End(p) (p)->End()
+#define ID3DXLine_OnLostDevice(p) (p)->OnLostDevice()
+#define ID3DXLine_OnResetDevice(p) (p)->OnResetDevice()
+#endif
+
+typedef struct _D3DXRTE_DESC
+{
+ UINT Size;
+ UINT MipLevels;
+ D3DFORMAT Format;
+ WINBOOL DepthStencil;
+ D3DFORMAT DepthStencilFormat;
+} D3DXRTE_DESC;
+
+#define INTERFACE ID3DXRenderToEnvMap
+DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ /*** ID3DXRenderToEnvMap methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC *desc) PURE;
+
+ STDMETHOD(BeginCube)(THIS_ struct IDirect3DCubeTexture9 *cubetex) PURE;
+ STDMETHOD(BeginSphere)(THIS_ struct IDirect3DTexture9 *tex) PURE;
+ STDMETHOD(BeginHemisphere)(THIS_ struct IDirect3DTexture9 *texzpos, struct IDirect3DTexture9 *texzneg) PURE;
+ STDMETHOD(BeginParabolic)(THIS_ struct IDirect3DTexture9 *texzpos, struct IDirect3DTexture9 *texzneg) PURE;
+
+ STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES face, DWORD mipfilter) PURE;
+ STDMETHOD(End)(THIS_ DWORD mipfilter) PURE;
+
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXRenderToEnvMap_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXRenderToEnvMap_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXRenderToEnvMap_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXRenderToEnvMap methods ***/
+#define ID3DXRenderToEnvMap_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define ID3DXRenderToEnvMap_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define ID3DXRenderToEnvMap_BeginCube(p,a) (p)->lpVtbl->BeginCube(p,a)
+#define ID3DXRenderToEnvMap_BeginSphere(p,a) (p)->lpVtbl->BeginSphere(p,a)
+#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->lpVtbl->BeginHemisphere(p,a,b)
+#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b) (p)->lpVtbl->BeginParabolic(p,a,b)
+#define ID3DXRenderToEnvMap_Face(p,a,b) (p)->lpVtbl->Face(p,a,b)
+#define ID3DXRenderToEnvMap_End(p,a) (p)->lpVtbl->End(p,a)
+#define ID3DXRenderToEnvMap_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#define ID3DXRenderToEnvMap_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXRenderToEnvMap_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXRenderToEnvMap_AddRef(p) (p)->AddRef()
+#define ID3DXRenderToEnvMap_Release(p) (p)->Release()
+/*** ID3DXRenderToEnvMap methods ***/
+#define ID3DXRenderToEnvMap_GetDevice(p,a) (p)->GetDevice(a)
+#define ID3DXRenderToEnvMap_GetDesc(p,a) (p)->GetDesc(a)
+#define ID3DXRenderToEnvMap_BeginCube(p,a) (p)->BeginCube(a)
+#define ID3DXRenderToEnvMap_BeginSphere(p,a) (p)->BeginSphere(a)
+#define ID3DXRenderToEnvMap_BeginHemisphere(p,a,b) (p)->BeginHemisphere(a,b)
+#define ID3DXRenderToEnvMap_BeginParabolic(p,a,b) (p)->BeginParabolic(a,b)
+#define ID3DXRenderToEnvMap_Face(p,a,b) (p)->Face(a,b)
+#define ID3DXRenderToEnvMap_End(p,a) (p)->End(a)
+#define ID3DXRenderToEnvMap_OnLostDevice(p) (p)->OnLostDevice()
+#define ID3DXRenderToEnvMap_OnLostDevice(p) (p)->OnLostDevice()
+#endif
+
+typedef struct _D3DXRTS_DESC
+{
+ UINT Width;
+ UINT Height;
+ D3DFORMAT Format;
+ WINBOOL DepthStencil;
+ D3DFORMAT DepthStencilFormat;
+} D3DXRTS_DESC;
+
+#define INTERFACE ID3DXRenderToSurface
+DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXRenderToSurface methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC *desc) PURE;
+
+ STDMETHOD(BeginScene)(THIS_ struct IDirect3DSurface9 *surface, const D3DVIEWPORT9 *viewport) PURE;
+ STDMETHOD(EndScene)(THIS_ DWORD mipfilter) PURE;
+
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXRenderToSurface_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXRenderToSurface_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXRenderToSurface methods ***/
+#define ID3DXRenderToSurface_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define ID3DXRenderToSurface_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define ID3DXRenderToSurface_BeginScene(p,a,b) (p)->lpVtbl->BeginScene(p,a,b)
+#define ID3DXRenderToSurface_EndScene(p,a) (p)->lpVtbl->EndScene(p,a)
+#define ID3DXRenderToSurface_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#define ID3DXRenderToSurface_OnResetDevice(p) (p)->lpVtbl->OnResetDevice(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXRenderToSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXRenderToSurface_AddRef(p) (p)->AddRef()
+#define ID3DXRenderToSurface_Release(p) (p)->Release()
+/*** ID3DXRenderToSurface methods ***/
+#define ID3DXRenderToSurface_GetDevice(p,a) (p)->GetDevice(a)
+#define ID3DXRenderToSurface_GetDesc(p,a) (p)->GetDesc(a)
+#define ID3DXRenderToSurface_BeginScene(p,a,b) (p)->BeginScene(a,b)
+#define ID3DXRenderToSurface_EndScene(p,a) (p)->EndScene(a)
+#define ID3DXRenderToSurface_OnLostDevice(p) (p)->OnLostDevice()
+#define ID3DXRenderToSurface_OnResetDevice(p) (p)->OnResetDevice()
+#endif
+
+#define INTERFACE ID3DXSprite
+DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **object) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXSprite methods ***/
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+
+ STDMETHOD(GetTransform)(THIS_ D3DXMATRIX *transform) PURE;
+ STDMETHOD(SetTransform)(THIS_ const D3DXMATRIX *transform) PURE;
+ STDMETHOD(SetWorldViewRH)(THIS_ const D3DXMATRIX *world, const D3DXMATRIX *view) PURE;
+ STDMETHOD(SetWorldViewLH)(THIS_ const D3DXMATRIX *world, const D3DXMATRIX *view) PURE;
+
+ STDMETHOD(Begin)(THIS_ DWORD flags) PURE;
+ STDMETHOD(Draw)(THIS_ struct IDirect3DTexture9 *texture, const RECT *rect,
+ const D3DXVECTOR3 *center, const D3DXVECTOR3 *position, D3DCOLOR color) PURE;
+ STDMETHOD(Flush)(THIS) PURE;
+ STDMETHOD(End)(THIS) PURE;
+
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXSprite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXSprite_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXSprite_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXSprite methods ***/
+#define ID3DXSprite_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define ID3DXSprite_GetTransform(p,a) (p)->lpVtbl->GetTransform(p,a)
+#define ID3DXSprite_SetTransform(p,a) (p)->lpVtbl->SetTransform(p,a)
+#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->lpVtbl->SetWorldViewRH(p,a,b)
+#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->lpVtbl->SetWorldViewLH(p,a,b)
+#define ID3DXSprite_Begin(p,a) (p)->lpVtbl->Begin(p,a)
+#define ID3DXSprite_Draw(p,a,b,c,d,e) (p)->lpVtbl->Draw(p,a,b,c,d,e)
+#define ID3DXSprite_Flush(p) (p)->lpVtbl->Flush(p)
+#define ID3DXSprite_End(p) (p)->lpVtbl->End(p)
+#define ID3DXSprite_OnLostDevice(p) (p)->lpVtbl->OnLostDevice(p)
+#define ID3DXSprite_OnResetDevice(p) (p)->lpVtbl->OnResetDevice(p)
+#else
+/*** IUnknown methods ***/
+#define ID3DXSprite_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXSprite_AddRef(p) (p)->AddRef()
+#define ID3DXSprite_Release(p) (p)->Release()
+/*** ID3DXSprite methods ***/
+#define ID3DXSprite_GetDevice(p,a) (p)->GetDevice(a)
+#define ID3DXSprite_GetTransform(p,a) (p)->GetTransform(a)
+#define ID3DXSprite_SetTransform(p,a) (p)->SetTransform(a)
+#define ID3DXSprite_SetWorldViewRH(p,a,b) (p)->SetWorldViewRH(a,b)
+#define ID3DXSprite_SetWorldViewLH(p,a,b) (p)->SetWorldViewLH(a,b)
+#define ID3DXSprite_Begin(p,a) (p)->Begin(a)
+#define ID3DXSprite_Draw(p,a,b,c,d,e) (p)->Draw(a,b,c,d,e)
+#define ID3DXSprite_Flush(p) (p)->Flush()
+#define ID3DXSprite_End(p) (p)->End()
+#define ID3DXSprite_OnLostDevice(p) (p)->OnLostDevice()
+#define ID3DXSprite_OnResetDevice(p) (p)->OnResetDevice()
+#endif
+
+/**********************************************
+ ****************** functions *****************
+ **********************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WINBOOL WINAPI D3DXCheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers);
+HRESULT WINAPI D3DXCreateFontA(struct IDirect3DDevice9 *device, INT height, UINT width, UINT weight,
+ UINT miplevels, WINBOOL italic, DWORD charset, DWORD precision, DWORD quality, DWORD pitchandfamily,
+ const char *facename, struct ID3DXFont **font);
+HRESULT WINAPI D3DXCreateFontW(struct IDirect3DDevice9 *device, INT height, UINT width, UINT weight,
+ UINT miplevels, WINBOOL italic, DWORD charset, DWORD precision, DWORD quality, DWORD pitchandfamily,
+ const WCHAR *facename, struct ID3DXFont **font);
+#define D3DXCreateFont __MINGW_NAME_AW(D3DXCreateFont)
+HRESULT WINAPI D3DXCreateFontIndirectA(struct IDirect3DDevice9 *device,
+ const D3DXFONT_DESCA *desc, struct ID3DXFont **font);
+HRESULT WINAPI D3DXCreateFontIndirectW(struct IDirect3DDevice9 *device,
+ const D3DXFONT_DESCW *desc, struct ID3DXFont **font);
+#define D3DXCreateFontIndirect __MINGW_NAME_AW(D3DXCreateFontIndirect)
+HRESULT WINAPI D3DXCreateLine(struct IDirect3DDevice9 *device, struct ID3DXLine **line);
+HRESULT WINAPI D3DXCreateRenderToEnvMap(struct IDirect3DDevice9 *device, UINT size, UINT miplevels,
+ D3DFORMAT format, WINBOOL stencil, D3DFORMAT stencil_format, struct ID3DXRenderToEnvMap **rtem);
+HRESULT WINAPI D3DXCreateRenderToSurface(struct IDirect3DDevice9 *device, UINT width, UINT height,
+ D3DFORMAT format, WINBOOL stencil, D3DFORMAT stencil_format, struct ID3DXRenderToSurface **rts);
+HRESULT WINAPI D3DXCreateSprite(struct IDirect3DDevice9 *device, struct ID3DXSprite **sprite);
+WINBOOL WINAPI D3DXDebugMute(WINBOOL mute);
+UINT WINAPI D3DXGetDriverLevel(struct IDirect3DDevice9 *device);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3DX9CORE_H */
diff --git a/d3dx9effect.h b/d3dx9effect.h
new file mode 100644
index 0000000..c6bc2fa
--- /dev/null
+++ b/d3dx9effect.h
@@ -0,0 +1,447 @@
+#include <_mingw_unicode.h>
+#undef INTERFACE
+/*
+ * Copyright 2010 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __D3DX9EFFECT_H__
+#define __D3DX9EFFECT_H__
+
+#define D3DXFX_DONOTSAVESTATE (1 << 0)
+#define D3DXFX_DONOTSAVESHADERSTATE (1 << 1)
+#define D3DXFX_DONOTSAVESAMPLERSTATE (1 << 2)
+#define D3DXFX_NOT_CLONEABLE (1 << 11)
+#define D3DXFX_LARGEADDRESSAWARE (1 << 17)
+
+#define D3DX_PARAMETER_SHARED 1
+#define D3DX_PARAMETER_LITERAL 2
+#define D3DX_PARAMETER_ANNOTATION 4
+
+typedef struct _D3DXEFFECT_DESC
+{
+ const char *Creator;
+ UINT Parameters;
+ UINT Techniques;
+ UINT Functions;
+} D3DXEFFECT_DESC;
+
+typedef struct _D3DXPARAMETER_DESC
+{
+ const char *Name;
+ const char *Semantic;
+ D3DXPARAMETER_CLASS Class;
+ D3DXPARAMETER_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT Annotations;
+ UINT StructMembers;
+ DWORD Flags;
+ UINT Bytes;
+} D3DXPARAMETER_DESC;
+
+typedef struct _D3DXTECHNIQUE_DESC
+{
+ const char *Name;
+ UINT Passes;
+ UINT Annotations;
+} D3DXTECHNIQUE_DESC;
+
+typedef struct _D3DXPASS_DESC
+{
+ const char *Name;
+ UINT Annotations;
+ const DWORD *pVertexShaderFunction;
+ const DWORD *pPixelShaderFunction;
+} D3DXPASS_DESC;
+
+typedef struct _D3DXFUNCTION_DESC
+{
+ const char *Name;
+ UINT Annotations;
+} D3DXFUNCTION_DESC;
+
+typedef struct ID3DXEffectPool *LPD3DXEFFECTPOOL;
+
+DEFINE_GUID(IID_ID3DXEffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
+
+#undef INTERFACE
+#define INTERFACE ID3DXEffectPool
+
+DECLARE_INTERFACE_(ID3DXEffectPool, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+};
+#undef INTERFACE
+
+typedef struct ID3DXBaseEffect *LPD3DXBASEEFFECT;
+
+DEFINE_GUID(IID_ID3DXBaseEffect, 0x17c18ac, 0x103f, 0x4417, 0x8c, 0x51, 0x6b, 0xf6, 0xef, 0x1e, 0x56, 0xbe);
+
+#define INTERFACE ID3DXBaseEffect
+
+DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseEffect methods ***/
+ STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
+ STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
+ STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
+ STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
+ STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, const char *semantic) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
+ STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ const char *name);
+ STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, const char *name) PURE;
+ STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT bytes) PURE;
+ STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+ STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+ STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+ STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+ STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+ STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+ STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+ STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+ STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+ STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+ STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+ STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+ STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+ STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+ STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+ STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+ STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+ STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 *texture) PURE;
+ STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 **texture) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
+};
+#undef INTERFACE
+
+typedef struct ID3DXEffectStateManager *LPD3DXEFFECTSTATEMANAGER;
+
+DEFINE_GUID(IID_ID3DXEffectStateManager, 0x79aab587, 0x6dbc, 0x4fa7, 0x82, 0xde, 0x37, 0xfa, 0x17, 0x81, 0xc5, 0xce);
+
+#define INTERFACE ID3DXEffectStateManager
+
+DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXEffectStateManager methods ***/
+ STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+ STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
+ STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
+ STDMETHOD(LightEnable)(THIS_ DWORD index, WINBOOL enable) PURE;
+ STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD value) PURE;
+ STDMETHOD(SetTexture)(THIS_ DWORD stage, struct IDirect3DBaseTexture9 *texture) PURE;
+ STDMETHOD(SetTextureStageState)(THIS_ DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value) PURE;
+ STDMETHOD(SetSamplerState)(THIS_ DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value) PURE;
+ STDMETHOD(SetNPatchMode)(THIS_ FLOAT num_segments) PURE;
+ STDMETHOD(SetFVF)(THIS_ DWORD format) PURE;
+ STDMETHOD(SetVertexShader)(THIS_ struct IDirect3DVertexShader9 *shader) PURE;
+ STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, const FLOAT *constant_data, UINT register_count) PURE;
+ STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, const INT *constant_data, UINT register_count) PURE;
+ STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, const WINBOOL *constant_data, UINT register_count) PURE;
+ STDMETHOD(SetPixelShader)(THIS_ struct IDirect3DPixelShader9 *shader) PURE;
+ STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT register_index, const FLOAT *constant_data, UINT register_count) PURE;
+ STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT register_index, const INT *constant_data, UINT register_count) PURE;
+ STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT register_index, const WINBOOL *constant_data, UINT register_count) PURE;
+};
+#undef INTERFACE
+
+typedef struct ID3DXEffect *LPD3DXEFFECT;
+
+#if D3DX_SDK_VERSION <= 25
+DEFINE_GUID(IID_ID3DXEffect, 0xd165ccb1, 0x62b0, 0x4a33, 0xb3, 0xfa, 0xa9, 0x23, 0x00, 0x30, 0x5a, 0x11);
+#elif D3DX_SDK_VERSION == 26
+DEFINE_GUID(IID_ID3DXEffect, 0xc7b17651, 0x5420, 0x490e, 0x8a, 0x7f, 0x92, 0x36, 0x75, 0xa2, 0xd6, 0x87);
+#else
+DEFINE_GUID(IID_ID3DXEffect, 0xf6ceb4b3, 0x4e4c, 0x40dd, 0xb8, 0x83, 0x8d, 0x8d, 0xe5, 0xea, 0x0c, 0xd5);
+#endif
+
+#define INTERFACE ID3DXEffect
+
+DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseEffect methods ***/
+ STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
+ STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
+ STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
+ STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
+ STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, const char *semantic) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
+ STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ const char *name);
+ STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, const char *name) PURE;
+ STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT bytes) PURE;
+ STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+ STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+ STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+ STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+ STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+ STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+ STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+ STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+ STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+ STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+ STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+ STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+ STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+ STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+ STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+ STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+ STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+ STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 *texture) PURE;
+ STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 **texture) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
+ /*** ID3DXEffect methods ***/
+ STDMETHOD(GetPool)(THIS_ ID3DXEffectPool **pool) PURE;
+ STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE technique) PURE;
+ STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE;
+ STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE technique) PURE;
+ STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE technique, D3DXHANDLE* next_technique) PURE;
+ STDMETHOD_(WINBOOL, IsParameterUsed)(THIS_ D3DXHANDLE parameter, D3DXHANDLE technique) PURE;
+ STDMETHOD(Begin)(THIS_ UINT *passes, DWORD flags) PURE;
+ STDMETHOD(BeginPass)(THIS_ UINT pass) PURE;
+ STDMETHOD(CommitChanges)(THIS) PURE;
+ STDMETHOD(EndPass)(THIS) PURE;
+ STDMETHOD(End)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(OnLostDevice)(THIS) PURE;
+ STDMETHOD(OnResetDevice)(THIS) PURE;
+ STDMETHOD(SetStateManager)(THIS_ ID3DXEffectStateManager *manager) PURE;
+ STDMETHOD(GetStateManager)(THIS_ ID3DXEffectStateManager **manager) PURE;
+ STDMETHOD(BeginParameterBlock)(THIS) PURE;
+ STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE;
+ STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
+#if D3DX_SDK_VERSION >= 26
+ STDMETHOD(DeleteParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE;
+#endif
+ STDMETHOD(CloneEffect)(THIS_ struct IDirect3DDevice9 *device, struct ID3DXEffect **effect) PURE;
+#if D3DX_SDK_VERSION >= 27
+ STDMETHOD(SetRawValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT byte_offset, UINT bytes) PURE;
+#endif
+};
+
+#undef INTERFACE
+
+typedef struct ID3DXEffectCompiler *LPD3DXEFFECTCOMPILER;
+
+DEFINE_GUID(IID_ID3DXEffectCompiler, 0x51b8a949, 0x1a31, 0x47e6, 0xbe, 0xa0, 0x4b, 0x30, 0xdb, 0x53, 0xf1, 0xe0);
+
+#define INTERFACE ID3DXEffectCompiler
+
+DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseEffect methods ***/
+ STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE;
+ STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE;
+ STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE;
+ STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE;
+ STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, const char *semantic) PURE;
+ STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index);
+ STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ const char *name);
+ STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, const char *name) PURE;
+ STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT bytes) PURE;
+ STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+ STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+ STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+ STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+ STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+ STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+ STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+ STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+ STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+ STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+ STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+ STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+ STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+ STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+ STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+ STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+ STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+ STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+ STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+ STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+ STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+ STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 *texture) PURE;
+ STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 **texture) PURE;
+ STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
+ STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
+ /*** ID3DXEffectCompiler methods ***/
+ STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE parameter, WINBOOL literal) PURE;
+ STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE parameter, WINBOOL* literal) PURE;
+ STDMETHOD(CompileEffect)(THIS_ DWORD flags, ID3DXBuffer **effect, ID3DXBuffer **error_msgs) PURE;
+ STDMETHOD(CompileShader)(THIS_ D3DXHANDLE function, const char *target, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_msgs, ID3DXConstantTable **constant_table) PURE;
+};
+#undef INTERFACE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3DXCreateEffectPool(ID3DXEffectPool **pool);
+HRESULT WINAPI D3DXCreateEffect(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectEx(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectCompiler(const char *srcdata, UINT srcdatalen, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXEffectCompiler **compiler, ID3DXBuffer **parse_errors);
+HRESULT WINAPI D3DXCreateEffectFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+#define D3DXCreateEffectFromFileEx __MINGW_NAME_AW(D3DXCreateEffectFromFileEx)
+
+HRESULT WINAPI D3DXCreateEffectFromFileA(struct IDirect3DDevice9 *device, const char *srcfile,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectFromFileW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
+ const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+#define D3DXCreateEffectFromFile __MINGW_NAME_AW(D3DXCreateEffectFromFile)
+
+HRESULT WINAPI D3DXCreateEffectFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const char *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include,
+ const char *skip_constants, DWORD flags, struct ID3DXEffectPool *pool,
+ struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const WCHAR *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include,
+ const char *skip_constants, DWORD flags, struct ID3DXEffectPool *pool,
+ struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+#define D3DXCreateEffectFromResourceEx __MINGW_NAME_AW(D3DXCreateEffectFromResourceEx)
+
+HRESULT WINAPI D3DXCreateEffectFromResourceA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const char *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+HRESULT WINAPI D3DXCreateEffectFromResourceW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const WCHAR *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags,
+ struct ID3DXEffectPool *pool, struct ID3DXEffect **effect, struct ID3DXBuffer **compilation_errors);
+#define D3DXCreateEffectFromResource __MINGW_NAME_AW(D3DXCreateEffectFromResource)
+
+HRESULT WINAPI D3DXCreateEffectCompilerFromFileA(const char *srcfile, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXEffectCompiler **effectcompiler, ID3DXBuffer **parseerrors);
+HRESULT WINAPI D3DXCreateEffectCompilerFromFileW(const WCHAR *srcfile, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXEffectCompiler **effectcompiler, ID3DXBuffer **parseerrors);
+#define D3DXCreateEffectCompilerFromFile __MINGW_NAME_AW(D3DXCreateEffectCompilerFromFile)
+
+HRESULT WINAPI D3DXCreateEffectCompilerFromResourceA(HMODULE srcmodule, const char *srcresource,
+ const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags,
+ ID3DXEffectCompiler **effectcompiler, ID3DXBuffer **parseerrors);
+HRESULT WINAPI D3DXCreateEffectCompilerFromResourceW(HMODULE srcmodule, const WCHAR *srcresource,
+ const D3DXMACRO *defines, ID3DXInclude *include, DWORD flags,
+ ID3DXEffectCompiler **effectcompiler, ID3DXBuffer **parseerrors);
+#define D3DXCreateEffectCompilerFromResource __MINGW_NAME_AW(D3DXCreateEffectCompilerFromResource)
+
+HRESULT WINAPI D3DXDisassembleEffect(ID3DXEffect *effect, WINBOOL enable_color_code, ID3DXBuffer **disassembly);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D3DX9EFFECT_H__ */
diff --git a/d3dx9math.h b/d3dx9math.h
new file mode 100644
index 0000000..2a1903e
--- /dev/null
+++ b/d3dx9math.h
@@ -0,0 +1,476 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2007 David Adam
+ * Copyright (C) 2007 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __D3DX9MATH_H__
+#define __D3DX9MATH_H__
+
+#include <math.h>
+
+#define D3DX_PI ((FLOAT)3.141592654)
+#define D3DX_1BYPI ((FLOAT)0.318309886)
+
+#define D3DXSH_MINORDER 2
+#define D3DXSH_MAXORDER 6
+
+#define D3DXToRadian(degree) ((degree) * (D3DX_PI / 180.0f))
+#define D3DXToDegree(radian) ((radian) * (180.0f / D3DX_PI))
+
+typedef struct D3DXVECTOR2
+{
+#ifdef __cplusplus
+ D3DXVECTOR2();
+ D3DXVECTOR2(const FLOAT *pf);
+ D3DXVECTOR2(FLOAT fx, FLOAT fy);
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXVECTOR2& operator += (const D3DXVECTOR2&);
+ D3DXVECTOR2& operator -= (const D3DXVECTOR2&);
+ D3DXVECTOR2& operator *= (FLOAT);
+ D3DXVECTOR2& operator /= (FLOAT);
+
+ D3DXVECTOR2 operator + () const;
+ D3DXVECTOR2 operator - () const;
+
+ D3DXVECTOR2 operator + (const D3DXVECTOR2&) const;
+ D3DXVECTOR2 operator - (const D3DXVECTOR2&) const;
+ D3DXVECTOR2 operator * (FLOAT) const;
+ D3DXVECTOR2 operator / (FLOAT) const;
+
+ friend D3DXVECTOR2 operator * (FLOAT, const D3DXVECTOR2&);
+
+ WINBOOL operator == (const D3DXVECTOR2&) const;
+ WINBOOL operator != (const D3DXVECTOR2&) const;
+#endif /* __cplusplus */
+ FLOAT x, y;
+} D3DXVECTOR2, *LPD3DXVECTOR2;
+
+#ifdef __cplusplus
+typedef struct D3DXVECTOR3 : public D3DVECTOR
+{
+ D3DXVECTOR3();
+ D3DXVECTOR3(const FLOAT *pf);
+ D3DXVECTOR3(const D3DVECTOR& v);
+ D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz);
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXVECTOR3& operator += (const D3DXVECTOR3&);
+ D3DXVECTOR3& operator -= (const D3DXVECTOR3&);
+ D3DXVECTOR3& operator *= (FLOAT);
+ D3DXVECTOR3& operator /= (FLOAT);
+
+ D3DXVECTOR3 operator + () const;
+ D3DXVECTOR3 operator - () const;
+
+ D3DXVECTOR3 operator + (const D3DXVECTOR3&) const;
+ D3DXVECTOR3 operator - (const D3DXVECTOR3&) const;
+ D3DXVECTOR3 operator * (FLOAT) const;
+ D3DXVECTOR3 operator / (FLOAT) const;
+
+ friend D3DXVECTOR3 operator * (FLOAT, const struct D3DXVECTOR3&);
+
+ WINBOOL operator == (const D3DXVECTOR3&) const;
+ WINBOOL operator != (const D3DXVECTOR3&) const;
+} D3DXVECTOR3, *LPD3DXVECTOR3;
+#else /* !__cplusplus */
+typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
+#endif /* !__cplusplus */
+
+typedef struct D3DXVECTOR4
+{
+#ifdef __cplusplus
+ D3DXVECTOR4();
+ D3DXVECTOR4(const FLOAT *pf);
+ D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXVECTOR4& operator += (const D3DXVECTOR4&);
+ D3DXVECTOR4& operator -= (const D3DXVECTOR4&);
+ D3DXVECTOR4& operator *= (FLOAT);
+ D3DXVECTOR4& operator /= (FLOAT);
+
+ D3DXVECTOR4 operator + () const;
+ D3DXVECTOR4 operator - () const;
+
+ D3DXVECTOR4 operator + (const D3DXVECTOR4&) const;
+ D3DXVECTOR4 operator - (const D3DXVECTOR4&) const;
+ D3DXVECTOR4 operator * (FLOAT) const;
+ D3DXVECTOR4 operator / (FLOAT) const;
+
+ friend D3DXVECTOR4 operator * (FLOAT, const D3DXVECTOR4&);
+
+ WINBOOL operator == (const D3DXVECTOR4&) const;
+ WINBOOL operator != (const D3DXVECTOR4&) const;
+#endif /* __cplusplus */
+ FLOAT x, y, z, w;
+} D3DXVECTOR4, *LPD3DXVECTOR4;
+
+#ifdef __cplusplus
+typedef struct D3DXMATRIX : public D3DMATRIX
+{
+ D3DXMATRIX();
+ D3DXMATRIX(const FLOAT *pf);
+ D3DXMATRIX(const D3DMATRIX& mat);
+ D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
+ FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
+ FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
+ FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44);
+
+ FLOAT& operator () (UINT row, UINT col);
+ FLOAT operator () (UINT row, UINT col) const;
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXMATRIX& operator *= (const D3DXMATRIX&);
+ D3DXMATRIX& operator += (const D3DXMATRIX&);
+ D3DXMATRIX& operator -= (const D3DXMATRIX&);
+ D3DXMATRIX& operator *= (FLOAT);
+ D3DXMATRIX& operator /= (FLOAT);
+
+ D3DXMATRIX operator + () const;
+ D3DXMATRIX operator - () const;
+
+ D3DXMATRIX operator * (const D3DXMATRIX&) const;
+ D3DXMATRIX operator + (const D3DXMATRIX&) const;
+ D3DXMATRIX operator - (const D3DXMATRIX&) const;
+ D3DXMATRIX operator * (FLOAT) const;
+ D3DXMATRIX operator / (FLOAT) const;
+
+ friend D3DXMATRIX operator * (FLOAT, const D3DXMATRIX&);
+
+ WINBOOL operator == (const D3DXMATRIX&) const;
+ WINBOOL operator != (const D3DXMATRIX&) const;
+} D3DXMATRIX, *LPD3DXMATRIX;
+#else /* !__cplusplus */
+typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
+#endif /* !__cplusplus */
+
+typedef struct D3DXQUATERNION
+{
+#ifdef __cplusplus
+ D3DXQUATERNION();
+ D3DXQUATERNION(const FLOAT *pf);
+ D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw);
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXQUATERNION& operator += (const D3DXQUATERNION&);
+ D3DXQUATERNION& operator -= (const D3DXQUATERNION&);
+ D3DXQUATERNION& operator *= (const D3DXQUATERNION&);
+ D3DXQUATERNION& operator *= (FLOAT);
+ D3DXQUATERNION& operator /= (FLOAT);
+
+ D3DXQUATERNION operator + () const;
+ D3DXQUATERNION operator - () const;
+
+ D3DXQUATERNION operator + (const D3DXQUATERNION&) const;
+ D3DXQUATERNION operator - (const D3DXQUATERNION&) const;
+ D3DXQUATERNION operator * (const D3DXQUATERNION&) const;
+ D3DXQUATERNION operator * (FLOAT) const;
+ D3DXQUATERNION operator / (FLOAT) const;
+
+ friend D3DXQUATERNION operator * (FLOAT, const D3DXQUATERNION&);
+
+ WINBOOL operator == (const D3DXQUATERNION&) const;
+ WINBOOL operator != (const D3DXQUATERNION&) const;
+#endif /* __cplusplus */
+ FLOAT x, y, z, w;
+} D3DXQUATERNION, *LPD3DXQUATERNION;
+
+typedef struct D3DXPLANE
+{
+#ifdef __cplusplus
+ D3DXPLANE();
+ D3DXPLANE(const FLOAT *pf);
+ D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd);
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ D3DXPLANE operator + () const;
+ D3DXPLANE operator - () const;
+
+ WINBOOL operator == (const D3DXPLANE&) const;
+ WINBOOL operator != (const D3DXPLANE&) const;
+#endif /* __cplusplus */
+ FLOAT a, b, c, d;
+} D3DXPLANE, *LPD3DXPLANE;
+
+typedef struct D3DXCOLOR
+{
+#ifdef __cplusplus
+ D3DXCOLOR();
+ D3DXCOLOR(DWORD col);
+ D3DXCOLOR(const FLOAT *pf);
+ D3DXCOLOR(const D3DCOLORVALUE& col);
+ D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa);
+
+ operator DWORD () const;
+
+ operator FLOAT* ();
+ operator const FLOAT* () const;
+
+ operator D3DCOLORVALUE* ();
+ operator const D3DCOLORVALUE* () const;
+
+ operator D3DCOLORVALUE& ();
+ operator const D3DCOLORVALUE& () const;
+
+ D3DXCOLOR& operator += (const D3DXCOLOR&);
+ D3DXCOLOR& operator -= (const D3DXCOLOR&);
+ D3DXCOLOR& operator *= (FLOAT);
+ D3DXCOLOR& operator /= (FLOAT);
+
+ D3DXCOLOR operator + () const;
+ D3DXCOLOR operator - () const;
+
+ D3DXCOLOR operator + (const D3DXCOLOR&) const;
+ D3DXCOLOR operator - (const D3DXCOLOR&) const;
+ D3DXCOLOR operator * (FLOAT) const;
+ D3DXCOLOR operator / (FLOAT) const;
+
+ friend D3DXCOLOR operator * (FLOAT, const D3DXCOLOR&);
+
+ WINBOOL operator == (const D3DXCOLOR&) const;
+ WINBOOL operator != (const D3DXCOLOR&) const;
+#endif /* __cplusplus */
+ FLOAT r, g, b, a;
+} D3DXCOLOR, *LPD3DXCOLOR;
+
+typedef struct D3DXFLOAT16
+{
+#ifdef __cplusplus
+ D3DXFLOAT16();
+ D3DXFLOAT16(FLOAT f);
+ D3DXFLOAT16(const D3DXFLOAT16 &f);
+
+ operator FLOAT ();
+
+ WINBOOL operator == (const D3DXFLOAT16 &) const;
+ WINBOOL operator != (const D3DXFLOAT16 &) const;
+#endif /* __cplusplus */
+ WORD value;
+} D3DXFLOAT16, *LPD3DXFLOAT16;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+D3DXCOLOR* WINAPI D3DXColorAdjustContrast(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s);
+D3DXCOLOR* WINAPI D3DXColorAdjustSaturation(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s);
+
+FLOAT WINAPI D3DXFresnelTerm(FLOAT costheta, FLOAT refractionindex);
+
+D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation(D3DXMATRIX *pout, FLOAT scaling, const D3DXVECTOR3 *rotationcenter, const D3DXQUATERNION *rotation,
+ const D3DXVECTOR3 *translation);
+D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D(D3DXMATRIX *pout, FLOAT scaling, const D3DXVECTOR2 *protationcenter, FLOAT rotation,
+ const D3DXVECTOR2 *ptranslation);
+HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutrotation, D3DXVECTOR3 *pouttranslation, const D3DXMATRIX *pm);
+FLOAT WINAPI D3DXMatrixDeterminant(const D3DXMATRIX *pm);
+D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX *pout, FLOAT *pdeterminant, const D3DXMATRIX *pm);
+D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(D3DXMATRIX *pout, const D3DXVECTOR3 *peye, const D3DXVECTOR3 *pat, const D3DXVECTOR3 *pup);
+D3DXMATRIX* WINAPI D3DXMatrixLookAtRH(D3DXMATRIX *pout, const D3DXVECTOR3 *peye, const D3DXVECTOR3 *pat, const D3DXVECTOR3 *pup);
+D3DXMATRIX* WINAPI D3DXMatrixMultiply(D3DXMATRIX *pout, const D3DXMATRIX *pm1, const D3DXMATRIX *pm2);
+D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose(D3DXMATRIX *pout, const D3DXMATRIX *pm1, const D3DXMATRIX *pm2);
+D3DXMATRIX* WINAPI D3DXMatrixOrthoLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixOrthoRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH(D3DXMATRIX *pout, FLOAT fovy, FLOAT aspect, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH(D3DXMATRIX *pout, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH(D3DXMATRIX *pout, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf);
+D3DXMATRIX* WINAPI D3DXMatrixReflect(D3DXMATRIX *pout, const D3DXPLANE *pplane);
+D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX *pout, const D3DXVECTOR3 *pv, FLOAT angle);
+D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion(D3DXMATRIX *pout, const D3DXQUATERNION *pq);
+D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX *pout, FLOAT angle);
+D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX *pout, FLOAT angle);
+D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll(D3DXMATRIX *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
+D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX *pout, FLOAT angle);
+D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX *pout, FLOAT sx, FLOAT sy, FLOAT sz);
+D3DXMATRIX* WINAPI D3DXMatrixShadow(D3DXMATRIX *pout, const D3DXVECTOR4 *plight, const D3DXPLANE *pPlane);
+D3DXMATRIX* WINAPI D3DXMatrixTransformation(D3DXMATRIX *pout, const D3DXVECTOR3 *pscalingcenter, const D3DXQUATERNION *pscalingrotation, const D3DXVECTOR3 *pscaling, const D3DXVECTOR3 *protationcenter,
+ const D3DXQUATERNION *protation, const D3DXVECTOR3 *ptranslation);
+D3DXMATRIX* WINAPI D3DXMatrixTransformation2D(D3DXMATRIX *pout, const D3DXVECTOR2 *pscalingcenter, FLOAT scalingrotation, const D3DXVECTOR2 *pscaling,
+ const D3DXVECTOR2 *protationcenter, FLOAT rotation, const D3DXVECTOR2 *ptranslation);
+D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX *pout, FLOAT x, FLOAT y, FLOAT z);
+D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX *pout, const D3DXMATRIX *pm);
+
+D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE *pout, const D3DXVECTOR3 *pvpoint, const D3DXVECTOR3 *pvnormal);
+D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3);
+D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3 *pout, const D3DXPLANE *pp, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2);
+D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE *pout, const D3DXPLANE *pp);
+D3DXPLANE* WINAPI D3DXPlaneTransform(D3DXPLANE *pout, const D3DXPLANE *pplane, const D3DXMATRIX *pm);
+D3DXPLANE* WINAPI D3DXPlaneTransformArray(D3DXPLANE *pout, UINT outstride, const D3DXPLANE *pplane, UINT pstride, const D3DXMATRIX *pm, UINT n);
+
+D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3, FLOAT f, FLOAT g);
+D3DXQUATERNION* WINAPI D3DXQuaternionExp(D3DXQUATERNION *pout, const D3DXQUATERNION *pq);
+D3DXQUATERNION* WINAPI D3DXQuaternionInverse(D3DXQUATERNION *pout, const D3DXQUATERNION *pq);
+D3DXQUATERNION* WINAPI D3DXQuaternionLn(D3DXQUATERNION *pout, const D3DXQUATERNION *pq);
+D3DXQUATERNION* WINAPI D3DXQuaternionMultiply(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2);
+D3DXQUATERNION* WINAPI D3DXQuaternionNormalize(D3DXQUATERNION *pout, const D3DXQUATERNION *pq);
+D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis(D3DXQUATERNION *pout, const D3DXVECTOR3 *pv, FLOAT angle);
+D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix(D3DXQUATERNION *pout, const D3DXMATRIX *pm);
+D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll(D3DXQUATERNION *pout, FLOAT yaw, FLOAT pitch, FLOAT roll);
+D3DXQUATERNION* WINAPI D3DXQuaternionSlerp(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, FLOAT t);
+D3DXQUATERNION* WINAPI D3DXQuaternionSquad(D3DXQUATERNION *pout, const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3,
+ const D3DXQUATERNION *pq4, FLOAT t);
+void WINAPI D3DXQuaternionSquadSetup(D3DXQUATERNION *paout, D3DXQUATERNION *pbout, D3DXQUATERNION *pcout, const D3DXQUATERNION *pq0,
+ const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2, const D3DXQUATERNION *pq3);
+void WINAPI D3DXQuaternionToAxisAngle(const D3DXQUATERNION *pq, D3DXVECTOR3 *paxis, FLOAT *pangle);
+
+D3DXVECTOR2* WINAPI D3DXVec2BaryCentric(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pv3, FLOAT f, FLOAT g);
+D3DXVECTOR2* WINAPI D3DXVec2CatmullRom(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv0, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pv3, FLOAT s);
+D3DXVECTOR2* WINAPI D3DXVec2Hermite(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pt1, const D3DXVECTOR2 *pv2, const D3DXVECTOR2 *pt2, FLOAT s);
+D3DXVECTOR2* WINAPI D3DXVec2Normalize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv);
+D3DXVECTOR4* WINAPI D3DXVec2Transform(D3DXVECTOR4 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR4* WINAPI D3DXVec2TransformArray(D3DXVECTOR4 *pout, UINT outstride, const D3DXVECTOR2 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+D3DXVECTOR2* WINAPI D3DXVec2TransformCoord(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray(D3DXVECTOR2 *pout, UINT outstride, const D3DXVECTOR2 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+D3DXVECTOR2* WINAPI D3DXVec2TransformNormal(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray(D3DXVECTOR2 *pout, UINT outstride, const D3DXVECTOR2 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+
+D3DXVECTOR3* WINAPI D3DXVec3BaryCentric(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3, FLOAT f, FLOAT g);
+D3DXVECTOR3* WINAPI D3DXVec3CatmullRom( D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv0, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pv3, FLOAT s);
+D3DXVECTOR3* WINAPI D3DXVec3Hermite(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pt1, const D3DXVECTOR3 *pv2, const D3DXVECTOR3 *pt2, FLOAT s);
+D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv);
+D3DXVECTOR3* WINAPI D3DXVec3Project(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DVIEWPORT9 *pviewport, const D3DXMATRIX *pprojection,
+ const D3DXMATRIX *pview, const D3DXMATRIX *pworld);
+D3DXVECTOR3* WINAPI D3DXVec3ProjectArray(D3DXVECTOR3 *pout, UINT outstride, const D3DXVECTOR3 *pv, UINT vstride, const D3DVIEWPORT9 *pviewport,
+ const D3DXMATRIX *pprojection, const D3DXMATRIX *pview, const D3DXMATRIX *pworld, UINT n);
+D3DXVECTOR4* WINAPI D3DXVec3Transform(D3DXVECTOR4 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR4* WINAPI D3DXVec3TransformArray(D3DXVECTOR4 *pout, UINT outstride, const D3DXVECTOR3 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+D3DXVECTOR3* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray(D3DXVECTOR3 *pout, UINT outstride, const D3DXVECTOR3 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+D3DXVECTOR3* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray(D3DXVECTOR3 *pout, UINT outstride, const D3DXVECTOR3 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+D3DXVECTOR3* WINAPI D3DXVec3Unproject(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, const D3DVIEWPORT9 *pviewport, const D3DXMATRIX *pprojection,
+ const D3DXMATRIX *pview, const D3DXMATRIX *pworld);
+D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray(D3DXVECTOR3 *pout, UINT outstride, const D3DXVECTOR3 *pv, UINT vstride, const D3DVIEWPORT9 *pviewport,
+ const D3DXMATRIX *pprojection, const D3DXMATRIX *pview, const D3DXMATRIX *pworld, UINT n);
+D3DXVECTOR4* WINAPI D3DXVec4BaryCentric(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3, FLOAT f, FLOAT g);
+D3DXVECTOR4* WINAPI D3DXVec4CatmullRom(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv0, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3, FLOAT s);
+D3DXVECTOR4* WINAPI D3DXVec4Cross(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pv3);
+D3DXVECTOR4* WINAPI D3DXVec4Hermite(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pt1, const D3DXVECTOR4 *pv2, const D3DXVECTOR4 *pt2, FLOAT s);
+D3DXVECTOR4* WINAPI D3DXVec4Normalize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv);
+D3DXVECTOR4* WINAPI D3DXVec4Transform(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv, const D3DXMATRIX *pm);
+D3DXVECTOR4* WINAPI D3DXVec4TransformArray(D3DXVECTOR4 *pout, UINT outstride, const D3DXVECTOR4 *pv, UINT vstride, const D3DXMATRIX *pm, UINT n);
+
+D3DXFLOAT16 *WINAPI D3DXFloat32To16Array(D3DXFLOAT16 *pout, const FLOAT *pin, UINT n);
+FLOAT *WINAPI D3DXFloat16To32Array(FLOAT *pout, const D3DXFLOAT16 *pin, UINT n);
+
+FLOAT* WINAPI D3DXSHAdd(FLOAT *out, UINT order, const FLOAT *a, const FLOAT *b);
+FLOAT WINAPI D3DXSHDot(UINT order, const FLOAT *a, const FLOAT *b);
+HRESULT WINAPI D3DXSHEvalConeLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
+FLOAT* WINAPI D3DXSHEvalDirection(FLOAT *out, UINT order, const D3DXVECTOR3 *dir);
+HRESULT WINAPI D3DXSHEvalDirectionalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
+HRESULT WINAPI D3DXSHEvalHemisphereLight(UINT order, const D3DXVECTOR3 *dir, D3DXCOLOR top, D3DXCOLOR bottom, FLOAT *rout, FLOAT *gout, FLOAT *bout);
+HRESULT WINAPI D3DXSHEvalSphericalLight(UINT order, const D3DXVECTOR3 *dir, FLOAT radius, FLOAT Rintensity, FLOAT Gintensity, FLOAT Bintensity, FLOAT *rout, FLOAT *gout, FLOAT *bout);
+FLOAT* WINAPI D3DXSHMultiply2(FLOAT *out, const FLOAT *a, const FLOAT *b);
+FLOAT* WINAPI D3DXSHMultiply3(FLOAT *out, const FLOAT *a, const FLOAT *b);
+FLOAT* WINAPI D3DXSHMultiply4(FLOAT *out, const FLOAT *a, const FLOAT *b);
+HRESULT WINAPI D3DXSHProjectCubeMap(UINT order, IDirect3DCubeTexture9 *texture, FLOAT *red, FLOAT *green, FLOAT *blue);
+FLOAT* WINAPI D3DXSHRotate(FLOAT *out, UINT order, const D3DXMATRIX *matrix, const FLOAT *in);
+FLOAT* WINAPI D3DXSHRotateZ(FLOAT *out, UINT order, FLOAT angle, const FLOAT *in);
+FLOAT* WINAPI D3DXSHScale(FLOAT *out, UINT order, const FLOAT *a, const FLOAT scale);
+
+#ifdef __cplusplus
+}
+#endif
+
+typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
+
+DEFINE_GUID(IID_ID3DXMatrixStack,
+0xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
+
+#undef INTERFACE
+#define INTERFACE ID3DXMatrixStack
+
+DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(Pop)(THIS) PURE;
+ STDMETHOD(Push)(THIS) PURE;
+ STDMETHOD(LoadIdentity)(THIS) PURE;
+ STDMETHOD(LoadMatrix)(THIS_ const D3DXMATRIX* pM ) PURE;
+ STDMETHOD(MultMatrix)(THIS_ const D3DXMATRIX* pM ) PURE;
+ STDMETHOD(MultMatrixLocal)(THIS_ const D3DXMATRIX* pM ) PURE;
+ STDMETHOD(RotateAxis)(THIS_ const D3DXVECTOR3* pV, FLOAT Angle) PURE;
+ STDMETHOD(RotateAxisLocal)(THIS_ const D3DXVECTOR3* pV, FLOAT Angle) PURE;
+ STDMETHOD(RotateYawPitchRoll)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
+ STDMETHOD(RotateYawPitchRollLocal)(THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
+ STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
+ STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
+ STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
+ STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
+ STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
+};
+
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+
+#define ID3DXMatrixStack_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXMatrixStack_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXMatrixStack_Release(p) (p)->lpVtbl->Release(p)
+#define ID3DXMatrixStack_Pop(p) (p)->lpVtbl->Pop(p)
+#define ID3DXMatrixStack_Push(p) (p)->lpVtbl->Push(p)
+#define ID3DXMatrixStack_LoadIdentity(p) (p)->lpVtbl->LoadIdentity(p)
+#define ID3DXMatrixStack_LoadMatrix(p,a) (p)->lpVtbl->LoadMatrix(p,a)
+#define ID3DXMatrixStack_MultMatrix(p,a) (p)->lpVtbl->MultMatrix(p,a)
+#define ID3DXMatrixStack_MultMatrixLocal(p,a) (p)->lpVtbl->MultMatrixLocal(p,a)
+#define ID3DXMatrixStack_RotateAxis(p,a,b) (p)->lpVtbl->RotateAxis(p,a,b)
+#define ID3DXMatrixStack_RotateAxisLocal(p,a,b) (p)->lpVtbl->RotateAxisLocal(p,a,b)
+#define ID3DXMatrixStack_RotateYawPitchRoll(p,a,b,c) (p)->lpVtbl->RotateYawPitchRoll(p,a,b,c)
+#define ID3DXMatrixStack_RotateYawPitchRollLocal(p,a,b,c) (p)->lpVtbl->RotateYawPitchRollLocal(p,a,b,c)
+#define ID3DXMatrixStack_Scale(p,a,b,c) (p)->lpVtbl->Scale(p,a,b,c)
+#define ID3DXMatrixStack_ScaleLocal(p,a,b,c) (p)->lpVtbl->ScaleLocal(p,a,b,c)
+#define ID3DXMatrixStack_Translate(p,a,b,c) (p)->lpVtbl->Translate(p,a,b,c)
+#define ID3DXMatrixStack_TranslateLocal(p,a,b,c) (p)->lpVtbl->TranslateLocal(p,a,b,c)
+#define ID3DXMatrixStack_GetTop(p) (p)->lpVtbl->GetTop(p)
+
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, ID3DXMatrixStack **stack);
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "d3dx9math.inl"
+
+#endif /* __D3DX9MATH_H__ */
diff --git a/d3dx9math.inl b/d3dx9math.inl
new file mode 100644
index 0000000..4d8e97d
--- /dev/null
+++ b/d3dx9math.inl
@@ -0,0 +1,1298 @@
+/*
+ * Copyright (C) 2007 David Adam
+ * Copyright (C) 2007 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __D3DX9MATH_INL__
+#define __D3DX9MATH_INL__
+
+/* constructors & operators */
+#ifdef __cplusplus
+
+inline D3DXVECTOR2::D3DXVECTOR2()
+{
+}
+
+inline D3DXVECTOR2::D3DXVECTOR2(const FLOAT *pf)
+{
+ if(!pf) return;
+ x = pf[0];
+ y = pf[1];
+}
+
+inline D3DXVECTOR2::D3DXVECTOR2(FLOAT fx, FLOAT fy)
+{
+ x = fx;
+ y = fy;
+}
+
+inline D3DXVECTOR2::operator FLOAT* ()
+{
+ return (FLOAT*)&x;
+}
+
+inline D3DXVECTOR2::operator const FLOAT* () const
+{
+ return (const FLOAT*)&x;
+}
+
+inline D3DXVECTOR2& D3DXVECTOR2::operator += (const D3DXVECTOR2& v)
+{
+ x += v.x;
+ y += v.y;
+ return *this;
+}
+
+inline D3DXVECTOR2& D3DXVECTOR2::operator -= (const D3DXVECTOR2& v)
+{
+ x -= v.x;
+ y -= v.y;
+ return *this;
+}
+
+inline D3DXVECTOR2& D3DXVECTOR2::operator *= (FLOAT f)
+{
+ x *= f;
+ y *= f;
+ return *this;
+}
+
+inline D3DXVECTOR2& D3DXVECTOR2::operator /= (FLOAT f)
+{
+ x /= f;
+ y /= f;
+ return *this;
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator + () const
+{
+ return *this;
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator - () const
+{
+ return D3DXVECTOR2(-x, -y);
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator + (const D3DXVECTOR2& v) const
+{
+ return D3DXVECTOR2(x + v.x, y + v.y);
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator - (const D3DXVECTOR2& v) const
+{
+ return D3DXVECTOR2(x - v.x, y - v.y);
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator * (FLOAT f) const
+{
+ return D3DXVECTOR2(x * f, y * f);
+}
+
+inline D3DXVECTOR2 D3DXVECTOR2::operator / (FLOAT f) const
+{
+ return D3DXVECTOR2(x / f, y / f);
+}
+
+inline D3DXVECTOR2 operator * (FLOAT f, const D3DXVECTOR2& v)
+{
+ return D3DXVECTOR2(f * v.x, f * v.y);
+}
+
+inline WINBOOL D3DXVECTOR2::operator == (const D3DXVECTOR2& v) const
+{
+ return x == v.x && y == v.y;
+}
+
+inline WINBOOL D3DXVECTOR2::operator != (const D3DXVECTOR2& v) const
+{
+ return x != v.x || y != v.y;
+}
+
+inline D3DXVECTOR3::D3DXVECTOR3()
+{
+}
+
+inline D3DXVECTOR3::D3DXVECTOR3(const FLOAT *pf)
+{
+ if(!pf) return;
+ x = pf[0];
+ y = pf[1];
+ z = pf[2];
+}
+
+inline D3DXVECTOR3::D3DXVECTOR3(const D3DVECTOR& v)
+{
+ x = v.x;
+ y = v.y;
+ z = v.z;
+}
+
+inline D3DXVECTOR3::D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz)
+{
+ x = fx;
+ y = fy;
+ z = fz;
+}
+
+inline D3DXVECTOR3::operator FLOAT* ()
+{
+ return (FLOAT*)&x;
+}
+
+inline D3DXVECTOR3::operator const FLOAT* () const
+{
+ return (const FLOAT*)&x;
+}
+
+inline D3DXVECTOR3& D3DXVECTOR3::operator += (const D3DXVECTOR3& v)
+{
+ x += v.x;
+ y += v.y;
+ z += v.z;
+ return *this;
+}
+
+inline D3DXVECTOR3& D3DXVECTOR3::operator -= (const D3DXVECTOR3& v)
+{
+ x -= v.x;
+ y -= v.y;
+ z -= v.z;
+ return *this;
+}
+
+inline D3DXVECTOR3& D3DXVECTOR3::operator *= (FLOAT f)
+{
+ x *= f;
+ y *= f;
+ z *= f;
+ return *this;
+}
+
+inline D3DXVECTOR3& D3DXVECTOR3::operator /= (FLOAT f)
+{
+ x /= f;
+ y /= f;
+ z /= f;
+ return *this;
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator + () const
+{
+ return *this;
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator - () const
+{
+ return D3DXVECTOR3(-x, -y, -z);
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator + (const D3DXVECTOR3& v) const
+{
+ return D3DXVECTOR3(x + v.x, y + v.y, z + v.z);
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator - (const D3DXVECTOR3& v) const
+{
+ return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator * (FLOAT f) const
+{
+ return D3DXVECTOR3(x * f, y * f, z * f);
+}
+
+inline D3DXVECTOR3 D3DXVECTOR3::operator / (FLOAT f) const
+{
+ return D3DXVECTOR3(x / f, y / f, z / f);
+}
+
+inline D3DXVECTOR3 operator * (FLOAT f, const D3DXVECTOR3& v)
+{
+ return D3DXVECTOR3(f * v.x, f * v.y, f * v.z);
+}
+
+inline WINBOOL D3DXVECTOR3::operator == (const D3DXVECTOR3& v) const
+{
+ return x == v.x && y == v.y && z == v.z;
+}
+
+inline WINBOOL D3DXVECTOR3::operator != (const D3DXVECTOR3& v) const
+{
+ return x != v.x || y != v.y || z != v.z;
+}
+
+inline D3DXVECTOR4::D3DXVECTOR4()
+{
+}
+
+inline D3DXVECTOR4::D3DXVECTOR4(const FLOAT *pf)
+{
+ if(!pf) return;
+ x = pf[0];
+ y = pf[1];
+ z = pf[2];
+ w = pf[3];
+}
+
+inline D3DXVECTOR4::D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
+{
+ x = fx;
+ y = fy;
+ z = fz;
+ w = fw;
+}
+
+inline D3DXVECTOR4::operator FLOAT* ()
+{
+ return (FLOAT*)&x;
+}
+
+inline D3DXVECTOR4::operator const FLOAT* () const
+{
+ return (const FLOAT*)&x;
+}
+
+inline D3DXVECTOR4& D3DXVECTOR4::operator += (const D3DXVECTOR4& v)
+{
+ x += v.x;
+ y += v.y;
+ z += v.z;
+ w += v.w;
+ return *this;
+}
+
+inline D3DXVECTOR4& D3DXVECTOR4::operator -= (const D3DXVECTOR4& v)
+{
+ x -= v.x;
+ y -= v.y;
+ z -= v.z;
+ w -= v.w;
+ return *this;
+}
+
+inline D3DXVECTOR4& D3DXVECTOR4::operator *= (FLOAT f)
+{
+ x *= f;
+ y *= f;
+ z *= f;
+ w *= f;
+ return *this;
+}
+
+inline D3DXVECTOR4& D3DXVECTOR4::operator /= (FLOAT f)
+{
+ x /= f;
+ y /= f;
+ z /= f;
+ w /= f;
+ return *this;
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator + () const
+{
+ return *this;
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator - () const
+{
+ return D3DXVECTOR4(-x, -y, -z, -w);
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator + (const D3DXVECTOR4& v) const
+{
+ return D3DXVECTOR4(x + v.x, y + v.y, z + v.z, w + v.w);
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator - (const D3DXVECTOR4& v) const
+{
+ return D3DXVECTOR4(x - v.x, y - v.y, z - v.z, w - v.w);
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator * (FLOAT f) const
+{
+ return D3DXVECTOR4(x * f, y * f, z * f, w * f);
+}
+
+inline D3DXVECTOR4 D3DXVECTOR4::operator / (FLOAT f) const
+{
+ return D3DXVECTOR4(x / f, y / f, z / f, w / f);
+}
+
+inline D3DXVECTOR4 operator * (FLOAT f, const D3DXVECTOR4& v)
+{
+ return D3DXVECTOR4(f * v.x, f * v.y, f * v.z, f * v.w);
+}
+
+inline WINBOOL D3DXVECTOR4::operator == (const D3DXVECTOR4& v) const
+{
+ return x == v.x && y == v.y && z == v.z && w == v.w;
+}
+
+inline WINBOOL D3DXVECTOR4::operator != (const D3DXVECTOR4& v) const
+{
+ return x != v.x || y != v.y || z != v.z || w != v.w;
+}
+
+inline D3DXMATRIX::D3DXMATRIX()
+{
+}
+
+inline D3DXMATRIX::D3DXMATRIX(const FLOAT *pf)
+{
+ if(!pf) return;
+ memcpy(&_11, pf, sizeof(D3DXMATRIX));
+}
+
+inline D3DXMATRIX::D3DXMATRIX(const D3DMATRIX& mat)
+{
+ memcpy(&_11, &mat, sizeof(D3DXMATRIX));
+}
+
+inline D3DXMATRIX::D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
+ FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
+ FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
+ FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44)
+{
+ _11 = f11; _12 = f12; _13 = f13; _14 = f14;
+ _21 = f21; _22 = f22; _23 = f23; _24 = f24;
+ _31 = f31; _32 = f32; _33 = f33; _34 = f34;
+ _41 = f41; _42 = f42; _43 = f43; _44 = f44;
+}
+
+inline FLOAT& D3DXMATRIX::operator () (UINT row, UINT col)
+{
+ return m[row][col];
+}
+
+inline FLOAT D3DXMATRIX::operator () (UINT row, UINT col) const
+{
+ return m[row][col];
+}
+
+inline D3DXMATRIX::operator FLOAT* ()
+{
+ return (FLOAT*)&_11;
+}
+
+inline D3DXMATRIX::operator const FLOAT* () const
+{
+ return (const FLOAT*)&_11;
+}
+
+inline D3DXMATRIX& D3DXMATRIX::operator *= (const D3DXMATRIX& mat)
+{
+ D3DXMatrixMultiply(this, this, &mat);
+ return *this;
+}
+
+inline D3DXMATRIX& D3DXMATRIX::operator += (const D3DXMATRIX& mat)
+{
+ _11 += mat._11; _12 += mat._12; _13 += mat._13; _14 += mat._14;
+ _21 += mat._21; _22 += mat._22; _23 += mat._23; _24 += mat._24;
+ _31 += mat._31; _32 += mat._32; _33 += mat._33; _34 += mat._34;
+ _41 += mat._41; _42 += mat._42; _43 += mat._43; _44 += mat._44;
+ return *this;
+}
+
+inline D3DXMATRIX& D3DXMATRIX::operator -= (const D3DXMATRIX& mat)
+{
+ _11 -= mat._11; _12 -= mat._12; _13 -= mat._13; _14 -= mat._14;
+ _21 -= mat._21; _22 -= mat._22; _23 -= mat._23; _24 -= mat._24;
+ _31 -= mat._31; _32 -= mat._32; _33 -= mat._33; _34 -= mat._34;
+ _41 -= mat._41; _42 -= mat._42; _43 -= mat._43; _44 -= mat._44;
+ return *this;
+}
+
+inline D3DXMATRIX& D3DXMATRIX::operator *= (FLOAT f)
+{
+ _11 *= f; _12 *= f; _13 *= f; _14 *= f;
+ _21 *= f; _22 *= f; _23 *= f; _24 *= f;
+ _31 *= f; _32 *= f; _33 *= f; _34 *= f;
+ _41 *= f; _42 *= f; _43 *= f; _44 *= f;
+ return *this;
+}
+
+inline D3DXMATRIX& D3DXMATRIX::operator /= (FLOAT f)
+{
+ FLOAT inv = 1.0f / f;
+ _11 *= inv; _12 *= inv; _13 *= inv; _14 *= inv;
+ _21 *= inv; _22 *= inv; _23 *= inv; _24 *= inv;
+ _31 *= inv; _32 *= inv; _33 *= inv; _34 *= inv;
+ _41 *= inv; _42 *= inv; _43 *= inv; _44 *= inv;
+ return *this;
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator + () const
+{
+ return *this;
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator - () const
+{
+ return D3DXMATRIX(-_11, -_12, -_13, -_14,
+ -_21, -_22, -_23, -_24,
+ -_31, -_32, -_33, -_34,
+ -_41, -_42, -_43, -_44);
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator * (const D3DXMATRIX& mat) const
+{
+ D3DXMATRIX buf;
+ D3DXMatrixMultiply(&buf, this, &mat);
+ return buf;
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator + (const D3DXMATRIX& mat) const
+{
+ return D3DXMATRIX(_11 + mat._11, _12 + mat._12, _13 + mat._13, _14 + mat._14,
+ _21 + mat._21, _22 + mat._22, _23 + mat._23, _24 + mat._24,
+ _31 + mat._31, _32 + mat._32, _33 + mat._33, _34 + mat._34,
+ _41 + mat._41, _42 + mat._42, _43 + mat._43, _44 + mat._44);
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator - (const D3DXMATRIX& mat) const
+{
+ return D3DXMATRIX(_11 - mat._11, _12 - mat._12, _13 - mat._13, _14 - mat._14,
+ _21 - mat._21, _22 - mat._22, _23 - mat._23, _24 - mat._24,
+ _31 - mat._31, _32 - mat._32, _33 - mat._33, _34 - mat._34,
+ _41 - mat._41, _42 - mat._42, _43 - mat._43, _44 - mat._44);
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator * (FLOAT f) const
+{
+ return D3DXMATRIX(_11 * f, _12 * f, _13 * f, _14 * f,
+ _21 * f, _22 * f, _23 * f, _24 * f,
+ _31 * f, _32 * f, _33 * f, _34 * f,
+ _41 * f, _42 * f, _43 * f, _44 * f);
+}
+
+inline D3DXMATRIX D3DXMATRIX::operator / (FLOAT f) const
+{
+ FLOAT inv = 1.0f / f;
+ return D3DXMATRIX(_11 * inv, _12 * inv, _13 * inv, _14 * inv,
+ _21 * inv, _22 * inv, _23 * inv, _24 * inv,
+ _31 * inv, _32 * inv, _33 * inv, _34 * inv,
+ _41 * inv, _42 * inv, _43 * inv, _44 * inv);
+}
+
+inline D3DXMATRIX operator * (FLOAT f, const D3DXMATRIX& mat)
+{
+ return D3DXMATRIX(f * mat._11, f * mat._12, f * mat._13, f * mat._14,
+ f * mat._21, f * mat._22, f * mat._23, f * mat._24,
+ f * mat._31, f * mat._32, f * mat._33, f * mat._34,
+ f * mat._41, f * mat._42, f * mat._43, f * mat._44);
+}
+
+inline WINBOOL D3DXMATRIX::operator == (const D3DXMATRIX& mat) const
+{
+ return (memcmp(this, &mat, sizeof(D3DXMATRIX)) == 0);
+}
+
+inline WINBOOL D3DXMATRIX::operator != (const D3DXMATRIX& mat) const
+{
+ return (memcmp(this, &mat, sizeof(D3DXMATRIX)) != 0);
+}
+
+inline D3DXQUATERNION::D3DXQUATERNION()
+{
+}
+
+inline D3DXQUATERNION::D3DXQUATERNION(const FLOAT *pf)
+{
+ if(!pf) return;
+ x = pf[0];
+ y = pf[1];
+ z = pf[2];
+ w = pf[3];
+}
+
+inline D3DXQUATERNION::D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
+{
+ x = fx;
+ y = fy;
+ z = fz;
+ w = fw;
+}
+
+inline D3DXQUATERNION::operator FLOAT* ()
+{
+ return (FLOAT*)&x;
+}
+
+inline D3DXQUATERNION::operator const FLOAT* () const
+{
+ return (const FLOAT*)&x;
+}
+
+inline D3DXQUATERNION& D3DXQUATERNION::operator += (const D3DXQUATERNION& quat)
+{
+ x += quat.x;
+ y += quat.y;
+ z += quat.z;
+ w += quat.w;
+ return *this;
+}
+
+inline D3DXQUATERNION& D3DXQUATERNION::operator -= (const D3DXQUATERNION& quat)
+{
+ x -= quat.x;
+ y -= quat.y;
+ z -= quat.z;
+ w -= quat.w;
+ return *this;
+}
+
+inline D3DXQUATERNION& D3DXQUATERNION::operator *= (const D3DXQUATERNION& quat)
+{
+ D3DXQuaternionMultiply(this, this, &quat);
+ return *this;
+}
+
+inline D3DXQUATERNION& D3DXQUATERNION::operator *= (FLOAT f)
+{
+ x *= f;
+ y *= f;
+ z *= f;
+ w *= f;
+ return *this;
+}
+
+inline D3DXQUATERNION& D3DXQUATERNION::operator /= (FLOAT f)
+{
+ FLOAT inv = 1.0f / f;
+ x *= inv;
+ y *= inv;
+ z *= inv;
+ w *= inv;
+ return *this;
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator + () const
+{
+ return *this;
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator - () const
+{
+ return D3DXQUATERNION(-x, -y, -z, -w);
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator + (const D3DXQUATERNION& quat) const
+{
+ return D3DXQUATERNION(x + quat.x, y + quat.y, z + quat.z, w + quat.w);
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator - (const D3DXQUATERNION& quat) const
+{
+ return D3DXQUATERNION(x - quat.x, y - quat.y, z - quat.z, w - quat.w);
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator * (const D3DXQUATERNION& quat) const
+{
+ D3DXQUATERNION buf;
+ D3DXQuaternionMultiply(&buf, this, &quat);
+ return buf;
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator * (FLOAT f) const
+{
+ return D3DXQUATERNION(x * f, y * f, z * f, w * f);
+}
+
+inline D3DXQUATERNION D3DXQUATERNION::operator / (FLOAT f) const
+{
+ FLOAT inv = 1.0f / f;
+ return D3DXQUATERNION(x * inv, y * inv, z * inv, w * inv);
+}
+
+inline D3DXQUATERNION operator * (FLOAT f, const D3DXQUATERNION& quat)
+{
+ return D3DXQUATERNION(f * quat.x, f * quat.y, f * quat.z, f * quat.w);
+}
+
+inline WINBOOL D3DXQUATERNION::operator == (const D3DXQUATERNION& quat) const
+{
+ return x == quat.x && y == quat.y && z == quat.z && w == quat.w;
+}
+
+inline WINBOOL D3DXQUATERNION::operator != (const D3DXQUATERNION& quat) const
+{
+ return x != quat.x || y != quat.y || z != quat.z || w != quat.w;
+}
+
+inline D3DXPLANE::D3DXPLANE()
+{
+}
+
+inline D3DXPLANE::D3DXPLANE(const FLOAT *pf)
+{
+ if(!pf) return;
+ a = pf[0];
+ b = pf[1];
+ c = pf[2];
+ d = pf[3];
+}
+
+inline D3DXPLANE::D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd)
+{
+ a = fa;
+ b = fb;
+ c = fc;
+ d = fd;
+}
+
+inline D3DXPLANE::operator FLOAT* ()
+{
+ return (FLOAT*)&a;
+}
+
+inline D3DXPLANE::operator const FLOAT* () const
+{
+ return (const FLOAT*)&a;
+}
+
+inline D3DXPLANE D3DXPLANE::operator + () const
+{
+ return *this;
+}
+
+inline D3DXPLANE D3DXPLANE::operator - () const
+{
+ return D3DXPLANE(-a, -b, -c, -d);
+}
+
+inline WINBOOL D3DXPLANE::operator == (const D3DXPLANE& pl) const
+{
+ return a == pl.a && b == pl.b && c == pl.c && d == pl.d;
+}
+
+inline WINBOOL D3DXPLANE::operator != (const D3DXPLANE& pl) const
+{
+ return a != pl.a || b != pl.b || c != pl.c || d != pl.d;
+}
+
+inline D3DXCOLOR::D3DXCOLOR()
+{
+}
+
+inline D3DXCOLOR::D3DXCOLOR(DWORD col)
+{
+ const FLOAT f = 1.0f / 255.0f;
+ r = f * (FLOAT)(unsigned char)(col >> 16);
+ g = f * (FLOAT)(unsigned char)(col >> 8);
+ b = f * (FLOAT)(unsigned char)col;
+ a = f * (FLOAT)(unsigned char)(col >> 24);
+}
+
+inline D3DXCOLOR::D3DXCOLOR(const FLOAT *pf)
+{
+ if(!pf) return;
+ r = pf[0];
+ g = pf[1];
+ b = pf[2];
+ a = pf[3];
+}
+
+inline D3DXCOLOR::D3DXCOLOR(const D3DCOLORVALUE& col)
+{
+ r = col.r;
+ g = col.g;
+ b = col.b;
+ a = col.a;
+}
+
+inline D3DXCOLOR::D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa)
+{
+ r = fr;
+ g = fg;
+ b = fb;
+ a = fa;
+}
+
+inline D3DXCOLOR::operator DWORD () const
+{
+ DWORD _r = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD)(r * 255.0f + 0.5f);
+ DWORD _g = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD)(g * 255.0f + 0.5f);
+ DWORD _b = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD)(b * 255.0f + 0.5f);
+ DWORD _a = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD)(a * 255.0f + 0.5f);
+
+ return (_a << 24) | (_r << 16) | (_g << 8) | _b;
+}
+
+inline D3DXCOLOR::operator FLOAT * ()
+{
+ return (FLOAT*)&r;
+}
+
+inline D3DXCOLOR::operator const FLOAT * () const
+{
+ return (const FLOAT*)&r;
+}
+
+inline D3DXCOLOR::operator D3DCOLORVALUE * ()
+{
+ return (D3DCOLORVALUE*)&r;
+}
+
+inline D3DXCOLOR::operator const D3DCOLORVALUE * () const
+{
+ return (const D3DCOLORVALUE*)&r;
+}
+
+inline D3DXCOLOR::operator D3DCOLORVALUE& ()
+{
+ return *((D3DCOLORVALUE*)&r);
+}
+
+inline D3DXCOLOR::operator const D3DCOLORVALUE& () const
+{
+ return *((const D3DCOLORVALUE*)&r);
+}
+
+inline D3DXCOLOR& D3DXCOLOR::operator += (const D3DXCOLOR& col)
+{
+ r += col.r;
+ g += col.g;
+ b += col.b;
+ a += col.a;
+ return *this;
+}
+
+inline D3DXCOLOR& D3DXCOLOR::operator -= (const D3DXCOLOR& col)
+{
+ r -= col.r;
+ g -= col.g;
+ b -= col.b;
+ a -= col.a;
+ return *this;
+}
+
+inline D3DXCOLOR& D3DXCOLOR::operator *= (FLOAT f)
+{
+ r *= f;
+ g *= f;
+ b *= f;
+ a *= f;
+ return *this;
+}
+
+inline D3DXCOLOR& D3DXCOLOR::operator /= (FLOAT f)
+{
+ FLOAT inv = 1.0f / f;
+ r *= inv;
+ g *= inv;
+ b *= inv;
+ a *= inv;
+ return *this;
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator + () const
+{
+ return *this;
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator - () const
+{
+ return D3DXCOLOR(-r, -g, -b, -a);
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator + (const D3DXCOLOR& col) const
+{
+ return D3DXCOLOR(r + col.r, g + col.g, b + col.b, a + col.a);
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator - (const D3DXCOLOR& col) const
+{
+ return D3DXCOLOR(r - col.r, g - col.g, b - col.b, a - col.a);
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator * (FLOAT f) const
+{
+ return D3DXCOLOR(r * f, g * f, b * f, a * f);
+}
+
+inline D3DXCOLOR D3DXCOLOR::operator / (FLOAT f) const
+{
+ FLOAT inv = 1.0f / f;
+ return D3DXCOLOR(r * inv, g * inv, b * inv, a * inv);
+}
+
+inline D3DXCOLOR operator * (FLOAT f, const D3DXCOLOR& col)
+{
+ return D3DXCOLOR(f * col.r, f * col.g, f * col.b, f * col.a);
+}
+
+inline WINBOOL D3DXCOLOR::operator == (const D3DXCOLOR& col) const
+{
+ return r == col.r && g == col.g && b == col.b && a == col.a;
+}
+
+inline WINBOOL D3DXCOLOR::operator != (const D3DXCOLOR& col) const
+{
+ return r != col.r || g != col.g || b != col.b || a != col.a;
+}
+
+inline D3DXFLOAT16::D3DXFLOAT16()
+{
+}
+
+inline D3DXFLOAT16::D3DXFLOAT16(FLOAT f)
+{
+ D3DXFloat32To16Array(this, &f, 1);
+}
+
+inline D3DXFLOAT16::D3DXFLOAT16(const D3DXFLOAT16 &f)
+{
+ value = f.value;
+}
+
+inline D3DXFLOAT16::operator FLOAT ()
+{
+ FLOAT f;
+ D3DXFloat16To32Array(&f, this, 1);
+ return f;
+}
+
+inline WINBOOL D3DXFLOAT16::operator == (const D3DXFLOAT16 &f) const
+{
+ return value == f.value;
+}
+
+inline WINBOOL D3DXFLOAT16::operator != (const D3DXFLOAT16 &f) const
+{
+ return value != f.value;
+}
+
+#endif /* __cplusplus */
+
+/*_______________D3DXCOLOR_____________________*/
+
+static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+{
+ if ( !pout || !pc1 || !pc2 ) return NULL;
+ pout->r = (pc1->r) + (pc2->r);
+ pout->g = (pc1->g) + (pc2->g);
+ pout->b = (pc1->b) + (pc2->b);
+ pout->a = (pc1->a) + (pc2->a);
+ return pout;
+}
+
+static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2, FLOAT s)
+{
+ if ( !pout || !pc1 || !pc2 ) return NULL;
+ pout->r = (1-s) * (pc1->r) + s *(pc2->r);
+ pout->g = (1-s) * (pc1->g) + s *(pc2->g);
+ pout->b = (1-s) * (pc1->b) + s *(pc2->b);
+ pout->a = (1-s) * (pc1->a) + s *(pc2->a);
+ return pout;
+}
+
+static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+{
+ if ( !pout || !pc1 || !pc2 ) return NULL;
+ pout->r = (pc1->r) * (pc2->r);
+ pout->g = (pc1->g) * (pc2->g);
+ pout->b = (pc1->b) * (pc2->b);
+ pout->a = (pc1->a) * (pc2->a);
+ return pout;
+}
+
+static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, const D3DXCOLOR *pc)
+{
+ if ( !pout || !pc ) return NULL;
+ pout->r = 1.0f - pc->r;
+ pout->g = 1.0f - pc->g;
+ pout->b = 1.0f - pc->b;
+ pout->a = pc->a;
+ return pout;
+}
+
+static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s)
+{
+ if ( !pout || !pc ) return NULL;
+ pout->r = s* (pc->r);
+ pout->g = s* (pc->g);
+ pout->b = s* (pc->b);
+ pout->a = s* (pc->a);
+ return pout;
+}
+
+static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+{
+ if ( !pout || !pc1 || !pc2 ) return NULL;
+ pout->r = (pc1->r) - (pc2->r);
+ pout->g = (pc1->g) - (pc2->g);
+ pout->b = (pc1->b) - (pc2->b);
+ pout->a = (pc1->a) - (pc2->a);
+ return pout;
+}
+
+/*_______________D3DXVECTOR2________________________*/
+
+static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x + pv2->x;
+ pout->y = pv1->y + pv2->y;
+ return pout;
+}
+
+static inline FLOAT D3DXVec2CCW(const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pv1 || !pv2) return 0.0f;
+ return ( (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x) );
+}
+
+static inline FLOAT D3DXVec2Dot(const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pv1 || !pv2) return 0.0f;
+ return ( (pv1->x * pv2->x + pv1->y * pv2->y) );
+}
+
+static inline FLOAT D3DXVec2Length(const D3DXVECTOR2 *pv)
+{
+ if (!pv) return 0.0f;
+ return sqrtf( pv->x * pv->x + pv->y * pv->y );
+}
+
+static inline FLOAT D3DXVec2LengthSq(const D3DXVECTOR2 *pv)
+{
+ if (!pv) return 0.0f;
+ return( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
+}
+
+static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, FLOAT s)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+ pout->y = (1-s) * (pv1->y) + s * (pv2->y);
+ return pout;
+}
+
+static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y > pv2->y ? pv1->y : pv2->y;
+ return pout;
+}
+
+static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y < pv2->y ? pv1->y : pv2->y;
+ return pout;
+}
+
+static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, FLOAT s)
+{
+ if ( !pout || !pv) return NULL;
+ pout->x = s * (pv->x);
+ pout->y = s * (pv->y);
+ return pout;
+}
+
+static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x - pv2->x;
+ pout->y = pv1->y - pv2->y;
+ return pout;
+}
+
+/*__________________D3DXVECTOR3_______________________*/
+
+static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x + pv2->x;
+ pout->y = pv1->y + pv2->y;
+ pout->z = pv1->z + pv2->z;
+ return pout;
+}
+
+static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ D3DXVECTOR3 temp;
+
+ if ( !pout || !pv1 || !pv2) return NULL;
+ temp.x = (pv1->y) * (pv2->z) - (pv1->z) * (pv2->y);
+ temp.y = (pv1->z) * (pv2->x) - (pv1->x) * (pv2->z);
+ temp.z = (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x);
+ *pout = temp;
+ return pout;
+}
+
+static inline FLOAT D3DXVec3Dot(const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ if ( !pv1 || !pv2 ) return 0.0f;
+ return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z);
+}
+
+static inline FLOAT D3DXVec3Length(const D3DXVECTOR3 *pv)
+{
+ if (!pv) return 0.0f;
+ return sqrtf( pv->x * pv->x + pv->y * pv->y + pv->z * pv->z );
+}
+
+static inline FLOAT D3DXVec3LengthSq(const D3DXVECTOR3 *pv)
+{
+ if (!pv) return 0.0f;
+ return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z);
+}
+
+static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, FLOAT s)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+ pout->y = (1-s) * (pv1->y) + s * (pv2->y);
+ pout->z = (1-s) * (pv1->z) + s * (pv2->z);
+ return pout;
+}
+
+static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y > pv2->y ? pv1->y : pv2->y;
+ pout->z = pv1->z > pv2->z ? pv1->z : pv2->z;
+ return pout;
+}
+
+static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y < pv2->y ? pv1->y : pv2->y;
+ pout->z = pv1->z < pv2->z ? pv1->z : pv2->z;
+ return pout;
+}
+
+static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, FLOAT s)
+{
+ if ( !pout || !pv) return NULL;
+ pout->x = s * (pv->x);
+ pout->y = s * (pv->y);
+ pout->z = s * (pv->z);
+ return pout;
+}
+
+static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x - pv2->x;
+ pout->y = pv1->y - pv2->y;
+ pout->z = pv1->z - pv2->z;
+ return pout;
+}
+/*__________________D3DXVECTOR4_______________________*/
+
+static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x + pv2->x;
+ pout->y = pv1->y + pv2->y;
+ pout->z = pv1->z + pv2->z;
+ pout->w = pv1->w + pv2->w;
+ return pout;
+}
+
+static inline FLOAT D3DXVec4Dot(const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+{
+ if (!pv1 || !pv2 ) return 0.0f;
+ return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z) + (pv1->w) * (pv2->w);
+}
+
+static inline FLOAT D3DXVec4Length(const D3DXVECTOR4 *pv)
+{
+ if (!pv) return 0.0f;
+ return sqrtf( pv->x * pv->x + pv->y * pv->y + pv->z * pv->z + pv->w * pv->w );
+}
+
+static inline FLOAT D3DXVec4LengthSq(const D3DXVECTOR4 *pv)
+{
+ if (!pv) return 0.0f;
+ return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w);
+}
+
+static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, FLOAT s)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+ pout->y = (1-s) * (pv1->y) + s * (pv2->y);
+ pout->z = (1-s) * (pv1->z) + s * (pv2->z);
+ pout->w = (1-s) * (pv1->w) + s * (pv2->w);
+ return pout;
+}
+
+
+static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y > pv2->y ? pv1->y : pv2->y;
+ pout->z = pv1->z > pv2->z ? pv1->z : pv2->z;
+ pout->w = pv1->w > pv2->w ? pv1->w : pv2->w;
+ return pout;
+}
+
+static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+ pout->y = pv1->y < pv2->y ? pv1->y : pv2->y;
+ pout->z = pv1->z < pv2->z ? pv1->z : pv2->z;
+ pout->w = pv1->w < pv2->w ? pv1->w : pv2->w;
+ return pout;
+}
+
+static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv, FLOAT s)
+{
+ if ( !pout || !pv) return NULL;
+ pout->x = s * (pv->x);
+ pout->y = s * (pv->y);
+ pout->z = s * (pv->z);
+ pout->w = s * (pv->w);
+ return pout;
+}
+
+static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+{
+ if ( !pout || !pv1 || !pv2) return NULL;
+ pout->x = pv1->x - pv2->x;
+ pout->y = pv1->y - pv2->y;
+ pout->z = pv1->z - pv2->z;
+ pout->w = pv1->w - pv2->w;
+ return pout;
+}
+
+/*__________________D3DXMatrix____________________*/
+#ifdef NONAMELESSUNION
+# define D3DX_U(x) (x).u
+#else
+# define D3DX_U(x) (x)
+#endif
+
+static inline D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pout)
+{
+ if ( !pout ) return NULL;
+ D3DX_U(*pout).m[0][1] = 0.0f;
+ D3DX_U(*pout).m[0][2] = 0.0f;
+ D3DX_U(*pout).m[0][3] = 0.0f;
+ D3DX_U(*pout).m[1][0] = 0.0f;
+ D3DX_U(*pout).m[1][2] = 0.0f;
+ D3DX_U(*pout).m[1][3] = 0.0f;
+ D3DX_U(*pout).m[2][0] = 0.0f;
+ D3DX_U(*pout).m[2][1] = 0.0f;
+ D3DX_U(*pout).m[2][3] = 0.0f;
+ D3DX_U(*pout).m[3][0] = 0.0f;
+ D3DX_U(*pout).m[3][1] = 0.0f;
+ D3DX_U(*pout).m[3][2] = 0.0f;
+ D3DX_U(*pout).m[0][0] = 1.0f;
+ D3DX_U(*pout).m[1][1] = 1.0f;
+ D3DX_U(*pout).m[2][2] = 1.0f;
+ D3DX_U(*pout).m[3][3] = 1.0f;
+ return pout;
+}
+
+static inline WINBOOL D3DXMatrixIsIdentity(D3DXMATRIX *pm)
+{
+ int i,j;
+ D3DXMATRIX testmatrix;
+
+ if ( !pm ) return FALSE;
+ D3DXMatrixIdentity(&testmatrix);
+ for (i=0; i<4; i++)
+ {
+ for (j=0; j<4; j++)
+ {
+ if ( D3DX_U(*pm).m[i][j] != D3DX_U(testmatrix).m[i][j] ) return FALSE;
+ }
+ }
+ return TRUE;
+}
+#undef D3DX_U
+
+/*__________________D3DXPLANE____________________*/
+
+static inline FLOAT D3DXPlaneDot(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+{
+ if ( !pp || !pv ) return 0.0f;
+ return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) * (pv->w) );
+}
+
+static inline FLOAT D3DXPlaneDotCoord(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+{
+ if ( !pp || !pv ) return 0.0f;
+ return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) );
+}
+
+static inline FLOAT D3DXPlaneDotNormal(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+{
+ if ( !pp || !pv ) return 0.0f;
+ return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) );
+}
+
+/*__________________D3DXQUATERNION____________________*/
+
+static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, const D3DXQUATERNION *pq)
+{
+ if ( !pout || !pq) return NULL;
+ pout->x = -pq->x;
+ pout->y = -pq->y;
+ pout->z = -pq->z;
+ pout->w = pq->w;
+ return pout;
+}
+
+static inline FLOAT D3DXQuaternionDot(const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2)
+{
+ if ( !pq1 || !pq2 ) return 0.0f;
+ return (pq1->x) * (pq2->x) + (pq1->y) * (pq2->y) + (pq1->z) * (pq2->z) + (pq1->w) * (pq2->w);
+}
+
+static inline D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pout)
+{
+ if ( !pout) return NULL;
+ pout->x = 0.0f;
+ pout->y = 0.0f;
+ pout->z = 0.0f;
+ pout->w = 1.0f;
+ return pout;
+}
+
+static inline WINBOOL D3DXQuaternionIsIdentity(D3DXQUATERNION *pq)
+{
+ if ( !pq) return FALSE;
+ return ( (pq->x == 0.0f) && (pq->y == 0.0f) && (pq->z == 0.0f) && (pq->w == 1.0f) );
+}
+
+static inline FLOAT D3DXQuaternionLength(const D3DXQUATERNION *pq)
+{
+ if (!pq) return 0.0f;
+ return sqrtf( pq->x * pq->x + pq->y * pq->y + pq->z * pq->z + pq->w * pq->w );
+}
+
+static inline FLOAT D3DXQuaternionLengthSq(const D3DXQUATERNION *pq)
+{
+ if (!pq) return 0.0f;
+ return (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w);
+}
+
+#endif
diff --git a/d3dx9mesh.h b/d3dx9mesh.h
new file mode 100644
index 0000000..0327cf3
--- /dev/null
+++ b/d3dx9mesh.h
@@ -0,0 +1,1060 @@
+#include <_mingw_unicode.h>
+#undef INTERFACE
+/*
+ * Copyright (C) 2009 David Adam
+ * Copyright (C) 2010 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __WINE_D3DX9MESH_H
+#define __WINE_D3DX9MESH_H
+
+DEFINE_GUID(IID_ID3DXBaseMesh, 0x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
+DEFINE_GUID(IID_ID3DXMesh, 0x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
+DEFINE_GUID(IID_ID3DXPMesh, 0x8875769a, 0xd579, 0x4088, 0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96);
+DEFINE_GUID(IID_ID3DXSPMesh, 0x667ea4c7, 0xf1cd, 0x4386, 0xb5, 0x23, 0x7c, 0x02, 0x90, 0xb8, 0x3c, 0xc5);
+DEFINE_GUID(IID_ID3DXSkinInfo, 0x11eaa540, 0xf9a6, 0x4d49, 0xae, 0x6a, 0xe1, 0x92, 0x21, 0xf7, 0x0c, 0xc4);
+DEFINE_GUID(IID_ID3DXPatchMesh,0x3ce6cc22, 0xdbf2, 0x44f4, 0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39);
+DEFINE_GUID(IID_ID3DXPRTBuffer, 0xf1827e47, 0x00a8, 0x49cd, 0x90, 0x8c, 0x9d, 0x11, 0x95, 0x5f, 0x87, 0x28);
+DEFINE_GUID(IID_ID3DXPRTCompBuffer, 0xa758d465, 0xfe8d, 0x45ad, 0x9c, 0xf0, 0xd0, 0x1e, 0x56, 0x26, 0x6a, 0x07);
+DEFINE_GUID(IID_ID3DXTextureGutterHelper, 0x838f01ec, 0x9729, 0x4527, 0xaa, 0xdb, 0xdf, 0x70, 0xad, 0xe7, 0xfe, 0xa9);
+DEFINE_GUID(IID_ID3DXPRTEngine, 0x683a4278, 0xcd5f, 0x4d24, 0x90, 0xad, 0xc4, 0xe1, 0xb6, 0x85, 0x5d, 0x53);
+
+#define UNUSED16 (0xffff)
+#define UNUSED32 (0xffffffff)
+
+enum _MAX_FVF_DECL_SIZE
+{
+ MAX_FVF_DECL_SIZE = MAXD3DDECLLENGTH + 1
+};
+
+enum _D3DXMESH
+{
+ D3DXMESH_32BIT = 0x001,
+ D3DXMESH_DONOTCLIP = 0x002,
+ D3DXMESH_POINTS = 0x004,
+ D3DXMESH_RTPATCHES = 0x008,
+ D3DXMESH_NPATCHES = 0x4000,
+ D3DXMESH_VB_SYSTEMMEM = 0x010,
+ D3DXMESH_VB_MANAGED = 0x020,
+ D3DXMESH_VB_WRITEONLY = 0x040,
+ D3DXMESH_VB_DYNAMIC = 0x080,
+ D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000,
+ D3DXMESH_IB_SYSTEMMEM = 0x100,
+ D3DXMESH_IB_MANAGED = 0x200,
+ D3DXMESH_IB_WRITEONLY = 0x400,
+ D3DXMESH_IB_DYNAMIC = 0x800,
+ D3DXMESH_IB_SOFTWAREPROCESSING = 0x10000,
+ D3DXMESH_VB_SHARE = 0x1000,
+ D3DXMESH_USEHWONLY = 0x2000,
+ D3DXMESH_SYSTEMMEM = 0x110,
+ D3DXMESH_MANAGED = 0x220,
+ D3DXMESH_WRITEONLY = 0x440,
+ D3DXMESH_DYNAMIC = 0x880,
+ D3DXMESH_SOFTWAREPROCESSING = 0x18000
+};
+
+enum _D3DXMESHOPT
+{
+ D3DXMESHOPT_DEVICEINDEPENDENT = 0x00400000,
+ D3DXMESHOPT_COMPACT = 0x01000000,
+ D3DXMESHOPT_ATTRSORT = 0x02000000,
+ D3DXMESHOPT_VERTEXCACHE = 0x04000000,
+ D3DXMESHOPT_STRIPREORDER = 0x08000000,
+ D3DXMESHOPT_IGNOREVERTS = 0x10000000,
+ D3DXMESHOPT_DONOTSPLIT = 0x20000000,
+};
+
+typedef enum _D3DXPATCHMESHTYPE
+{
+ D3DXPATCHMESH_RECT = 1,
+ D3DXPATCHMESH_TRI = 2,
+ D3DXPATCHMESH_NPATCH = 3,
+ D3DXPATCHMESH_FORCE_DWORD = 0x7fffffff,
+} D3DXPATCHMESHTYPE;
+
+enum _D3DXPATCHMESH
+{
+ D3DXPATCHMESH_DEFAULT = 0,
+};
+
+enum _D3DXMESHSIMP
+{
+ D3DXMESHSIMP_VERTEX = 0x1,
+ D3DXMESHSIMP_FACE = 0x2,
+};
+
+typedef enum D3DXCLEANTYPE {
+ D3DXCLEAN_BACKFACING = 0x00000001,
+ D3DXCLEAN_BOWTIES = 0x00000002,
+
+ D3DXCLEAN_SKINNING = D3DXCLEAN_BACKFACING,
+ D3DXCLEAN_OPTIMIZATION = D3DXCLEAN_BACKFACING,
+ D3DXCLEAN_SIMPLIFICATION = D3DXCLEAN_BACKFACING | D3DXCLEAN_BOWTIES,
+} D3DXCLEANTYPE;
+
+typedef enum _D3DXTANGENT
+{
+ D3DXTANGENT_WRAP_U = 0x0001,
+ D3DXTANGENT_WRAP_V = 0x0002,
+ D3DXTANGENT_WRAP_UV = 0x0003,
+ D3DXTANGENT_DONT_NORMALIZE_PARTIALS = 0x0004,
+ D3DXTANGENT_DONT_ORTHOGONALIZE = 0x0008,
+ D3DXTANGENT_ORTHOGONALIZE_FROM_V = 0x0010,
+ D3DXTANGENT_ORTHOGONALIZE_FROM_U = 0x0020,
+ D3DXTANGENT_WEIGHT_BY_AREA = 0x0040,
+ D3DXTANGENT_WEIGHT_EQUAL = 0x0080,
+ D3DXTANGENT_WIND_CW = 0x0100,
+ D3DXTANGENT_CALCULATE_NORMALS = 0x0200,
+ D3DXTANGENT_GENERATE_IN_PLACE = 0x0400,
+} D3DXTANGENT;
+
+typedef enum _D3DXIMT
+{
+ D3DXIMT_WRAP_U = 0x01,
+ D3DXIMT_WRAP_V = 0x02,
+ D3DXIMT_WRAP_UV = 0x03,
+} D3DXIMT;
+
+typedef enum _D3DXUVATLAS
+{
+ D3DXUVATLAS_DEFAULT = 0x00,
+ D3DXUVATLAS_GEODESIC_FAST = 0x01,
+ D3DXUVATLAS_GEODESIC_QUALITY = 0x02,
+} D3DXUVATLAS;
+
+typedef enum _D3DXEFFECTDEFAULTTYPE
+{
+ D3DXEDT_STRING = 1,
+ D3DXEDT_FLOATS = 2,
+ D3DXEDT_DWORD = 3,
+ D3DXEDT_FORCEDWORD = 0x7fffffff,
+} D3DXEFFECTDEFAULTTYPE;
+
+enum _D3DXWELDEPSILONSFLAGS
+{
+ D3DXWELDEPSILONS_WELDALL = 0x1,
+ D3DXWELDEPSILONS_WELDPARTIALMATCHES = 0x2,
+ D3DXWELDEPSILONS_DONOTREMOVEVERTICES = 0x4,
+ D3DXWELDEPSILONS_DONOTSPLIT = 0x8,
+};
+
+typedef enum _D3DXSHCOMPRESSQUALITYTYPE
+{
+ D3DXSHCQUAL_FASTLOWQUALITY = 1,
+ D3DXSHCQUAL_SLOWHIGHQUALITY = 2,
+ D3DXSHCQUAL_FORCE_DWORD = 0x7fffffff,
+} D3DXSHCOMPRESSQUALITYTYPE;
+
+typedef enum _D3DXSHGPUSIMOPT
+{
+ D3DXSHGPUSIMOPT_SHADOWRES256 = 1,
+ D3DXSHGPUSIMOPT_SHADOWRES512 = 0,
+ D3DXSHGPUSIMOPT_SHADOWRES1024 = 2,
+ D3DXSHGPUSIMOPT_SHADOWRES2048 = 3,
+ D3DXSHGPUSIMOPT_HIGHQUALITY = 4,
+ D3DXSHGPUSIMOPT_FORCE_DWORD = 0x7fffffff,
+} D3DXSHGPUSIMOPT;
+
+typedef struct ID3DXBaseMesh* LPD3DXBASEMESH;
+typedef struct ID3DXMesh* LPD3DXMESH;
+typedef struct ID3DXPMesh *LPD3DXPMESH;
+typedef struct ID3DXSPMesh *LPD3DXSPMESH;
+typedef struct ID3DXSkinInfo *LPD3DXSKININFO;
+typedef struct ID3DXPatchMesh *LPD3DXPATCHMESH;
+typedef struct ID3DXPRTBuffer *LPD3DXPRTBUFFER;
+typedef struct ID3DXPRTCompBuffer *LPD3DXPRTCOMPBUFFER;
+typedef struct ID3DXPRTEngine *LPD3DXPRTENGINE;
+typedef struct ID3DXTextureGutterHelper *LPD3DXTEXTUREGUTTERHELPER;
+
+typedef struct _D3DXATTRIBUTERANGE {
+ DWORD AttribId;
+ DWORD FaceStart;
+ DWORD FaceCount;
+ DWORD VertexStart;
+ DWORD VertexCount;
+} D3DXATTRIBUTERANGE;
+
+typedef D3DXATTRIBUTERANGE* LPD3DXATTRIBUTERANGE;
+
+typedef struct _D3DXMATERIAL
+{
+ D3DMATERIAL9 MatD3D;
+ char *pTextureFilename;
+} D3DXMATERIAL, *LPD3DXMATERIAL;
+
+typedef struct _D3DXEFFECTDEFAULT
+{
+ char *pParamName;
+ D3DXEFFECTDEFAULTTYPE Type;
+ DWORD NumBytes;
+ void *pValue;
+} D3DXEFFECTDEFAULT, *LPD3DXEFFECTDEFAULT;
+
+typedef struct _D3DXEFFECTINSTANCE
+{
+ char *pEffectFilename;
+ DWORD NumDefaults;
+ LPD3DXEFFECTDEFAULT pDefaults;
+} D3DXEFFECTINSTANCE, *LPD3DXEFFECTINSTANCE;
+
+typedef struct _D3DXATTRIBUTEWEIGHTS
+{
+ FLOAT Position;
+ FLOAT Boundary;
+ FLOAT Normal;
+ FLOAT Diffuse;
+ FLOAT Specular;
+ FLOAT Texcoords[8];
+ FLOAT Tangent;
+ FLOAT Binormal;
+} D3DXATTRIBUTEWEIGHTS, *LPD3DXATTRIBUTEWEIGHTS;
+
+typedef struct _D3DXWELDEPSILONS
+{
+ FLOAT Position;
+ FLOAT BlendWeights;
+ FLOAT Normals;
+ FLOAT PSize;
+ FLOAT Specular;
+ FLOAT Diffuse;
+ FLOAT Texcoords[8];
+ FLOAT Tangent;
+ FLOAT Binormal;
+ FLOAT TessFactor;
+} D3DXWELDEPSILONS, *LPD3DXWELDEPSILONS;
+
+typedef struct _D3DXBONECOMBINATION
+{
+ DWORD AttribId;
+ DWORD FaceStart;
+ DWORD FaceCount;
+ DWORD VertexStart;
+ DWORD VertexCout;
+ DWORD *BoneId;
+} D3DXBONECOMBINATION, *LPD3DXBONECOMBINATION;
+
+typedef struct _D3DXPATCHINFO
+{
+ D3DXPATCHMESHTYPE PatchType;
+ D3DDEGREETYPE Degree;
+ D3DBASISTYPE Basis;
+} D3DXPATCHINFO, *LPD3DXPATCHINFO;
+
+typedef struct _D3DXINTERSECTINFO
+{
+ DWORD FaceIndex;
+ FLOAT U;
+ FLOAT V;
+ FLOAT Dist;
+} D3DXINTERSECTINFO, *LPD3DXINTERSECTINFO;
+
+typedef struct _D3DXSHMATERIAL
+{
+ D3DCOLORVALUE Diffuse;
+ WINBOOL bMirror;
+ WINBOOL bSubSurf;
+ FLOAT RelativeIndexOfRefraction;
+ D3DCOLORVALUE Absorption;
+ D3DCOLORVALUE ReducedScattering;
+} D3DXSHMATERIAL;
+
+typedef struct _D3DXSHPRTSPLITMESHVERTDATA
+{
+ UINT uVertRemap;
+ UINT uSubCluster;
+ UCHAR ucVertStatus;
+} D3DXSHPRTSPLITMESHVERTDATA;
+
+typedef struct _D3DXSHPRTSPLITMESHCLUSTERDATA
+{
+ UINT uVertStart;
+ UINT uVertLength;
+ UINT uFaceStart;
+ UINT uFaceLength;
+ UINT uClusterStart;
+ UINT uClusterLength;
+} D3DXSHPRTSPLITMESHCLUSTERDATA;
+
+typedef struct _XFILECOMPRESSEDANIMATIONSET
+{
+ DWORD CompressedBlockSize;
+ FLOAT TicksPerSec;
+ DWORD PlaybackType;
+ DWORD BufferLength;
+} XFILECOMPRESSEDANIMATIONSET;
+
+typedef HRESULT (WINAPI *LPD3DXUVATLASCB)(float complete, void *ctx);
+typedef HRESULT (WINAPI *LPD3DXIMTSIGNALCALLBACK)(const D3DXVECTOR2 *, UINT, UINT, void *, FLOAT *);
+typedef HRESULT (WINAPI *LPD3DXSHPRTSIMCB)(float complete, void *ctx);
+
+#undef INTERFACE
+#define INTERFACE ID3DXBaseMesh
+
+DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseMesh ***/
+ STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
+ STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
+ STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
+ STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
+ STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
+ STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
+ STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+ STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+ STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
+ STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+ STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+ STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXMesh
+DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseMesh ***/
+ STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
+ STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
+ STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
+ STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
+ STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
+ STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
+ STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+ STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+ STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
+ STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+ STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+ STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ /*** ID3DXMesh ***/
+ STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
+ STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
+ STDMETHOD(Optimize)(THIS_ DWORD flags, const DWORD *adjacency_in, DWORD *adjacency_out,
+ DWORD *face_remap, ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
+ STDMETHOD(OptimizeInplace)(THIS_ DWORD flags, const DWORD *adjacency_in, DWORD *adjacency_out,
+ DWORD *face_remap, ID3DXBuffer **vertex_remap) PURE;
+ STDMETHOD(SetAttributeTable)(THIS_ const D3DXATTRIBUTERANGE *attrib_table,
+ DWORD attrib_table_size) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXPMesh
+DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBaseMesh ***/
+ STDMETHOD(DrawSubset)(THIS_ DWORD attrib_id) PURE;
+ STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
+ STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD_(DWORD, GetNumBytesPerVertex)(THIS) PURE;
+ STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
+ STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
+ STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
+ STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+ STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+ STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
+ STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+ STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+ STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ /*** ID3DXPMesh ***/
+ STDMETHOD(ClonePMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, struct ID3DXPMesh **clone_mesh) PURE;
+ STDMETHOD(ClonePMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, struct ID3DXPMesh **clone_mesh) PURE;
+ STDMETHOD(SetNumFaces)(THIS_ DWORD faces) PURE;
+ STDMETHOD(SetNumVertices)(THIS_ DWORD vertices) PURE;
+ STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetMinFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
+ STDMETHOD_(DWORD, GetMinVertices)(THIS) PURE;
+ STDMETHOD(Save)(THIS_ IStream *stream, const D3DXMATERIAL *material,
+ const D3DXEFFECTINSTANCE *effect_instance, DWORD num_materials) PURE;
+ STDMETHOD(Optimize)(THIS_ DWORD flags, DWORD *adjacency_out, DWORD *face_remap,
+ ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
+ STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD flags, DWORD* face_remap) PURE;
+ STDMETHOD(TrimByFaces)(THIS_ DWORD new_faces_min, DWORD new_faces_max, DWORD* face_remap, DWORD* vertex_remap) PURE;
+ STDMETHOD(TrimByVertices)(THIS_ DWORD new_vertices_min, DWORD new_vertices_max, DWORD* face_remap, DWORD* vertex_remap) PURE;
+ STDMETHOD(GetAdjacency)(THIS_ DWORD* adjacency) PURE;
+ STDMETHOD(GenerateVertexHistory)(THIS_ DWORD* vertex_history) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXSPMesh
+DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXSPMesh ***/
+ STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumFVF)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(CloneMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, DWORD *adjacency_out,
+ DWORD *vertex_remap_out, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, DWORD *adjacency_out,
+ DWORD *vertex_remap_out, struct ID3DXMesh **clone_mesh) PURE;
+ STDMETHOD(ClonePMeshFVF)(THIS_ DWORD options, DWORD fvf,
+ struct IDirect3DDevice9 *device, DWORD *vertex_remap_out,
+ float *errors_by_face, struct ID3DXPMesh **clone_mesh) PURE;
+ STDMETHOD(ClonePMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, DWORD *vertex_remap_out,
+ float *errors_by_face, struct ID3DXPMesh **clone_mesh) PURE;
+ STDMETHOD(ReduceFaces)(THIS_ DWORD faces) PURE;
+ STDMETHOD(ReduceVertices)(THIS_ DWORD vertices) PURE;
+ STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
+ STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
+ STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS vertex_attribute_weights) PURE;
+ STDMETHOD(GetVertexWeights)(THIS_ FLOAT* vertex_weights) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXPatchMesh
+DECLARE_INTERFACE_(ID3DXPatchMesh, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXPatchMesh ***/
+ STDMETHOD_(DWORD, GetNumPatches)(THIS) PURE;
+ STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD_(DWORD, GetControlVerticesPerPatch)(THIS) PURE;
+ STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD(GetPatchInfo)(THIS_ LPD3DXPATCHINFO patch_info) PURE;
+ STDMETHOD(GetVertexBuffer)(THIS_ struct IDirect3DVertexBuffer9 **vertex_buffer) PURE;
+ STDMETHOD(GetIndexBuffer)(THIS_ struct IDirect3DIndexBuffer9 **index_buffer) PURE;
+ STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
+ STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+ STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+ STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** data) PURE;
+ STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
+ STDMETHOD(GetTessSize)(THIS_ FLOAT tess_level, DWORD adaptive, DWORD* num_triangles, DWORD* num_vertices) PURE;
+ STDMETHOD(GenerateAdjacency)(THIS_ FLOAT tolerance) PURE;
+ STDMETHOD(CloneMesh)(THIS_ DWORD options, const D3DVERTEXELEMENT9 *declaration, ID3DXPatchMesh **clone_mesh) PURE;
+ STDMETHOD(Optimize)(THIS_ DWORD flags) PURE;
+ STDMETHOD(SetDisplaceParam)(THIS_ struct IDirect3DBaseTexture9 *texture, D3DTEXTUREFILTERTYPE min_filter,
+ D3DTEXTUREFILTERTYPE mag_filter, D3DTEXTUREFILTERTYPE mip_filter, D3DTEXTUREADDRESS wrap,
+ DWORD lod_bias) PURE;
+ STDMETHOD(GetDisplaceParam)(THIS_ struct IDirect3DBaseTexture9 **texture, D3DTEXTUREFILTERTYPE *min_filter,
+ D3DTEXTUREFILTERTYPE *mag_filter, D3DTEXTUREFILTERTYPE *mip_filter, D3DTEXTUREADDRESS *wrap,
+ DWORD *lod_bias) PURE;
+ STDMETHOD(Tessellate)(THIS_ float tess_level, ID3DXMesh *mesh) PURE;
+ STDMETHOD(TessellateAdaptive)(THIS_ const D3DXVECTOR4 *trans, DWORD max_tess_level,
+ DWORD min_tess_level, ID3DXMesh *mesh) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXSkinInfo
+DECLARE_INTERFACE_(ID3DXSkinInfo, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXSkinInfo ***/
+ STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD num_influences, const DWORD *vertices,
+ const FLOAT *weights) PURE;
+ STDMETHOD(SetBoneVertexInfluence)(THIS_ DWORD bone_num, DWORD influence_num, float weight) PURE;
+ STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
+ STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
+ STDMETHOD(GetBoneVertexInfluence)(THIS_ DWORD bone_num, DWORD influence_num, float *weight, DWORD* vertex_num) PURE;
+ STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* max_vertex_influences) PURE;
+ STDMETHOD_(DWORD, GetNumBones)(THIS) PURE;
+ STDMETHOD(FindBoneVertexInfluenceIndex)(THIS_ DWORD bone_num, DWORD vertex_num, DWORD* influence_index) PURE;
+ STDMETHOD(GetMaxFaceInfluences)(THIS_ struct IDirect3DIndexBuffer9 *index_buffer,
+ DWORD num_faces, DWORD *max_face_influences) PURE;
+ STDMETHOD(SetMinBoneInfluence)(THIS_ FLOAT min_influence) PURE;
+ STDMETHOD_(FLOAT, GetMinBoneInfluence)(THIS) PURE;
+ STDMETHOD(SetBoneName)(THIS_ DWORD bone_idx, const char *name) PURE;
+ STDMETHOD_(const char *, GetBoneName)(THIS_ DWORD bone_idx) PURE;
+ STDMETHOD(SetBoneOffsetMatrix)(THIS_ DWORD bone, const D3DXMATRIX *bone_transform) PURE;
+ STDMETHOD_(D3DXMATRIX *, GetBoneOffsetMatrix)(THIS_ DWORD bone) PURE;
+ STDMETHOD(Clone)(THIS_ ID3DXSkinInfo **skin_info) PURE;
+ STDMETHOD(Remap)(THIS_ DWORD num_vertices, DWORD* vertex_remap) PURE;
+ STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
+ STDMETHOD(SetDeclaration)(THIS_ const D3DVERTEXELEMENT9 *declaration) PURE;
+ STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
+ STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ STDMETHOD(UpdateSkinnedMesh)(THIS_ const D3DXMATRIX *bone_transforms,
+ const D3DXMATRIX *bone_inv_transpose_transforms, const void *src_vertices, void *dst_vertices) PURE;
+ STDMETHOD(ConvertToBlendedMesh)(THIS_ ID3DXMesh *mesh_in, DWORD options, const DWORD *adjacency_in,
+ DWORD *adjacency_out, DWORD *face_remap, ID3DXBuffer **vertex_remap, DWORD *max_face_infl,
+ DWORD *num_bone_combinations, ID3DXBuffer **bone_combination_table, ID3DXMesh **mesh_out) PURE;
+ STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ ID3DXMesh *mesh_in, DWORD options, DWORD palette_size,
+ const DWORD *adjacency_in, DWORD *adjacency_out, DWORD *face_remap, ID3DXBuffer **vertex_remap,
+ DWORD *max_face_infl, DWORD *num_bone_combinations, ID3DXBuffer **bone_combination_table,
+ ID3DXMesh **mesh_out) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXPRTBuffer
+DECLARE_INTERFACE_(ID3DXPRTBuffer, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXPRTBuffer methods ***/
+ STDMETHOD_(UINT, GetNumSamples)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumCoeffs)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumChannels)(THIS) PURE;
+ STDMETHOD_(WINBOOL, IsTexture)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetWidth)(THIS) PURE;
+ STDMETHOD_(WINBOOL, GetHeight)(THIS) PURE;
+ STDMETHOD(Resize)(THIS_ UINT new_size) PURE;
+ STDMETHOD(LockBuffer)(THIS_ UINT start, UINT num_samples, FLOAT **data) PURE;
+ STDMETHOD(UnlockBuffer)(THIS) PURE;
+ STDMETHOD(ScaleBuffer)(THIS_ FLOAT scale) PURE;
+ STDMETHOD(AddBuffer)(THIS_ ID3DXPRTBuffer *buffer) PURE;
+ STDMETHOD(AttachGH)(THIS_ struct ID3DXTextureGutterHelper *gh) PURE;
+ STDMETHOD(ReleaseGH)(THIS) PURE;
+ STDMETHOD(EvalGH)(THIS) PURE;
+ STDMETHOD(ExtractTexture)(THIS_ UINT channel, UINT start_coefficient,
+ UINT num_coefficients, struct IDirect3DTexture9 *texture) PURE;
+ STDMETHOD(ExtractToMesh)(THIS_ UINT num_coefficients, D3DDECLUSAGE usage,
+ UINT usage_index_start, ID3DXMesh *scene) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXPRTCompBuffer
+DECLARE_INTERFACE_(ID3DXPRTCompBuffer, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXPRTCompBuffer methods ***/
+ STDMETHOD_(UINT, GetNumSamples)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumCoeffs)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumChannels)(THIS) PURE;
+ STDMETHOD_(WINBOOL, IsTexture)(THIS) PURE;
+ STDMETHOD_(UINT, GetWidth)(THIS) PURE;
+ STDMETHOD_(UINT, GetHeight)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumClusters)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumPCA)(THIS) PURE;
+ STDMETHOD(NormalizeData)(THIS) PURE;
+ STDMETHOD(ExtractBasis)(THIS_ UINT cluster, FLOAT *cluster_basis) PURE;
+ STDMETHOD(ExtractClusterIDs)(THIS_ UINT *cluster_ids) PURE;
+ STDMETHOD(ExtractPCA)(THIS_ UINT start_pca, UINT num_extract, FLOAT *pca_coefficients) PURE;
+ STDMETHOD(ExtractTexture)(THIS_ UINT start_pca, UINT num_pca, struct IDirect3DTexture9 *texture) PURE;
+ STDMETHOD(ExtractToMesh)(THIS_ UINT num_pca, D3DDECLUSAGE usage, UINT usage_index_start, ID3DXMesh *scene) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXTextureGutterHelper
+DECLARE_INTERFACE_(ID3DXTextureGutterHelper, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXTextureGutterHelper methods ***/
+ STDMETHOD_(UINT, GetWidth)(THIS) PURE;
+ STDMETHOD_(UINT, GetHeight)(THIS) PURE;
+
+ STDMETHOD(ApplyGuttersFloat)(THIS_ FLOAT *data_in, UINT num_coeffs, UINT width, UINT height) PURE;
+ STDMETHOD(ApplyGuttersTex)(THIS_ struct IDirect3DTexture9 *texture) PURE;
+ STDMETHOD(ApplyGuttersPRT)(THIS_ ID3DXPRTBuffer *buffer) PURE;
+ STDMETHOD(ResampleTex)(THIS_ struct IDirect3DTexture9 *texture_in, struct ID3DXMesh *mesh_in,
+ D3DDECLUSAGE usage, UINT usage_index, struct IDirect3DTexture9 *texture_out) PURE;
+ STDMETHOD(GetFaceMap)(THIS_ UINT *face_data) PURE;
+ STDMETHOD(GetBaryMap)(THIS_ D3DXVECTOR2 *bary_data) PURE;
+ STDMETHOD(GetTexelMap)(THIS_ D3DXVECTOR2 *texel_data) PURE;
+ STDMETHOD(GetGutterMap)(THIS_ BYTE *gutter_data) PURE;
+ STDMETHOD(SetFaceMap)(THIS_ UINT *face_data) PURE;
+ STDMETHOD(SetBaryMap)(THIS_ D3DXVECTOR2 *bary_data) PURE;
+ STDMETHOD(SetTexelMap)(THIS_ D3DXVECTOR2 *texel_data) PURE;
+ STDMETHOD(SetGutterMap)(THIS_ BYTE *gutter_data) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXPRTEngine
+DECLARE_INTERFACE_(ID3DXPRTEngine, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXPRTEngine methods ***/
+ STDMETHOD(SetMeshMaterials)(THIS_ const D3DXSHMATERIAL **materials, UINT num_meshes,
+ UINT num_channels, WINBOOL set_albedo, FLOAT length_scale) PURE;
+ STDMETHOD(SetPerVertexAlbedo)(THIS_ const void *data_in, UINT num_channels, UINT stride) PURE;
+ STDMETHOD(SetPerTexelAlbedo)(THIS_ struct IDirect3DTexture9 *albedo_texture,
+ UINT num_channels, struct ID3DXTextureGutterHelper *gh) PURE;
+ STDMETHOD(GetVertexAlbedo)(THIS_ D3DXCOLOR *vert_colors, UINT num_verts) PURE;
+ STDMETHOD(SetPerTexelNormals)(THIS_ struct IDirect3DTexture9 *normal_texture) PURE;
+ STDMETHOD(ExtractPerVertexAlbedo)(THIS_ ID3DXMesh *mesh, D3DDECLUSAGE usage, UINT num_channels) PURE;
+ STDMETHOD(ResampleBuffer)(THIS_ ID3DXPRTBuffer *buffer_in, ID3DXPRTBuffer *buffer_out) PURE;
+ STDMETHOD(GetAdaptedMesh)(THIS_ struct IDirect3DDevice9 *device, UINT *face_remap,
+ UINT *vert_remap, float *vert_weights, struct ID3DXMesh **mesh) PURE;
+ STDMETHOD_(UINT, GetNumVerts)(THIS) PURE;
+ STDMETHOD_(UINT, GetNumFaces)(THIS) PURE;
+ STDMETHOD(SetMinMaxIntersection)(THIS_ FLOAT min, FLOAT max) PURE;
+ STDMETHOD(RobustMeshRefine)(THIS_ FLOAT min_edge_length, UINT max_subdiv) PURE;
+ STDMETHOD(SetSamplingInfo)(THIS_ UINT num_rays, WINBOOL use_sphere,
+ WINBOOL use_cosine, WINBOOL adaptive, FLOAT adpative_thresh) PURE;
+ STDMETHOD(ComputeDirectLightingSH)(THIS_ UINT sh_order, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeDirectLightingSHAdaptive)(THIS_ UINT sh_order, float adaptive_thresh,
+ float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeDirectLightingSHGPU)(THIS_ struct IDirect3DDevice9 *device, UINT flags,
+ UINT sh_order, float zbias, float zangle_bias, struct ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeSS)(THIS_ ID3DXPRTBuffer *data_in, ID3DXPRTBuffer *data_out,
+ ID3DXPRTBuffer *data_total) PURE;
+ STDMETHOD(ComputeSSAdaptive)(THIS_ ID3DXPRTBuffer *data_in, float adaptive_thres,
+ float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out, ID3DXPRTBuffer *data_total) PURE;
+ STDMETHOD(ComputeBounce)(THIS_ ID3DXPRTBuffer *data_in, ID3DXPRTBuffer *data_out,
+ ID3DXPRTBuffer *data_total) PURE;
+ STDMETHOD(ComputeBounceAdaptive)(THIS_ ID3DXPRTBuffer *data_in, float adaptive_thres,
+ float min_edge_length, UINT max_subdiv, ID3DXPRTBuffer *data_out, ID3DXPRTBuffer *data_total) PURE;
+ STDMETHOD(ComputeVolumeSamplesDirectSH)(THIS_ UINT sh_order_in, UINT sh_order_out,
+ UINT num_vol_samples, const D3DXVECTOR3 *sample_locs, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeVolumeSamples)(THIS_ ID3DXPRTBuffer *surf_data_in, UINT sh_order,
+ UINT num_vol_samples, const D3DXVECTOR3 *sample_locs, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeSurfSamplesDirectSH)(THIS_ UINT sh_order, UINT num_samples,
+ const D3DXVECTOR3 *sample_locs, const D3DXVECTOR3 *sample_norms, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ComputeSurfSamplesBounce)(THIS_ ID3DXPRTBuffer *surf_data_in, UINT num_samples,
+ const D3DXVECTOR3 *sample_locs, const D3DXVECTOR3 *sample_norms, ID3DXPRTBuffer *data_out,
+ ID3DXPRTBuffer *data_total) PURE;
+ STDMETHOD(FreeSSData)(THIS) PURE;
+ STDMETHOD(FreeBounceData)(THIS) PURE;
+ STDMETHOD(ComputeLDPRTCoeffs)(THIS_ ID3DXPRTBuffer *data_in, UINT sh_order, D3DXVECTOR3 *norm_out,
+ ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(ScaleMeshChunk)(THIS_ UINT mesh_chunk, float scale, ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(MultiplyAlbedo)(THIS_ ID3DXPRTBuffer *data_out) PURE;
+ STDMETHOD(SetCallback)(THIS_ LPD3DXSHPRTSIMCB cb, float frequency, void *user_context) PURE;
+ STDMETHOD_(WINBOOL, ShadowRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
+ const D3DXVECTOR3 *ray_dir) PURE;
+ STDMETHOD_(WINBOOL, ClosestRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
+ const D3DXVECTOR3 *ray_dir, DWORD *face_index, FLOAT *u, FLOAT *v, FLOAT *dist) PURE;
+};
+#undef INTERFACE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3DXCreateMesh(DWORD face_count, DWORD vertex_count, DWORD flags,
+ const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXCreateMeshFVF(DWORD face_count, DWORD vertex_count, DWORD flags,
+ DWORD fvf, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer);
+HRESULT WINAPI D3DXCreateSPMesh(ID3DXMesh *mesh, const DWORD *adjacency,
+ const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, ID3DXSPMesh **spmesh);
+HRESULT WINAPI D3DXCreatePMeshFromStream(struct IStream *stream, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXPMesh **mesh);
+HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *declaration,
+ DWORD bone_count, ID3DXSkinInfo **skin_info);
+HRESULT WINAPI D3DXCreateSkinInfoFVF(DWORD vertex_count, DWORD fvf, DWORD bone_count, ID3DXSkinInfo **skin_info);
+HRESULT WINAPI D3DXCreateSkinInfoFromBlendedMesh(ID3DXBaseMesh *mesh, DWORD bone_count,
+ const D3DXBONECOMBINATION *bone_combination_table, ID3DXSkinInfo **skin_info);
+HRESULT WINAPI D3DXCreatePatchMesh(const D3DXPATCHINFO *patch_info, DWORD patch_count,
+ DWORD vertex_count, DWORD flags, const D3DVERTEXELEMENT9 *declaration,
+ struct IDirect3DDevice9 *device, struct ID3DXPatchMesh **mesh);
+HRESULT WINAPI D3DXCreatePRTBuffer(UINT sample_count, UINT coeff_count, UINT channel_count, ID3DXPRTBuffer **buffer);
+HRESULT WINAPI D3DXCreatePRTBufferTex(UINT width, UINT height, UINT coeff_count,
+ UINT channel_count, ID3DXPRTBuffer **buffer);
+HRESULT WINAPI D3DXCreatePRTCompBuffer(D3DXSHCOMPRESSQUALITYTYPE quality, UINT cluster_count, UINT pca_count,
+ LPD3DXSHPRTSIMCB cb, void *ctx, ID3DXPRTBuffer *input, ID3DXPRTCompBuffer **buffer);
+HRESULT WINAPI D3DXCreateTextureGutterHelper(UINT width, UINT height, ID3DXMesh *mesh,
+ float gutter_size, ID3DXTextureGutterHelper **gh);
+HRESULT WINAPI D3DXCreatePRTEngine(ID3DXMesh *mesh, DWORD *adjacency, WINBOOL extract_uv,
+ ID3DXMesh *blocker_mesh, ID3DXPRTEngine **engine);
+HRESULT WINAPI D3DXLoadMeshFromXA(const char *filename, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXLoadMeshFromXW(const WCHAR *filename, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXMesh **mesh);
+#define D3DXLoadMeshFromX __MINGW_NAME_AW(D3DXLoadMeshFromX)
+HRESULT WINAPI D3DXLoadMeshFromXInMemory(const void *data, DWORD data_size, DWORD flags,
+ struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials,
+ struct ID3DXBuffer **effect_instances, DWORD *material_count, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXLoadMeshFromXResource(HMODULE module, const char *resource, const char *resource_type,
+ DWORD flags, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency,
+ struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXLoadMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXLoadPatchMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXPatchMesh **mesh);
+HRESULT WINAPI D3DXLoadSkinMeshFromXof(struct ID3DXFileData *file_data, DWORD flags, struct IDirect3DDevice9 *device,
+ struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances,
+ DWORD *material_count, struct ID3DXSkinInfo **skin_info, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXLoadPRTBufferFromFileA(const char *filename, ID3DXPRTBuffer **buffer);
+HRESULT WINAPI D3DXLoadPRTBufferFromFileW(const WCHAR *filename, ID3DXPRTBuffer **buffer);
+#define D3DXLoadPRTBufferFromFile __MINGW_NAME_AW(D3DXLoadPRTBufferFromFile)
+HRESULT WINAPI D3DXLoadPRTCompBufferFromFileA(const char *filename, ID3DXPRTCompBuffer **buffer);
+HRESULT WINAPI D3DXLoadPRTCompBufferFromFileW(const WCHAR *filename, ID3DXPRTCompBuffer **buffer);
+#define D3DXLoadPRTCompBufferFromFile __MINGW_NAME_AW(D3DXLoadPRTCompBufferFromFile)
+HRESULT WINAPI D3DXSaveMeshToXA(const char *filename, ID3DXMesh *mesh, const DWORD *adjacency,
+ const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format);
+HRESULT WINAPI D3DXSaveMeshToXW(const WCHAR *filename, ID3DXMesh *mesh, const DWORD *adjacency,
+ const D3DXMATERIAL *materials, const D3DXEFFECTINSTANCE *effect_instances, DWORD material_count, DWORD format);
+#define D3DXSaveMeshToX __MINGW_NAME_AW(D3DXSaveMeshToX)
+HRESULT WINAPI D3DXSavePRTBufferToFileA(const char *filename, ID3DXPRTBuffer *buffer);
+HRESULT WINAPI D3DXSavePRTBufferToFileW(const WCHAR *filename, ID3DXPRTBuffer *buffer);
+#define D3DXSavePRTBufferToFile __MINGW_NAME_AW(D3DXSavePRTBufferToFile)
+HRESULT WINAPI D3DXSavePRTCompBufferToFileA(const char *filename, ID3DXPRTCompBuffer *buffer);
+HRESULT WINAPI D3DXSavePRTCompBufferToFileW(const WCHAR *filename, ID3DXPRTCompBuffer *buffer);
+#define D3DXSavePRTCompBufferToFile __MINGW_NAME_AW(D3DXSavePRTCompBufferToFile)
+UINT WINAPI D3DXGetDeclLength(const D3DVERTEXELEMENT9 *decl);
+UINT WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx);
+UINT WINAPI D3DXGetFVFVertexSize(DWORD);
+WINBOOL WINAPI D3DXBoxBoundProbe(const D3DXVECTOR3 *vmin, const D3DXVECTOR3 *vmax,
+ const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
+WINBOOL WINAPI D3DXSphereBoundProbe(const D3DXVECTOR3 *center, FLOAT radius,
+ const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
+HRESULT WINAPI D3DXCleanMesh(D3DXCLEANTYPE clean_type, ID3DXMesh *mesh_in, const DWORD *adjacency_in,
+ ID3DXMesh **mesh_out, DWORD *adjacency_out, ID3DXBuffer **errors);
+HRESULT WINAPI D3DXConcatenateMeshes(struct ID3DXMesh **meshes, UINT mesh_count, DWORD flags,
+ const D3DXMATRIX *geometry_matrices, const D3DXMATRIX *texture_matrices,
+ const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
+HRESULT WINAPI D3DXComputeBoundingBox(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
+ DWORD stride, D3DXVECTOR3 *vmin, D3DXVECTOR3 *vmax);
+HRESULT WINAPI D3DXComputeBoundingSphere(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
+ DWORD stride, D3DXVECTOR3 *center, FLOAT *radius);
+HRESULT WINAPI D3DXComputeIMTFromPerTexelSignal(ID3DXMesh *mesh, DWORD texture_idx, float *texel_signal,
+ UINT width, UINT height, UINT signal_dimension, UINT component_count, DWORD flags,
+ LPD3DXUVATLASCB cb, void *ctx, ID3DXBuffer **buffer);
+HRESULT WINAPI D3DXComputeIMTFromPerVertexSignal(ID3DXMesh *mesh, const float *vertex_signal,
+ UINT signal_dimension, UINT signal_stride, DWORD flags,
+ LPD3DXUVATLASCB cb, void *ctx, ID3DXBuffer **buffer);
+HRESULT WINAPI D3DXComputeIMTFromSignal(ID3DXMesh *mesh, DWORD texture_idx, UINT signal_dimension,
+ float max_uv_distance, DWORD flags, LPD3DXIMTSIGNALCALLBACK signal_cb, void *signal_ctx,
+ LPD3DXUVATLASCB status_cb, void *status_ctx, ID3DXBuffer **buffer);
+HRESULT WINAPI D3DXComputeIMTFromTexture(struct ID3DXMesh *mesh, struct IDirect3DTexture9 *texture,
+ DWORD texture_idx, DWORD options, LPD3DXUVATLASCB cb, void *ctx, struct ID3DXBuffer **out);
+HRESULT WINAPI D3DXComputeNormals(ID3DXBaseMesh *mesh, const DWORD *adjacency);
+HRESULT WINAPI D3DXComputeTangentFrameEx(ID3DXMesh *mesh_in, DWORD texture_in_semantic, DWORD texture_in_idx,
+ DWORD u_partial_out_semantic, DWORD u_partial_out_idx, DWORD v_partial_out_semantic,
+ DWORD v_partial_out_idx, DWORD normal_out_semantic, DWORD normal_out_idx, DWORD flags,
+ const DWORD *adjacency, float partial_edge_threshold, float singular_point_threshold,
+ float normal_edge_threshold, ID3DXMesh **mesh_out, ID3DXBuffer **buffer);
+HRESULT WINAPI D3DXComputeTangent(ID3DXMesh *mesh, DWORD stage, DWORD tangent_idx,
+ DWORD binorm_idx, DWORD wrap, const DWORD *adjacency);
+HRESULT WINAPI D3DXConvertMeshSubsetToSingleStrip(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id,
+ DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count);
+HRESULT WINAPI D3DXConvertMeshSubsetToStrips(struct ID3DXBaseMesh *mesh_in, DWORD attribute_id,
+ DWORD ib_flags, struct IDirect3DIndexBuffer9 **index_buffer, DWORD *index_count,
+ struct ID3DXBuffer **strip_lengths, DWORD *strip_count);
+HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE]);
+HRESULT WINAPI D3DXFVFFromDeclarator(const D3DVERTEXELEMENT9 *decl, DWORD *fvf);
+HRESULT WINAPI D3DXGenerateOutputDecl(D3DVERTEXELEMENT9 *decl_out, const D3DVERTEXELEMENT9 *decl_in);
+HRESULT WINAPI D3DXGeneratePMesh(ID3DXMesh *mesh, const DWORD *adjacency,
+ const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights,
+ DWORD min_value, DWORD flags, ID3DXPMesh **pmesh);
+HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_position, const D3DXVECTOR3 *ray_direction,
+ WINBOOL *hit, DWORD *face_idx, float *u, float *v, float *distance, ID3DXBuffer **hits, DWORD *hit_count);
+HRESULT WINAPI D3DXIntersectSubset(ID3DXBaseMesh *mesh, DWORD attribute_id, const D3DXVECTOR3 *ray_position,
+ const D3DXVECTOR3 *ray_direction, WINBOOL *hit, DWORD *face_idx, float *u, float *v, float *distance,
+ ID3DXBuffer **hits, DWORD *hit_count);
+WINBOOL WINAPI D3DXIntersectTri(const D3DXVECTOR3 *vtx0, const D3DXVECTOR3 *vtx1,
+ const D3DXVECTOR3 *vtx2, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir, FLOAT *u,
+ FLOAT *v, FLOAT *dist);
+HRESULT WINAPI D3DXOptimizeFaces(const void *indices, UINT face_count,
+ UINT vertex_count, WINBOOL idx_32bit, DWORD *face_remap);
+HRESULT WINAPI D3DXOptimizeVertices(const void *indices, UINT face_count,
+ UINT vertex_count, WINBOOL idx_32bit, DWORD *vertex_remap);
+HRESULT WINAPI D3DXRectPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
+ DWORD *num_vertices);
+HRESULT WINAPI D3DXSHPRTCompSuperCluster(UINT *cluster_ids, ID3DXMesh *scene, UINT max_cluster_count,
+ UINT cluster_count, UINT *scluster_ids, UINT *scluster_count);
+HRESULT WINAPI D3DXSHPRTCompSplitMeshSC(UINT *cluster_idx, UINT vertex_count, UINT cluster_count, UINT *scluster_ids,
+ UINT scluster_count, void *index_buffer_in, WINBOOL ib_in_32bit, UINT face_count, ID3DXBuffer **index_buffer_out,
+ UINT *index_buffer_size, WINBOOL ib_out_32bit, ID3DXBuffer **face_remap, ID3DXBuffer **vertex_data,
+ UINT *vertex_data_length, UINT *sc_cluster_list, D3DXSHPRTSPLITMESHCLUSTERDATA *sc_data);
+HRESULT WINAPI D3DXSimplifyMesh(ID3DXMesh *mesh_in, const DWORD *adjacency,
+ const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights, DWORD min_value,
+ DWORD flags, ID3DXMesh **mesh_out);
+HRESULT WINAPI D3DXSplitMesh(ID3DXMesh *mesh_in, const DWORD *adjacency_in, const DWORD max_size,
+ const DWORD flags, DWORD *mesh_out_count, ID3DXBuffer **mesh_out, ID3DXBuffer **adjacency_out,
+ ID3DXBuffer **face_remap_out, ID3DXBuffer **vertex_remap_out);
+HRESULT WINAPI D3DXTessellateNPatches(ID3DXMesh *mesh_in, const DWORD *adjacency_in, float segment_count,
+ WINBOOL quad_interp, ID3DXMesh **mesh_out, ID3DXBuffer **adjacency_out);
+HRESULT WINAPI D3DXTessellateRectPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count,
+ const D3DVERTEXELEMENT9 *declaration, const D3DRECTPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
+HRESULT WINAPI D3DXTessellateTriPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count,
+ const D3DVERTEXELEMENT9 *declaration, const D3DTRIPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
+HRESULT WINAPI D3DXTriPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
+ DWORD *num_vertices);
+HRESULT WINAPI D3DXUVAtlasCreate(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in,
+ UINT width, UINT height, float gutter, DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges,
+ const float *imt_array, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out,
+ ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, float *max_stretch_out, UINT *chart_count);
+HRESULT WINAPI D3DXUVAtlasPack(ID3DXMesh *mesh, UINT width, UINT height, float gutter, DWORD texture_idx,
+ const DWORD *partition_result_adjacency, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags,
+ ID3DXBuffer *face_partitioning);
+HRESULT WINAPI D3DXUVAtlasPartition(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in,
+ DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges, const float *imt_array,
+ LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out,
+ ID3DXBuffer **face_partitioning_out, ID3DXBuffer **vertex_remap_out, ID3DXBuffer **adjacency_out,
+ float *max_stretch_out, UINT *chart_count);
+HRESULT WINAPI D3DXValidMesh(ID3DXMesh *mesh, const DWORD *adjacency, ID3DXBuffer **errors);
+HRESULT WINAPI D3DXValidPatchMesh(ID3DXPatchMesh *mesh, DWORD *degenerate_vertex_count,
+ DWORD *degenerate_patch_count, ID3DXBuffer **errors);
+HRESULT WINAPI D3DXWeldVertices(ID3DXMesh *mesh, DWORD flags, const D3DXWELDEPSILONS *epsilons,
+ const DWORD *adjacency_in, DWORD *adjacency_out, DWORD *face_remap_out, ID3DXBuffer **vertex_remap_out);
+
+#ifdef __cplusplus
+}
+#endif
+
+DEFINE_GUID(DXFILEOBJ_XSkinMeshHeader, 0x3cf169ce, 0xff7c, 0x44ab, 0x93, 0xc0, 0xf7, 0x8f, 0x62, 0xd1, 0x72, 0xe2);
+DEFINE_GUID(DXFILEOBJ_VertexDuplicationIndices, 0xb8d65549, 0xd7c9, 0x4995, 0x89, 0xcf, 0x53, 0xa9, 0xa8, 0xb0, 0x31, 0xe3);
+DEFINE_GUID(DXFILEOBJ_FaceAdjacency, 0xa64c844a, 0xe282, 0x4756, 0x8b, 0x80, 0x25, 0x0c, 0xde, 0x04, 0x39, 0x8c);
+DEFINE_GUID(DXFILEOBJ_SkinWeights, 0x6f0d123b, 0xbad2, 0x4167, 0xa0, 0xd0, 0x80, 0x22, 0x4f, 0x25, 0xfa, 0xbb);
+DEFINE_GUID(DXFILEOBJ_Patch, 0xa3eb5d44, 0xfc22, 0x429d, 0x9a, 0xfb, 0x32, 0x21, 0xcb, 0x97, 0x19, 0xa6);
+DEFINE_GUID(DXFILEOBJ_PatchMesh, 0xd02c95cc, 0xedba, 0x4305, 0x9b, 0x5d, 0x18, 0x20, 0xd7, 0x70, 0x4d, 0xbf);
+DEFINE_GUID(DXFILEOBJ_PatchMesh9, 0xb9ec94e1, 0xb9a6, 0x4251, 0xba, 0x18, 0x94, 0x89, 0x3f, 0x02, 0xc0, 0xea);
+DEFINE_GUID(DXFILEOBJ_PMInfo, 0xb6c3e656, 0xec8b, 0x4b92, 0x9b, 0x62, 0x68, 0x16, 0x59, 0x52, 0x29, 0x47);
+DEFINE_GUID(DXFILEOBJ_PMAttributeRange, 0x917e0427, 0xc61e, 0x4a14, 0x9c, 0x64, 0xaf, 0xe6, 0x5f, 0x9e, 0x98, 0x44);
+DEFINE_GUID(DXFILEOBJ_PMVSplitRecord, 0x574ccc14, 0xf0b3, 0x4333, 0x82, 0x2d, 0x93, 0xe8, 0xa8, 0xa0, 0x8e, 0x4c);
+DEFINE_GUID(DXFILEOBJ_FVFData, 0xb6e70a0e, 0x8ef9, 0x4e83, 0x94, 0xad, 0xec, 0xc8, 0xb0, 0xc0, 0x48, 0x97);
+DEFINE_GUID(DXFILEOBJ_VertexElement, 0xf752461c, 0x1e23, 0x48f6, 0xb9, 0xf8, 0x83, 0x50, 0x85, 0x0f, 0x33, 0x6f);
+DEFINE_GUID(DXFILEOBJ_DeclData, 0xbf22e553, 0x292c, 0x4781, 0x9f, 0xea, 0x62, 0xbd, 0x55, 0x4b, 0xdd, 0x93);
+DEFINE_GUID(DXFILEOBJ_EffectFloats, 0xf1cfe2b3, 0x0de3, 0x4e28, 0xaf, 0xa1, 0x15, 0x5a, 0x75, 0x0a, 0x28, 0x2d);
+DEFINE_GUID(DXFILEOBJ_EffectString, 0xd55b097e, 0xbdb6, 0x4c52, 0xb0, 0x3d, 0x60, 0x51, 0xc8, 0x9d, 0x0e, 0x42);
+DEFINE_GUID(DXFILEOBJ_EffectDWord, 0x622c0ed0, 0x956e, 0x4da9, 0x90, 0x8a, 0x2a, 0xf9, 0x4f, 0x3c, 0xe7, 0x16);
+DEFINE_GUID(DXFILEOBJ_EffectParamFloats, 0x3014b9a0, 0x62f5, 0x478c, 0x9b, 0x86, 0xe4, 0xac, 0x9f, 0x4e, 0x41, 0x8b);
+DEFINE_GUID(DXFILEOBJ_EffectParamString, 0x1dbc4c88, 0x94c1, 0x46ee, 0x90, 0x76, 0x2c, 0x28, 0x81, 0x8c, 0x94, 0x81);
+DEFINE_GUID(DXFILEOBJ_EffectParamDWord, 0xe13963bc, 0xae51, 0x4c5d, 0xb0, 0x0f, 0xcf, 0xa3, 0xa9, 0xd9, 0x7c, 0xe5);
+DEFINE_GUID(DXFILEOBJ_EffectInstance, 0xe331f7e4, 0x0559, 0x4cc2, 0x8e, 0x99, 0x1c, 0xec, 0x16, 0x57, 0x92, 0x8f);
+DEFINE_GUID(DXFILEOBJ_AnimTicksPerSecond, 0x9e415a43, 0x7ba6, 0x4a73, 0x87, 0x43, 0xb7, 0x3d, 0x47, 0xe8, 0x84, 0x76);
+DEFINE_GUID(DXFILEOBJ_CompressedAnimationSet, 0x7f9b00b3, 0xf125, 0x4890, 0x87, 0x6e, 0x1c, 0x42, 0xbf, 0x69, 0x7c, 0x4d);
+
+#define XSKINEXP_TEMPLATES \
+ "xof 0303txt 0032\
+ template XSkinMeshHeader \
+ { \
+ <3CF169CE-FF7C-44ab-93C0-F78F62D172E2> \
+ WORD nMaxSkinWeightsPerVertex; \
+ WORD nMaxSkinWeightsPerFace; \
+ WORD nBones; \
+ } \
+ template VertexDuplicationIndices \
+ { \
+ <B8D65549-D7C9-4995-89CF-53A9A8B031E3> \
+ DWORD nIndices; \
+ DWORD nOriginalVertices; \
+ array DWORD indices[nIndices]; \
+ } \
+ template FaceAdjacency \
+ { \
+ <A64C844A-E282-4756-8B80-250CDE04398C> \
+ DWORD nIndices; \
+ array DWORD indices[nIndices]; \
+ } \
+ template SkinWeights \
+ { \
+ <6F0D123B-BAD2-4167-A0D0-80224F25FABB> \
+ STRING transformNodeName; \
+ DWORD nWeights; \
+ array DWORD vertexIndices[nWeights]; \
+ array float weights[nWeights]; \
+ Matrix4x4 matrixOffset; \
+ } \
+ template Patch \
+ { \
+ <A3EB5D44-FC22-429D-9AFB-3221CB9719A6> \
+ DWORD nControlIndices; \
+ array DWORD controlIndices[nControlIndices]; \
+ } \
+ template PatchMesh \
+ { \
+ <D02C95CC-EDBA-4305-9B5D-1820D7704BBF> \
+ DWORD nVertices; \
+ array Vector vertices[nVertices]; \
+ DWORD nPatches; \
+ array Patch patches[nPatches]; \
+ [ ... ] \
+ } \
+ template PatchMesh9 \
+ { \
+ <B9EC94E1-B9A6-4251-BA18-94893F02C0EA> \
+ DWORD Type; \
+ DWORD Degree; \
+ DWORD Basis; \
+ DWORD nVertices; \
+ array Vector vertices[nVertices]; \
+ DWORD nPatches; \
+ array Patch patches[nPatches]; \
+ [ ... ] \
+ } template EffectFloats \
+ { \
+ <F1CFE2B3-0DE3-4e28-AFA1-155A750A282D> \
+ DWORD nFloats; \
+ array float Floats[nFloats]; \
+ } \
+ template EffectString \
+ { \
+ <D55B097E-BDB6-4c52-B03D-6051C89D0E42> \
+ STRING Value; \
+ } \
+ template EffectDWord \
+ { \
+ <622C0ED0-956E-4da9-908A-2AF94F3CE716> \
+ DWORD Value; \
+ } template EffectParamFloats \
+ { \
+ <3014B9A0-62F5-478c-9B86-E4AC9F4E418B> \
+ STRING ParamName; \
+ DWORD nFloats; \
+ array float Floats[nFloats]; \
+ } template EffectParamString \
+ { \
+ <1DBC4C88-94C1-46ee-9076-2C28818C9481> \
+ STRING ParamName; \
+ STRING Value; \
+ } \
+ template EffectParamDWord \
+ { \
+ <E13963BC-AE51-4c5d-B00F-CFA3A9D97CE5> \
+ STRING ParamName; \
+ DWORD Value; \
+ } \
+ template EffectInstance \
+ { \
+ <E331F7E4-0559-4cc2-8E99-1CEC1657928F> \
+ STRING EffectFilename; \
+ [ ... ] \
+ } template AnimTicksPerSecond \
+ { \
+ <9E415A43-7BA6-4a73-8743-B73D47E88476> \
+ DWORD AnimTicksPerSecond; \
+ } \
+ template CompressedAnimationSet \
+ { \
+ <7F9B00B3-F125-4890-876E-1C42BF697C4D> \
+ DWORD CompressedBlockSize; \
+ FLOAT TicksPerSec; \
+ DWORD PlaybackType; \
+ DWORD BufferLength; \
+ array DWORD CompressedData[BufferLength]; \
+ } "
+
+#define XEXTENSIONS_TEMPLATES \
+ "xof 0303txt 0032\
+ template FVFData \
+ { \
+ <B6E70A0E-8EF9-4e83-94AD-ECC8B0C04897> \
+ DWORD dwFVF; \
+ DWORD nDWords; \
+ array DWORD data[nDWords]; \
+ } \
+ template VertexElement \
+ { \
+ <F752461C-1E23-48f6-B9F8-8350850F336F> \
+ DWORD Type; \
+ DWORD Method; \
+ DWORD Usage; \
+ DWORD UsageIndex; \
+ } \
+ template DeclData \
+ { \
+ <BF22E553-292C-4781-9FEA-62BD554BDD93> \
+ DWORD nElements; \
+ array VertexElement Elements[nElements]; \
+ DWORD nDWords; \
+ array DWORD data[nDWords]; \
+ } \
+ template PMAttributeRange \
+ { \
+ <917E0427-C61E-4a14-9C64-AFE65F9E9844> \
+ DWORD iFaceOffset; \
+ DWORD nFacesMin; \
+ DWORD nFacesMax; \
+ DWORD iVertexOffset; \
+ DWORD nVerticesMin; \
+ DWORD nVerticesMax; \
+ } \
+ template PMVSplitRecord \
+ { \
+ <574CCC14-F0B3-4333-822D-93E8A8A08E4C> \
+ DWORD iFaceCLW; \
+ DWORD iVlrOffset; \
+ DWORD iCode; \
+ } \
+ template PMInfo \
+ { \
+ <B6C3E656-EC8B-4b92-9B62-681659522947> \
+ DWORD nAttributes; \
+ array PMAttributeRange attributeRanges[nAttributes]; \
+ DWORD nMaxValence; \
+ DWORD nMinLogicalVertices; \
+ DWORD nMaxLogicalVertices; \
+ DWORD nVSplits; \
+ array PMVSplitRecord splitRecords[nVSplits]; \
+ DWORD nAttributeMispredicts; \
+ array DWORD attributeMispredicts[nAttributeMispredicts]; \
+ } "
+
+#endif /* __WINE_D3DX9MESH_H */
diff --git a/d3dx9shader.h b/d3dx9shader.h
new file mode 100644
index 0000000..cd00a87
--- /dev/null
+++ b/d3dx9shader.h
@@ -0,0 +1,465 @@
+#include <_mingw_unicode.h>
+#undef INTERFACE
+/*
+ * Copyright 2008 Luis Busquets
+ * Copyright 2014 Kai Tietz
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __D3DX9SHADER_H__
+#define __D3DX9SHADER_H__
+
+#define D3DXSHADER_DEBUG 0x1
+#define D3DXSHADER_SKIPVALIDATION 0x2
+#define D3DXSHADER_SKIPOPTIMIZATION 0x4
+#define D3DXSHADER_PACKMATRIX_ROWMAJOR 0x8
+#define D3DXSHADER_PACKMATRIX_COLUMNMAJOR 0x10
+#define D3DXSHADER_PARTIALPRECISION 0x20
+#define D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT 0x40
+#define D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT 0x80
+#define D3DXSHADER_NO_PRESHADER 0x100
+#define D3DXSHADER_AVOID_FLOW_CONTROL 0x200
+#define D3DXSHADER_PREFER_FLOW_CONTROL 0x400
+#define D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000
+#define D3DXSHADER_IEEE_STRICTNESS 0x2000
+
+#define D3DXSHADER_OPTIMIZATION_LEVEL0 0x4000
+#define D3DXSHADER_OPTIMIZATION_LEVEL1 0x0
+#define D3DXSHADER_OPTIMIZATION_LEVEL2 0xC000
+#define D3DXSHADER_OPTIMIZATION_LEVEL3 0x8000
+
+#define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL 0x10000
+
+#define D3DXCONSTTABLE_LARGEADDRESSAWARE 0x20000
+
+typedef const char *D3DXHANDLE;
+typedef D3DXHANDLE *LPD3DXHANDLE;
+
+typedef enum _D3DXREGISTER_SET
+{
+ D3DXRS_BOOL,
+ D3DXRS_INT4,
+ D3DXRS_FLOAT4,
+ D3DXRS_SAMPLER,
+ D3DXRS_FORCE_DWORD = 0x7fffffff
+} D3DXREGISTER_SET, *LPD3DXREGISTER_SET;
+
+typedef enum D3DXPARAMETER_CLASS
+{
+ D3DXPC_SCALAR,
+ D3DXPC_VECTOR,
+ D3DXPC_MATRIX_ROWS,
+ D3DXPC_MATRIX_COLUMNS,
+ D3DXPC_OBJECT,
+ D3DXPC_STRUCT,
+ D3DXPC_FORCE_DWORD = 0x7fffffff,
+} D3DXPARAMETER_CLASS, *LPD3DXPARAMETER_CLASS;
+
+typedef enum D3DXPARAMETER_TYPE
+{
+ D3DXPT_VOID,
+ D3DXPT_BOOL,
+ D3DXPT_INT,
+ D3DXPT_FLOAT,
+ D3DXPT_STRING,
+ D3DXPT_TEXTURE,
+ D3DXPT_TEXTURE1D,
+ D3DXPT_TEXTURE2D,
+ D3DXPT_TEXTURE3D,
+ D3DXPT_TEXTURECUBE,
+ D3DXPT_SAMPLER,
+ D3DXPT_SAMPLER1D,
+ D3DXPT_SAMPLER2D,
+ D3DXPT_SAMPLER3D,
+ D3DXPT_SAMPLERCUBE,
+ D3DXPT_PIXELSHADER,
+ D3DXPT_VERTEXSHADER,
+ D3DXPT_PIXELFRAGMENT,
+ D3DXPT_VERTEXFRAGMENT,
+ D3DXPT_UNSUPPORTED,
+ D3DXPT_FORCE_DWORD = 0x7fffffff,
+} D3DXPARAMETER_TYPE, *LPD3DXPARAMETER_TYPE;
+
+typedef struct _D3DXCONSTANTTABLE_DESC
+{
+ const char *Creator;
+ DWORD Version;
+ UINT Constants;
+} D3DXCONSTANTTABLE_DESC, *LPD3DXCONSTANTTABLE_DESC;
+
+typedef struct _D3DXCONSTANT_DESC
+{
+ const char *Name;
+ D3DXREGISTER_SET RegisterSet;
+ UINT RegisterIndex;
+ UINT RegisterCount;
+ D3DXPARAMETER_CLASS Class;
+ D3DXPARAMETER_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT StructMembers;
+ UINT Bytes;
+ const void *DefaultValue;
+} D3DXCONSTANT_DESC, *LPD3DXCONSTANT_DESC;
+
+#if D3DX_SDK_VERSION < 43
+DEFINE_GUID(IID_ID3DXConstantTable, 0x9dca3190, 0x38b9, 0x4fc3, 0x92, 0xe3, 0x39, 0xc6, 0xdd, 0xfb, 0x35, 0x8b);
+#else
+DEFINE_GUID(IID_ID3DXConstantTable, 0xab3c758f, 0x093e, 0x4356, 0xb7, 0x62, 0x4d, 0xb1, 0x8f, 0x1b, 0x3a, 0x01);
+#endif
+
+#undef INTERFACE
+#define INTERFACE ID3DXConstantTable
+
+DECLARE_INTERFACE_(ID3DXConstantTable, ID3DXBuffer)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** ID3DXBuffer methods ***/
+ STDMETHOD_(void *, GetBufferPointer)(THIS) PURE;
+ STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
+ /*** ID3DXConstantTable methods ***/
+ STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
+ STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
+ STDMETHOD_(UINT, GetSamplerIndex)(THIS_ D3DXHANDLE hConstant) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE constant, const char *name) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
+ STDMETHOD(SetDefaults)(THIS_ struct IDirect3DDevice9 *device) PURE;
+ STDMETHOD(SetValue)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const void *data, UINT data_size) PURE;
+ STDMETHOD(SetBool)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant, WINBOOL value) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const WINBOOL *values, UINT value_count) PURE;
+ STDMETHOD(SetInt)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant, INT value) PURE;
+ STDMETHOD(SetIntArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const INT *values, UINT value_count) PURE;
+ STDMETHOD(SetFloat)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant, float value) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const float *values, UINT value_count) PURE;
+ STDMETHOD(SetVector)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant, const D3DXVECTOR4 *value) PURE;
+ STDMETHOD(SetVectorArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXVECTOR4 *values, UINT value_count) PURE;
+ STDMETHOD(SetMatrix)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant, const D3DXMATRIX *value) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXMATRIX *values, UINT value_count) PURE;
+ STDMETHOD(SetMatrixPointerArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXMATRIX **values, UINT value_count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXMATRIX *value) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXMATRIX *values, UINT value_count) PURE;
+ STDMETHOD(SetMatrixTransposePointerArray)(THIS_ struct IDirect3DDevice9 *device, D3DXHANDLE constant,
+ const D3DXMATRIX **values, UINT value_count) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define ID3DXConstantTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ID3DXConstantTable_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ID3DXConstantTable_Release(p) (p)->lpVtbl->Release(p)
+/*** ID3DXBuffer methods ***/
+#define ID3DXConstantTable_GetBufferPointer(p) (p)->lpVtbl->GetBufferPointer(p)
+#define ID3DXConstantTable_GetBufferSize(p) (p)->lpVtbl->GetBufferSize(p)
+/*** ID3DXConstantTable methods ***/
+#define ID3DXConstantTable_GetDesc(p,a) (p)->lpVtbl->GetDesc(p,a)
+#define ID3DXConstantTable_GetConstantDesc(p,a,b,c) (p)->lpVtbl->GetConstantDesc(p,a,b,c)
+#define ID3DXConstantTable_GetSamplerIndex(p,a) (p)->lpVtbl->GetSamplerIndex(p,a)
+#define ID3DXConstantTable_GetConstant(p,a,b) (p)->lpVtbl->GetConstant(p,a,b)
+#define ID3DXConstantTable_GetConstantByName(p,a,b) (p)->lpVtbl->GetConstantByName(p,a,b)
+#define ID3DXConstantTable_GetConstantElement(p,a,b) (p)->lpVtbl->GetConstantElement(p,a,b)
+#define ID3DXConstantTable_SetDefaults(p,a) (p)->lpVtbl->SetDefaults(p,a)
+#define ID3DXConstantTable_SetValue(p,a,b,c,d) (p)->lpVtbl->SetValue(p,a,b,c,d)
+#define ID3DXConstantTable_SetBool(p,a,b,c) (p)->lpVtbl->SetBool(p,a,b,c)
+#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d) (p)->lpVtbl->SetBoolArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetInt(p,a,b,c) (p)->lpVtbl->SetInt(p,a,b,c)
+#define ID3DXConstantTable_SetIntArray(p,a,b,c,d) (p)->lpVtbl->SetIntArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetFloat(p,a,b,c) (p)->lpVtbl->SetFloat(p,a,b,c)
+#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d) (p)->lpVtbl->SetFloatArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetVector(p,a,b,c) (p)->lpVtbl->SetVector(p,a,b,c)
+#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d) (p)->lpVtbl->SetVectorArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetMatrix(p,a,b,c) (p)->lpVtbl->SetMatrix(p,a,b,c)
+#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d) (p)->lpVtbl->SetMatrixArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d) (p)->lpVtbl->SetMatrixPointerArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c) (p)->lpVtbl->SetMatrixTranspose(p,a,b,c)
+#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d) (p)->lpVtbl->SetMatrixTransposeArray(p,a,b,c,d)
+#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d) (p)->lpVtbl->SetMatrixTransposePointerArray(p,a,b,c,d)
+#else
+/*** IUnknown methods ***/
+#define ID3DXConstantTable_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define ID3DXConstantTable_AddRef(p) (p)->AddRef()
+#define ID3DXConstantTable_Release(p) (p)->Release()
+/*** ID3DXBuffer methods ***/
+#define ID3DXConstantTable_GetBufferPointer(p) (p)->GetBufferPointer()
+#define ID3DXConstantTable_GetBufferSize(p) (p)->GetBufferSize()
+/*** ID3DXConstantTable methods ***/
+#define ID3DXConstantTable_GetDesc(p,a) (p)->GetDesc(a)
+#define ID3DXConstantTable_GetConstantDesc(p,a,b,c) (p)->GetConstantDesc(a,b,c)
+#define ID3DXConstantTable_GetSamplerIndex(p,a) (p)->GetConstantDesc(a)
+#define ID3DXConstantTable_GetConstant(p,a,b) (p)->GetConstant(a,b)
+#define ID3DXConstantTable_GetConstantByName(p,a,b) (p)->GetConstantByName(a,b)
+#define ID3DXConstantTable_GetConstantElement(p,a,b) (p)->GetConstantElement(a,b)
+#define ID3DXConstantTable_SetDefaults(p,a) (p)->SetDefaults(a)
+#define ID3DXConstantTable_SetValue(p,a,b,c,d) (p)->SetValue(a,b,c,d)
+#define ID3DXConstantTable_SetBool(p,a,b,c) (p)->SetBool(a,b,c)
+#define ID3DXConstantTable_SetBoolArray(p,a,b,c,d) (p)->SetBoolArray(a,b,c,d)
+#define ID3DXConstantTable_SetInt(p,a,b,c) (p)->SetInt(a,b,c)
+#define ID3DXConstantTable_SetIntArray(p,a,b,c,d) (p)->SetIntArray(a,b,c,d)
+#define ID3DXConstantTable_SetFloat(p,a,b,c) (p)->SetFloat(a,b,c)
+#define ID3DXConstantTable_SetFloatArray(p,a,b,c,d) (p)->SetFloatArray(a,b,c,d)
+#define ID3DXConstantTable_SetVector(p,a,b,c) (p)->SetVector(a,b,c)
+#define ID3DXConstantTable_SetVectorArray(p,a,b,c,d) (p)->SetVectorArray(a,b,c,d)
+#define ID3DXConstantTable_SetMatrix(p,a,b,c) (p)->SetMatrix(a,b,c)
+#define ID3DXConstantTable_SetMatrixArray(p,a,b,c,d) (p)->SetMatrixArray(a,b,c,d)
+#define ID3DXConstantTable_SetMatrixPointerArray(p,a,b,c,d) (p)->SetMatrixPointerArray(a,b,c,d)
+#define ID3DXConstantTable_SetMatrixTranspose(p,a,b,c) (p)->SetMatrixTranspose(a,b,c)
+#define ID3DXConstantTable_SetMatrixTransposeArray(p,a,b,c,d) (p)->SetMatrixTransposeArray(a,b,c,d)
+#define ID3DXConstantTable_SetMatrixTransposePointerArray(p,a,b,c,d) (p)->SetMatrixTransposePointerArray(a,b,c,d)
+#endif
+
+typedef struct ID3DXConstantTable *LPD3DXCONSTANTTABLE;
+
+typedef interface ID3DXTextureShader *LPD3DXTEXTURESHADER;
+
+DEFINE_GUID(IID_ID3DXTextureShader, 0x3e3d67f8, 0xaa7a, 0x405d, 0xa8, 0x57, 0xba, 0x1, 0xd4, 0x75, 0x84, 0x26);
+
+#define INTERFACE ID3DXTextureShader
+DECLARE_INTERFACE_(ID3DXTextureShader, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+ STDMETHOD(GetFunction)(THIS_ struct ID3DXBuffer **ppFunction) PURE;
+ STDMETHOD(GetConstantBuffer)(THIS_ struct ID3DXBuffer **ppConstantBuffer) PURE;
+ STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
+ STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, const char *pName) PURE;
+ STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
+ STDMETHOD(SetDefaults)(THIS) PURE;
+ STDMETHOD(SetValue)(THIS_ D3DXHANDLE hConstant, const void *pData, UINT Bytes) PURE;
+ STDMETHOD(SetBool)(THIS_ D3DXHANDLE hConstant, WINBOOL b) PURE;
+ STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hConstant, const WINBOOL *pb, UINT Count) PURE;
+ STDMETHOD(SetInt)(THIS_ D3DXHANDLE hConstant, INT n) PURE;
+ STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hConstant, const INT *pn, UINT Count) PURE;
+ STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hConstant, FLOAT f) PURE;
+ STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hConstant, const FLOAT *pf, UINT Count) PURE;
+ STDMETHOD(SetVector)(THIS_ D3DXHANDLE hConstant, const D3DXVECTOR4 *pVector) PURE;
+ STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hConstant, const D3DXVECTOR4 *pVector, UINT Count) PURE;
+ STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix) PURE;
+ STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix, UINT Count) PURE;
+ STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX **ppMatrix, UINT Count) PURE;
+ STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix) PURE;
+ STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix, UINT Count) PURE;
+ STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX **ppMatrix, UINT Count) PURE;
+};
+#undef INTERFACE
+
+typedef struct _D3DXMACRO
+{
+ const char *Name;
+ const char *Definition;
+} D3DXMACRO, *LPD3DXMACRO;
+
+typedef struct _D3DXSEMANTIC {
+ UINT Usage;
+ UINT UsageIndex;
+} D3DXSEMANTIC, *LPD3DXSEMANTIC;
+
+typedef enum _D3DXINCLUDE_TYPE
+{
+ D3DXINC_LOCAL,
+ D3DXINC_SYSTEM,
+ D3DXINC_FORCE_DWORD = 0x7fffffff,
+} D3DXINCLUDE_TYPE, *LPD3DXINCLUDE_TYPE;
+
+#define INTERFACE ID3DXInclude
+
+DECLARE_INTERFACE(ID3DXInclude)
+{
+ STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE include_type, const char *filename,
+ const void *parent_data, const void **data, UINT *bytes) PURE;
+ STDMETHOD(Close)(THIS_ const void *data) PURE;
+};
+#undef INTERFACE
+
+#define ID3DXInclude_Open(p,a,b,c,d,e) (p)->lpVtbl->Open(p,a,b,c,d,e)
+#define ID3DXInclude_Close(p,a) (p)->lpVtbl->Close(p,a)
+
+typedef struct ID3DXInclude *LPD3DXINCLUDE;
+
+typedef struct _D3DXFRAGMENT_DESC
+{
+ const char *Name;
+ DWORD Target;
+
+} D3DXFRAGMENT_DESC, *LPD3DXFRAGMENT_DESC;
+
+
+DEFINE_GUID(IID_ID3DXFragmentLinker, 0x1a2c0cc2, 0xe5b6, 0x4ebc, 0x9e, 0x8d, 0x39, 0xe, 0x5, 0x78, 0x11, 0xb6);
+
+#define INTERFACE ID3DXFragmentLinker
+DECLARE_INTERFACE_(ID3DXFragmentLinker, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **ppv) PURE;
+ STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG, Release)(THIS) PURE;
+
+ STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ STDMETHOD_(UINT, GetNumberOfFragments)(THIS) PURE;
+
+ STDMETHOD_(D3DXHANDLE, GetFragmentHandleByIndex)(THIS_ UINT index) PURE;
+ STDMETHOD_(D3DXHANDLE, GetFragmentHandleByName)(THIS_ const char *name) PURE;
+ STDMETHOD(GetFragmentDesc)(THIS_ D3DXHANDLE name, D3DXFRAGMENT_DESC *frag_desc) PURE;
+
+ STDMETHOD(AddFragments)(THIS_ const DWORD *fragments) PURE;
+
+ STDMETHOD(GetAllFragments)(THIS_ ID3DXBuffer **buffer) PURE;
+ STDMETHOD(GetFragment)(THIS_ D3DXHANDLE name, ID3DXBuffer **buffer) PURE;
+
+ STDMETHOD(LinkShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragmenthandles, UINT fragments, ID3DXBuffer **buffer, ID3DXBuffer **errors) PURE;
+ STDMETHOD(LinkVertexShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragment_handles, UINT fragments, IDirect3DVertexShader9 **shader, ID3DXBuffer **errors) PURE;
+ STDMETHOD(LinkPixelShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragment_handles, UINT fragments, IDirect3DPixelShader9 **shader, ID3DXBuffer **errors) PURE;
+
+ STDMETHOD(ClearCache)(THIS) PURE;
+};
+#undef INTERFACE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+const char * WINAPI D3DXGetPixelShaderProfile(struct IDirect3DDevice9 *device);
+UINT WINAPI D3DXGetShaderSize(const DWORD *byte_code);
+DWORD WINAPI D3DXGetShaderVersion(const DWORD *byte_code);
+const char * WINAPI D3DXGetVertexShaderProfile(struct IDirect3DDevice9 *device);
+HRESULT WINAPI D3DXFindShaderComment(const DWORD *byte_code, DWORD fourcc, const void **data, UINT *size);
+HRESULT WINAPI D3DXGetShaderSamplers(const DWORD *byte_code, const char **samplers, UINT *count);
+
+HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+HRESULT WINAPI D3DXAssembleShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+#define D3DXAssembleShaderFromFile __MINGW_NAME_AW(D3DXAssembleShaderFromFile)
+
+HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module, const WCHAR *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+#define D3DXAssembleShaderFromResource __MINGW_NAME_AW(D3DXAssembleShaderFromResource)
+
+HRESULT WINAPI D3DXAssembleShader(const char *data, UINT data_len, const D3DXMACRO *defines,
+ ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+
+HRESULT WINAPI D3DXCompileShader(const char *src_data, UINT data_len, const D3DXMACRO *defines,
+ ID3DXInclude *include, const char *function_name, const char *profile, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+
+HRESULT WINAPI D3DXDisassembleShader(const DWORD *pShader, WINBOOL EnableColorCode, const char *pComments, struct ID3DXBuffer **ppDisassembly);
+
+HRESULT WINAPI D3DXCompileShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+HRESULT WINAPI D3DXCompileShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+#define D3DXCompileShaderFromFile __MINGW_NAME_AW(D3DXCompileShaderFromFile)
+
+HRESULT WINAPI D3DXCompileShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+HRESULT WINAPI D3DXCompileShaderFromResourceW(HMODULE module, const WCHAR *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+ ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+#define D3DXCompileShaderFromResource __MINGW_NAME_AW(D3DXCompileShaderFromResource)
+
+HRESULT WINAPI D3DXPreprocessShader(const char *data, UINT data_len, const D3DXMACRO *defines,
+ ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+
+HRESULT WINAPI D3DXPreprocessShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+HRESULT WINAPI D3DXPreprocessShaderFromFileW(const WCHAR *filename, const D3DXMACRO *defines,
+ ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+#define D3DXPreprocessShaderFromFile __MINGW_NAME_AW(D3DXPreprocessShaderFromFile)
+
+HRESULT WINAPI D3DXPreprocessShaderFromResourceA(HMODULE module, const char *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+HRESULT WINAPI D3DXPreprocessShaderFromResourceW(HMODULE module, const WCHAR *resource, const D3DXMACRO *defines,
+ ID3DXInclude *include, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
+#define D3DXPreprocessShaderFromResource __MINGW_NAME_AW(D3DXPreprocessShaderFromResource)
+
+HRESULT WINAPI D3DXGetShaderConstantTableEx(const DWORD *byte_code, DWORD flags, ID3DXConstantTable **constant_table);
+
+HRESULT WINAPI D3DXGetShaderConstantTable(const DWORD *byte_code, ID3DXConstantTable **constant_table);
+
+HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount);
+HRESULT WINAPI D3DXGetShaderOutputSemantics(const DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount);
+
+HRESULT WINAPI D3DXCreateTextureShader(const DWORD *pFunction, ID3DXTextureShader **ppTextureShader);
+
+HRESULT WINAPI D3DXCreateFragmentLinker(IDirect3DDevice9 *device, UINT size, ID3DXFragmentLinker **linker);
+HRESULT WINAPI D3DXCreateFragmentLinkerEx(IDirect3DDevice9 *device, UINT size, DWORD flags, ID3DXFragmentLinker **linker);
+
+#ifdef __cplusplus
+}
+#endif
+
+typedef struct _D3DXSHADER_CONSTANTTABLE
+{
+ DWORD Size;
+ DWORD Creator;
+ DWORD Version;
+ DWORD Constants;
+ DWORD ConstantInfo;
+ DWORD Flags;
+ DWORD Target;
+} D3DXSHADER_CONSTANTTABLE, *LPD3DXSHADER_CONSTANTTABLE;
+
+typedef struct _D3DXSHADER_CONSTANTINFO
+{
+ DWORD Name;
+ WORD RegisterSet;
+ WORD RegisterIndex;
+ WORD RegisterCount;
+ WORD Reserved;
+ DWORD TypeInfo;
+ DWORD DefaultValue;
+} D3DXSHADER_CONSTANTINFO, *LPD3DXSHADER_CONSTANTINFO;
+
+typedef struct _D3DXSHADER_TYPEINFO
+{
+ WORD Class;
+ WORD Type;
+ WORD Rows;
+ WORD Columns;
+ WORD Elements;
+ WORD StructMembers;
+ DWORD StructMemberInfo;
+} D3DXSHADER_TYPEINFO, *LPD3DXSHADER_TYPEINFO;
+
+typedef struct _D3DXSHADER_STRUCTMEMBERINFO
+{
+ DWORD Name;
+ DWORD TypeInfo;
+} D3DXSHADER_STRUCTMEMBERINFO, *LPD3DXSHADER_STRUCTMEMBERINFO;
+
+#endif /* __D3DX9SHADER_H__ */
diff --git a/d3dx9shape.h b/d3dx9shape.h
new file mode 100644
index 0000000..1dcd40a
--- /dev/null
+++ b/d3dx9shape.h
@@ -0,0 +1,51 @@
+#include <_mingw_unicode.h>
+/*
+ * Copyright 2010 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __D3DX9SHAPE_H__
+#define __D3DX9SHAPE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI D3DXCreateBox(struct IDirect3DDevice9 *device, float width, float height,
+ float depth, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency);
+HRESULT WINAPI D3DXCreateCylinder(struct IDirect3DDevice9 *device, float radius1, float radius2,
+ float length, UINT slices, UINT stacks, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency);
+HRESULT WINAPI D3DXCreatePolygon(struct IDirect3DDevice9 *device, float length, UINT sides, struct ID3DXMesh **mesh,
+ ID3DXBuffer **adjacency);
+HRESULT WINAPI D3DXCreateSphere(struct IDirect3DDevice9 *device, float radius, UINT slices,
+ UINT stacks, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency);
+HRESULT WINAPI D3DXCreateTeapot(struct IDirect3DDevice9 *device,
+ struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency);
+HRESULT WINAPI D3DXCreateTextA(struct IDirect3DDevice9 *device, HDC hdc, const char *text, float deviation,
+ float extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics);
+HRESULT WINAPI D3DXCreateTextW(struct IDirect3DDevice9 *device, HDC hdc, const WCHAR *text, float deviation,
+ FLOAT extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics);
+HRESULT WINAPI D3DXCreateTorus(struct IDirect3DDevice9 *device,
+ float innerradius, float outerradius, UINT sides, UINT rings, struct ID3DXMesh **mesh, ID3DXBuffer **adjacency);
+#define D3DXCreateText __MINGW_NAME_AW(D3DXCreateText)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D3DX9SHAPE_H__ */
diff --git a/d3dx9tex.h b/d3dx9tex.h
new file mode 100644
index 0000000..df8bb2c
--- /dev/null
+++ b/d3dx9tex.h
@@ -0,0 +1,352 @@
+#include <_mingw_unicode.h>
+/*
+ * Copyright (C) 2008 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "d3dx9.h"
+
+#ifndef __WINE_D3DX9TEX_H
+#define __WINE_D3DX9TEX_H
+
+/**********************************************
+ ***************** Definitions ****************
+ **********************************************/
+#define D3DX_FILTER_NONE 0x00000001
+#define D3DX_FILTER_POINT 0x00000002
+#define D3DX_FILTER_LINEAR 0x00000003
+#define D3DX_FILTER_TRIANGLE 0x00000004
+#define D3DX_FILTER_BOX 0x00000005
+#define D3DX_FILTER_MIRROR_U 0x00010000
+#define D3DX_FILTER_MIRROR_V 0x00020000
+#define D3DX_FILTER_MIRROR_W 0x00040000
+#define D3DX_FILTER_MIRROR 0x00070000
+#define D3DX_FILTER_DITHER 0x00080000
+#define D3DX_FILTER_DITHER_DIFFUSION 0x00100000
+#define D3DX_FILTER_SRGB_IN 0x00200000
+#define D3DX_FILTER_SRGB_OUT 0x00400000
+#define D3DX_FILTER_SRGB 0x00600000
+
+#define D3DX_SKIP_DDS_MIP_LEVELS_MASK 0x1f
+#define D3DX_SKIP_DDS_MIP_LEVELS_SHIFT 26
+#define D3DX_SKIP_DDS_MIP_LEVELS(l, f) ((((l) & D3DX_SKIP_DDS_MIP_LEVELS_MASK) \
+ << D3DX_SKIP_DDS_MIP_LEVELS_SHIFT) | ((f) == D3DX_DEFAULT ? D3DX_FILTER_BOX : (f)))
+
+#define D3DX_NORMALMAP_MIRROR_U 0x00010000
+#define D3DX_NORMALMAP_MIRROR_V 0x00020000
+#define D3DX_NORMALMAP_MIRROR 0x00030000
+#define D3DX_NORMALMAP_INVERTSIGN 0x00080000
+#define D3DX_NORMALMAP_COMPUTE_OCCLUSION 0x00100000
+
+#define D3DX_CHANNEL_RED 0x00000001
+#define D3DX_CHANNEL_BLUE 0x00000002
+#define D3DX_CHANNEL_GREEN 0x00000004
+#define D3DX_CHANNEL_ALPHA 0x00000008
+#define D3DX_CHANNEL_LUMINANCE 0x00000010
+
+/**********************************************
+ ****************** Typedefs ******************
+ **********************************************/
+typedef enum _D3DXIMAGE_FILEFORMAT
+{
+ D3DXIFF_BMP,
+ D3DXIFF_JPG,
+ D3DXIFF_TGA,
+ D3DXIFF_PNG,
+ D3DXIFF_DDS,
+ D3DXIFF_PPM,
+ D3DXIFF_DIB,
+ D3DXIFF_HDR,
+ D3DXIFF_PFM,
+ D3DXIFF_FORCE_DWORD = 0x7fffffff
+} D3DXIMAGE_FILEFORMAT;
+
+typedef struct _D3DXIMAGE_INFO
+{
+ UINT Width;
+ UINT Height;
+ UINT Depth;
+ UINT MipLevels;
+ D3DFORMAT Format;
+ D3DRESOURCETYPE ResourceType;
+ D3DXIMAGE_FILEFORMAT ImageFileFormat;
+} D3DXIMAGE_INFO;
+
+/**********************************************
+ ****************** Functions *****************
+ **********************************************/
+/* Typedefs for callback functions */
+typedef void (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, const D3DXVECTOR2 *texcoord,
+ const D3DXVECTOR2 *texelsize, void *data);
+typedef void (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, const D3DXVECTOR3 *texcoord,
+ const D3DXVECTOR3 *texelsize, void *data);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Image Information */
+HRESULT WINAPI D3DXGetImageInfoFromFileA(const char *file, D3DXIMAGE_INFO *info);
+HRESULT WINAPI D3DXGetImageInfoFromFileW(const WCHAR *file, D3DXIMAGE_INFO *info);
+#define D3DXGetImageInfoFromFile __MINGW_NAME_AW(D3DXGetImageInfoFromFile)
+
+HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, const char *resource, D3DXIMAGE_INFO *info);
+HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, const WCHAR *resource, D3DXIMAGE_INFO *info);
+#define D3DXGetImageInfoFromResource __MINGW_NAME_AW(D3DXGetImageInfoFromResource)
+
+HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT data_size, D3DXIMAGE_INFO *info);
+
+
+/* Surface Loading/Saving */
+HRESULT WINAPI D3DXLoadSurfaceFromFileA(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, const char *srcfile,
+ const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+HRESULT WINAPI D3DXLoadSurfaceFromFileW(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, const WCHAR *srcfile,
+ const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+#define D3DXLoadSurfaceFromFile __MINGW_NAME_AW(D3DXLoadSurfaceFromFile)
+
+HRESULT WINAPI D3DXLoadSurfaceFromResourceA(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, HMODULE srcmodule, const char *resource,
+ const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+HRESULT WINAPI D3DXLoadSurfaceFromResourceW(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, HMODULE srcmodule, const WCHAR *resource,
+ const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+#define D3DXLoadSurfaceFromResource __MINGW_NAME_AW(D3DXLoadSurfaceFromResource)
+
+HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, const void *srcdata, UINT srcdatasize,
+ const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+
+HRESULT WINAPI D3DXLoadSurfaceFromSurface(struct IDirect3DSurface9 *destsurface,
+ const PALETTEENTRY *destpalette, const RECT *destrect, struct IDirect3DSurface9 *srcsurface,
+ const PALETTEENTRY *srcpalette, const RECT *srcrect, DWORD filter, D3DCOLOR colorkey);
+
+HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
+ const PALETTEENTRY *dst_palette, const RECT *dst_rect, const void *src_memory,
+ D3DFORMAT src_format, UINT src_pitch, const PALETTEENTRY *src_palette, const RECT *src_rect,
+ DWORD filter, D3DCOLOR color_key);
+
+HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(struct ID3DXBuffer **destbuffer,
+ D3DXIMAGE_FILEFORMAT destformat, struct IDirect3DSurface9 *srcsurface,
+ const PALETTEENTRY *srcpalette, const RECT *srcrect);
+
+HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DSurface9 *srcsurface, const PALETTEENTRY *srcpalette, const RECT *srcrect);
+HRESULT WINAPI D3DXSaveSurfaceToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DSurface9 *srcsurface, const PALETTEENTRY *srcpalette, const RECT *srcrect);
+#define D3DXSaveSurfaceToFile __MINGW_NAME_AW(D3DXSaveSurfaceToFile)
+
+
+/* Volume Loading/Saving */
+HRESULT WINAPI D3DXLoadVolumeFromFileA(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, const char *srcfile,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+HRESULT WINAPI D3DXLoadVolumeFromFileW( struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, const WCHAR *srcfile,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+#define D3DXLoadVolumeFromFile __MINGW_NAME_AW(D3DXLoadVolumeFromFile)
+
+HRESULT WINAPI D3DXLoadVolumeFromResourceA(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, HMODULE srcmodule, const char *resource,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+HRESULT WINAPI D3DXLoadVolumeFromResourceW(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, HMODULE srcmodule, const WCHAR *resource,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+#define D3DXLoadVolumeFromResource __MINGW_NAME_AW(D3DXLoadVolumeFromResource)
+
+HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, const void *srcdata, UINT srcdatasize,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
+
+HRESULT WINAPI D3DXLoadVolumeFromVolume(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, struct IDirect3DVolume9 *srcvolume,
+ const PALETTEENTRY *srcpalette, const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey);
+
+HRESULT WINAPI D3DXLoadVolumeFromMemory(struct IDirect3DVolume9 *destvolume,
+ const PALETTEENTRY *destpalette, const D3DBOX *destbox, const void *srcmemory,
+ D3DFORMAT srcformat, UINT srcrowpitch, UINT srcslicepitch, const PALETTEENTRY *srcpalette,
+ const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey);
+
+HRESULT WINAPI D3DXSaveVolumeToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
+HRESULT WINAPI D3DXSaveVolumeToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
+#define D3DXSaveVolumeToFile __MINGW_NAME_AW(D3DXSaveVolumeToFile)
+
+
+/* Texture, cube texture and volume texture creation */
+HRESULT WINAPI D3DXCheckTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
+ UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
+HRESULT WINAPI D3DXCheckCubeTextureRequirements(struct IDirect3DDevice9 *device, UINT *size,
+ UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
+HRESULT WINAPI D3DXCheckVolumeTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
+ UINT *depth, UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
+
+HRESULT WINAPI D3DXCreateTexture(struct IDirect3DDevice9 *device, UINT width, UINT height,
+ UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateCubeTexture(struct IDirect3DDevice9 *device, UINT size,
+ UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateVolumeTexture(struct IDirect3DDevice9 *device, UINT width, UINT height, UINT depth,
+ UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DVolumeTexture9 **volume);
+
+HRESULT WINAPI D3DXCreateTextureFromFileA(struct IDirect3DDevice9 *device,
+ const char *srcfile, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateTextureFromFileW(struct IDirect3DDevice9 *device,
+ const WCHAR *srcfile, struct IDirect3DTexture9 **texture);
+#define D3DXCreateTextureFromFile __MINGW_NAME_AW(D3DXCreateTextureFromFile)
+
+HRESULT WINAPI D3DXCreateCubeTextureFromFileA(struct IDirect3DDevice9 *device,
+ const char *srcfile, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateCubeTextureFromFileW(struct IDirect3DDevice9 *device,
+ const WCHAR *srcfile, struct IDirect3DCubeTexture9 **cube);
+#define D3DXCreateCubeTextureFromFile __MINGW_NAME_AW(D3DXCreateCubeTextureFromFile)
+
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(struct IDirect3DDevice9 *device,
+ const char *srcfile, struct IDirect3DVolumeTexture9 **volume);
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(struct IDirect3DDevice9 *device,
+ const WCHAR *srcfile, struct IDirect3DVolumeTexture9 **volume);
+#define D3DXCreateVolumeTextureFromFile __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFile)
+
+HRESULT WINAPI D3DXCreateTextureFromResourceA(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const char *resource, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateTextureFromResourceW(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const WCHAR *resource, struct IDirect3DTexture9 **texture);
+#define D3DXCreateTextureFromResource __MINGW_NAME_AW(D3DXCreateTextureFromResource)
+
+HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const char *resource, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const WCHAR *resource, struct IDirect3DCubeTexture9 **cube);
+#define D3DXCreateCubeTextureFromResource __MINGW_NAME_AW(D3DXCreateCubeTextureFromResource)
+
+HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const char *resource, struct IDirect3DVolumeTexture9 **volume);
+HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(struct IDirect3DDevice9 *device,
+ HMODULE srcmodule, const WCHAR *resource, struct IDirect3DVolumeTexture9 **volume);
+#define D3DXCreateVolumeTextureFromResource __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResource)
+
+HRESULT WINAPI D3DXCreateTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
+ UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
+ UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
+#define D3DXCreateTextureFromFileEx __MINGW_NAME_AW(D3DXCreateTextureFromFileEx)
+
+HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
+ UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
+ UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
+#define D3DXCreateCubeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromFileEx)
+
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
+ UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
+ UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
+#define D3DXCreateVolumeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
+
+HRESULT WINAPI D3DXCreateTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const char *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const WCHAR *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
+#define D3DXCreateTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateTextureFromResourceEx)
+
+HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const char *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const WCHAR *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
+#define D3DXCreateCubeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
+
+HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const char *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
+HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
+ const WCHAR *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
+#define D3DXCreateVolumeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
+
+HRESULT WINAPI D3DXCreateTextureFromFileInMemory(struct IDirect3DDevice9 *device,
+ const void *srcdata, UINT srcdatasize, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
+ const void *srcdata, UINT srcdatasize, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
+ const void *srcdata, UINT srcdatasize, struct IDirect3DVolumeTexture9 **volume);
+
+HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
+ UINT srcdatasize, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
+HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
+ UINT srcdatasize, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
+HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
+ UINT srcdatasize, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
+ D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
+ PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
+
+HRESULT WINAPI D3DXSaveTextureToFileInMemory(struct ID3DXBuffer **destbuffer, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
+HRESULT WINAPI D3DXSaveTextureToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
+HRESULT WINAPI D3DXSaveTextureToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
+ struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
+#define D3DXSaveTextureToFile __MINGW_NAME_AW(D3DXSaveTextureToFile)
+
+/* Other functions */
+HRESULT WINAPI D3DXFilterTexture(struct IDirect3DBaseTexture9 *texture,
+ const PALETTEENTRY *palette, UINT srclevel, DWORD filter);
+#define D3DXFilterCubeTexture D3DXFilterTexture
+#define D3DXFilterVolumeTexture D3DXFilterTexture
+
+HRESULT WINAPI D3DXFillTexture(struct IDirect3DTexture9 *texture, LPD3DXFILL2D function, void *data);
+HRESULT WINAPI D3DXFillCubeTexture(struct IDirect3DCubeTexture9 *cube, LPD3DXFILL3D function, void *data);
+HRESULT WINAPI D3DXFillVolumeTexture(struct IDirect3DVolumeTexture9 *volume, LPD3DXFILL3D function, void *data);
+
+HRESULT WINAPI D3DXFillTextureTX(struct IDirect3DTexture9 *texture, ID3DXTextureShader *texture_shader);
+HRESULT WINAPI D3DXFillCubeTextureTX(struct IDirect3DCubeTexture9 *cube, ID3DXTextureShader *texture_shader);
+HRESULT WINAPI D3DXFillVolumeTextureTX(struct IDirect3DVolumeTexture9 *volume, ID3DXTextureShader *texture_shader);
+
+HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *srctexture,
+ const PALETTEENTRY *srcpalette, DWORD flags, DWORD channel, float amplitude);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3DX9TEX_H */
diff --git a/d3dx9xof.h b/d3dx9xof.h
new file mode 100644
index 0000000..a1c94c9
--- /dev/null
+++ b/d3dx9xof.h
@@ -0,0 +1,187 @@
+#undef INTERFACE
+/*
+ * Copyright 2011 Dylan Smith
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_D3DX9XOF_H
+#define __WINE_D3DX9XOF_H
+
+#include "d3dx9.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef DWORD D3DXF_FILEFORMAT;
+#define D3DXF_FILEFORMAT_BINARY 0
+#define D3DXF_FILEFORMAT_TEXT 1
+#define D3DXF_FILEFORMAT_COMPRESSED 2
+
+typedef DWORD D3DXF_FILESAVEOPTIONS;
+#define D3DXF_FILESAVE_TOFILE 0x00
+#define D3DXF_FILESAVE_TOWFILE 0x01
+
+typedef DWORD D3DXF_FILELOADOPTIONS;
+#define D3DXF_FILELOAD_FROMFILE 0x00
+#define D3DXF_FILELOAD_FROMWFILE 0x01
+#define D3DXF_FILELOAD_FROMRESOURCE 0x02
+#define D3DXF_FILELOAD_FROMMEMORY 0x03
+
+typedef struct _D3DXF_FILELOADRESOURCE
+{
+ HMODULE hModule;
+ const char *lpName;
+ const char *lpType;
+} D3DXF_FILELOADRESOURCE;
+
+typedef struct _D3DXF_FILELOADMEMORY
+{
+ const void *lpMemory;
+ SIZE_T dSize;
+} D3DXF_FILELOADMEMORY;
+
+
+#ifndef _NO_COM
+DEFINE_GUID(IID_ID3DXFile, 0xcef08cf9, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01);
+DEFINE_GUID(IID_ID3DXFileSaveObject, 0xcef08cfa, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01);
+DEFINE_GUID(IID_ID3DXFileSaveData, 0xcef08cfb, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01);
+DEFINE_GUID(IID_ID3DXFileEnumObject, 0xcef08cfc, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01);
+DEFINE_GUID(IID_ID3DXFileData, 0xcef08cfd, 0x7b4f, 0x4429, 0x96, 0x24, 0x2a, 0x69, 0x0a, 0x93, 0x32, 0x01);
+#endif /* _NO_COM */
+
+typedef interface ID3DXFile *LPD3DXFILE, **LPLPD3DXFILE;
+typedef interface ID3DXFileSaveObject *LPD3DXFILESAVEOBJECT, **LPLPD3DXFILESAVEOBJECT;
+typedef interface ID3DXFileSaveData *LPD3DXFILESAVEDATA, **LPLPD3DXFILESAVEDATA;
+typedef interface ID3DXFileEnumObject *LPD3DXFILEENUMOBJECT, **LPLPD3DXFILEENUMOBJECT;
+typedef interface ID3DXFileData *LPD3DXFILEDATA, **LPLPD3DXFILEDATA;
+
+STDAPI D3DXFileCreate(struct ID3DXFile **file);
+
+#define INTERFACE ID3DXFile
+DECLARE_INTERFACE_IID_(ID3DXFile,IUnknown,"cef08cf9-7b4f-4429-9624-2a690a933201")
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** ID3DXFile methods ***/
+ STDMETHOD(CreateEnumObject)(THIS_ const void *src, D3DXF_FILELOADOPTIONS type,
+ struct ID3DXFileEnumObject **enum_obj) PURE;
+ STDMETHOD(CreateSaveObject)(THIS_ const void *data, D3DXF_FILESAVEOPTIONS flags,
+ D3DXF_FILEFORMAT format, struct ID3DXFileSaveObject **save_obj) PURE;
+ STDMETHOD(RegisterTemplates)(THIS_ const void *data, SIZE_T data_size) PURE;
+ STDMETHOD(RegisterEnumTemplates)(THIS_ struct ID3DXFileEnumObject *enum_obj) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXFileSaveObject
+DECLARE_INTERFACE_IID_(ID3DXFileSaveObject,IUnknown,"cef08cfa-7b4f-4429-9624-2a690a933201")
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** ID3DXFileSaveObject methods ***/
+ STDMETHOD(GetFile)(THIS_ ID3DXFile **file) PURE;
+ STDMETHOD(AddDataObject)(THIS_ REFGUID template_guid, const char *name, const GUID *guid,
+ SIZE_T data_size, const void *data, struct ID3DXFileSaveData **obj) PURE;
+ STDMETHOD(Save)(THIS) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXFileSaveData
+DECLARE_INTERFACE_IID_(ID3DXFileSaveData,IUnknown,"cef08cfb-7b4f-4429-9624-2a690a933201")
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** ID3DXFileSaveObject methods ***/
+ STDMETHOD(GetSave)(THIS_ ID3DXFileSaveObject **save_obj) PURE;
+ STDMETHOD(GetName)(THIS_ char *name, SIZE_T *size) PURE;
+ STDMETHOD(GetId)(THIS_ LPGUID) PURE;
+ STDMETHOD(GetType)(THIS_ GUID*) PURE;
+ STDMETHOD(AddDataObject)(THIS_ REFGUID template_guid, const char *name, const GUID *guid,
+ SIZE_T data_size, const void *data, ID3DXFileSaveData **obj) PURE;
+ STDMETHOD(AddDataReference)(THIS_ const char *name, const GUID *id) PURE;
+};
+#undef INTERFACE
+
+
+#define INTERFACE ID3DXFileEnumObject
+DECLARE_INTERFACE_IID_(ID3DXFileEnumObject,IUnknown,"cef08cfc-7b4f-4429-9624-2a690a933201")
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** ID3DXFileEnumObject methods ***/
+ STDMETHOD(GetFile)(THIS_ ID3DXFile **file) PURE;
+ STDMETHOD(GetChildren)(THIS_ SIZE_T*) PURE;
+ STDMETHOD(GetChild)(THIS_ SIZE_T id, struct ID3DXFileData **child) PURE;
+ STDMETHOD(GetDataObjectById)(THIS_ REFGUID guid, struct ID3DXFileData **obj) PURE;
+ STDMETHOD(GetDataObjectByName)(THIS_ const char *name, struct ID3DXFileData **obj) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE ID3DXFileData
+DECLARE_INTERFACE_IID_(ID3DXFileData,IUnknown,"cef08cfd-7b4f-4429-9624-2a690a933201")
+{
+ /*** IUnknown methods ***/
+ STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **out) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** ID3DXFileData methods ***/
+ STDMETHOD(GetEnum)(THIS_ ID3DXFileEnumObject **enum_obj) PURE;
+ STDMETHOD(GetName)(THIS_ char *name, SIZE_T *size) PURE;
+ STDMETHOD(GetId)(THIS_ LPGUID) PURE;
+ STDMETHOD(Lock)(THIS_ SIZE_T *data_size, const void **data) PURE;
+ STDMETHOD(Unlock)(THIS) PURE;
+ STDMETHOD(GetType)(THIS_ GUID*) PURE;
+ STDMETHOD_(WINBOOL,IsReference)(THIS) PURE;
+ STDMETHOD(GetChildren)(THIS_ SIZE_T*) PURE;
+ STDMETHOD(GetChild)(THIS_ SIZE_T id, ID3DXFileData **child) PURE;
+};
+#undef INTERFACE
+
+/* D3DX File errors */
+#define _FACD3DXF 0x876
+
+#define D3DXFERR_BADOBJECT MAKE_HRESULT(1,_FACD3DXF,900)
+#define D3DXFERR_BADVALUE MAKE_HRESULT(1,_FACD3DXF,901)
+#define D3DXFERR_BADTYPE MAKE_HRESULT(1,_FACD3DXF,902)
+#define D3DXFERR_NOTFOUND MAKE_HRESULT(1,_FACD3DXF,903)
+#define D3DXFERR_NOTDONEYET MAKE_HRESULT(1,_FACD3DXF,904)
+#define D3DXFERR_FILENOTFOUND MAKE_HRESULT(1,_FACD3DXF,905)
+#define D3DXFERR_RESOURCENOTFOUND MAKE_HRESULT(1,_FACD3DXF,906)
+#define D3DXFERR_BADRESOURCE MAKE_HRESULT(1,_FACD3DXF,907)
+#define D3DXFERR_BADFILETYPE MAKE_HRESULT(1,_FACD3DXF,908)
+#define D3DXFERR_BADFILEVERSION MAKE_HRESULT(1,_FACD3DXF,909)
+#define D3DXFERR_BADFILEFLOATSIZE MAKE_HRESULT(1,_FACD3DXF,910)
+#define D3DXFERR_BADFILE MAKE_HRESULT(1,_FACD3DXF,911)
+#define D3DXFERR_PARSEERROR MAKE_HRESULT(1,_FACD3DXF,912)
+#define D3DXFERR_BADARRAYSIZE MAKE_HRESULT(1,_FACD3DXF,913)
+#define D3DXFERR_BADDATAREFERENCE MAKE_HRESULT(1,_FACD3DXF,914)
+#define D3DXFERR_NOMOREOBJECTS MAKE_HRESULT(1,_FACD3DXF,915)
+#define D3DXFERR_NOMOREDATA MAKE_HRESULT(1,_FACD3DXF,916)
+#define D3DXFERR_BADCACHEFILE MAKE_HRESULT(1,_FACD3DXF,917)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_D3DX9XOF_H */
diff --git a/dxdiag.h b/dxdiag.h
new file mode 100644
index 0000000..6f42979
--- /dev/null
+++ b/dxdiag.h
@@ -0,0 +1,156 @@
+#undef INTERFACE
+/*
+ * Copyright (C) 2004 Raphael Junqueira
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_DXDIAG_H
+#define __WINE_DXDIAG_H
+
+#include <ole2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+/*****************************************************************************
+ * #defines and error codes
+ */
+#define DXDIAG_DX9_SDK_VERSION 111
+
+#define _FACDXDIAG 0x007
+#define MAKE_DXDIAGHRESULT( code ) MAKE_HRESULT( 1, _FACDXDIAG, code )
+
+/*
+ * DXDiag Errors
+ */
+#define DXDIAG_E_INSUFFICIENT_BUFFER MAKE_DXDIAGHRESULT(0x007A)
+
+
+/*****************************************************************************
+ * DXDiag structures Typedefs
+ */
+typedef struct _DXDIAG_INIT_PARAMS {
+ DWORD dwSize;
+ DWORD dwDxDiagHeaderVersion;
+ WINBOOL bAllowWHQLChecks;
+ VOID* pReserved;
+} DXDIAG_INIT_PARAMS;
+
+
+/*****************************************************************************
+ * Predeclare the interfaces
+ */
+/* CLSIDs */
+DEFINE_GUID(CLSID_DxDiagProvider, 0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
+
+/* IIDs */
+DEFINE_GUID(IID_IDxDiagProvider, 0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
+DEFINE_GUID(IID_IDxDiagContainer, 0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
+
+/* typedef definitions */
+typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER;
+typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER;
+
+/*****************************************************************************
+ * IDxDiagContainer interface
+ */
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetProp
+#endif
+
+#define INTERFACE IDxDiagContainer
+DECLARE_INTERFACE_(IDxDiagContainer,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDxDiagContainer methods ***/
+ STDMETHOD(GetNumberOfChildContainers)(THIS_ DWORD* pdwCount) PURE;
+ STDMETHOD(EnumChildContainerNames)(THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE;
+ STDMETHOD(GetChildContainer)(THIS_ LPCWSTR pwszContainer, IDxDiagContainer** ppInstance) PURE;
+ STDMETHOD(GetNumberOfProps)(THIS_ DWORD* pdwCount) PURE;
+ STDMETHOD(EnumPropNames)(THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE;
+ STDMETHOD(GetProp)(THIS_ LPCWSTR pwszPropName, VARIANT* pvarProp) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
+/*** IDxDiagContainer methods ***/
+#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
+#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
+#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
+#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
+#define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->lpVtbl->EnumPropNames(p,a,b,c)
+#define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)
+#else
+/*** IUnknown methods ***/
+#define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDxDiagContainer_AddRef(p) (p)->AddRef()
+#define IDxDiagContainer_Release(p) (p)->Release()
+/*** IDxDiagContainer methods ***/
+#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(a)
+#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(a,b,c)
+#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(a,b)
+#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(a)
+#define IDxDiagContainer_EnumPropNames(p,a,b,c) (p)->EnumPropNames(a,b,c)
+#define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(a,b)
+#endif
+
+/*****************************************************************************
+ * IDxDiagProvider interface
+ */
+#define INTERFACE IDxDiagProvider
+DECLARE_INTERFACE_(IDxDiagProvider,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDxDiagProvider methods ***/
+ STDMETHOD(Initialize)(THIS_ DXDIAG_INIT_PARAMS* pParams) PURE;
+ STDMETHOD(GetRootContainer)(THIS_ IDxDiagContainer** ppInstance) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
+/*** IDxDiagProvider methods ***/
+#define IDxDiagProvider_Initialize(p,a) (p)->lpVtbl->Initialize(p,a)
+#define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
+#else
+/*** IUnknown methods ***/
+#define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IDxDiagProvider_AddRef(p) (p)->AddRef()
+#define IDxDiagProvider_Release(p) (p)->Release()
+/*** IDxDiagProvider methods ***/
+#define IDxDiagProvider_Initialize(p,a) (p)->Initialize(a)
+#define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(a)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/dxerr8.h b/dxerr8.h
new file mode 100644
index 0000000..a74a73c
--- /dev/null
+++ b/dxerr8.h
@@ -0,0 +1,53 @@
+#include <_mingw_unicode.h>
+/*
+ * Copyright (C) 2004 Robert Reif
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_DXERR8_H
+#define __WINE_DXERR8_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+const char* WINAPI DXGetErrorString8A(HRESULT hr);
+const WCHAR* WINAPI DXGetErrorString8W(HRESULT hr);
+#define DXGetErrorString8 __MINGW_NAME_AW(DXGetErrorString8)
+
+const char* WINAPI DXGetErrorDescription8A(HRESULT hr);
+const WCHAR* WINAPI DXGetErrorDescription8W(HRESULT hr);
+#define DXGetErrorDescription8 __MINGW_NAME_AW(DXGetErrorDescription8)
+
+HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, WINBOOL bPopMsgBox);
+HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, WINBOOL bPopMsgBox);
+#define DXTrace __MINGW_NAME_AW(DXTrace)
+
+#if defined(DEBUG) || defined(_DEBUG)
+#define DXTRACE_MSG(str) DXTrace(__FILE__, (DWORD)__LINE__, 0, str, FALSE)
+#define DXTRACE_ERR(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, TRUE)
+#define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, FALSE)
+#else
+#define DXTRACE_MSG(str) __MSABI_LONG(0)
+#define DXTRACE_ERR(str,hr) (hr)
+#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr)
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif /* __WINE_DXERR8_H */
diff --git a/dxerr9.h b/dxerr9.h
new file mode 100644
index 0000000..cd766b2
--- /dev/null
+++ b/dxerr9.h
@@ -0,0 +1,53 @@
+#include <_mingw_unicode.h>
+/*
+ * Copyright (C) 2004 Robert Reif
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_DXERR9_H
+#define __WINE_DXERR9_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+const char* WINAPI DXGetErrorString9A(HRESULT hr);
+const WCHAR* WINAPI DXGetErrorString9W(HRESULT hr);
+#define DXGetErrorString9 __MINGW_NAME_AW(DXGetErrorString9)
+
+const char* WINAPI DXGetErrorDescription9A(HRESULT hr);
+const WCHAR* WINAPI DXGetErrorDescription9W(HRESULT hr);
+#define DXGetErrorDescription9 __MINGW_NAME_AW(DXGetErrorDescription9)
+
+HRESULT WINAPI DXTraceA(const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, WINBOOL bPopMsgBox);
+HRESULT WINAPI DXTraceW(const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, WINBOOL bPopMsgBox);
+#define DXTrace __MINGW_NAME_AW(DXTrace)
+
+#if defined(DEBUG) || defined(_DEBUG)
+#define DXTRACE_MSG(str) DXTrace(__FILE__, (DWORD)__LINE__, 0, str, FALSE)
+#define DXTRACE_ERR(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, TRUE)
+#define DXTRACE_ERR_NOMSGBOX(str,hr) DXTrace(__FILE__, (DWORD)__LINE__, hr, str, FALSE)
+#else
+#define DXTRACE_MSG(str) __MSABI_LONG(0)
+#define DXTRACE_ERR(str,hr) (hr)
+#define DXTRACE_ERR_NOMSGBOX(str,hr) (hr)
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif /* __WINE_DXERR9_H */
diff --git a/dxfile.h b/dxfile.h
new file mode 100644
index 0000000..a728506
--- /dev/null
+++ b/dxfile.h
@@ -0,0 +1,300 @@
+#undef INTERFACE
+/*
+ * Copyright 2004 Christian Costa
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_DXFILE_H
+#define __WINE_DXFILE_H
+
+#include <objbase.h>
+#include <winnt.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+typedef DWORD DXFILEFORMAT;
+
+#define DXFILEFORMAT_BINARY 0
+#define DXFILEFORMAT_TEXT 1
+#define DXFILEFORMAT_COMPRESSED 2
+
+typedef DWORD DXFILELOADOPTIONS;
+
+#define DXFILELOAD_FROMFILE __MSABI_LONG(0x00)
+#define DXFILELOAD_FROMRESOURCE __MSABI_LONG(0x01)
+#define DXFILELOAD_FROMMEMORY __MSABI_LONG(0x02)
+#define DXFILELOAD_FROMSTREAM __MSABI_LONG(0x04)
+#define DXFILELOAD_FROMURL __MSABI_LONG(0x08)
+
+typedef struct _DXFILELOADRESOURCE {
+ HMODULE hModule;
+ LPCSTR /*LPCTSTR*/ lpName;
+ LPCSTR /*LPCTSTR*/ lpType;
+} DXFILELOADRESOURCE, *LPDXFILELOADRESOURCE;
+
+typedef struct _DXFILELOADMEMORY {
+ LPVOID lpMemory;
+ DWORD dSize;
+} DXFILELOADMEMORY, *LPDXFILELOADMEMORY;
+
+typedef struct IDirectXFile *LPDIRECTXFILE;
+typedef struct IDirectXFileEnumObject *LPDIRECTXFILEENUMOBJECT;
+typedef struct IDirectXFileSaveObject *LPDIRECTXFILESAVEOBJECT;
+typedef struct IDirectXFileObject *LPDIRECTXFILEOBJECT;
+typedef struct IDirectXFileData *LPDIRECTXFILEDATA;
+typedef struct IDirectXFileDataReference *LPDIRECTXFILEDATAREFERENCE;
+typedef struct IDirectXFileBinary *LPDIRECTXFILEBINARY;
+
+STDAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile);
+
+#define INTERFACE IDirectXFile
+DECLARE_INTERFACE_(IDirectXFile,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirectXFile methods ***/
+ STDMETHOD(CreateEnumObject) (THIS_ LPVOID, DXFILELOADOPTIONS, LPDIRECTXFILEENUMOBJECT *) PURE;
+ STDMETHOD(CreateSaveObject) (THIS_ LPCSTR, DXFILEFORMAT, LPDIRECTXFILESAVEOBJECT *) PURE;
+ STDMETHOD(RegisterTemplates) (THIS_ LPVOID, DWORD) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFile_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFile_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFile methods ***/
+#define IDirectXFile_CreateEnumObject(p,a,b,c) (p)->lpVtbl->CreateEnumObject(p,a,b,c)
+#define IDirectXFile_CreateSaveObject(p,a,b,c) (p)->lpVtbl->CreateSaveObject(p,a,b,c)
+#define IDirectXFile_RegisterTemplates(p,a,b) (p)->lpVtbl->RegisterTemplates(p,a,b)
+#endif
+
+#define INTERFACE IDirectXFileEnumObject
+DECLARE_INTERFACE_(IDirectXFileEnumObject,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirectXFileEnumObject methods ***/
+ STDMETHOD(GetNextDataObject) (THIS_ LPDIRECTXFILEDATA *) PURE;
+ STDMETHOD(GetDataObjectById) (THIS_ REFGUID, LPDIRECTXFILEDATA *) PURE;
+ STDMETHOD(GetDataObjectByName) (THIS_ LPCSTR, LPDIRECTXFILEDATA *) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileEnumObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileEnumObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileEnumObject_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileEnumObject methods ***/
+#define IDirectXFileEnumObject_GetNextDataObject(p,a) (p)->lpVtbl->GetNextDataObject(p,a)
+#define IDirectXFileEnumObject_GetDataObjectById(p,a,b) (p)->lpVtbl->GetDataObjectById(p,a,b)
+#define IDirectXFileEnumObject_GetDataObjectByName(p,a,b) (p)->lpVtbl->GetDataObjectByName(p,a,b)
+#endif
+
+#define INTERFACE IDirectXFileSaveObject
+DECLARE_INTERFACE_(IDirectXFileSaveObject,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IDirectXFileSaveObject methods ***/
+ STDMETHOD(SaveTemplates) (THIS_ DWORD, const GUID **) PURE;
+ STDMETHOD(CreateDataObject) (THIS_ REFGUID, LPCSTR, const GUID *, DWORD, LPVOID, LPDIRECTXFILEDATA *) PURE;
+ STDMETHOD(SaveData) (THIS_ LPDIRECTXFILEDATA) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileSaveObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileSaveObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileSaveObject_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileSaveObject methods ***/
+#define IDirectXFileSaveObject_SaveTemplates(p,a,b) (p)->lpVtbl->SaveTemplates(p,a,b)
+#define IDirectXFileSaveObject_CreateDataObject(p,a,b,c,d,e,f) (p)->lpVtbl->CreateDataObject(p,a,b,c,d,e,f)
+#define IDirectXFileSaveObject_SaveData(p,a) (p)->lpVtbl->SaveData(p,a)
+#endif
+
+#define IUNKNOWN_METHODS(kind) \
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) kind; \
+ STDMETHOD_(ULONG,AddRef)(THIS) kind; \
+ STDMETHOD_(ULONG,Release)(THIS) kind
+
+#define IDIRECTXFILEOBJECT_METHODS(kind) \
+ STDMETHOD(GetName) (THIS_ LPSTR, LPDWORD) kind; \
+ STDMETHOD(GetId) (THIS_ LPGUID) kind
+
+#define INTERFACE IDirectXFileObject
+DECLARE_INTERFACE_(IDirectXFileObject,IUnknown)
+{
+ IUNKNOWN_METHODS(PURE);
+ IDIRECTXFILEOBJECT_METHODS(PURE);
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileObject_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileObject methods ***/
+#define IDirectXFileObject_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirectXFileObject_GetId(p,a) (p)->lpVtbl->GetId(p,a)
+#endif
+
+#define INTERFACE IDirectXFileData
+DECLARE_INTERFACE_(IDirectXFileData,IDirectXFileObject)
+{
+ IUNKNOWN_METHODS(PURE);
+ IDIRECTXFILEOBJECT_METHODS(PURE);
+ /*** IDirectXFileData methods ***/
+ STDMETHOD(GetData) (THIS_ LPCSTR, DWORD *, void **) PURE;
+ STDMETHOD(GetType) (THIS_ const GUID **) PURE;
+ STDMETHOD(GetNextObject) (THIS_ LPDIRECTXFILEOBJECT *) PURE;
+ STDMETHOD(AddDataObject) (THIS_ LPDIRECTXFILEDATA) PURE;
+ STDMETHOD(AddDataReference) (THIS_ LPCSTR, const GUID *) PURE;
+ STDMETHOD(AddBinaryObject) (THIS_ LPCSTR, const GUID *, LPCSTR, LPVOID, DWORD) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileData_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileData_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileObject methods ***/
+#define IDirectXFileData_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirectXFileData_GetId(p,a) (p)->lpVtbl->GetId(p,a)
+ /*** IDirectXFileData methods ***/
+#define IDirectXFileData_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
+#define IDirectXFileData_GetType(p,a) (p)->lpVtbl->GetType(p,a)
+#define IDirectXFileData_GetNextObject(p,a) (p)->lpVtbl->GetNextObject(p,a)
+#define IDirectXFileData_AddDataObject(p,a) (p)->lpVtbl->AddDataObject(p,a)
+#define IDirectXFileData_AddDataReference(p,a,b) (p)->lpVtbl->AddDataReference(p,a,b)
+#define IDirectXFileData_AddBinaryObject(p,a,b,c,d,e) (p)->lpVtbl->AddBinaryObject(p,a,b,c,d,e)
+#endif
+
+#define INTERFACE IDirectXFileDataReference
+DECLARE_INTERFACE_(IDirectXFileDataReference,IDirectXFileObject)
+{
+ IUNKNOWN_METHODS(PURE);
+ IDIRECTXFILEOBJECT_METHODS(PURE);
+ /*** IDirectXFileDataReference methods ***/
+ STDMETHOD(Resolve) (THIS_ LPDIRECTXFILEDATA *) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileDataReference_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileDataReference_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileDataReference_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileObject methods ***/
+#define IDirectXFileDataReference_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirectXFileDataReference_GetId(p,a) (p)->lpVtbl->GetId(p,a)
+ /*** IDirectXFileDataReference methods ***/
+#define IDirectXFileDataReference_Resolve(p,a) (p)->lpVtbl->Resolve(p,a)
+#endif
+
+#define INTERFACE IDirectXFileBinary
+DECLARE_INTERFACE_(IDirectXFileBinary,IDirectXFileObject)
+{
+ IUNKNOWN_METHODS(PURE);
+ IDIRECTXFILEOBJECT_METHODS(PURE);
+ /*** IDirectXFileBinary methods ***/
+ STDMETHOD(GetSize) (THIS_ DWORD *) PURE;
+ STDMETHOD(GetMimeType) (THIS_ LPCSTR *) PURE;
+ STDMETHOD(Read) (THIS_ LPVOID, DWORD, LPDWORD) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+#define IDirectXFileBinary_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDirectXFileBinary_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDirectXFileBinary_Release(p) (p)->lpVtbl->Release(p)
+ /*** IDirectXFileObject methods ***/
+#define IDirectXFileBinary_GetName(p,a,b) (p)->lpVtbl->GetName(p,a,b)
+#define IDirectXFileBinary_GetId(p,a) (p)->lpVtbl->GetId(p,a)
+ /*** IDirectXFileBinary methods ***/
+#define IDirectXFileBinary_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
+#define IDirectXFileBinary_GetMimeType(p,a) (p)->lpVtbl->GetMimeType(p,a)
+#define IDirectXFileBinary_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
+#endif
+
+/* DirectXFile Object CLSID */
+DEFINE_GUID(CLSID_CDirectXFile, 0x4516ec43, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
+
+/* DirectX File Interface GUIDs */
+DEFINE_GUID(IID_IDirectXFile, 0x3d82ab40, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileEnumObject, 0x3d82ab41, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileSaveObject, 0x3d82ab42, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileObject, 0x3d82ab43, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileData, 0x3d82ab44, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileDataReference, 0x3d82ab45, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+DEFINE_GUID(IID_IDirectXFileBinary, 0x3d82ab46, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+
+/* DirectX File Header template's GUID */
+DEFINE_GUID(TID_DXFILEHeader, 0x3d82ab43, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33);
+
+/* DirectX File errors */
+#define _FACDD 0x876
+#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
+
+#define DXFILE_OK 0
+
+#define DXFILEERR_BADOBJECT MAKE_DDHRESULT(850)
+#define DXFILEERR_BADVALUE MAKE_DDHRESULT(851)
+#define DXFILEERR_BADTYPE MAKE_DDHRESULT(852)
+#define DXFILEERR_BADSTREAMHANDLE MAKE_DDHRESULT(853)
+#define DXFILEERR_BADALLOC MAKE_DDHRESULT(854)
+#define DXFILEERR_NOTFOUND MAKE_DDHRESULT(855)
+#define DXFILEERR_NOTDONEYET MAKE_DDHRESULT(856)
+#define DXFILEERR_FILENOTFOUND MAKE_DDHRESULT(857)
+#define DXFILEERR_RESOURCENOTFOUND MAKE_DDHRESULT(858)
+#define DXFILEERR_URLNOTFOUND MAKE_DDHRESULT(859)
+#define DXFILEERR_BADRESOURCE MAKE_DDHRESULT(860)
+#define DXFILEERR_BADFILETYPE MAKE_DDHRESULT(861)
+#define DXFILEERR_BADFILEVERSION MAKE_DDHRESULT(862)
+#define DXFILEERR_BADFILEFLOATSIZE MAKE_DDHRESULT(863)
+#define DXFILEERR_BADFILECOMPRESSIONTYPE MAKE_DDHRESULT(864)
+#define DXFILEERR_BADFILE MAKE_DDHRESULT(865)
+#define DXFILEERR_PARSEERROR MAKE_DDHRESULT(866)
+#define DXFILEERR_NOTEMPLATE MAKE_DDHRESULT(867)
+#define DXFILEERR_BADARRAYSIZE MAKE_DDHRESULT(868)
+#define DXFILEERR_BADDATAREFERENCE MAKE_DDHRESULT(869)
+#define DXFILEERR_INTERNALERROR MAKE_DDHRESULT(870)
+#define DXFILEERR_NOMOREOBJECTS MAKE_DDHRESULT(871)
+#define DXFILEERR_BADINTRINSICS MAKE_DDHRESULT(872)
+#define DXFILEERR_NOMORESTREAMHANDLES MAKE_DDHRESULT(873)
+#define DXFILEERR_NOMOREDATA MAKE_DDHRESULT(874)
+#define DXFILEERR_BADCACHEFILE MAKE_DDHRESULT(875)
+#define DXFILEERR_NOINTERNET MAKE_DDHRESULT(876)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif /* __WINE_DXFILE_H */
diff --git a/dxgi.h b/dxgi.h
new file mode 100644
index 0000000..d171527
--- /dev/null
+++ b/dxgi.h
@@ -0,0 +1,2683 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi_h__
+#define __dxgi_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIObject_FWD_DEFINED__
+#define __IDXGIObject_FWD_DEFINED__
+typedef interface IDXGIObject IDXGIObject;
+#ifdef __cplusplus
+interface IDXGIObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDeviceSubObject_FWD_DEFINED__
+#define __IDXGIDeviceSubObject_FWD_DEFINED__
+typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject;
+#ifdef __cplusplus
+interface IDXGIDeviceSubObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIResource_FWD_DEFINED__
+#define __IDXGIResource_FWD_DEFINED__
+typedef interface IDXGIResource IDXGIResource;
+#ifdef __cplusplus
+interface IDXGIResource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIKeyedMutex_FWD_DEFINED__
+#define __IDXGIKeyedMutex_FWD_DEFINED__
+typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
+#ifdef __cplusplus
+interface IDXGIKeyedMutex;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISurface_FWD_DEFINED__
+#define __IDXGISurface_FWD_DEFINED__
+typedef interface IDXGISurface IDXGISurface;
+#ifdef __cplusplus
+interface IDXGISurface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISurface1_FWD_DEFINED__
+#define __IDXGISurface1_FWD_DEFINED__
+typedef interface IDXGISurface1 IDXGISurface1;
+#ifdef __cplusplus
+interface IDXGISurface1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput_FWD_DEFINED__
+#define __IDXGIOutput_FWD_DEFINED__
+typedef interface IDXGIOutput IDXGIOutput;
+#ifdef __cplusplus
+interface IDXGIOutput;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIAdapter_FWD_DEFINED__
+#define __IDXGIAdapter_FWD_DEFINED__
+typedef interface IDXGIAdapter IDXGIAdapter;
+#ifdef __cplusplus
+interface IDXGIAdapter;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISwapChain_FWD_DEFINED__
+#define __IDXGISwapChain_FWD_DEFINED__
+typedef interface IDXGISwapChain IDXGISwapChain;
+#ifdef __cplusplus
+interface IDXGISwapChain;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory_FWD_DEFINED__
+#define __IDXGIFactory_FWD_DEFINED__
+typedef interface IDXGIFactory IDXGIFactory;
+#ifdef __cplusplus
+interface IDXGIFactory;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDevice_FWD_DEFINED__
+#define __IDXGIDevice_FWD_DEFINED__
+typedef interface IDXGIDevice IDXGIDevice;
+#ifdef __cplusplus
+interface IDXGIDevice;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIAdapter1_FWD_DEFINED__
+#define __IDXGIAdapter1_FWD_DEFINED__
+typedef interface IDXGIAdapter1 IDXGIAdapter1;
+#ifdef __cplusplus
+interface IDXGIAdapter1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDevice1_FWD_DEFINED__
+#define __IDXGIDevice1_FWD_DEFINED__
+typedef interface IDXGIDevice1 IDXGIDevice1;
+#ifdef __cplusplus
+interface IDXGIDevice1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory1_FWD_DEFINED__
+#define __IDXGIFactory1_FWD_DEFINED__
+typedef interface IDXGIFactory1 IDXGIFactory1;
+#ifdef __cplusplus
+interface IDXGIFactory1;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <dxgitype.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define _FACDXGI (0x87a)
+
+#define MAKE_DXGI_STATUS(x) MAKE_HRESULT(0, _FACDXGI, x)
+#define MAKE_DXGI_HRESULT(x) MAKE_HRESULT(1, _FACDXGI, x)
+#if 0
+typedef HANDLE HMONITOR;
+typedef struct _LUID {
+ DWORD LowPart;
+ LONG HighPart;
+} LUID;
+typedef struct _LUID *PLUID;
+#endif
+#define DXGI_CPU_ACCESS_NONE (0)
+
+#define DXGI_CPU_ACCESS_DYNAMIC (1)
+
+#define DXGI_CPU_ACCESS_READ_WRITE (2)
+
+#define DXGI_CPU_ACCESS_SCRATCH (3)
+
+#define DXGI_CPU_ACCESS_FIELD (15)
+
+typedef UINT DXGI_USAGE;
+#define DXGI_USAGE_SHADER_INPUT (0x10)
+
+#define DXGI_USAGE_RENDER_TARGET_OUTPUT (0x20)
+
+#define DXGI_USAGE_BACK_BUFFER (0x40)
+
+#define DXGI_USAGE_SHARED (0x80)
+
+#define DXGI_USAGE_READ_ONLY (0x100)
+
+#define DXGI_USAGE_DISCARD_ON_PRESENT (0x200)
+
+#define DXGI_USAGE_UNORDERED_ACCESS (0x400)
+
+#define DXGI_ENUM_MODES_INTERLACED (1)
+
+#define DXGI_ENUM_MODES_SCALING (2)
+
+#define DXGI_RESOURCE_PRIORITY_MINIMUM (0x28000000)
+
+#define DXGI_RESOURCE_PRIORITY_LOW (0x50000000)
+
+#define DXGI_RESOURCE_PRIORITY_NORMAL (0x78000000)
+
+#define DXGI_RESOURCE_PRIORITY_HIGH (0xa0000000)
+
+#define DXGI_RESOURCE_PRIORITY_MAXIMUM (0xc8000000)
+
+#define DXGI_MAP_READ (0x1)
+
+#define DXGI_MAP_WRITE (0x2)
+
+#define DXGI_MAP_DISCARD (0x4)
+
+typedef enum DXGI_SWAP_EFFECT {
+ DXGI_SWAP_EFFECT_DISCARD = 0,
+ DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
+ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3,
+ DXGI_SWAP_EFFECT_FLIP_DISCARD = 4
+} DXGI_SWAP_EFFECT;
+typedef enum DXGI_RESIDENCY {
+ DXGI_RESIDENCY_FULLY_RESIDENT = 1,
+ DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2,
+ DXGI_RESIDENCY_EVICTED_TO_DISK = 3
+} DXGI_RESIDENCY;
+typedef struct DXGI_SURFACE_DESC {
+ UINT Width;
+ UINT Height;
+ DXGI_FORMAT Format;
+ DXGI_SAMPLE_DESC SampleDesc;
+} DXGI_SURFACE_DESC;
+typedef struct DXGI_MAPPED_RECT {
+ INT Pitch;
+ BYTE *pBits;
+} DXGI_MAPPED_RECT;
+typedef struct DXGI_OUTPUT_DESC {
+ WCHAR DeviceName[32];
+ RECT DesktopCoordinates;
+ WINBOOL AttachedToDesktop;
+ DXGI_MODE_ROTATION Rotation;
+ HMONITOR Monitor;
+} DXGI_OUTPUT_DESC;
+typedef struct DXGI_FRAME_STATISTICS {
+ UINT PresentCount;
+ UINT PresentRefreshCount;
+ UINT SyncRefreshCount;
+ LARGE_INTEGER SyncQPCTime;
+ LARGE_INTEGER SyncGPUTime;
+} DXGI_FRAME_STATISTICS;
+typedef struct DXGI_ADAPTER_DESC {
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+} DXGI_ADAPTER_DESC;
+typedef enum DXGI_SWAP_CHAIN_FLAG {
+ DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 0x1,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 0x2,
+ DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 0x4,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 0x8,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 0x10,
+ DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 0x20,
+ DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 0x40,
+ DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 0x80,
+ DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 0x100,
+ DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 0x200,
+ DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 0x400,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 0x800,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 0x1000
+} DXGI_SWAP_CHAIN_FLAG;
+typedef struct DXGI_SWAP_CHAIN_DESC {
+ DXGI_MODE_DESC BufferDesc;
+ DXGI_SAMPLE_DESC SampleDesc;
+ DXGI_USAGE BufferUsage;
+ UINT BufferCount;
+ HWND OutputWindow;
+ WINBOOL Windowed;
+ DXGI_SWAP_EFFECT SwapEffect;
+ UINT Flags;
+} DXGI_SWAP_CHAIN_DESC;
+typedef struct DXGI_SHARED_RESOURCE {
+ HANDLE Handle;
+} DXGI_SHARED_RESOURCE;
+/*****************************************************************************
+ * IDXGIObject interface
+ */
+#ifndef __IDXGIObject_INTERFACE_DEFINED__
+#define __IDXGIObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b,0xe0, 0x28,0xeb,0x43,0xa6,0x7a,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
+IDXGIObject : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
+ REFGUID guid,
+ UINT data_size,
+ const void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
+ REFGUID guid,
+ const IUnknown *object) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
+ REFGUID guid,
+ UINT *data_size,
+ void *data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetParent(
+ REFIID riid,
+ void **parent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b,0xe0, 0x28,0xeb,0x43,0xa6,0x7a,0x2e)
+#endif
+#else
+typedef struct IDXGIObjectVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIObject *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIObject *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIObject *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIObject *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIObject *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIObject *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIObject *This,
+ REFIID riid,
+ void **parent);
+
+ END_INTERFACE
+} IDXGIObjectVtbl;
+
+interface IDXGIObject {
+ CONST_VTBL IDXGIObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIObject_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIObject_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIObject_QueryInterface(IDXGIObject* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIObject_AddRef(IDXGIObject* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIObject_Release(IDXGIObject* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIObject_SetPrivateData(IDXGIObject* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIObject_SetPrivateDataInterface(IDXGIObject* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIObject_GetPrivateData(IDXGIObject* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIObject_GetParent(IDXGIObject* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDeviceSubObject interface
+ */
+#ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__
+#define __IDXGIDeviceSubObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb,0x6c, 0x18,0xd6,0x29,0x92,0xf1,0xa6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6")
+IDXGIDeviceSubObject : public IDXGIObject
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDevice(
+ REFIID riid,
+ void **device) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb,0x6c, 0x18,0xd6,0x29,0x92,0xf1,0xa6)
+#endif
+#else
+typedef struct IDXGIDeviceSubObjectVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDeviceSubObject *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDeviceSubObject *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDeviceSubObject *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDeviceSubObject *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDeviceSubObject *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDeviceSubObject *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDeviceSubObject *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGIDeviceSubObject *This,
+ REFIID riid,
+ void **device);
+
+ END_INTERFACE
+} IDXGIDeviceSubObjectVtbl;
+
+interface IDXGIDeviceSubObject {
+ CONST_VTBL IDXGIDeviceSubObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDeviceSubObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDeviceSubObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDeviceSubObject_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDeviceSubObject_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDeviceSubObject_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDeviceSubObject_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGIDeviceSubObject_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_QueryInterface(IDXGIDeviceSubObject* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDeviceSubObject_AddRef(IDXGIDeviceSubObject* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDeviceSubObject_Release(IDXGIDeviceSubObject* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_SetPrivateData(IDXGIDeviceSubObject* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_SetPrivateDataInterface(IDXGIDeviceSubObject* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetPrivateData(IDXGIDeviceSubObject* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetParent(IDXGIDeviceSubObject* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGIDeviceSubObject_GetDevice(IDXGIDeviceSubObject* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIResource interface
+ */
+#ifndef __IDXGIResource_INTERFACE_DEFINED__
+#define __IDXGIResource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4,0x1f, 0x8a,0x7f,0x8b,0xd8,0x96,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")
+IDXGIResource : public IDXGIDeviceSubObject
+{
+ virtual HRESULT STDMETHODCALLTYPE GetSharedHandle(
+ HANDLE *pSharedHandle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetUsage(
+ DXGI_USAGE *pUsage) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority(
+ UINT EvictionPriority) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority(
+ UINT *pEvictionPriority) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4,0x1f, 0x8a,0x7f,0x8b,0xd8,0x96,0x0b)
+#endif
+#else
+typedef struct IDXGIResourceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIResource *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIResource *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIResource *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIResource *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIResource *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIResource *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIResource *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGIResource *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGIResource methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSharedHandle)(
+ IDXGIResource *This,
+ HANDLE *pSharedHandle);
+
+ HRESULT (STDMETHODCALLTYPE *GetUsage)(
+ IDXGIResource *This,
+ DXGI_USAGE *pUsage);
+
+ HRESULT (STDMETHODCALLTYPE *SetEvictionPriority)(
+ IDXGIResource *This,
+ UINT EvictionPriority);
+
+ HRESULT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ IDXGIResource *This,
+ UINT *pEvictionPriority);
+
+ END_INTERFACE
+} IDXGIResourceVtbl;
+
+interface IDXGIResource {
+ CONST_VTBL IDXGIResourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIResource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIResource_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIResource_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIResource_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIResource_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIResource_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGIResource_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGIResource methods ***/
+#define IDXGIResource_GetSharedHandle(This,pSharedHandle) (This)->lpVtbl->GetSharedHandle(This,pSharedHandle)
+#define IDXGIResource_GetUsage(This,pUsage) (This)->lpVtbl->GetUsage(This,pUsage)
+#define IDXGIResource_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define IDXGIResource_GetEvictionPriority(This,pEvictionPriority) (This)->lpVtbl->GetEvictionPriority(This,pEvictionPriority)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIResource_QueryInterface(IDXGIResource* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIResource_AddRef(IDXGIResource* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIResource_Release(IDXGIResource* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIResource_SetPrivateData(IDXGIResource* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIResource_SetPrivateDataInterface(IDXGIResource* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIResource_GetPrivateData(IDXGIResource* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIResource_GetParent(IDXGIResource* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGIResource_GetDevice(IDXGIResource* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGIResource methods ***/
+static FORCEINLINE HRESULT IDXGIResource_GetSharedHandle(IDXGIResource* This,HANDLE *pSharedHandle) {
+ return This->lpVtbl->GetSharedHandle(This,pSharedHandle);
+}
+static FORCEINLINE HRESULT IDXGIResource_GetUsage(IDXGIResource* This,DXGI_USAGE *pUsage) {
+ return This->lpVtbl->GetUsage(This,pUsage);
+}
+static FORCEINLINE HRESULT IDXGIResource_SetEvictionPriority(IDXGIResource* This,UINT EvictionPriority) {
+ return This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE HRESULT IDXGIResource_GetEvictionPriority(IDXGIResource* This,UINT *pEvictionPriority) {
+ return This->lpVtbl->GetEvictionPriority(This,pEvictionPriority);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIResource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIKeyedMutex interface
+ */
+#ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__
+#define __IDXGIKeyedMutex_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81,0x26, 0x25,0x0e,0x34,0x9a,0xf8,0x5d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d")
+IDXGIKeyedMutex : public IDXGIDeviceSubObject
+{
+ virtual HRESULT STDMETHODCALLTYPE AcquireSync(
+ UINT64 Key,
+ DWORD dwMilliseconds) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseSync(
+ UINT64 Key) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81,0x26, 0x25,0x0e,0x34,0x9a,0xf8,0x5d)
+#endif
+#else
+typedef struct IDXGIKeyedMutexVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIKeyedMutex *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIKeyedMutex *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIKeyedMutex *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIKeyedMutex *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIKeyedMutex *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIKeyedMutex *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIKeyedMutex *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGIKeyedMutex *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGIKeyedMutex methods ***/
+ HRESULT (STDMETHODCALLTYPE *AcquireSync)(
+ IDXGIKeyedMutex *This,
+ UINT64 Key,
+ DWORD dwMilliseconds);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseSync)(
+ IDXGIKeyedMutex *This,
+ UINT64 Key);
+
+ END_INTERFACE
+} IDXGIKeyedMutexVtbl;
+
+interface IDXGIKeyedMutex {
+ CONST_VTBL IDXGIKeyedMutexVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIKeyedMutex_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIKeyedMutex_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIKeyedMutex_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIKeyedMutex_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIKeyedMutex_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIKeyedMutex_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGIKeyedMutex_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGIKeyedMutex methods ***/
+#define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds) (This)->lpVtbl->AcquireSync(This,Key,dwMilliseconds)
+#define IDXGIKeyedMutex_ReleaseSync(This,Key) (This)->lpVtbl->ReleaseSync(This,Key)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIKeyedMutex_QueryInterface(IDXGIKeyedMutex* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIKeyedMutex_AddRef(IDXGIKeyedMutex* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIKeyedMutex_Release(IDXGIKeyedMutex* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIKeyedMutex_SetPrivateData(IDXGIKeyedMutex* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIKeyedMutex_SetPrivateDataInterface(IDXGIKeyedMutex* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIKeyedMutex_GetPrivateData(IDXGIKeyedMutex* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIKeyedMutex_GetParent(IDXGIKeyedMutex* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGIKeyedMutex_GetDevice(IDXGIKeyedMutex* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGIKeyedMutex methods ***/
+static FORCEINLINE HRESULT IDXGIKeyedMutex_AcquireSync(IDXGIKeyedMutex* This,UINT64 Key,DWORD dwMilliseconds) {
+ return This->lpVtbl->AcquireSync(This,Key,dwMilliseconds);
+}
+static FORCEINLINE HRESULT IDXGIKeyedMutex_ReleaseSync(IDXGIKeyedMutex* This,UINT64 Key) {
+ return This->lpVtbl->ReleaseSync(This,Key);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISurface interface
+ */
+#ifndef __IDXGISurface_INTERFACE_DEFINED__
+#define __IDXGISurface_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf,0x47, 0x9e,0x23,0xbb,0xd2,0x60,0xec);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec")
+IDXGISurface : public IDXGIDeviceSubObject
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ DXGI_SURFACE_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Map(
+ DXGI_MAPPED_RECT *mapped_rect,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Unmap(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf,0x47, 0x9e,0x23,0xbb,0xd2,0x60,0xec)
+#endif
+#else
+typedef struct IDXGISurfaceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISurface *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISurface *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISurface *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISurface *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISurface *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISurface *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISurface *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISurface *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISurface methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISurface *This,
+ DXGI_SURFACE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ IDXGISurface *This,
+ DXGI_MAPPED_RECT *mapped_rect,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *Unmap)(
+ IDXGISurface *This);
+
+ END_INTERFACE
+} IDXGISurfaceVtbl;
+
+interface IDXGISurface {
+ CONST_VTBL IDXGISurfaceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISurface_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISurface_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISurface_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISurface_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISurface_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISurface_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISurface_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISurface methods ***/
+#define IDXGISurface_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISurface_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags)
+#define IDXGISurface_Unmap(This) (This)->lpVtbl->Unmap(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISurface_QueryInterface(IDXGISurface* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISurface_AddRef(IDXGISurface* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISurface_Release(IDXGISurface* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface_SetPrivateData(IDXGISurface* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface_SetPrivateDataInterface(IDXGISurface* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISurface_GetPrivateData(IDXGISurface* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface_GetParent(IDXGISurface* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface_GetDevice(IDXGISurface* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISurface methods ***/
+static FORCEINLINE HRESULT IDXGISurface_GetDesc(IDXGISurface* This,DXGI_SURFACE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISurface_Map(IDXGISurface* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) {
+ return This->lpVtbl->Map(This,mapped_rect,flags);
+}
+static FORCEINLINE HRESULT IDXGISurface_Unmap(IDXGISurface* This) {
+ return This->lpVtbl->Unmap(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISurface_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISurface1 interface
+ */
+#ifndef __IDXGISurface1_INTERFACE_DEFINED__
+#define __IDXGISurface1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4ae63092-6327-4c1b-80ae-bfe12ea32b86")
+IDXGISurface1 : public IDXGISurface
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDC(
+ WINBOOL discard,
+ HDC *hdc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseDC(
+ RECT *dirty_rect) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISurface1, 0x4ae63092, 0x6327, 0x4c1b, 0x80,0xae, 0xbf,0xe1,0x2e,0xa3,0x2b,0x86)
+#endif
+#else
+typedef struct IDXGISurface1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISurface1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISurface1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISurface1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISurface1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISurface1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISurface1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISurface1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISurface1 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISurface methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISurface1 *This,
+ DXGI_SURFACE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ IDXGISurface1 *This,
+ DXGI_MAPPED_RECT *mapped_rect,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *Unmap)(
+ IDXGISurface1 *This);
+
+ /*** IDXGISurface1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDC)(
+ IDXGISurface1 *This,
+ WINBOOL discard,
+ HDC *hdc);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDC)(
+ IDXGISurface1 *This,
+ RECT *dirty_rect);
+
+ END_INTERFACE
+} IDXGISurface1Vtbl;
+
+interface IDXGISurface1 {
+ CONST_VTBL IDXGISurface1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISurface1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISurface1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISurface1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISurface1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISurface1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISurface1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISurface1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISurface1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISurface methods ***/
+#define IDXGISurface1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISurface1_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags)
+#define IDXGISurface1_Unmap(This) (This)->lpVtbl->Unmap(This)
+/*** IDXGISurface1 methods ***/
+#define IDXGISurface1_GetDC(This,discard,hdc) (This)->lpVtbl->GetDC(This,discard,hdc)
+#define IDXGISurface1_ReleaseDC(This,dirty_rect) (This)->lpVtbl->ReleaseDC(This,dirty_rect)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_QueryInterface(IDXGISurface1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISurface1_AddRef(IDXGISurface1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISurface1_Release(IDXGISurface1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_SetPrivateData(IDXGISurface1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface1_SetPrivateDataInterface(IDXGISurface1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISurface1_GetPrivateData(IDXGISurface1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface1_GetParent(IDXGISurface1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDevice(IDXGISurface1* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISurface methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDesc(IDXGISurface1* This,DXGI_SURFACE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISurface1_Map(IDXGISurface1* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) {
+ return This->lpVtbl->Map(This,mapped_rect,flags);
+}
+static FORCEINLINE HRESULT IDXGISurface1_Unmap(IDXGISurface1* This) {
+ return This->lpVtbl->Unmap(This);
+}
+/*** IDXGISurface1 methods ***/
+static FORCEINLINE HRESULT IDXGISurface1_GetDC(IDXGISurface1* This,WINBOOL discard,HDC *hdc) {
+ return This->lpVtbl->GetDC(This,discard,hdc);
+}
+static FORCEINLINE HRESULT IDXGISurface1_ReleaseDC(IDXGISurface1* This,RECT *dirty_rect) {
+ return This->lpVtbl->ReleaseDC(This,dirty_rect);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISurface1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput interface
+ */
+#ifndef __IDXGIOutput_INTERFACE_DEFINED__
+#define __IDXGIOutput_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d,0x52, 0x5a,0x8d,0xc2,0x02,0x13,0xaa);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa")
+IDXGIOutput : public IDXGIObject
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ DXGI_OUTPUT_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList(
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode(
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WaitForVBlank(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TakeOwnership(
+ IUnknown *device,
+ WINBOOL exclusive) = 0;
+
+ virtual void STDMETHODCALLTYPE ReleaseOwnership(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities(
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetGammaControl(
+ const DXGI_GAMMA_CONTROL *gamma_control) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGammaControl(
+ DXGI_GAMMA_CONTROL *gamma_control) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface(
+ IDXGISurface *surface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData(
+ IDXGISurface *surface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
+ DXGI_FRAME_STATISTICS *stats) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d,0x52, 0x5a,0x8d,0xc2,0x02,0x13,0xaa)
+#endif
+#else
+typedef struct IDXGIOutputVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ END_INTERFACE
+} IDXGIOutputVtbl;
+
+interface IDXGIOutput {
+ CONST_VTBL IDXGIOutputVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput_QueryInterface(IDXGIOutput* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput_AddRef(IDXGIOutput* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput_Release(IDXGIOutput* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput_SetPrivateData(IDXGIOutput* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput_SetPrivateDataInterface(IDXGIOutput* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetPrivateData(IDXGIOutput* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetParent(IDXGIOutput* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput_GetDesc(IDXGIOutput* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetDisplayModeList(IDXGIOutput* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput_FindClosestMatchingMode(IDXGIOutput* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput_WaitForVBlank(IDXGIOutput* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput_TakeOwnership(IDXGIOutput* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput_ReleaseOwnership(IDXGIOutput* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetGammaControlCapabilities(IDXGIOutput* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput_SetGammaControl(IDXGIOutput* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetGammaControl(IDXGIOutput* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput_SetDisplaySurface(IDXGIOutput* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetDisplaySurfaceData(IDXGIOutput* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput_GetFrameStatistics(IDXGIOutput* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIAdapter interface
+ */
+#ifndef __IDXGIAdapter_INTERFACE_DEFINED__
+#define __IDXGIAdapter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd,0x14, 0x97,0x98,0xe8,0x53,0x4d,0xc0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
+IDXGIAdapter : public IDXGIObject
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumOutputs(
+ UINT output_idx,
+ IDXGIOutput **output) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ DXGI_ADAPTER_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
+ REFGUID guid,
+ LARGE_INTEGER *umd_version) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd,0x14, 0x97,0x98,0xe8,0x53,0x4d,0xc0)
+#endif
+#else
+typedef struct IDXGIAdapterVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIAdapter *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIAdapter *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIAdapter *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIAdapter *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIAdapter *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIAdapter *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIAdapter *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIAdapter methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
+ IDXGIAdapter *This,
+ UINT output_idx,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIAdapter *This,
+ DXGI_ADAPTER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
+ IDXGIAdapter *This,
+ REFGUID guid,
+ LARGE_INTEGER *umd_version);
+
+ END_INTERFACE
+} IDXGIAdapterVtbl;
+
+interface IDXGIAdapter {
+ CONST_VTBL IDXGIAdapterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIAdapter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIAdapter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIAdapter_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIAdapter_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIAdapter_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIAdapter methods ***/
+#define IDXGIAdapter_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
+#define IDXGIAdapter_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIAdapter_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter_QueryInterface(IDXGIAdapter* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIAdapter_AddRef(IDXGIAdapter* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIAdapter_Release(IDXGIAdapter* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter_SetPrivateData(IDXGIAdapter* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter_SetPrivateDataInterface(IDXGIAdapter* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIAdapter_GetPrivateData(IDXGIAdapter* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter_GetParent(IDXGIAdapter* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIAdapter methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter_EnumOutputs(IDXGIAdapter* This,UINT output_idx,IDXGIOutput **output) {
+ return This->lpVtbl->EnumOutputs(This,output_idx,output);
+}
+static FORCEINLINE HRESULT IDXGIAdapter_GetDesc(IDXGIAdapter* This,DXGI_ADAPTER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIAdapter_CheckInterfaceSupport(IDXGIAdapter* This,REFGUID guid,LARGE_INTEGER *umd_version) {
+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */
+
+#define DXGI_MAX_SWAP_CHAIN_BUFFERS (16)
+#define DXGI_PRESENT_TEST __MSABI_LONG(0x00000001U)
+#define DXGI_PRESENT_DO_NOT_SEQUENCE __MSABI_LONG(0x00000002U)
+#define DXGI_PRESENT_RESTART __MSABI_LONG(0x00000004U)
+#define DXGI_PRESENT_DO_NOT_WAIT __MSABI_LONG(0x00000008U)
+#define DXGI_PRESENT_STEREO_PREFER_RIGHT __MSABI_LONG(0x00000010U)
+#define DXGI_PRESENT_STEREO_TEMPORARY_MONO __MSABI_LONG(0x00000020U)
+#define DXGI_PRESENT_RESTRICT_TO_OUTPUT __MSABI_LONG(0x00000040U)
+#define DXGI_PRESENT_USE_DURATION __MSABI_LONG(0x00000100U)
+#define DXGI_PRESENT_ALLOW_TEARING __MSABI_LONG(0x00000200U)
+/*****************************************************************************
+ * IDXGISwapChain interface
+ */
+#ifndef __IDXGISwapChain_INTERFACE_DEFINED__
+#define __IDXGISwapChain_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa,0x04, 0x6a,0x9d,0x23,0xb8,0x88,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a")
+IDXGISwapChain : public IDXGIDeviceSubObject
+{
+ virtual HRESULT STDMETHODCALLTYPE Present(
+ UINT sync_interval,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFullscreenState(
+ WINBOOL fullscreen,
+ IDXGIOutput *target) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFullscreenState(
+ WINBOOL *fullscreen,
+ IDXGIOutput **target) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDesc(
+ DXGI_SWAP_CHAIN_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResizeBuffers(
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResizeTarget(
+ const DXGI_MODE_DESC *target_mode_desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetContainingOutput(
+ IDXGIOutput **output) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
+ DXGI_FRAME_STATISTICS *stats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount(
+ UINT *last_present_count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa,0x04, 0x6a,0x9d,0x23,0xb8,0x88,0x6a)
+#endif
+#else
+typedef struct IDXGISwapChainVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChain *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChain *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChain *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISwapChain *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISwapChain *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISwapChain *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISwapChain *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISwapChain *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *Present)(
+ IDXGISwapChain *This,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDXGISwapChain *This,
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface);
+
+ HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
+ IDXGISwapChain *This,
+ WINBOOL fullscreen,
+ IDXGIOutput *target);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
+ IDXGISwapChain *This,
+ WINBOOL *fullscreen,
+ IDXGIOutput **target);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISwapChain *This,
+ DXGI_SWAP_CHAIN_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
+ IDXGISwapChain *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
+ IDXGISwapChain *This,
+ const DXGI_MODE_DESC *target_mode_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
+ IDXGISwapChain *This,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGISwapChain *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
+ IDXGISwapChain *This,
+ UINT *last_present_count);
+
+ END_INTERFACE
+} IDXGISwapChainVtbl;
+
+interface IDXGISwapChain {
+ CONST_VTBL IDXGISwapChainVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChain_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChain_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISwapChain_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISwapChain_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISwapChain_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISwapChain methods ***/
+#define IDXGISwapChain_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
+#define IDXGISwapChain_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
+#define IDXGISwapChain_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISwapChain_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
+#define IDXGISwapChain_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
+#define IDXGISwapChain_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
+#define IDXGISwapChain_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#define IDXGISwapChain_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain_QueryInterface(IDXGISwapChain* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChain_AddRef(IDXGISwapChain* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChain_Release(IDXGISwapChain* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain_SetPrivateData(IDXGISwapChain* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_SetPrivateDataInterface(IDXGISwapChain* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetPrivateData(IDXGISwapChain* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetParent(IDXGISwapChain* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain_GetDevice(IDXGISwapChain* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISwapChain methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain_Present(IDXGISwapChain* This,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->Present(This,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetBuffer(IDXGISwapChain* This,UINT buffer_idx,REFIID riid,void **surface) {
+ return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_SetFullscreenState(IDXGISwapChain* This,WINBOOL fullscreen,IDXGIOutput *target) {
+ return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetFullscreenState(IDXGISwapChain* This,WINBOOL *fullscreen,IDXGIOutput **target) {
+ return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetDesc(IDXGISwapChain* This,DXGI_SWAP_CHAIN_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_ResizeBuffers(IDXGISwapChain* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
+ return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_ResizeTarget(IDXGISwapChain* This,const DXGI_MODE_DESC *target_mode_desc) {
+ return This->lpVtbl->ResizeTarget(This,target_mode_desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetContainingOutput(IDXGISwapChain* This,IDXGIOutput **output) {
+ return This->lpVtbl->GetContainingOutput(This,output);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetFrameStatistics(IDXGISwapChain* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChain_GetLastPresentCount(IDXGISwapChain* This,UINT *last_present_count) {
+ return This->lpVtbl->GetLastPresentCount(This,last_present_count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChain_INTERFACE_DEFINED__ */
+
+#define DXGI_MWA_NO_WINDOW_CHANGES 0x1
+#define DXGI_MWA_NO_ALT_ENTER 0x2
+#define DXGI_MWA_NO_PRINT_SCREEN 0x4
+#define DXGI_MWA_VALID 0x7
+/*****************************************************************************
+ * IDXGIFactory interface
+ */
+#ifndef __IDXGIFactory_INTERFACE_DEFINED__
+#define __IDXGIFactory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2,0x1a, 0xc9,0xae,0x32,0x1a,0xe3,0x69);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
+IDXGIFactory : public IDXGIObject
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumAdapters(
+ UINT adapter_idx,
+ IDXGIAdapter **adapter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
+ HWND window,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation(
+ HWND *window) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
+ HMODULE swrast,
+ IDXGIAdapter **adapter) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2,0x1a, 0xc9,0xae,0x32,0x1a,0xe3,0x69)
+#endif
+#else
+typedef struct IDXGIFactoryVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ END_INTERFACE
+} IDXGIFactoryVtbl;
+
+interface IDXGIFactory {
+ CONST_VTBL IDXGIFactoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory_QueryInterface(IDXGIFactory* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory_AddRef(IDXGIFactory* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory_Release(IDXGIFactory* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory_SetPrivateData(IDXGIFactory* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory_SetPrivateDataInterface(IDXGIFactory* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory_GetPrivateData(IDXGIFactory* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory_GetParent(IDXGIFactory* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory_EnumAdapters(IDXGIFactory* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory_MakeWindowAssociation(IDXGIFactory* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory_GetWindowAssociation(IDXGIFactory* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory_CreateSwapChain(IDXGIFactory* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory_CreateSoftwareAdapter(IDXGIFactory* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory_INTERFACE_DEFINED__ */
+
+HRESULT __stdcall CreateDXGIFactory(REFIID riid,void **factory);
+
+HRESULT __stdcall CreateDXGIFactory1(REFIID riid,void **factory);
+
+/*****************************************************************************
+ * IDXGIDevice interface
+ */
+#ifndef __IDXGIDevice_INTERFACE_DEFINED__
+#define __IDXGIDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c,0x32, 0x88,0xfd,0x5f,0x44,0xc8,0x4c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c")
+IDXGIDevice : public IDXGIObject
+{
+ virtual HRESULT STDMETHODCALLTYPE GetAdapter(
+ IDXGIAdapter **adapter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSurface(
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency(
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority(
+ INT priority) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority(
+ INT *priority) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c,0x32, 0x88,0xfd,0x5f,0x44,0xc8,0x4c)
+#endif
+#else
+typedef struct IDXGIDeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDevice *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDevice *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDevice *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDevice *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDevice *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDevice *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDevice *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdapter)(
+ IDXGIDevice *This,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDXGIDevice *This,
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface);
+
+ HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
+ IDXGIDevice *This,
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count);
+
+ HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
+ IDXGIDevice *This,
+ INT priority);
+
+ HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
+ IDXGIDevice *This,
+ INT *priority);
+
+ END_INTERFACE
+} IDXGIDeviceVtbl;
+
+interface IDXGIDevice {
+ CONST_VTBL IDXGIDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDevice_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDevice_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDevice methods ***/
+#define IDXGIDevice_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
+#define IDXGIDevice_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
+#define IDXGIDevice_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
+#define IDXGIDevice_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
+#define IDXGIDevice_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDevice_QueryInterface(IDXGIDevice* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDevice_AddRef(IDXGIDevice* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDevice_Release(IDXGIDevice* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDevice_SetPrivateData(IDXGIDevice* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice_SetPrivateDataInterface(IDXGIDevice* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDevice_GetPrivateData(IDXGIDevice* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice_GetParent(IDXGIDevice* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDevice methods ***/
+static FORCEINLINE HRESULT IDXGIDevice_GetAdapter(IDXGIDevice* This,IDXGIAdapter **adapter) {
+ return This->lpVtbl->GetAdapter(This,adapter);
+}
+static FORCEINLINE HRESULT IDXGIDevice_CreateSurface(IDXGIDevice* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
+ return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
+}
+static FORCEINLINE HRESULT IDXGIDevice_QueryResourceResidency(IDXGIDevice* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
+ return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
+}
+static FORCEINLINE HRESULT IDXGIDevice_SetGPUThreadPriority(IDXGIDevice* This,INT priority) {
+ return This->lpVtbl->SetGPUThreadPriority(This,priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice_GetGPUThreadPriority(IDXGIDevice* This,INT *priority) {
+ return This->lpVtbl->GetGPUThreadPriority(This,priority);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDevice_INTERFACE_DEFINED__ */
+
+typedef enum DXGI_ADAPTER_FLAG {
+ DXGI_ADAPTER_FLAG_NONE = 0,
+ DXGI_ADAPTER_FLAG_REMOTE = 1,
+ DXGI_ADAPTER_FLAG_SOFTWARE = 2,
+ DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff
+} DXGI_ADAPTER_FLAG;
+typedef struct DXGI_ADAPTER_DESC1 {
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+ UINT Flags;
+} DXGI_ADAPTER_DESC1;
+typedef struct DXGI_DISPLAY_COLOR_SPACE {
+ FLOAT PrimaryCoordinates[8][2];
+ FLOAT WhitePoints[16][2];
+} DXGI_DISPLAY_COLOR_SPACE;
+/*****************************************************************************
+ * IDXGIAdapter1 interface
+ */
+#ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
+#define __IDXGIAdapter1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91,0xfd, 0x08,0x68,0x79,0x01,0x1a,0x05);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
+IDXGIAdapter1 : public IDXGIAdapter
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc1(
+ DXGI_ADAPTER_DESC1 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91,0xfd, 0x08,0x68,0x79,0x01,0x1a,0x05)
+#endif
+#else
+typedef struct IDXGIAdapter1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIAdapter1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIAdapter1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIAdapter1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIAdapter1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIAdapter1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIAdapter1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIAdapter1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIAdapter methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
+ IDXGIAdapter1 *This,
+ UINT output_idx,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIAdapter1 *This,
+ DXGI_ADAPTER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
+ IDXGIAdapter1 *This,
+ REFGUID guid,
+ LARGE_INTEGER *umd_version);
+
+ /*** IDXGIAdapter1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGIAdapter1 *This,
+ DXGI_ADAPTER_DESC1 *pDesc);
+
+ END_INTERFACE
+} IDXGIAdapter1Vtbl;
+
+interface IDXGIAdapter1 {
+ CONST_VTBL IDXGIAdapter1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIAdapter1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIAdapter1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIAdapter1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIAdapter1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIAdapter1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIAdapter methods ***/
+#define IDXGIAdapter1_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
+#define IDXGIAdapter1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIAdapter1_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
+/*** IDXGIAdapter1 methods ***/
+#define IDXGIAdapter1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter1_QueryInterface(IDXGIAdapter1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIAdapter1_AddRef(IDXGIAdapter1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIAdapter1_Release(IDXGIAdapter1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter1_SetPrivateData(IDXGIAdapter1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter1_SetPrivateDataInterface(IDXGIAdapter1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIAdapter1_GetPrivateData(IDXGIAdapter1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter1_GetParent(IDXGIAdapter1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIAdapter methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter1_EnumOutputs(IDXGIAdapter1* This,UINT output_idx,IDXGIOutput **output) {
+ return This->lpVtbl->EnumOutputs(This,output_idx,output);
+}
+static FORCEINLINE HRESULT IDXGIAdapter1_GetDesc(IDXGIAdapter1* This,DXGI_ADAPTER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIAdapter1_CheckInterfaceSupport(IDXGIAdapter1* This,REFGUID guid,LARGE_INTEGER *umd_version) {
+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
+}
+/*** IDXGIAdapter1 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter1_GetDesc1(IDXGIAdapter1* This,DXGI_ADAPTER_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDevice1 interface
+ */
+#ifndef __IDXGIDevice1_INTERFACE_DEFINED__
+#define __IDXGIDevice1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c")
+IDXGIDevice1 : public IDXGIDevice
+{
+ virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
+ UINT MaxLatency) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
+ UINT *pMaxLatency) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c)
+#endif
+#else
+typedef struct IDXGIDevice1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDevice1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDevice1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDevice1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDevice1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDevice1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDevice1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDevice1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdapter)(
+ IDXGIDevice1 *This,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDXGIDevice1 *This,
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface);
+
+ HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
+ IDXGIDevice1 *This,
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count);
+
+ HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
+ IDXGIDevice1 *This,
+ INT priority);
+
+ HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
+ IDXGIDevice1 *This,
+ INT *priority);
+
+ /*** IDXGIDevice1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGIDevice1 *This,
+ UINT MaxLatency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGIDevice1 *This,
+ UINT *pMaxLatency);
+
+ END_INTERFACE
+} IDXGIDevice1Vtbl;
+
+interface IDXGIDevice1 {
+ CONST_VTBL IDXGIDevice1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDevice1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDevice1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDevice1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDevice1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDevice1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDevice methods ***/
+#define IDXGIDevice1_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
+#define IDXGIDevice1_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
+#define IDXGIDevice1_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
+#define IDXGIDevice1_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
+#define IDXGIDevice1_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
+/*** IDXGIDevice1 methods ***/
+#define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
+#define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDevice1_QueryInterface(IDXGIDevice1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDevice1_AddRef(IDXGIDevice1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDevice1_Release(IDXGIDevice1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateDataInterface(IDXGIDevice1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_GetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_GetParent(IDXGIDevice1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDevice methods ***/
+static FORCEINLINE HRESULT IDXGIDevice1_GetAdapter(IDXGIDevice1* This,IDXGIAdapter **adapter) {
+ return This->lpVtbl->GetAdapter(This,adapter);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_CreateSurface(IDXGIDevice1* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
+ return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_QueryResourceResidency(IDXGIDevice1* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
+ return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_SetGPUThreadPriority(IDXGIDevice1* This,INT priority) {
+ return This->lpVtbl->SetGPUThreadPriority(This,priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_GetGPUThreadPriority(IDXGIDevice1* This,INT *priority) {
+ return This->lpVtbl->GetGPUThreadPriority(This,priority);
+}
+/*** IDXGIDevice1 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice1_SetMaximumFrameLatency(IDXGIDevice1* This,UINT MaxLatency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
+}
+static FORCEINLINE HRESULT IDXGIDevice1_GetMaximumFrameLatency(IDXGIDevice1* This,UINT *pMaxLatency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDevice1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory1 interface
+ */
+#ifndef __IDXGIFactory1_INTERFACE_DEFINED__
+#define __IDXGIFactory1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8,0x29, 0x25,0x3c,0x83,0xd1,0xb3,0x87);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
+IDXGIFactory1 : public IDXGIFactory
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumAdapters1(
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE IsCurrent(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8,0x29, 0x25,0x3c,0x83,0xd1,0xb3,0x87)
+#endif
+#else
+typedef struct IDXGIFactory1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory1 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory1 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory1 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory1 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory1 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory1 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory1 *This);
+
+ END_INTERFACE
+} IDXGIFactory1Vtbl;
+
+interface IDXGIFactory1 {
+ CONST_VTBL IDXGIFactory1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory1_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory1_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory1_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory1_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory1_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory1_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory1_QueryInterface(IDXGIFactory1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory1_AddRef(IDXGIFactory1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory1_Release(IDXGIFactory1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory1_SetPrivateData(IDXGIFactory1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_SetPrivateDataInterface(IDXGIFactory1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_GetPrivateData(IDXGIFactory1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_GetParent(IDXGIFactory1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory1_EnumAdapters(IDXGIFactory1* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_MakeWindowAssociation(IDXGIFactory1* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_GetWindowAssociation(IDXGIFactory1* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_CreateSwapChain(IDXGIFactory1* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory1_CreateSoftwareAdapter(IDXGIFactory1* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory1_EnumAdapters1(IDXGIFactory1* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory1_IsCurrent(IDXGIFactory1* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi_h__ */
diff --git a/dxgi1_2.h b/dxgi1_2.h
new file mode 100644
index 0000000..f8e58f7
--- /dev/null
+++ b/dxgi1_2.h
@@ -0,0 +1,2204 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi1_2.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi1_2_h__
+#define __dxgi1_2_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIOutputDuplication_FWD_DEFINED__
+#define __IDXGIOutputDuplication_FWD_DEFINED__
+typedef interface IDXGIOutputDuplication IDXGIOutputDuplication;
+#ifdef __cplusplus
+interface IDXGIOutputDuplication;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISurface2_FWD_DEFINED__
+#define __IDXGISurface2_FWD_DEFINED__
+typedef interface IDXGISurface2 IDXGISurface2;
+#ifdef __cplusplus
+interface IDXGISurface2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIResource1_FWD_DEFINED__
+#define __IDXGIResource1_FWD_DEFINED__
+typedef interface IDXGIResource1 IDXGIResource1;
+#ifdef __cplusplus
+interface IDXGIResource1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDisplayControl_FWD_DEFINED__
+#define __IDXGIDisplayControl_FWD_DEFINED__
+typedef interface IDXGIDisplayControl IDXGIDisplayControl;
+#ifdef __cplusplus
+interface IDXGIDisplayControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDevice2_FWD_DEFINED__
+#define __IDXGIDevice2_FWD_DEFINED__
+typedef interface IDXGIDevice2 IDXGIDevice2;
+#ifdef __cplusplus
+interface IDXGIDevice2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISwapChain1_FWD_DEFINED__
+#define __IDXGISwapChain1_FWD_DEFINED__
+typedef interface IDXGISwapChain1 IDXGISwapChain1;
+#ifdef __cplusplus
+interface IDXGISwapChain1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory2_FWD_DEFINED__
+#define __IDXGIFactory2_FWD_DEFINED__
+typedef interface IDXGIFactory2 IDXGIFactory2;
+#ifdef __cplusplus
+interface IDXGIFactory2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIAdapter2_FWD_DEFINED__
+#define __IDXGIAdapter2_FWD_DEFINED__
+typedef interface IDXGIAdapter2 IDXGIAdapter2;
+#ifdef __cplusplus
+interface IDXGIAdapter2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput1_FWD_DEFINED__
+#define __IDXGIOutput1_FWD_DEFINED__
+typedef interface IDXGIOutput1 IDXGIOutput1;
+#ifdef __cplusplus
+interface IDXGIOutput1;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <dxgi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DXGI_ENUM_MODES_STEREO (0x4)
+
+#define DXGI_ENUM_MODES_DISABLED_STEREO (0x8)
+
+#define DXGI_SHARED_RESOURCE_READ (0x80000000)
+
+#define DXGI_SHARED_RESOURCE_WRITE (0x1)
+
+typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
+ DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
+ DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
+ DXGI_OFFER_RESOURCE_PRIORITY_HIGH = 3
+} DXGI_OFFER_RESOURCE_PRIORITY;
+typedef enum DXGI_ALPHA_MODE {
+ DXGI_ALPHA_MODE_UNSPECIFIED = 0,
+ DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
+ DXGI_ALPHA_MODE_STRAIGHT = 2,
+ DXGI_ALPHA_MODE_IGNORE = 3,
+ DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff
+} DXGI_ALPHA_MODE;
+typedef struct DXGI_OUTDUPL_MOVE_RECT {
+ POINT SourcePoint;
+ RECT DestinationRect;
+} DXGI_OUTDUPL_MOVE_RECT;
+typedef struct DXGI_OUTDUPL_DESC {
+ DXGI_MODE_DESC ModeDesc;
+ DXGI_MODE_ROTATION Rotation;
+ WINBOOL DesktopImageInSystemMemory;
+} DXGI_OUTDUPL_DESC;
+typedef struct DXGI_OUTDUPL_POINTER_POSITION {
+ POINT Position;
+ WINBOOL Visible;
+} DXGI_OUTDUPL_POINTER_POSITION;
+typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
+} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
+ UINT Type;
+ UINT Width;
+ UINT Height;
+ UINT Pitch;
+ POINT HotSpot;
+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
+typedef struct DXGI_OUTDUPL_FRAME_INFO {
+ LARGE_INTEGER LastPresentTime;
+ LARGE_INTEGER LastMouseUpdateTime;
+ UINT AccumulatedFrames;
+ WINBOOL RectsCoalesced;
+ WINBOOL ProtectedContentMaskedOut;
+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
+ UINT TotalMetadataBufferSize;
+ UINT PointerShapeBufferSize;
+} DXGI_OUTDUPL_FRAME_INFO;
+typedef struct DXGI_MODE_DESC1 {
+ UINT Width;
+ UINT Height;
+ DXGI_RATIONAL RefreshRate;
+ DXGI_FORMAT Format;
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
+ DXGI_MODE_SCALING Scaling;
+ WINBOOL Stereo;
+} DXGI_MODE_DESC1;
+/*****************************************************************************
+ * IDXGIOutputDuplication interface
+ */
+#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__
+#define __IDXGIOutputDuplication_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c")
+IDXGIOutputDuplication : public IDXGIObject
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ DXGI_OUTDUPL_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame(
+ UINT timeout_in_milliseconds,
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ IDXGIResource **desktop_resource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects(
+ UINT dirty_rects_buffer_size,
+ RECT *dirty_rects_buffer,
+ UINT *dirty_rects_buffer_size_required) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects(
+ UINT move_rects_buffer_size,
+ DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ UINT *move_rects_buffer_size_required) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape(
+ UINT pointer_shape_buffer_size,
+ void *pointer_shape_buffer,
+ UINT *pointer_shape_buffer_size_required,
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface(
+ DXGI_MAPPED_RECT *locked_rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseFrame(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c)
+#endif
+#else
+typedef struct IDXGIOutputDuplicationVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutputDuplication *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutputDuplication *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutputDuplication *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutputDuplication *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutputDuplication *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutputDuplication *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutputDuplication *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutputDuplication methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutputDuplication *This,
+ DXGI_OUTDUPL_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)(
+ IDXGIOutputDuplication *This,
+ UINT timeout_in_milliseconds,
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ IDXGIResource **desktop_resource);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)(
+ IDXGIOutputDuplication *This,
+ UINT dirty_rects_buffer_size,
+ RECT *dirty_rects_buffer,
+ UINT *dirty_rects_buffer_size_required);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)(
+ IDXGIOutputDuplication *This,
+ UINT move_rects_buffer_size,
+ DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ UINT *move_rects_buffer_size_required);
+
+ HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)(
+ IDXGIOutputDuplication *This,
+ UINT pointer_shape_buffer_size,
+ void *pointer_shape_buffer,
+ UINT *pointer_shape_buffer_size_required,
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info);
+
+ HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)(
+ IDXGIOutputDuplication *This,
+ DXGI_MAPPED_RECT *locked_rect);
+
+ HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)(
+ IDXGIOutputDuplication *This);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseFrame)(
+ IDXGIOutputDuplication *This);
+
+ END_INTERFACE
+} IDXGIOutputDuplicationVtbl;
+
+interface IDXGIOutputDuplication {
+ CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutputDuplication methods ***/
+#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource) (This)->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource)
+#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required)
+#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required) (This)->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required)
+#define IDXGIOutputDuplication_GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info) (This)->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info)
+#define IDXGIOutputDuplication_MapDesktopSurface(This,locked_rect) (This)->lpVtbl->MapDesktopSurface(This,locked_rect)
+#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This)
+#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutputDuplication methods ***/
+static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) {
+ This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout_in_milliseconds,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **desktop_resource) {
+ return This->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_rects_buffer_size,RECT *dirty_rects_buffer,UINT *dirty_rects_buffer_size_required) {
+ return This->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_rects_buffer_size,DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,UINT *move_rects_buffer_size_required) {
+ return This->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT pointer_shape_buffer_size,void *pointer_shape_buffer,UINT *pointer_shape_buffer_size_required,DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) {
+ return This->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *locked_rect) {
+ return This->lpVtbl->MapDesktopSurface(This,locked_rect);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->UnMapDesktopSurface(This);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->ReleaseFrame(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISurface2 interface
+ */
+#ifndef __IDXGISurface2_INTERFACE_DEFINED__
+#define __IDXGISurface2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISurface2, 0xaba496dd, 0xb617, 0x4cb8, 0xa8,0x66, 0xbc,0x44,0xd7,0xeb,0x1f,0xa2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aba496dd-b617-4cb8-a866-bc44d7eb1fa2")
+IDXGISurface2 : public IDXGISurface1
+{
+ virtual HRESULT STDMETHODCALLTYPE GetResource(
+ REFIID iid,
+ void **parent_resource,
+ UINT *subresource_idx) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISurface2, 0xaba496dd, 0xb617, 0x4cb8, 0xa8,0x66, 0xbc,0x44,0xd7,0xeb,0x1f,0xa2)
+#endif
+#else
+typedef struct IDXGISurface2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISurface2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISurface2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISurface2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISurface2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISurface2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISurface2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISurface2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISurface2 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISurface methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISurface2 *This,
+ DXGI_SURFACE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *Map)(
+ IDXGISurface2 *This,
+ DXGI_MAPPED_RECT *mapped_rect,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *Unmap)(
+ IDXGISurface2 *This);
+
+ /*** IDXGISurface1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDC)(
+ IDXGISurface2 *This,
+ WINBOOL discard,
+ HDC *hdc);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseDC)(
+ IDXGISurface2 *This,
+ RECT *dirty_rect);
+
+ /*** IDXGISurface2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetResource)(
+ IDXGISurface2 *This,
+ REFIID iid,
+ void **parent_resource,
+ UINT *subresource_idx);
+
+ END_INTERFACE
+} IDXGISurface2Vtbl;
+
+interface IDXGISurface2 {
+ CONST_VTBL IDXGISurface2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISurface2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISurface2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISurface2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISurface2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISurface2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISurface2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISurface2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISurface2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISurface methods ***/
+#define IDXGISurface2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISurface2_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags)
+#define IDXGISurface2_Unmap(This) (This)->lpVtbl->Unmap(This)
+/*** IDXGISurface1 methods ***/
+#define IDXGISurface2_GetDC(This,discard,hdc) (This)->lpVtbl->GetDC(This,discard,hdc)
+#define IDXGISurface2_ReleaseDC(This,dirty_rect) (This)->lpVtbl->ReleaseDC(This,dirty_rect)
+/*** IDXGISurface2 methods ***/
+#define IDXGISurface2_GetResource(This,iid,parent_resource,subresource_idx) (This)->lpVtbl->GetResource(This,iid,parent_resource,subresource_idx)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_QueryInterface(IDXGISurface2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISurface2_AddRef(IDXGISurface2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISurface2_Release(IDXGISurface2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_SetPrivateData(IDXGISurface2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface2_SetPrivateDataInterface(IDXGISurface2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISurface2_GetPrivateData(IDXGISurface2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISurface2_GetParent(IDXGISurface2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_GetDevice(IDXGISurface2* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISurface methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_GetDesc(IDXGISurface2* This,DXGI_SURFACE_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISurface2_Map(IDXGISurface2* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) {
+ return This->lpVtbl->Map(This,mapped_rect,flags);
+}
+static FORCEINLINE HRESULT IDXGISurface2_Unmap(IDXGISurface2* This) {
+ return This->lpVtbl->Unmap(This);
+}
+/*** IDXGISurface1 methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_GetDC(IDXGISurface2* This,WINBOOL discard,HDC *hdc) {
+ return This->lpVtbl->GetDC(This,discard,hdc);
+}
+static FORCEINLINE HRESULT IDXGISurface2_ReleaseDC(IDXGISurface2* This,RECT *dirty_rect) {
+ return This->lpVtbl->ReleaseDC(This,dirty_rect);
+}
+/*** IDXGISurface2 methods ***/
+static FORCEINLINE HRESULT IDXGISurface2_GetResource(IDXGISurface2* This,REFIID iid,void **parent_resource,UINT *subresource_idx) {
+ return This->lpVtbl->GetResource(This,iid,parent_resource,subresource_idx);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISurface2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIResource1 interface
+ */
+#ifndef __IDXGIResource1_INTERFACE_DEFINED__
+#define __IDXGIResource1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIResource1, 0x30961379, 0x4609, 0x4a41, 0x99,0x8e, 0x54,0xfe,0x56,0x7e,0xe0,0xc1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("30961379-4609-4a41-998e-54fe567ee0c1")
+IDXGIResource1 : public IDXGIResource
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateSubresourceSurface(
+ UINT index,
+ IDXGISurface2 **surface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIResource1, 0x30961379, 0x4609, 0x4a41, 0x99,0x8e, 0x54,0xfe,0x56,0x7e,0xe0,0xc1)
+#endif
+#else
+typedef struct IDXGIResource1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIResource1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIResource1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIResource1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIResource1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIResource1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIResource1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIResource1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGIResource1 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGIResource methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSharedHandle)(
+ IDXGIResource1 *This,
+ HANDLE *pSharedHandle);
+
+ HRESULT (STDMETHODCALLTYPE *GetUsage)(
+ IDXGIResource1 *This,
+ DXGI_USAGE *pUsage);
+
+ HRESULT (STDMETHODCALLTYPE *SetEvictionPriority)(
+ IDXGIResource1 *This,
+ UINT EvictionPriority);
+
+ HRESULT (STDMETHODCALLTYPE *GetEvictionPriority)(
+ IDXGIResource1 *This,
+ UINT *pEvictionPriority);
+
+ /*** IDXGIResource1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSubresourceSurface)(
+ IDXGIResource1 *This,
+ UINT index,
+ IDXGISurface2 **surface);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
+ IDXGIResource1 *This,
+ const SECURITY_ATTRIBUTES *attributes,
+ DWORD access,
+ const WCHAR *name,
+ HANDLE *handle);
+
+ END_INTERFACE
+} IDXGIResource1Vtbl;
+
+interface IDXGIResource1 {
+ CONST_VTBL IDXGIResource1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIResource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIResource1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIResource1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIResource1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIResource1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIResource1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIResource1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGIResource1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGIResource methods ***/
+#define IDXGIResource1_GetSharedHandle(This,pSharedHandle) (This)->lpVtbl->GetSharedHandle(This,pSharedHandle)
+#define IDXGIResource1_GetUsage(This,pUsage) (This)->lpVtbl->GetUsage(This,pUsage)
+#define IDXGIResource1_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
+#define IDXGIResource1_GetEvictionPriority(This,pEvictionPriority) (This)->lpVtbl->GetEvictionPriority(This,pEvictionPriority)
+/*** IDXGIResource1 methods ***/
+#define IDXGIResource1_CreateSubresourceSurface(This,index,surface) (This)->lpVtbl->CreateSubresourceSurface(This,index,surface)
+#define IDXGIResource1_CreateSharedHandle(This,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIResource1_QueryInterface(IDXGIResource1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIResource1_AddRef(IDXGIResource1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIResource1_Release(IDXGIResource1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIResource1_SetPrivateData(IDXGIResource1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIResource1_SetPrivateDataInterface(IDXGIResource1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIResource1_GetPrivateData(IDXGIResource1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIResource1_GetParent(IDXGIResource1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGIResource1_GetDevice(IDXGIResource1* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGIResource methods ***/
+static FORCEINLINE HRESULT IDXGIResource1_GetSharedHandle(IDXGIResource1* This,HANDLE *pSharedHandle) {
+ return This->lpVtbl->GetSharedHandle(This,pSharedHandle);
+}
+static FORCEINLINE HRESULT IDXGIResource1_GetUsage(IDXGIResource1* This,DXGI_USAGE *pUsage) {
+ return This->lpVtbl->GetUsage(This,pUsage);
+}
+static FORCEINLINE HRESULT IDXGIResource1_SetEvictionPriority(IDXGIResource1* This,UINT EvictionPriority) {
+ return This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
+}
+static FORCEINLINE HRESULT IDXGIResource1_GetEvictionPriority(IDXGIResource1* This,UINT *pEvictionPriority) {
+ return This->lpVtbl->GetEvictionPriority(This,pEvictionPriority);
+}
+/*** IDXGIResource1 methods ***/
+static FORCEINLINE HRESULT IDXGIResource1_CreateSubresourceSurface(IDXGIResource1* This,UINT index,IDXGISurface2 **surface) {
+ return This->lpVtbl->CreateSubresourceSurface(This,index,surface);
+}
+static FORCEINLINE HRESULT IDXGIResource1_CreateSharedHandle(IDXGIResource1* This,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+ return This->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIResource1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDisplayControl interface
+ */
+#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__
+#define __IDXGIDisplayControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c")
+IDXGIDisplayControl : public IUnknown
+{
+ virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE SetStereoEnabled(
+ WINBOOL enabled) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c)
+#endif
+#else
+typedef struct IDXGIDisplayControlVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDisplayControl *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDisplayControl *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDisplayControl *This);
+
+ /*** IDXGIDisplayControl methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)(
+ IDXGIDisplayControl *This);
+
+ void (STDMETHODCALLTYPE *SetStereoEnabled)(
+ IDXGIDisplayControl *This,
+ WINBOOL enabled);
+
+ END_INTERFACE
+} IDXGIDisplayControlVtbl;
+
+interface IDXGIDisplayControl {
+ CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIDisplayControl methods ***/
+#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This)
+#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIDisplayControl methods ***/
+static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) {
+ return This->lpVtbl->IsStereoEnabled(This);
+}
+static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) {
+ This->lpVtbl->SetStereoEnabled(This,enabled);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDevice2 interface
+ */
+#ifndef __IDXGIDevice2_INTERFACE_DEFINED__
+#define __IDXGIDevice2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("05008617-fbfd-4051-a790-144884b4f6a9")
+IDXGIDevice2 : public IDXGIDevice1
+{
+ virtual HRESULT STDMETHODCALLTYPE OfferResources(
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ DXGI_OFFER_RESOURCE_PRIORITY Priority) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReclaimResources(
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ WINBOOL *pDiscarded) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnqueueSetEvent(
+ HANDLE hEvent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9)
+#endif
+#else
+typedef struct IDXGIDevice2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDevice2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDevice2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDevice2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDevice2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDevice2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDevice2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDevice2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdapter)(
+ IDXGIDevice2 *This,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDXGIDevice2 *This,
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface);
+
+ HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
+ IDXGIDevice2 *This,
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count);
+
+ HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
+ IDXGIDevice2 *This,
+ INT priority);
+
+ HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
+ IDXGIDevice2 *This,
+ INT *priority);
+
+ /*** IDXGIDevice1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGIDevice2 *This,
+ UINT MaxLatency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGIDevice2 *This,
+ UINT *pMaxLatency);
+
+ /*** IDXGIDevice2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OfferResources)(
+ IDXGIDevice2 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ DXGI_OFFER_RESOURCE_PRIORITY Priority);
+
+ HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
+ IDXGIDevice2 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ WINBOOL *pDiscarded);
+
+ HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
+ IDXGIDevice2 *This,
+ HANDLE hEvent);
+
+ END_INTERFACE
+} IDXGIDevice2Vtbl;
+
+interface IDXGIDevice2 {
+ CONST_VTBL IDXGIDevice2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDevice2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDevice2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDevice2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDevice2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDevice2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDevice methods ***/
+#define IDXGIDevice2_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
+#define IDXGIDevice2_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
+#define IDXGIDevice2_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
+#define IDXGIDevice2_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
+#define IDXGIDevice2_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
+/*** IDXGIDevice1 methods ***/
+#define IDXGIDevice2_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
+#define IDXGIDevice2_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
+/*** IDXGIDevice2 methods ***/
+#define IDXGIDevice2_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
+#define IDXGIDevice2_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
+#define IDXGIDevice2_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDevice2_QueryInterface(IDXGIDevice2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDevice2_AddRef(IDXGIDevice2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDevice2_Release(IDXGIDevice2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateDataInterface(IDXGIDevice2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_GetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_GetParent(IDXGIDevice2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDevice methods ***/
+static FORCEINLINE HRESULT IDXGIDevice2_GetAdapter(IDXGIDevice2* This,IDXGIAdapter **adapter) {
+ return This->lpVtbl->GetAdapter(This,adapter);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_CreateSurface(IDXGIDevice2* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
+ return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_QueryResourceResidency(IDXGIDevice2* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
+ return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_SetGPUThreadPriority(IDXGIDevice2* This,INT priority) {
+ return This->lpVtbl->SetGPUThreadPriority(This,priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_GetGPUThreadPriority(IDXGIDevice2* This,INT *priority) {
+ return This->lpVtbl->GetGPUThreadPriority(This,priority);
+}
+/*** IDXGIDevice1 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice2_SetMaximumFrameLatency(IDXGIDevice2* This,UINT MaxLatency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_GetMaximumFrameLatency(IDXGIDevice2* This,UINT *pMaxLatency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
+}
+/*** IDXGIDevice2 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice2_OfferResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
+ return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_ReclaimResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
+ return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
+}
+static FORCEINLINE HRESULT IDXGIDevice2_EnqueueSetEvent(IDXGIDevice2* This,HANDLE hEvent) {
+ return This->lpVtbl->EnqueueSetEvent(This,hEvent);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDevice2_INTERFACE_DEFINED__ */
+
+typedef enum DXGI_SCALING {
+ DXGI_SCALING_STRETCH = 0,
+ DXGI_SCALING_NONE = 1,
+ DXGI_SCALING_ASPECT_RATIO_STRETCH = 2
+} DXGI_SCALING;
+typedef struct DXGI_SWAP_CHAIN_DESC1 {
+ UINT Width;
+ UINT Height;
+ DXGI_FORMAT Format;
+ WINBOOL Stereo;
+ DXGI_SAMPLE_DESC SampleDesc;
+ DXGI_USAGE BufferUsage;
+ UINT BufferCount;
+ DXGI_SCALING Scaling;
+ DXGI_SWAP_EFFECT SwapEffect;
+ DXGI_ALPHA_MODE AlphaMode;
+ UINT Flags;
+} DXGI_SWAP_CHAIN_DESC1;
+typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
+ DXGI_RATIONAL RefreshRate;
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
+ DXGI_MODE_SCALING Scaling;
+ WINBOOL Windowed;
+} DXGI_SWAP_CHAIN_FULLSCREEN_DESC;
+typedef struct DXGI_PRESENT_PARAMETERS {
+ UINT DirtyRectsCount;
+ RECT *pDirtyRects;
+ RECT *pScrollRect;
+ POINT *pScrollOffset;
+} DXGI_PRESENT_PARAMETERS;
+/*****************************************************************************
+ * IDXGISwapChain1 interface
+ */
+#ifndef __IDXGISwapChain1_INTERFACE_DEFINED__
+#define __IDXGISwapChain1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChain1, 0x790a45f7, 0x0d42, 0x4876, 0x98,0x3a, 0x0a,0x55,0xcf,0xe6,0xf4,0xaa);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("790a45f7-0d42-4876-983a-0a55cfe6f4aa")
+IDXGISwapChain1 : public IDXGISwapChain
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc1(
+ DXGI_SWAP_CHAIN_DESC1 *pDesc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFullscreenDesc(
+ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetHwnd(
+ HWND *pHwnd) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCoreWindow(
+ REFIID refiid,
+ void **ppUnk) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Present1(
+ UINT SyncInterval,
+ UINT PresentFlags,
+ const DXGI_PRESENT_PARAMETERS *pPresentParameters) = 0;
+
+ virtual WINBOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRestrictToOutput(
+ IDXGIOutput **ppRestrictToOutput) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
+ const DXGI_RGBA *pColor) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
+ DXGI_RGBA *pColor) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRotation(
+ DXGI_MODE_ROTATION Rotation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRotation(
+ DXGI_MODE_ROTATION *pRotation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChain1, 0x790a45f7, 0x0d42, 0x4876, 0x98,0x3a, 0x0a,0x55,0xcf,0xe6,0xf4,0xaa)
+#endif
+#else
+typedef struct IDXGISwapChain1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChain1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChain1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChain1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISwapChain1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISwapChain1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISwapChain1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISwapChain1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISwapChain1 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *Present)(
+ IDXGISwapChain1 *This,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDXGISwapChain1 *This,
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface);
+
+ HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
+ IDXGISwapChain1 *This,
+ WINBOOL fullscreen,
+ IDXGIOutput *target);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
+ IDXGISwapChain1 *This,
+ WINBOOL *fullscreen,
+ IDXGIOutput **target);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISwapChain1 *This,
+ DXGI_SWAP_CHAIN_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
+ IDXGISwapChain1 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
+ IDXGISwapChain1 *This,
+ const DXGI_MODE_DESC *target_mode_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
+ IDXGISwapChain1 *This,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGISwapChain1 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
+ IDXGISwapChain1 *This,
+ UINT *last_present_count);
+
+ /*** IDXGISwapChain1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGISwapChain1 *This,
+ DXGI_SWAP_CHAIN_DESC1 *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
+ IDXGISwapChain1 *This,
+ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetHwnd)(
+ IDXGISwapChain1 *This,
+ HWND *pHwnd);
+
+ HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
+ IDXGISwapChain1 *This,
+ REFIID refiid,
+ void **ppUnk);
+
+ HRESULT (STDMETHODCALLTYPE *Present1)(
+ IDXGISwapChain1 *This,
+ UINT SyncInterval,
+ UINT PresentFlags,
+ const DXGI_PRESENT_PARAMETERS *pPresentParameters);
+
+ WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
+ IDXGISwapChain1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
+ IDXGISwapChain1 *This,
+ IDXGIOutput **ppRestrictToOutput);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
+ IDXGISwapChain1 *This,
+ const DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
+ IDXGISwapChain1 *This,
+ DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IDXGISwapChain1 *This,
+ DXGI_MODE_ROTATION Rotation);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IDXGISwapChain1 *This,
+ DXGI_MODE_ROTATION *pRotation);
+
+ END_INTERFACE
+} IDXGISwapChain1Vtbl;
+
+interface IDXGISwapChain1 {
+ CONST_VTBL IDXGISwapChain1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChain1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChain1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChain1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISwapChain1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISwapChain1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISwapChain1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISwapChain methods ***/
+#define IDXGISwapChain1_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
+#define IDXGISwapChain1_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
+#define IDXGISwapChain1_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain1_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISwapChain1_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
+#define IDXGISwapChain1_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
+#define IDXGISwapChain1_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
+#define IDXGISwapChain1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#define IDXGISwapChain1_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
+/*** IDXGISwapChain1 methods ***/
+#define IDXGISwapChain1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#define IDXGISwapChain1_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
+#define IDXGISwapChain1_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
+#define IDXGISwapChain1_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
+#define IDXGISwapChain1_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
+#define IDXGISwapChain1_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
+#define IDXGISwapChain1_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
+#define IDXGISwapChain1_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
+#define IDXGISwapChain1_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
+#define IDXGISwapChain1_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
+#define IDXGISwapChain1_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain1_QueryInterface(IDXGISwapChain1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChain1_AddRef(IDXGISwapChain1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChain1_Release(IDXGISwapChain1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain1_SetPrivateData(IDXGISwapChain1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_SetPrivateDataInterface(IDXGISwapChain1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetPrivateData(IDXGISwapChain1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetParent(IDXGISwapChain1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain1_GetDevice(IDXGISwapChain1* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISwapChain methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain1_Present(IDXGISwapChain1* This,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->Present(This,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetBuffer(IDXGISwapChain1* This,UINT buffer_idx,REFIID riid,void **surface) {
+ return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_SetFullscreenState(IDXGISwapChain1* This,WINBOOL fullscreen,IDXGIOutput *target) {
+ return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetFullscreenState(IDXGISwapChain1* This,WINBOOL *fullscreen,IDXGIOutput **target) {
+ return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetDesc(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_ResizeBuffers(IDXGISwapChain1* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
+ return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_ResizeTarget(IDXGISwapChain1* This,const DXGI_MODE_DESC *target_mode_desc) {
+ return This->lpVtbl->ResizeTarget(This,target_mode_desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetContainingOutput(IDXGISwapChain1* This,IDXGIOutput **output) {
+ return This->lpVtbl->GetContainingOutput(This,output);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetFrameStatistics(IDXGISwapChain1* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetLastPresentCount(IDXGISwapChain1* This,UINT *last_present_count) {
+ return This->lpVtbl->GetLastPresentCount(This,last_present_count);
+}
+/*** IDXGISwapChain1 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain1_GetDesc1(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetFullscreenDesc(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
+ return This->lpVtbl->GetFullscreenDesc(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetHwnd(IDXGISwapChain1* This,HWND *pHwnd) {
+ return This->lpVtbl->GetHwnd(This,pHwnd);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetCoreWindow(IDXGISwapChain1* This,REFIID refiid,void **ppUnk) {
+ return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_Present1(IDXGISwapChain1* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
+ return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
+}
+static FORCEINLINE WINBOOL IDXGISwapChain1_IsTemporaryMonoSupported(IDXGISwapChain1* This) {
+ return This->lpVtbl->IsTemporaryMonoSupported(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetRestrictToOutput(IDXGISwapChain1* This,IDXGIOutput **ppRestrictToOutput) {
+ return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_SetBackgroundColor(IDXGISwapChain1* This,const DXGI_RGBA *pColor) {
+ return This->lpVtbl->SetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetBackgroundColor(IDXGISwapChain1* This,DXGI_RGBA *pColor) {
+ return This->lpVtbl->GetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_SetRotation(IDXGISwapChain1* This,DXGI_MODE_ROTATION Rotation) {
+ return This->lpVtbl->SetRotation(This,Rotation);
+}
+static FORCEINLINE HRESULT IDXGISwapChain1_GetRotation(IDXGISwapChain1* This,DXGI_MODE_ROTATION *pRotation) {
+ return This->lpVtbl->GetRotation(This,pRotation);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory2 interface
+ */
+#ifndef __IDXGIFactory2_INTERFACE_DEFINED__
+#define __IDXGIFactory2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0")
+IDXGIFactory2 : public IDXGIFactory1
+{
+ virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd(
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow(
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid(
+ HANDLE hResource,
+ LUID *pLuid) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow(
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent(
+ HANDLE hEvent,
+ DWORD *pdwCookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterStereoStatus(
+ DWORD dwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow(
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent(
+ HANDLE hEvent,
+ DWORD *pdwCookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus(
+ DWORD dwCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition(
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0)
+#endif
+#else
+typedef struct IDXGIFactory2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory2 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory2 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory2 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory2 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory2 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory2 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory2 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory2 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory2 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory2 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory2 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory2 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory2 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory2 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory2 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory2 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory2 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ END_INTERFACE
+} IDXGIFactory2Vtbl;
+
+interface IDXGIFactory2 {
+ CONST_VTBL IDXGIFactory2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory2_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory2_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory2_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory2_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory2_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory2_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */
+
+typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1,
+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2,
+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3,
+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4
+} DXGI_GRAPHICS_PREEMPTION_GRANULARITY;
+typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY {
+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1,
+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2,
+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3,
+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4
+} DXGI_COMPUTE_PREEMPTION_GRANULARITY;
+typedef struct DXGI_ADAPTER_DESC2 {
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+ UINT Flags;
+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
+} DXGI_ADAPTER_DESC2;
+/*****************************************************************************
+ * IDXGIAdapter2 interface
+ */
+#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__
+#define __IDXGIAdapter2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5")
+IDXGIAdapter2 : public IDXGIAdapter1
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc2(
+ DXGI_ADAPTER_DESC2 *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5)
+#endif
+#else
+typedef struct IDXGIAdapter2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIAdapter2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIAdapter2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIAdapter2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIAdapter2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIAdapter2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIAdapter2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIAdapter2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIAdapter methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
+ IDXGIAdapter2 *This,
+ UINT output_idx,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIAdapter2 *This,
+ DXGI_ADAPTER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
+ IDXGIAdapter2 *This,
+ REFGUID guid,
+ LARGE_INTEGER *umd_version);
+
+ /*** IDXGIAdapter1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGIAdapter2 *This,
+ DXGI_ADAPTER_DESC1 *pDesc);
+
+ /*** IDXGIAdapter2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc2)(
+ IDXGIAdapter2 *This,
+ DXGI_ADAPTER_DESC2 *pDesc);
+
+ END_INTERFACE
+} IDXGIAdapter2Vtbl;
+
+interface IDXGIAdapter2 {
+ CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIAdapter methods ***/
+#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
+#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
+/*** IDXGIAdapter1 methods ***/
+#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+/*** IDXGIAdapter2 methods ***/
+#define IDXGIAdapter2_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIAdapter methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) {
+ return This->lpVtbl->EnumOutputs(This,output_idx,output);
+}
+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) {
+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
+}
+/*** IDXGIAdapter1 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+/*** IDXGIAdapter2 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *pDesc) {
+ return This->lpVtbl->GetDesc2(This,pDesc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput1 interface
+ */
+#ifndef __IDXGIOutput1_INTERFACE_DEFINED__
+#define __IDXGIOutput1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc")
+IDXGIOutput1 : public IDXGIOutput
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1(
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1(
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1(
+ IDXGIResource *destination) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput(
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc)
+#endif
+#else
+typedef struct IDXGIOutput1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput1 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput1 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput1 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput1 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput1 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput1 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput1 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput1 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput1 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput1 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput1 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput1 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput1 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput1 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput1 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput1 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput1 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput1 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput1 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput1 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput1 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput1 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ END_INTERFACE
+} IDXGIOutput1Vtbl;
+
+interface IDXGIOutput1 {
+ CONST_VTBL IDXGIOutput1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput1_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput1_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput1_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput1_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi1_2_h__ */
diff --git a/dxgi1_3.h b/dxgi1_3.h
new file mode 100644
index 0000000..655f1ca
--- /dev/null
+++ b/dxgi1_3.h
@@ -0,0 +1,1954 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi1_3.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi1_3_h__
+#define __dxgi1_3_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIDevice3_FWD_DEFINED__
+#define __IDXGIDevice3_FWD_DEFINED__
+typedef interface IDXGIDevice3 IDXGIDevice3;
+#ifdef __cplusplus
+interface IDXGIDevice3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISwapChain2_FWD_DEFINED__
+#define __IDXGISwapChain2_FWD_DEFINED__
+typedef interface IDXGISwapChain2 IDXGISwapChain2;
+#ifdef __cplusplus
+interface IDXGISwapChain2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput2_FWD_DEFINED__
+#define __IDXGIOutput2_FWD_DEFINED__
+typedef interface IDXGIOutput2 IDXGIOutput2;
+#ifdef __cplusplus
+interface IDXGIOutput2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory3_FWD_DEFINED__
+#define __IDXGIFactory3_FWD_DEFINED__
+typedef interface IDXGIFactory3 IDXGIFactory3;
+#ifdef __cplusplus
+interface IDXGIFactory3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDecodeSwapChain_FWD_DEFINED__
+#define __IDXGIDecodeSwapChain_FWD_DEFINED__
+typedef interface IDXGIDecodeSwapChain IDXGIDecodeSwapChain;
+#ifdef __cplusplus
+interface IDXGIDecodeSwapChain;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactoryMedia_FWD_DEFINED__
+#define __IDXGIFactoryMedia_FWD_DEFINED__
+typedef interface IDXGIFactoryMedia IDXGIFactoryMedia;
+#ifdef __cplusplus
+interface IDXGIFactoryMedia;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISwapChainMedia_FWD_DEFINED__
+#define __IDXGISwapChainMedia_FWD_DEFINED__
+typedef interface IDXGISwapChainMedia IDXGISwapChainMedia;
+#ifdef __cplusplus
+interface IDXGISwapChainMedia;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput3_FWD_DEFINED__
+#define __IDXGIOutput3_FWD_DEFINED__
+typedef interface IDXGIOutput3 IDXGIOutput3;
+#ifdef __cplusplus
+interface IDXGIOutput3;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <dxgi1_2.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct DXGI_MATRIX_3X2_F {
+ float _11;
+ float _12;
+ float _21;
+ float _22;
+ float _31;
+ float _32;
+} DXGI_MATRIX_3X2_F;
+typedef struct DXGI_DECODE_SWAP_CHAIN_DESC {
+ UINT Flags;
+} DXGI_DECODE_SWAP_CHAIN_DESC;
+typedef enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4
+} DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
+typedef enum DXGI_FRAME_PRESENTATION_MODE {
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
+ DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
+ DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3
+} DXGI_FRAME_PRESENTATION_MODE;
+typedef struct DXGI_FRAME_STATISTICS_MEDIA {
+ UINT PresentCount;
+ UINT PresentRefreshCount;
+ UINT SyncRefreshCount;
+ LARGE_INTEGER SyncQPCTime;
+ LARGE_INTEGER SyncGPUTime;
+ DXGI_FRAME_PRESENTATION_MODE CompositionMode;
+ UINT ApprovedPresentDuration;
+} DXGI_FRAME_STATISTICS_MEDIA;
+typedef enum DXGI_OVERLAY_SUPPORT_FLAG {
+ DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
+ DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2
+} DXGI_OVERLAY_SUPPORT_FLAG;
+/*****************************************************************************
+ * IDXGIDevice3 interface
+ */
+#ifndef __IDXGIDevice3_INTERFACE_DEFINED__
+#define __IDXGIDevice3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDevice3, 0x6007896c, 0x3244, 0x4afd, 0xbf,0x18, 0xa6,0xd3,0xbe,0xda,0x50,0x23);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6007896c-3244-4afd-bf18-a6d3beda5023")
+IDXGIDevice3 : public IDXGIDevice2
+{
+ virtual void STDMETHODCALLTYPE Trim(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDevice3, 0x6007896c, 0x3244, 0x4afd, 0xbf,0x18, 0xa6,0xd3,0xbe,0xda,0x50,0x23)
+#endif
+#else
+typedef struct IDXGIDevice3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDevice3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDevice3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDevice3 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDevice3 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDevice3 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDevice3 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDevice3 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdapter)(
+ IDXGIDevice3 *This,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDXGIDevice3 *This,
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface);
+
+ HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
+ IDXGIDevice3 *This,
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count);
+
+ HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
+ IDXGIDevice3 *This,
+ INT priority);
+
+ HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
+ IDXGIDevice3 *This,
+ INT *priority);
+
+ /*** IDXGIDevice1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGIDevice3 *This,
+ UINT MaxLatency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGIDevice3 *This,
+ UINT *pMaxLatency);
+
+ /*** IDXGIDevice2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OfferResources)(
+ IDXGIDevice3 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ DXGI_OFFER_RESOURCE_PRIORITY Priority);
+
+ HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
+ IDXGIDevice3 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ WINBOOL *pDiscarded);
+
+ HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
+ IDXGIDevice3 *This,
+ HANDLE hEvent);
+
+ /*** IDXGIDevice3 methods ***/
+ void (STDMETHODCALLTYPE *Trim)(
+ IDXGIDevice3 *This);
+
+ END_INTERFACE
+} IDXGIDevice3Vtbl;
+
+interface IDXGIDevice3 {
+ CONST_VTBL IDXGIDevice3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDevice3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDevice3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDevice3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDevice3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDevice3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDevice methods ***/
+#define IDXGIDevice3_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
+#define IDXGIDevice3_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
+#define IDXGIDevice3_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
+#define IDXGIDevice3_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
+#define IDXGIDevice3_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
+/*** IDXGIDevice1 methods ***/
+#define IDXGIDevice3_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
+#define IDXGIDevice3_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
+/*** IDXGIDevice2 methods ***/
+#define IDXGIDevice3_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
+#define IDXGIDevice3_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
+#define IDXGIDevice3_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
+/*** IDXGIDevice3 methods ***/
+#define IDXGIDevice3_Trim(This) (This)->lpVtbl->Trim(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDevice3_QueryInterface(IDXGIDevice3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDevice3_AddRef(IDXGIDevice3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDevice3_Release(IDXGIDevice3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDevice3_SetPrivateData(IDXGIDevice3* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_SetPrivateDataInterface(IDXGIDevice3* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_GetPrivateData(IDXGIDevice3* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_GetParent(IDXGIDevice3* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDevice methods ***/
+static FORCEINLINE HRESULT IDXGIDevice3_GetAdapter(IDXGIDevice3* This,IDXGIAdapter **adapter) {
+ return This->lpVtbl->GetAdapter(This,adapter);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_CreateSurface(IDXGIDevice3* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
+ return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_QueryResourceResidency(IDXGIDevice3* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
+ return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_SetGPUThreadPriority(IDXGIDevice3* This,INT priority) {
+ return This->lpVtbl->SetGPUThreadPriority(This,priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_GetGPUThreadPriority(IDXGIDevice3* This,INT *priority) {
+ return This->lpVtbl->GetGPUThreadPriority(This,priority);
+}
+/*** IDXGIDevice1 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice3_SetMaximumFrameLatency(IDXGIDevice3* This,UINT MaxLatency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_GetMaximumFrameLatency(IDXGIDevice3* This,UINT *pMaxLatency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
+}
+/*** IDXGIDevice2 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice3_OfferResources(IDXGIDevice3* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
+ return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_ReclaimResources(IDXGIDevice3* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
+ return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
+}
+static FORCEINLINE HRESULT IDXGIDevice3_EnqueueSetEvent(IDXGIDevice3* This,HANDLE hEvent) {
+ return This->lpVtbl->EnqueueSetEvent(This,hEvent);
+}
+/*** IDXGIDevice3 methods ***/
+static FORCEINLINE void IDXGIDevice3_Trim(IDXGIDevice3* This) {
+ This->lpVtbl->Trim(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDevice3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISwapChain2 interface
+ */
+#ifndef __IDXGISwapChain2_INTERFACE_DEFINED__
+#define __IDXGISwapChain2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChain2, 0xa8be2ac4, 0x199f, 0x4946, 0xb3,0x31, 0x79,0x59,0x9f,0xb9,0x8d,0xe7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a8be2ac4-199f-4946-b331-79599fb98de7")
+IDXGISwapChain2 : public IDXGISwapChain1
+{
+ virtual HRESULT STDMETHODCALLTYPE SetSourceSize(
+ UINT width,
+ UINT height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSourceSize(
+ UINT *width,
+ UINT *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
+ UINT max_latency) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
+ UINT *max_latency) = 0;
+
+ virtual HANDLE STDMETHODCALLTYPE GetFrameLatencyWaitableObject(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMatrixTransform(
+ const DXGI_MATRIX_3X2_F *matrix) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMatrixTransform(
+ DXGI_MATRIX_3X2_F *matrix) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChain2, 0xa8be2ac4, 0x199f, 0x4946, 0xb3,0x31, 0x79,0x59,0x9f,0xb9,0x8d,0xe7)
+#endif
+#else
+typedef struct IDXGISwapChain2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChain2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChain2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChain2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISwapChain2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISwapChain2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISwapChain2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISwapChain2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISwapChain2 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *Present)(
+ IDXGISwapChain2 *This,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDXGISwapChain2 *This,
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface);
+
+ HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
+ IDXGISwapChain2 *This,
+ WINBOOL fullscreen,
+ IDXGIOutput *target);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
+ IDXGISwapChain2 *This,
+ WINBOOL *fullscreen,
+ IDXGIOutput **target);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISwapChain2 *This,
+ DXGI_SWAP_CHAIN_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
+ IDXGISwapChain2 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
+ IDXGISwapChain2 *This,
+ const DXGI_MODE_DESC *target_mode_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
+ IDXGISwapChain2 *This,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGISwapChain2 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
+ IDXGISwapChain2 *This,
+ UINT *last_present_count);
+
+ /*** IDXGISwapChain1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGISwapChain2 *This,
+ DXGI_SWAP_CHAIN_DESC1 *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
+ IDXGISwapChain2 *This,
+ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetHwnd)(
+ IDXGISwapChain2 *This,
+ HWND *pHwnd);
+
+ HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
+ IDXGISwapChain2 *This,
+ REFIID refiid,
+ void **ppUnk);
+
+ HRESULT (STDMETHODCALLTYPE *Present1)(
+ IDXGISwapChain2 *This,
+ UINT SyncInterval,
+ UINT PresentFlags,
+ const DXGI_PRESENT_PARAMETERS *pPresentParameters);
+
+ WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
+ IDXGISwapChain2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
+ IDXGISwapChain2 *This,
+ IDXGIOutput **ppRestrictToOutput);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
+ IDXGISwapChain2 *This,
+ const DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
+ IDXGISwapChain2 *This,
+ DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IDXGISwapChain2 *This,
+ DXGI_MODE_ROTATION Rotation);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IDXGISwapChain2 *This,
+ DXGI_MODE_ROTATION *pRotation);
+
+ /*** IDXGISwapChain2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
+ IDXGISwapChain2 *This,
+ UINT width,
+ UINT height);
+
+ HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
+ IDXGISwapChain2 *This,
+ UINT *width,
+ UINT *height);
+
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGISwapChain2 *This,
+ UINT max_latency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGISwapChain2 *This,
+ UINT *max_latency);
+
+ HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
+ IDXGISwapChain2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
+ IDXGISwapChain2 *This,
+ const DXGI_MATRIX_3X2_F *matrix);
+
+ HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
+ IDXGISwapChain2 *This,
+ DXGI_MATRIX_3X2_F *matrix);
+
+ END_INTERFACE
+} IDXGISwapChain2Vtbl;
+
+interface IDXGISwapChain2 {
+ CONST_VTBL IDXGISwapChain2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChain2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChain2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChain2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISwapChain2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISwapChain2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISwapChain2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISwapChain methods ***/
+#define IDXGISwapChain2_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
+#define IDXGISwapChain2_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
+#define IDXGISwapChain2_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain2_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISwapChain2_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
+#define IDXGISwapChain2_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
+#define IDXGISwapChain2_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
+#define IDXGISwapChain2_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#define IDXGISwapChain2_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
+/*** IDXGISwapChain1 methods ***/
+#define IDXGISwapChain2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#define IDXGISwapChain2_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
+#define IDXGISwapChain2_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
+#define IDXGISwapChain2_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
+#define IDXGISwapChain2_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
+#define IDXGISwapChain2_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
+#define IDXGISwapChain2_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
+#define IDXGISwapChain2_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
+#define IDXGISwapChain2_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
+#define IDXGISwapChain2_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
+#define IDXGISwapChain2_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
+/*** IDXGISwapChain2 methods ***/
+#define IDXGISwapChain2_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
+#define IDXGISwapChain2_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
+#define IDXGISwapChain2_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain2_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain2_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
+#define IDXGISwapChain2_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
+#define IDXGISwapChain2_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_QueryInterface(IDXGISwapChain2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChain2_AddRef(IDXGISwapChain2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChain2_Release(IDXGISwapChain2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_SetPrivateData(IDXGISwapChain2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetPrivateDataInterface(IDXGISwapChain2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetPrivateData(IDXGISwapChain2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetParent(IDXGISwapChain2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_GetDevice(IDXGISwapChain2* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISwapChain methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_Present(IDXGISwapChain2* This,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->Present(This,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetBuffer(IDXGISwapChain2* This,UINT buffer_idx,REFIID riid,void **surface) {
+ return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetFullscreenState(IDXGISwapChain2* This,WINBOOL fullscreen,IDXGIOutput *target) {
+ return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetFullscreenState(IDXGISwapChain2* This,WINBOOL *fullscreen,IDXGIOutput **target) {
+ return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetDesc(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_ResizeBuffers(IDXGISwapChain2* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
+ return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_ResizeTarget(IDXGISwapChain2* This,const DXGI_MODE_DESC *target_mode_desc) {
+ return This->lpVtbl->ResizeTarget(This,target_mode_desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetContainingOutput(IDXGISwapChain2* This,IDXGIOutput **output) {
+ return This->lpVtbl->GetContainingOutput(This,output);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetFrameStatistics(IDXGISwapChain2* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetLastPresentCount(IDXGISwapChain2* This,UINT *last_present_count) {
+ return This->lpVtbl->GetLastPresentCount(This,last_present_count);
+}
+/*** IDXGISwapChain1 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_GetDesc1(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetFullscreenDesc(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
+ return This->lpVtbl->GetFullscreenDesc(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetHwnd(IDXGISwapChain2* This,HWND *pHwnd) {
+ return This->lpVtbl->GetHwnd(This,pHwnd);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetCoreWindow(IDXGISwapChain2* This,REFIID refiid,void **ppUnk) {
+ return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_Present1(IDXGISwapChain2* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
+ return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
+}
+static FORCEINLINE WINBOOL IDXGISwapChain2_IsTemporaryMonoSupported(IDXGISwapChain2* This) {
+ return This->lpVtbl->IsTemporaryMonoSupported(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetRestrictToOutput(IDXGISwapChain2* This,IDXGIOutput **ppRestrictToOutput) {
+ return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetBackgroundColor(IDXGISwapChain2* This,const DXGI_RGBA *pColor) {
+ return This->lpVtbl->SetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetBackgroundColor(IDXGISwapChain2* This,DXGI_RGBA *pColor) {
+ return This->lpVtbl->GetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetRotation(IDXGISwapChain2* This,DXGI_MODE_ROTATION Rotation) {
+ return This->lpVtbl->SetRotation(This,Rotation);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetRotation(IDXGISwapChain2* This,DXGI_MODE_ROTATION *pRotation) {
+ return This->lpVtbl->GetRotation(This,pRotation);
+}
+/*** IDXGISwapChain2 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain2_SetSourceSize(IDXGISwapChain2* This,UINT width,UINT height) {
+ return This->lpVtbl->SetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetSourceSize(IDXGISwapChain2* This,UINT *width,UINT *height) {
+ return This->lpVtbl->GetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetMaximumFrameLatency(IDXGISwapChain2* This,UINT max_latency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetMaximumFrameLatency(IDXGISwapChain2* This,UINT *max_latency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HANDLE IDXGISwapChain2_GetFrameLatencyWaitableObject(IDXGISwapChain2* This) {
+ return This->lpVtbl->GetFrameLatencyWaitableObject(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_SetMatrixTransform(IDXGISwapChain2* This,const DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->SetMatrixTransform(This,matrix);
+}
+static FORCEINLINE HRESULT IDXGISwapChain2_GetMatrixTransform(IDXGISwapChain2* This,DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->GetMatrixTransform(This,matrix);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChain2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput2 interface
+ */
+#ifndef __IDXGIOutput2_INTERFACE_DEFINED__
+#define __IDXGIOutput2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput2, 0x595e39d1, 0x2724, 0x4663, 0x99,0xb1, 0xda,0x96,0x9d,0xe2,0x83,0x64);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("595e39d1-2724-4663-99b1-da969de28364")
+IDXGIOutput2 : public IDXGIOutput1
+{
+ virtual WINBOOL STDMETHODCALLTYPE SupportsOverlays(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput2, 0x595e39d1, 0x2724, 0x4663, 0x99,0xb1, 0xda,0x96,0x9d,0xe2,0x83,0x64)
+#endif
+#else
+typedef struct IDXGIOutput2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput2 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput2 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput2 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput2 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput2 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput2 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput2 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput2 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput2 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput2 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput2 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput2 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput2 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput2 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput2 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput2 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput2 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput2 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput2 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ /*** IDXGIOutput2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
+ IDXGIOutput2 *This);
+
+ END_INTERFACE
+} IDXGIOutput2Vtbl;
+
+interface IDXGIOutput2 {
+ CONST_VTBL IDXGIOutput2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput2_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput2_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput2_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput2_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput2_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput2_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput2_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput2_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput2_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput2_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput2_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput2_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput2_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput2_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput2_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+/*** IDXGIOutput2 methods ***/
+#define IDXGIOutput2_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput2_QueryInterface(IDXGIOutput2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput2_AddRef(IDXGIOutput2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput2_Release(IDXGIOutput2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput2_SetPrivateData(IDXGIOutput2* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_SetPrivateDataInterface(IDXGIOutput2* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetPrivateData(IDXGIOutput2* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetParent(IDXGIOutput2* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput2_GetDesc(IDXGIOutput2* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetDisplayModeList(IDXGIOutput2* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_FindClosestMatchingMode(IDXGIOutput2* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_WaitForVBlank(IDXGIOutput2* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_TakeOwnership(IDXGIOutput2* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput2_ReleaseOwnership(IDXGIOutput2* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetGammaControlCapabilities(IDXGIOutput2* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_SetGammaControl(IDXGIOutput2* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetGammaControl(IDXGIOutput2* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_SetDisplaySurface(IDXGIOutput2* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetDisplaySurfaceData(IDXGIOutput2* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetFrameStatistics(IDXGIOutput2* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput2_GetDisplayModeList1(IDXGIOutput2* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_FindClosestMatchingMode1(IDXGIOutput2* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_GetDisplaySurfaceData1(IDXGIOutput2* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput2_DuplicateOutput(IDXGIOutput2* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+/*** IDXGIOutput2 methods ***/
+static FORCEINLINE WINBOOL IDXGIOutput2_SupportsOverlays(IDXGIOutput2* This) {
+ return This->lpVtbl->SupportsOverlays(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory3 interface
+ */
+#ifndef __IDXGIFactory3_INTERFACE_DEFINED__
+#define __IDXGIFactory3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory3, 0x25483823, 0xcd46, 0x4c7d, 0x86,0xca, 0x47,0xaa,0x95,0xb8,0x37,0xbd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("25483823-cd46-4c7d-86ca-47aa95b837bd")
+IDXGIFactory3 : public IDXGIFactory2
+{
+ virtual UINT STDMETHODCALLTYPE GetCreationFlags(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory3, 0x25483823, 0xcd46, 0x4c7d, 0x86,0xca, 0x47,0xaa,0x95,0xb8,0x37,0xbd)
+#endif
+#else
+typedef struct IDXGIFactory3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory3 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory3 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory3 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory3 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory3 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory3 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory3 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory3 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory3 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory3 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory3 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory3 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory3 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory3 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory3 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory3 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory3 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory3 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory3 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory3 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory3 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory3 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ /*** IDXGIFactory3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ IDXGIFactory3 *This);
+
+ END_INTERFACE
+} IDXGIFactory3Vtbl;
+
+interface IDXGIFactory3 {
+ CONST_VTBL IDXGIFactory3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory3_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory3_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory3_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory3_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory3_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory3_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory3_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory3_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory3_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory3_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory3_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory3_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory3_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory3_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory3_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory3_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory3_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory3_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+/*** IDXGIFactory3 methods ***/
+#define IDXGIFactory3_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory3_QueryInterface(IDXGIFactory3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory3_AddRef(IDXGIFactory3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory3_Release(IDXGIFactory3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory3_SetPrivateData(IDXGIFactory3* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_SetPrivateDataInterface(IDXGIFactory3* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_GetPrivateData(IDXGIFactory3* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_GetParent(IDXGIFactory3* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory3_EnumAdapters(IDXGIFactory3* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_MakeWindowAssociation(IDXGIFactory3* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_GetWindowAssociation(IDXGIFactory3* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChain(IDXGIFactory3* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_CreateSoftwareAdapter(IDXGIFactory3* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory3_EnumAdapters1(IDXGIFactory3* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory3_IsCurrent(IDXGIFactory3* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory3_IsWindowedStereoEnabled(IDXGIFactory3* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForHwnd(IDXGIFactory3* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForCoreWindow(IDXGIFactory3* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_GetSharedResourceAdapterLuid(IDXGIFactory3* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_RegisterStereoStatusWindow(IDXGIFactory3* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_RegisterStereoStatusEvent(IDXGIFactory3* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory3_UnregisterStereoStatus(IDXGIFactory3* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_RegisterOcclusionStatusWindow(IDXGIFactory3* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_RegisterOcclusionStatusEvent(IDXGIFactory3* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory3_UnregisterOcclusionStatus(IDXGIFactory3* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForComposition(IDXGIFactory3* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+/*** IDXGIFactory3 methods ***/
+static FORCEINLINE UINT IDXGIFactory3_GetCreationFlags(IDXGIFactory3* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDecodeSwapChain interface
+ */
+#ifndef __IDXGIDecodeSwapChain_INTERFACE_DEFINED__
+#define __IDXGIDecodeSwapChain_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDecodeSwapChain, 0x2633066b, 0x4514, 0x4c7a, 0x8f,0xd8, 0x12,0xea,0x98,0x05,0x9d,0x18);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2633066b-4514-4c7a-8fd8-12ea98059d18")
+IDXGIDecodeSwapChain : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE PresentBuffer(
+ UINT buffer_to_present,
+ UINT sync_interval,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSourceRect(
+ const RECT *rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTargetRect(
+ const RECT *rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDestSize(
+ UINT width,
+ UINT height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSourceRect(
+ RECT *rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTargetRect(
+ RECT *rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDestSize(
+ UINT *width,
+ UINT *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetColorSpace(
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace) = 0;
+
+ virtual DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS STDMETHODCALLTYPE GetColorSpace(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDecodeSwapChain, 0x2633066b, 0x4514, 0x4c7a, 0x8f,0xd8, 0x12,0xea,0x98,0x05,0x9d,0x18)
+#endif
+#else
+typedef struct IDXGIDecodeSwapChainVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDecodeSwapChain *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDecodeSwapChain *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDecodeSwapChain *This);
+
+ /*** IDXGIDecodeSwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *PresentBuffer)(
+ IDXGIDecodeSwapChain *This,
+ UINT buffer_to_present,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *SetSourceRect)(
+ IDXGIDecodeSwapChain *This,
+ const RECT *rect);
+
+ HRESULT (STDMETHODCALLTYPE *SetTargetRect)(
+ IDXGIDecodeSwapChain *This,
+ const RECT *rect);
+
+ HRESULT (STDMETHODCALLTYPE *SetDestSize)(
+ IDXGIDecodeSwapChain *This,
+ UINT width,
+ UINT height);
+
+ HRESULT (STDMETHODCALLTYPE *GetSourceRect)(
+ IDXGIDecodeSwapChain *This,
+ RECT *rect);
+
+ HRESULT (STDMETHODCALLTYPE *GetTargetRect)(
+ IDXGIDecodeSwapChain *This,
+ RECT *rect);
+
+ HRESULT (STDMETHODCALLTYPE *GetDestSize)(
+ IDXGIDecodeSwapChain *This,
+ UINT *width,
+ UINT *height);
+
+ HRESULT (STDMETHODCALLTYPE *SetColorSpace)(
+ IDXGIDecodeSwapChain *This,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace);
+
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS (STDMETHODCALLTYPE *GetColorSpace)(
+ IDXGIDecodeSwapChain *This);
+
+ END_INTERFACE
+} IDXGIDecodeSwapChainVtbl;
+
+interface IDXGIDecodeSwapChain {
+ CONST_VTBL IDXGIDecodeSwapChainVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDecodeSwapChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDecodeSwapChain_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDecodeSwapChain_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIDecodeSwapChain methods ***/
+#define IDXGIDecodeSwapChain_PresentBuffer(This,buffer_to_present,sync_interval,flags) (This)->lpVtbl->PresentBuffer(This,buffer_to_present,sync_interval,flags)
+#define IDXGIDecodeSwapChain_SetSourceRect(This,rect) (This)->lpVtbl->SetSourceRect(This,rect)
+#define IDXGIDecodeSwapChain_SetTargetRect(This,rect) (This)->lpVtbl->SetTargetRect(This,rect)
+#define IDXGIDecodeSwapChain_SetDestSize(This,width,height) (This)->lpVtbl->SetDestSize(This,width,height)
+#define IDXGIDecodeSwapChain_GetSourceRect(This,rect) (This)->lpVtbl->GetSourceRect(This,rect)
+#define IDXGIDecodeSwapChain_GetTargetRect(This,rect) (This)->lpVtbl->GetTargetRect(This,rect)
+#define IDXGIDecodeSwapChain_GetDestSize(This,width,height) (This)->lpVtbl->GetDestSize(This,width,height)
+#define IDXGIDecodeSwapChain_SetColorSpace(This,colorspace) (This)->lpVtbl->SetColorSpace(This,colorspace)
+#define IDXGIDecodeSwapChain_GetColorSpace(This) (This)->lpVtbl->GetColorSpace(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_QueryInterface(IDXGIDecodeSwapChain* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDecodeSwapChain_AddRef(IDXGIDecodeSwapChain* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDecodeSwapChain_Release(IDXGIDecodeSwapChain* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIDecodeSwapChain methods ***/
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_PresentBuffer(IDXGIDecodeSwapChain* This,UINT buffer_to_present,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->PresentBuffer(This,buffer_to_present,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetSourceRect(IDXGIDecodeSwapChain* This,const RECT *rect) {
+ return This->lpVtbl->SetSourceRect(This,rect);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetTargetRect(IDXGIDecodeSwapChain* This,const RECT *rect) {
+ return This->lpVtbl->SetTargetRect(This,rect);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetDestSize(IDXGIDecodeSwapChain* This,UINT width,UINT height) {
+ return This->lpVtbl->SetDestSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetSourceRect(IDXGIDecodeSwapChain* This,RECT *rect) {
+ return This->lpVtbl->GetSourceRect(This,rect);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetTargetRect(IDXGIDecodeSwapChain* This,RECT *rect) {
+ return This->lpVtbl->GetTargetRect(This,rect);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetDestSize(IDXGIDecodeSwapChain* This,UINT *width,UINT *height) {
+ return This->lpVtbl->GetDestSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetColorSpace(IDXGIDecodeSwapChain* This,DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace) {
+ return This->lpVtbl->SetColorSpace(This,colorspace);
+}
+static FORCEINLINE DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS IDXGIDecodeSwapChain_GetColorSpace(IDXGIDecodeSwapChain* This) {
+ return This->lpVtbl->GetColorSpace(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDecodeSwapChain_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactoryMedia interface
+ */
+#ifndef __IDXGIFactoryMedia_INTERFACE_DEFINED__
+#define __IDXGIFactoryMedia_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactoryMedia, 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2,0xe5, 0xfa,0x9c,0x84,0x3e,0x1c,0x12);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12")
+IDXGIFactoryMedia : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCompositionSurfaceHandle(
+ IUnknown *device,
+ HANDLE surface,
+ const DXGI_SWAP_CHAIN_DESC1 *desc,
+ IDXGIOutput *restrict_to_output,
+ IDXGISwapChain1 **swapchain) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateDecodeSwapChainForCompositionSurfaceHandle(
+ IUnknown *device,
+ HANDLE surface,
+ DXGI_DECODE_SWAP_CHAIN_DESC *desc,
+ IDXGIResource *yuv_decode_buffers,
+ IDXGIOutput *restrict_to_output,
+ IDXGIDecodeSwapChain **swapchain) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactoryMedia, 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2,0xe5, 0xfa,0x9c,0x84,0x3e,0x1c,0x12)
+#endif
+#else
+typedef struct IDXGIFactoryMediaVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactoryMedia *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactoryMedia *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactoryMedia *This);
+
+ /*** IDXGIFactoryMedia methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCompositionSurfaceHandle)(
+ IDXGIFactoryMedia *This,
+ IUnknown *device,
+ HANDLE surface,
+ const DXGI_SWAP_CHAIN_DESC1 *desc,
+ IDXGIOutput *restrict_to_output,
+ IDXGISwapChain1 **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateDecodeSwapChainForCompositionSurfaceHandle)(
+ IDXGIFactoryMedia *This,
+ IUnknown *device,
+ HANDLE surface,
+ DXGI_DECODE_SWAP_CHAIN_DESC *desc,
+ IDXGIResource *yuv_decode_buffers,
+ IDXGIOutput *restrict_to_output,
+ IDXGIDecodeSwapChain **swapchain);
+
+ END_INTERFACE
+} IDXGIFactoryMediaVtbl;
+
+interface IDXGIFactoryMedia {
+ CONST_VTBL IDXGIFactoryMediaVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactoryMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactoryMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactoryMedia_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIFactoryMedia methods ***/
+#define IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain) (This)->lpVtbl->CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain)
+#define IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain) (This)->lpVtbl->CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactoryMedia_QueryInterface(IDXGIFactoryMedia* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactoryMedia_AddRef(IDXGIFactoryMedia* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactoryMedia_Release(IDXGIFactoryMedia* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIFactoryMedia methods ***/
+static FORCEINLINE HRESULT IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle(IDXGIFactoryMedia* This,IUnknown *device,HANDLE surface,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *restrict_to_output,IDXGISwapChain1 **swapchain) {
+ return This->lpVtbl->CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle(IDXGIFactoryMedia* This,IUnknown *device,HANDLE surface,DXGI_DECODE_SWAP_CHAIN_DESC *desc,IDXGIResource *yuv_decode_buffers,IDXGIOutput *restrict_to_output,IDXGIDecodeSwapChain **swapchain) {
+ return This->lpVtbl->CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactoryMedia_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISwapChainMedia interface
+ */
+#ifndef __IDXGISwapChainMedia_INTERFACE_DEFINED__
+#define __IDXGISwapChainMedia_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChainMedia, 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd,0x65, 0x25,0xbf,0xb2,0x64,0xbd,0x84);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dd95b90b-f05f-4f6a-bd65-25bfb264bd84")
+IDXGISwapChainMedia : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetFrameStatisticsMedia(
+ DXGI_FRAME_STATISTICS_MEDIA *stats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPresentDuration(
+ UINT duration) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckPresentDurationSupport(
+ UINT desired_present_duration,
+ UINT *closest_smaller_present_duration,
+ UINT *closest_larger_present_duration) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChainMedia, 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd,0x65, 0x25,0xbf,0xb2,0x64,0xbd,0x84)
+#endif
+#else
+typedef struct IDXGISwapChainMediaVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChainMedia *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChainMedia *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChainMedia *This);
+
+ /*** IDXGISwapChainMedia methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatisticsMedia)(
+ IDXGISwapChainMedia *This,
+ DXGI_FRAME_STATISTICS_MEDIA *stats);
+
+ HRESULT (STDMETHODCALLTYPE *SetPresentDuration)(
+ IDXGISwapChainMedia *This,
+ UINT duration);
+
+ HRESULT (STDMETHODCALLTYPE *CheckPresentDurationSupport)(
+ IDXGISwapChainMedia *This,
+ UINT desired_present_duration,
+ UINT *closest_smaller_present_duration,
+ UINT *closest_larger_present_duration);
+
+ END_INTERFACE
+} IDXGISwapChainMediaVtbl;
+
+interface IDXGISwapChainMedia {
+ CONST_VTBL IDXGISwapChainMediaVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChainMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChainMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChainMedia_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGISwapChainMedia methods ***/
+#define IDXGISwapChainMedia_GetFrameStatisticsMedia(This,stats) (This)->lpVtbl->GetFrameStatisticsMedia(This,stats)
+#define IDXGISwapChainMedia_SetPresentDuration(This,duration) (This)->lpVtbl->SetPresentDuration(This,duration)
+#define IDXGISwapChainMedia_CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration) (This)->lpVtbl->CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChainMedia_QueryInterface(IDXGISwapChainMedia* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChainMedia_AddRef(IDXGISwapChainMedia* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChainMedia_Release(IDXGISwapChainMedia* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGISwapChainMedia methods ***/
+static FORCEINLINE HRESULT IDXGISwapChainMedia_GetFrameStatisticsMedia(IDXGISwapChainMedia* This,DXGI_FRAME_STATISTICS_MEDIA *stats) {
+ return This->lpVtbl->GetFrameStatisticsMedia(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChainMedia_SetPresentDuration(IDXGISwapChainMedia* This,UINT duration) {
+ return This->lpVtbl->SetPresentDuration(This,duration);
+}
+static FORCEINLINE HRESULT IDXGISwapChainMedia_CheckPresentDurationSupport(IDXGISwapChainMedia* This,UINT desired_present_duration,UINT *closest_smaller_present_duration,UINT *closest_larger_present_duration) {
+ return This->lpVtbl->CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChainMedia_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput3 interface
+ */
+#ifndef __IDXGIOutput3_INTERFACE_DEFINED__
+#define __IDXGIOutput3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput3, 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8,0xe0, 0x5b,0x32,0xf7,0xf9,0x9b,0x18);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8a6bb301-7e7e-41f4-a8e0-5b32f7f99b18")
+IDXGIOutput3 : public IDXGIOutput2
+{
+ virtual HRESULT STDMETHODCALLTYPE CheckOverlaySupport(
+ DXGI_FORMAT enum_format,
+ IUnknown *concerned_device,
+ UINT *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput3, 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8,0xe0, 0x5b,0x32,0xf7,0xf9,0x9b,0x18)
+#endif
+#else
+typedef struct IDXGIOutput3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput3 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput3 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput3 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput3 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput3 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput3 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput3 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput3 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput3 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput3 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput3 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput3 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput3 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput3 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput3 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput3 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput3 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput3 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput3 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ /*** IDXGIOutput2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
+ IDXGIOutput3 *This);
+
+ /*** IDXGIOutput3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
+ IDXGIOutput3 *This,
+ DXGI_FORMAT enum_format,
+ IUnknown *concerned_device,
+ UINT *flags);
+
+ END_INTERFACE
+} IDXGIOutput3Vtbl;
+
+interface IDXGIOutput3 {
+ CONST_VTBL IDXGIOutput3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput3_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput3_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput3_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput3_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput3_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput3_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput3_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput3_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput3_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput3_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput3_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput3_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput3_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput3_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput3_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+/*** IDXGIOutput2 methods ***/
+#define IDXGIOutput3_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
+/*** IDXGIOutput3 methods ***/
+#define IDXGIOutput3_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput3_QueryInterface(IDXGIOutput3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput3_AddRef(IDXGIOutput3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput3_Release(IDXGIOutput3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput3_SetPrivateData(IDXGIOutput3* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_SetPrivateDataInterface(IDXGIOutput3* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetPrivateData(IDXGIOutput3* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetParent(IDXGIOutput3* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput3_GetDesc(IDXGIOutput3* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetDisplayModeList(IDXGIOutput3* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_FindClosestMatchingMode(IDXGIOutput3* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_WaitForVBlank(IDXGIOutput3* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_TakeOwnership(IDXGIOutput3* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput3_ReleaseOwnership(IDXGIOutput3* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetGammaControlCapabilities(IDXGIOutput3* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_SetGammaControl(IDXGIOutput3* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetGammaControl(IDXGIOutput3* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_SetDisplaySurface(IDXGIOutput3* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetDisplaySurfaceData(IDXGIOutput3* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetFrameStatistics(IDXGIOutput3* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput3_GetDisplayModeList1(IDXGIOutput3* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_FindClosestMatchingMode1(IDXGIOutput3* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_GetDisplaySurfaceData1(IDXGIOutput3* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput3_DuplicateOutput(IDXGIOutput3* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+/*** IDXGIOutput2 methods ***/
+static FORCEINLINE WINBOOL IDXGIOutput3_SupportsOverlays(IDXGIOutput3* This) {
+ return This->lpVtbl->SupportsOverlays(This);
+}
+/*** IDXGIOutput3 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput3_CheckOverlaySupport(IDXGIOutput3* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
+ return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput3_INTERFACE_DEFINED__ */
+
+#define DXGI_CREATE_FACTORY_DEBUG (0x1)
+
+HRESULT __stdcall CreateDXGIFactory2(UINT flags,REFIID iid,void **factory);
+
+HRESULT __stdcall DXGIGetDebugInterface1(UINT flags,REFIID iid,void **debug);
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi1_3_h__ */
diff --git a/dxgi1_4.h b/dxgi1_4.h
new file mode 100644
index 0000000..32f2a60
--- /dev/null
+++ b/dxgi1_4.h
@@ -0,0 +1,1356 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi1_4.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi1_4_h__
+#define __dxgi1_4_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGISwapChain3_FWD_DEFINED__
+#define __IDXGISwapChain3_FWD_DEFINED__
+typedef interface IDXGISwapChain3 IDXGISwapChain3;
+#ifdef __cplusplus
+interface IDXGISwapChain3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput4_FWD_DEFINED__
+#define __IDXGIOutput4_FWD_DEFINED__
+typedef interface IDXGIOutput4 IDXGIOutput4;
+#ifdef __cplusplus
+interface IDXGIOutput4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory4_FWD_DEFINED__
+#define __IDXGIFactory4_FWD_DEFINED__
+typedef interface IDXGIFactory4 IDXGIFactory4;
+#ifdef __cplusplus
+interface IDXGIFactory4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIAdapter3_FWD_DEFINED__
+#define __IDXGIAdapter3_FWD_DEFINED__
+typedef interface IDXGIAdapter3 IDXGIAdapter3;
+#ifdef __cplusplus
+interface IDXGIAdapter3;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <dxgi1_3.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2
+} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG;
+typedef enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1
+} DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG;
+typedef enum DXGI_MEMORY_SEGMENT_GROUP {
+ DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0x0,
+ DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 0x1
+} DXGI_MEMORY_SEGMENT_GROUP;
+typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO {
+ UINT64 Budget;
+ UINT64 CurrentUsage;
+ UINT64 AvailableForReservation;
+ UINT64 CurrentReservation;
+} DXGI_QUERY_VIDEO_MEMORY_INFO;
+/*****************************************************************************
+ * IDXGISwapChain3 interface
+ */
+#ifndef __IDXGISwapChain3_INTERFACE_DEFINED__
+#define __IDXGISwapChain3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChain3, 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2,0x36, 0x7d,0xa0,0x17,0x0e,0xda,0xb1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("94d99bdb-f1f8-4ab0-b236-7da0170edab1")
+IDXGISwapChain3 : public IDXGISwapChain2
+{
+ virtual UINT STDMETHODCALLTYPE GetCurrentBackBufferIndex(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckColorSpaceSupport(
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ UINT *colour_space_support) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetColorSpace1(
+ DXGI_COLOR_SPACE_TYPE colour_space) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResizeBuffers1(
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags,
+ const UINT *node_mask,
+ IUnknown *const *present_queue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChain3, 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2,0x36, 0x7d,0xa0,0x17,0x0e,0xda,0xb1)
+#endif
+#else
+typedef struct IDXGISwapChain3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChain3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChain3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChain3 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISwapChain3 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISwapChain3 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISwapChain3 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISwapChain3 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISwapChain3 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *Present)(
+ IDXGISwapChain3 *This,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDXGISwapChain3 *This,
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface);
+
+ HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
+ IDXGISwapChain3 *This,
+ WINBOOL fullscreen,
+ IDXGIOutput *target);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
+ IDXGISwapChain3 *This,
+ WINBOOL *fullscreen,
+ IDXGIOutput **target);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISwapChain3 *This,
+ DXGI_SWAP_CHAIN_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
+ IDXGISwapChain3 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
+ IDXGISwapChain3 *This,
+ const DXGI_MODE_DESC *target_mode_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
+ IDXGISwapChain3 *This,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGISwapChain3 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
+ IDXGISwapChain3 *This,
+ UINT *last_present_count);
+
+ /*** IDXGISwapChain1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGISwapChain3 *This,
+ DXGI_SWAP_CHAIN_DESC1 *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
+ IDXGISwapChain3 *This,
+ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetHwnd)(
+ IDXGISwapChain3 *This,
+ HWND *pHwnd);
+
+ HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
+ IDXGISwapChain3 *This,
+ REFIID refiid,
+ void **ppUnk);
+
+ HRESULT (STDMETHODCALLTYPE *Present1)(
+ IDXGISwapChain3 *This,
+ UINT SyncInterval,
+ UINT PresentFlags,
+ const DXGI_PRESENT_PARAMETERS *pPresentParameters);
+
+ WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
+ IDXGISwapChain3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
+ IDXGISwapChain3 *This,
+ IDXGIOutput **ppRestrictToOutput);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
+ IDXGISwapChain3 *This,
+ const DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
+ IDXGISwapChain3 *This,
+ DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IDXGISwapChain3 *This,
+ DXGI_MODE_ROTATION Rotation);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IDXGISwapChain3 *This,
+ DXGI_MODE_ROTATION *pRotation);
+
+ /*** IDXGISwapChain2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
+ IDXGISwapChain3 *This,
+ UINT width,
+ UINT height);
+
+ HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
+ IDXGISwapChain3 *This,
+ UINT *width,
+ UINT *height);
+
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGISwapChain3 *This,
+ UINT max_latency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGISwapChain3 *This,
+ UINT *max_latency);
+
+ HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
+ IDXGISwapChain3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
+ IDXGISwapChain3 *This,
+ const DXGI_MATRIX_3X2_F *matrix);
+
+ HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
+ IDXGISwapChain3 *This,
+ DXGI_MATRIX_3X2_F *matrix);
+
+ /*** IDXGISwapChain3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCurrentBackBufferIndex)(
+ IDXGISwapChain3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CheckColorSpaceSupport)(
+ IDXGISwapChain3 *This,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ UINT *colour_space_support);
+
+ HRESULT (STDMETHODCALLTYPE *SetColorSpace1)(
+ IDXGISwapChain3 *This,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers1)(
+ IDXGISwapChain3 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags,
+ const UINT *node_mask,
+ IUnknown *const *present_queue);
+
+ END_INTERFACE
+} IDXGISwapChain3Vtbl;
+
+interface IDXGISwapChain3 {
+ CONST_VTBL IDXGISwapChain3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChain3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChain3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChain3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISwapChain3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISwapChain3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISwapChain3_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISwapChain methods ***/
+#define IDXGISwapChain3_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
+#define IDXGISwapChain3_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
+#define IDXGISwapChain3_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain3_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISwapChain3_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
+#define IDXGISwapChain3_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
+#define IDXGISwapChain3_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
+#define IDXGISwapChain3_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#define IDXGISwapChain3_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
+/*** IDXGISwapChain1 methods ***/
+#define IDXGISwapChain3_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#define IDXGISwapChain3_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
+#define IDXGISwapChain3_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
+#define IDXGISwapChain3_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
+#define IDXGISwapChain3_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
+#define IDXGISwapChain3_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
+#define IDXGISwapChain3_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
+#define IDXGISwapChain3_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
+#define IDXGISwapChain3_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
+#define IDXGISwapChain3_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
+#define IDXGISwapChain3_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
+/*** IDXGISwapChain2 methods ***/
+#define IDXGISwapChain3_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
+#define IDXGISwapChain3_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
+#define IDXGISwapChain3_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain3_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain3_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
+#define IDXGISwapChain3_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
+#define IDXGISwapChain3_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
+/*** IDXGISwapChain3 methods ***/
+#define IDXGISwapChain3_GetCurrentBackBufferIndex(This) (This)->lpVtbl->GetCurrentBackBufferIndex(This)
+#define IDXGISwapChain3_CheckColorSpaceSupport(This,colour_space,colour_space_support) (This)->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support)
+#define IDXGISwapChain3_SetColorSpace1(This,colour_space) (This)->lpVtbl->SetColorSpace1(This,colour_space)
+#define IDXGISwapChain3_ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue) (This)->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_QueryInterface(IDXGISwapChain3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChain3_AddRef(IDXGISwapChain3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChain3_Release(IDXGISwapChain3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_SetPrivateData(IDXGISwapChain3* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetPrivateDataInterface(IDXGISwapChain3* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetPrivateData(IDXGISwapChain3* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetParent(IDXGISwapChain3* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_GetDevice(IDXGISwapChain3* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISwapChain methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_Present(IDXGISwapChain3* This,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->Present(This,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetBuffer(IDXGISwapChain3* This,UINT buffer_idx,REFIID riid,void **surface) {
+ return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetFullscreenState(IDXGISwapChain3* This,WINBOOL fullscreen,IDXGIOutput *target) {
+ return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetFullscreenState(IDXGISwapChain3* This,WINBOOL *fullscreen,IDXGIOutput **target) {
+ return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetDesc(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_ResizeBuffers(IDXGISwapChain3* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
+ return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_ResizeTarget(IDXGISwapChain3* This,const DXGI_MODE_DESC *target_mode_desc) {
+ return This->lpVtbl->ResizeTarget(This,target_mode_desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetContainingOutput(IDXGISwapChain3* This,IDXGIOutput **output) {
+ return This->lpVtbl->GetContainingOutput(This,output);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetFrameStatistics(IDXGISwapChain3* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetLastPresentCount(IDXGISwapChain3* This,UINT *last_present_count) {
+ return This->lpVtbl->GetLastPresentCount(This,last_present_count);
+}
+/*** IDXGISwapChain1 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_GetDesc1(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetFullscreenDesc(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
+ return This->lpVtbl->GetFullscreenDesc(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetHwnd(IDXGISwapChain3* This,HWND *pHwnd) {
+ return This->lpVtbl->GetHwnd(This,pHwnd);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetCoreWindow(IDXGISwapChain3* This,REFIID refiid,void **ppUnk) {
+ return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_Present1(IDXGISwapChain3* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
+ return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
+}
+static FORCEINLINE WINBOOL IDXGISwapChain3_IsTemporaryMonoSupported(IDXGISwapChain3* This) {
+ return This->lpVtbl->IsTemporaryMonoSupported(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetRestrictToOutput(IDXGISwapChain3* This,IDXGIOutput **ppRestrictToOutput) {
+ return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetBackgroundColor(IDXGISwapChain3* This,const DXGI_RGBA *pColor) {
+ return This->lpVtbl->SetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetBackgroundColor(IDXGISwapChain3* This,DXGI_RGBA *pColor) {
+ return This->lpVtbl->GetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetRotation(IDXGISwapChain3* This,DXGI_MODE_ROTATION Rotation) {
+ return This->lpVtbl->SetRotation(This,Rotation);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetRotation(IDXGISwapChain3* This,DXGI_MODE_ROTATION *pRotation) {
+ return This->lpVtbl->GetRotation(This,pRotation);
+}
+/*** IDXGISwapChain2 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain3_SetSourceSize(IDXGISwapChain3* This,UINT width,UINT height) {
+ return This->lpVtbl->SetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetSourceSize(IDXGISwapChain3* This,UINT *width,UINT *height) {
+ return This->lpVtbl->GetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetMaximumFrameLatency(IDXGISwapChain3* This,UINT max_latency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetMaximumFrameLatency(IDXGISwapChain3* This,UINT *max_latency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HANDLE IDXGISwapChain3_GetFrameLatencyWaitableObject(IDXGISwapChain3* This) {
+ return This->lpVtbl->GetFrameLatencyWaitableObject(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetMatrixTransform(IDXGISwapChain3* This,const DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->SetMatrixTransform(This,matrix);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_GetMatrixTransform(IDXGISwapChain3* This,DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->GetMatrixTransform(This,matrix);
+}
+/*** IDXGISwapChain3 methods ***/
+static FORCEINLINE UINT IDXGISwapChain3_GetCurrentBackBufferIndex(IDXGISwapChain3* This) {
+ return This->lpVtbl->GetCurrentBackBufferIndex(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_CheckColorSpaceSupport(IDXGISwapChain3* This,DXGI_COLOR_SPACE_TYPE colour_space,UINT *colour_space_support) {
+ return This->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_SetColorSpace1(IDXGISwapChain3* This,DXGI_COLOR_SPACE_TYPE colour_space) {
+ return This->lpVtbl->SetColorSpace1(This,colour_space);
+}
+static FORCEINLINE HRESULT IDXGISwapChain3_ResizeBuffers1(IDXGISwapChain3* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags,const UINT *node_mask,IUnknown *const *present_queue) {
+ return This->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChain3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput4 interface
+ */
+#ifndef __IDXGIOutput4_INTERFACE_DEFINED__
+#define __IDXGIOutput4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput4, 0xdc7dca35, 0x2196, 0x414d, 0x9f,0x53, 0x61,0x78,0x84,0x03,0x2a,0x60);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dc7dca35-2196-414d-9f53-617884032a60")
+IDXGIOutput4 : public IDXGIOutput3
+{
+ virtual HRESULT STDMETHODCALLTYPE CheckOverlayColorSpaceSupport(
+ DXGI_FORMAT format,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ IUnknown *device,
+ UINT *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput4, 0xdc7dca35, 0x2196, 0x414d, 0x9f,0x53, 0x61,0x78,0x84,0x03,0x2a,0x60)
+#endif
+#else
+typedef struct IDXGIOutput4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput4 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput4 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput4 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput4 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput4 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput4 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput4 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput4 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput4 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput4 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput4 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput4 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput4 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput4 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput4 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput4 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput4 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput4 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput4 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ /*** IDXGIOutput2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
+ IDXGIOutput4 *This);
+
+ /*** IDXGIOutput3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
+ IDXGIOutput4 *This,
+ DXGI_FORMAT enum_format,
+ IUnknown *concerned_device,
+ UINT *flags);
+
+ /*** IDXGIOutput4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
+ IDXGIOutput4 *This,
+ DXGI_FORMAT format,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ IUnknown *device,
+ UINT *flags);
+
+ END_INTERFACE
+} IDXGIOutput4Vtbl;
+
+interface IDXGIOutput4 {
+ CONST_VTBL IDXGIOutput4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput4_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput4_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput4_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput4_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput4_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput4_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput4_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput4_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput4_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput4_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput4_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput4_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput4_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput4_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput4_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+/*** IDXGIOutput2 methods ***/
+#define IDXGIOutput4_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
+/*** IDXGIOutput3 methods ***/
+#define IDXGIOutput4_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
+/*** IDXGIOutput4 methods ***/
+#define IDXGIOutput4_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_QueryInterface(IDXGIOutput4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput4_AddRef(IDXGIOutput4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput4_Release(IDXGIOutput4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_SetPrivateData(IDXGIOutput4* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_SetPrivateDataInterface(IDXGIOutput4* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetPrivateData(IDXGIOutput4* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetParent(IDXGIOutput4* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_GetDesc(IDXGIOutput4* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetDisplayModeList(IDXGIOutput4* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_FindClosestMatchingMode(IDXGIOutput4* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_WaitForVBlank(IDXGIOutput4* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_TakeOwnership(IDXGIOutput4* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput4_ReleaseOwnership(IDXGIOutput4* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetGammaControlCapabilities(IDXGIOutput4* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_SetGammaControl(IDXGIOutput4* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetGammaControl(IDXGIOutput4* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_SetDisplaySurface(IDXGIOutput4* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetDisplaySurfaceData(IDXGIOutput4* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetFrameStatistics(IDXGIOutput4* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_GetDisplayModeList1(IDXGIOutput4* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_FindClosestMatchingMode1(IDXGIOutput4* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_GetDisplaySurfaceData1(IDXGIOutput4* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput4_DuplicateOutput(IDXGIOutput4* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+/*** IDXGIOutput2 methods ***/
+static FORCEINLINE WINBOOL IDXGIOutput4_SupportsOverlays(IDXGIOutput4* This) {
+ return This->lpVtbl->SupportsOverlays(This);
+}
+/*** IDXGIOutput3 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_CheckOverlaySupport(IDXGIOutput4* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
+ return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
+}
+/*** IDXGIOutput4 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput4_CheckOverlayColorSpaceSupport(IDXGIOutput4* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
+ return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory4 interface
+ */
+#ifndef __IDXGIFactory4_INTERFACE_DEFINED__
+#define __IDXGIFactory4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory4, 0x1bc6ea02, 0xef36, 0x464f, 0xbf,0x0c, 0x21,0xca,0x39,0xe5,0x16,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1bc6ea02-ef36-464f-bf0c-21ca39e5168a")
+IDXGIFactory4 : public IDXGIFactory3
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumAdapterByLuid(
+ LUID luid,
+ REFIID iid,
+ void **adapter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumWarpAdapter(
+ REFIID iid,
+ void **adapter) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory4, 0x1bc6ea02, 0xef36, 0x464f, 0xbf,0x0c, 0x21,0xca,0x39,0xe5,0x16,0x8a)
+#endif
+#else
+typedef struct IDXGIFactory4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory4 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory4 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory4 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory4 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory4 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory4 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory4 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory4 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory4 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory4 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory4 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory4 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory4 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory4 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory4 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory4 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory4 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory4 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory4 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory4 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory4 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory4 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ /*** IDXGIFactory3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ IDXGIFactory4 *This);
+
+ /*** IDXGIFactory4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
+ IDXGIFactory4 *This,
+ LUID luid,
+ REFIID iid,
+ void **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
+ IDXGIFactory4 *This,
+ REFIID iid,
+ void **adapter);
+
+ END_INTERFACE
+} IDXGIFactory4Vtbl;
+
+interface IDXGIFactory4 {
+ CONST_VTBL IDXGIFactory4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory4_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory4_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory4_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory4_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory4_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory4_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory4_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory4_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory4_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory4_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory4_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory4_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory4_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory4_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory4_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory4_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory4_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory4_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+/*** IDXGIFactory3 methods ***/
+#define IDXGIFactory4_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+/*** IDXGIFactory4 methods ***/
+#define IDXGIFactory4_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
+#define IDXGIFactory4_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory4_QueryInterface(IDXGIFactory4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory4_AddRef(IDXGIFactory4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory4_Release(IDXGIFactory4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory4_SetPrivateData(IDXGIFactory4* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_SetPrivateDataInterface(IDXGIFactory4* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_GetPrivateData(IDXGIFactory4* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_GetParent(IDXGIFactory4* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapters(IDXGIFactory4* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_MakeWindowAssociation(IDXGIFactory4* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_GetWindowAssociation(IDXGIFactory4* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChain(IDXGIFactory4* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_CreateSoftwareAdapter(IDXGIFactory4* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapters1(IDXGIFactory4* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory4_IsCurrent(IDXGIFactory4* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory4_IsWindowedStereoEnabled(IDXGIFactory4* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForHwnd(IDXGIFactory4* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForCoreWindow(IDXGIFactory4* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_GetSharedResourceAdapterLuid(IDXGIFactory4* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_RegisterStereoStatusWindow(IDXGIFactory4* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_RegisterStereoStatusEvent(IDXGIFactory4* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory4_UnregisterStereoStatus(IDXGIFactory4* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_RegisterOcclusionStatusWindow(IDXGIFactory4* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_RegisterOcclusionStatusEvent(IDXGIFactory4* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory4_UnregisterOcclusionStatus(IDXGIFactory4* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForComposition(IDXGIFactory4* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+/*** IDXGIFactory3 methods ***/
+static FORCEINLINE UINT IDXGIFactory4_GetCreationFlags(IDXGIFactory4* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+/*** IDXGIFactory4 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapterByLuid(IDXGIFactory4* This,LUID luid,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory4_EnumWarpAdapter(IDXGIFactory4* This,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIAdapter3 interface
+ */
+#ifndef __IDXGIAdapter3_INTERFACE_DEFINED__
+#define __IDXGIAdapter3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIAdapter3, 0x645967a4, 0x1392, 0x4310, 0xa7,0x98, 0x80,0x53,0xce,0x3e,0x93,0xfd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("645967a4-1392-4310-a798-8053ce3e93fd")
+IDXGIAdapter3 : public IDXGIAdapter2
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterHardwareContentProtectionTeardownStatusEvent(
+ HANDLE event,
+ DWORD *cookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterHardwareContentProtectionTeardownStatus(
+ DWORD cookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryVideoMemoryInfo(
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVideoMemoryReservation(
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ UINT64 reservation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RegisterVideoMemoryBudgetChangeNotificationEvent(
+ HANDLE event,
+ DWORD *cookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterVideoMemoryBudgetChangeNotification(
+ DWORD cookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIAdapter3, 0x645967a4, 0x1392, 0x4310, 0xa7,0x98, 0x80,0x53,0xce,0x3e,0x93,0xfd)
+#endif
+#else
+typedef struct IDXGIAdapter3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIAdapter3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIAdapter3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIAdapter3 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIAdapter3 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIAdapter3 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIAdapter3 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIAdapter3 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIAdapter methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
+ IDXGIAdapter3 *This,
+ UINT output_idx,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIAdapter3 *This,
+ DXGI_ADAPTER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
+ IDXGIAdapter3 *This,
+ REFGUID guid,
+ LARGE_INTEGER *umd_version);
+
+ /*** IDXGIAdapter1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGIAdapter3 *This,
+ DXGI_ADAPTER_DESC1 *pDesc);
+
+ /*** IDXGIAdapter2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc2)(
+ IDXGIAdapter3 *This,
+ DXGI_ADAPTER_DESC2 *pDesc);
+
+ /*** IDXGIAdapter3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)(
+ IDXGIAdapter3 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)(
+ IDXGIAdapter3 *This,
+ DWORD cookie);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)(
+ IDXGIAdapter3 *This,
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info);
+
+ HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)(
+ IDXGIAdapter3 *This,
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ UINT64 reservation);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)(
+ IDXGIAdapter3 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)(
+ IDXGIAdapter3 *This,
+ DWORD cookie);
+
+ END_INTERFACE
+} IDXGIAdapter3Vtbl;
+
+interface IDXGIAdapter3 {
+ CONST_VTBL IDXGIAdapter3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIAdapter3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIAdapter3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIAdapter3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIAdapter3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIAdapter3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIAdapter methods ***/
+#define IDXGIAdapter3_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
+#define IDXGIAdapter3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIAdapter3_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
+/*** IDXGIAdapter1 methods ***/
+#define IDXGIAdapter3_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+/*** IDXGIAdapter2 methods ***/
+#define IDXGIAdapter3_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
+/*** IDXGIAdapter3 methods ***/
+#define IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie)
+#define IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie)
+#define IDXGIAdapter3_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info)
+#define IDXGIAdapter3_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation)
+#define IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie)
+#define IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_QueryInterface(IDXGIAdapter3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIAdapter3_AddRef(IDXGIAdapter3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIAdapter3_Release(IDXGIAdapter3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_SetPrivateData(IDXGIAdapter3* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_SetPrivateDataInterface(IDXGIAdapter3* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_GetPrivateData(IDXGIAdapter3* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_GetParent(IDXGIAdapter3* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIAdapter methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_EnumOutputs(IDXGIAdapter3* This,UINT output_idx,IDXGIOutput **output) {
+ return This->lpVtbl->EnumOutputs(This,output_idx,output);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc(IDXGIAdapter3* This,DXGI_ADAPTER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_CheckInterfaceSupport(IDXGIAdapter3* This,REFGUID guid,LARGE_INTEGER *umd_version) {
+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
+}
+/*** IDXGIAdapter1 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc1(IDXGIAdapter3* This,DXGI_ADAPTER_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+/*** IDXGIAdapter2 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc2(IDXGIAdapter3* This,DXGI_ADAPTER_DESC2 *pDesc) {
+ return This->lpVtbl->GetDesc2(This,pDesc);
+}
+/*** IDXGIAdapter3 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter3* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
+}
+static FORCEINLINE void IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter3* This,DWORD cookie) {
+ This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_QueryVideoMemoryInfo(IDXGIAdapter3* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) {
+ return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_SetVideoMemoryReservation(IDXGIAdapter3* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) {
+ return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation);
+}
+static FORCEINLINE HRESULT IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter3* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
+}
+static FORCEINLINE void IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter3* This,DWORD cookie) {
+ This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIAdapter3_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi1_4_h__ */
diff --git a/dxgi1_5.h b/dxgi1_5.h
new file mode 100644
index 0000000..a64001b
--- /dev/null
+++ b/dxgi1_5.h
@@ -0,0 +1,1407 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi1_5.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi1_5_h__
+#define __dxgi1_5_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIOutput5_FWD_DEFINED__
+#define __IDXGIOutput5_FWD_DEFINED__
+typedef interface IDXGIOutput5 IDXGIOutput5;
+#ifdef __cplusplus
+interface IDXGIOutput5;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGISwapChain4_FWD_DEFINED__
+#define __IDXGISwapChain4_FWD_DEFINED__
+typedef interface IDXGISwapChain4 IDXGISwapChain4;
+#ifdef __cplusplus
+interface IDXGISwapChain4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIDevice4_FWD_DEFINED__
+#define __IDXGIDevice4_FWD_DEFINED__
+typedef interface IDXGIDevice4 IDXGIDevice4;
+#ifdef __cplusplus
+interface IDXGIDevice4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory5_FWD_DEFINED__
+#define __IDXGIFactory5_FWD_DEFINED__
+typedef interface IDXGIFactory5 IDXGIFactory5;
+#ifdef __cplusplus
+interface IDXGIFactory5;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <dxgi1_4.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum DXGI_OUTDUPL_FLAG {
+ DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 0x1
+} DXGI_OUTDUPL_FLAG;
+typedef enum DXGI_HDR_METADATA_TYPE {
+ DXGI_HDR_METADATA_TYPE_NONE = 0x0,
+ DXGI_HDR_METADATA_TYPE_HDR10 = 0x1,
+ DXGI_HDR_METADATA_TYPE_HDR10PLUS = 0x2
+} DXGI_HDR_METADATA_TYPE;
+typedef enum _DXGI_OFFER_RESOURCE_FLAGS {
+ DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1
+} DXGI_OFFER_RESOURCE_FLAGS;
+typedef enum _DXGI_RECLAIM_RESOURCE_RESULTS {
+ DXGI_RECLAIM_RESOURCE_RESULT_OK = 0x0,
+ DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 0x1,
+ DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 0x2
+} DXGI_RECLAIM_RESOURCE_RESULTS;
+typedef enum DXGI_FEATURE {
+ DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0x0
+} DXGI_FEATURE;
+typedef struct DXGI_HDR_METADATA_HDR10 {
+ UINT16 RedPrimary[2];
+ UINT16 GreenPrimary[2];
+ UINT16 BluePrimary[2];
+ UINT16 WhitePoint[2];
+ UINT MaxMasteringLuminance;
+ UINT MinMasteringLuminance;
+ UINT16 MaxContentLightLevel;
+ UINT16 MaxFrameAverageLightLevel;
+} DXGI_HDR_METADATA_HDR10;
+typedef struct DXGI_HDR_METADATA_HDR10PLUS {
+ BYTE Data[72];
+} DXGI_HDR_METADATA_HDR10PLUS;
+/*****************************************************************************
+ * IDXGIOutput5 interface
+ */
+#ifndef __IDXGIOutput5_INTERFACE_DEFINED__
+#define __IDXGIOutput5_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput5, 0x80a07424, 0xab52, 0x42eb, 0x83,0x3c, 0x0c,0x42,0xfd,0x28,0x2d,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("80a07424-ab52-42eb-833c-0c42fd282d98")
+IDXGIOutput5 : public IDXGIOutput4
+{
+ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput1(
+ IUnknown *device,
+ UINT flags,
+ UINT format_count,
+ const DXGI_FORMAT *formats,
+ IDXGIOutputDuplication **duplication) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput5, 0x80a07424, 0xab52, 0x42eb, 0x83,0x3c, 0x0c,0x42,0xfd,0x28,0x2d,0x98)
+#endif
+#else
+typedef struct IDXGIOutput5Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput5 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput5 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput5 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput5 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput5 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput5 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput5 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput5 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput5 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput5 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput5 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput5 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput5 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput5 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput5 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput5 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput5 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput5 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput5 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput5 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput5 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ /*** IDXGIOutput2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
+ IDXGIOutput5 *This);
+
+ /*** IDXGIOutput3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
+ IDXGIOutput5 *This,
+ DXGI_FORMAT enum_format,
+ IUnknown *concerned_device,
+ UINT *flags);
+
+ /*** IDXGIOutput4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
+ IDXGIOutput5 *This,
+ DXGI_FORMAT format,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ IUnknown *device,
+ UINT *flags);
+
+ /*** IDXGIOutput5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)(
+ IDXGIOutput5 *This,
+ IUnknown *device,
+ UINT flags,
+ UINT format_count,
+ const DXGI_FORMAT *formats,
+ IDXGIOutputDuplication **duplication);
+
+ END_INTERFACE
+} IDXGIOutput5Vtbl;
+
+interface IDXGIOutput5 {
+ CONST_VTBL IDXGIOutput5Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput5_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput5_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput5_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput5_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput5_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput5_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput5_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput5_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput5_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput5_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput5_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput5_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput5_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput5_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput5_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput5_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput5_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput5_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput5_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+/*** IDXGIOutput2 methods ***/
+#define IDXGIOutput5_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
+/*** IDXGIOutput3 methods ***/
+#define IDXGIOutput5_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
+/*** IDXGIOutput4 methods ***/
+#define IDXGIOutput5_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
+/*** IDXGIOutput5 methods ***/
+#define IDXGIOutput5_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_QueryInterface(IDXGIOutput5* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput5_AddRef(IDXGIOutput5* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput5_Release(IDXGIOutput5* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_SetPrivateData(IDXGIOutput5* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_SetPrivateDataInterface(IDXGIOutput5* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetPrivateData(IDXGIOutput5* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetParent(IDXGIOutput5* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_GetDesc(IDXGIOutput5* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetDisplayModeList(IDXGIOutput5* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_FindClosestMatchingMode(IDXGIOutput5* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_WaitForVBlank(IDXGIOutput5* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_TakeOwnership(IDXGIOutput5* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput5_ReleaseOwnership(IDXGIOutput5* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetGammaControlCapabilities(IDXGIOutput5* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_SetGammaControl(IDXGIOutput5* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetGammaControl(IDXGIOutput5* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_SetDisplaySurface(IDXGIOutput5* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetDisplaySurfaceData(IDXGIOutput5* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetFrameStatistics(IDXGIOutput5* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_GetDisplayModeList1(IDXGIOutput5* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_FindClosestMatchingMode1(IDXGIOutput5* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_GetDisplaySurfaceData1(IDXGIOutput5* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput5_DuplicateOutput(IDXGIOutput5* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+/*** IDXGIOutput2 methods ***/
+static FORCEINLINE WINBOOL IDXGIOutput5_SupportsOverlays(IDXGIOutput5* This) {
+ return This->lpVtbl->SupportsOverlays(This);
+}
+/*** IDXGIOutput3 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_CheckOverlaySupport(IDXGIOutput5* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
+ return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
+}
+/*** IDXGIOutput4 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_CheckOverlayColorSpaceSupport(IDXGIOutput5* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
+ return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
+}
+/*** IDXGIOutput5 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput5_DuplicateOutput1(IDXGIOutput5* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) {
+ return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput5_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGISwapChain4 interface
+ */
+#ifndef __IDXGISwapChain4_INTERFACE_DEFINED__
+#define __IDXGISwapChain4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGISwapChain4, 0x3d585d5a, 0xbd4a, 0x489e, 0xb1,0xf4, 0x3d,0xbc,0xb6,0x45,0x2f,0xfb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb")
+IDXGISwapChain4 : public IDXGISwapChain3
+{
+ virtual HRESULT STDMETHODCALLTYPE SetHDRMetaData(
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ void *metadata) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGISwapChain4, 0x3d585d5a, 0xbd4a, 0x489e, 0xb1,0xf4, 0x3d,0xbc,0xb6,0x45,0x2f,0xfb)
+#endif
+#else
+typedef struct IDXGISwapChain4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGISwapChain4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGISwapChain4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGISwapChain4 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGISwapChain4 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGISwapChain4 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGISwapChain4 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGISwapChain4 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDeviceSubObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDevice)(
+ IDXGISwapChain4 *This,
+ REFIID riid,
+ void **device);
+
+ /*** IDXGISwapChain methods ***/
+ HRESULT (STDMETHODCALLTYPE *Present)(
+ IDXGISwapChain4 *This,
+ UINT sync_interval,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDXGISwapChain4 *This,
+ UINT buffer_idx,
+ REFIID riid,
+ void **surface);
+
+ HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
+ IDXGISwapChain4 *This,
+ WINBOOL fullscreen,
+ IDXGIOutput *target);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
+ IDXGISwapChain4 *This,
+ WINBOOL *fullscreen,
+ IDXGIOutput **target);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGISwapChain4 *This,
+ DXGI_SWAP_CHAIN_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
+ IDXGISwapChain4 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
+ IDXGISwapChain4 *This,
+ const DXGI_MODE_DESC *target_mode_desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
+ IDXGISwapChain4 *This,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGISwapChain4 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
+ IDXGISwapChain4 *This,
+ UINT *last_present_count);
+
+ /*** IDXGISwapChain1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGISwapChain4 *This,
+ DXGI_SWAP_CHAIN_DESC1 *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
+ IDXGISwapChain4 *This,
+ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
+
+ HRESULT (STDMETHODCALLTYPE *GetHwnd)(
+ IDXGISwapChain4 *This,
+ HWND *pHwnd);
+
+ HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
+ IDXGISwapChain4 *This,
+ REFIID refiid,
+ void **ppUnk);
+
+ HRESULT (STDMETHODCALLTYPE *Present1)(
+ IDXGISwapChain4 *This,
+ UINT SyncInterval,
+ UINT PresentFlags,
+ const DXGI_PRESENT_PARAMETERS *pPresentParameters);
+
+ WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
+ IDXGISwapChain4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
+ IDXGISwapChain4 *This,
+ IDXGIOutput **ppRestrictToOutput);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
+ IDXGISwapChain4 *This,
+ const DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
+ IDXGISwapChain4 *This,
+ DXGI_RGBA *pColor);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IDXGISwapChain4 *This,
+ DXGI_MODE_ROTATION Rotation);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IDXGISwapChain4 *This,
+ DXGI_MODE_ROTATION *pRotation);
+
+ /*** IDXGISwapChain2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
+ IDXGISwapChain4 *This,
+ UINT width,
+ UINT height);
+
+ HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
+ IDXGISwapChain4 *This,
+ UINT *width,
+ UINT *height);
+
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGISwapChain4 *This,
+ UINT max_latency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGISwapChain4 *This,
+ UINT *max_latency);
+
+ HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
+ IDXGISwapChain4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
+ IDXGISwapChain4 *This,
+ const DXGI_MATRIX_3X2_F *matrix);
+
+ HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
+ IDXGISwapChain4 *This,
+ DXGI_MATRIX_3X2_F *matrix);
+
+ /*** IDXGISwapChain3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCurrentBackBufferIndex)(
+ IDXGISwapChain4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CheckColorSpaceSupport)(
+ IDXGISwapChain4 *This,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ UINT *colour_space_support);
+
+ HRESULT (STDMETHODCALLTYPE *SetColorSpace1)(
+ IDXGISwapChain4 *This,
+ DXGI_COLOR_SPACE_TYPE colour_space);
+
+ HRESULT (STDMETHODCALLTYPE *ResizeBuffers1)(
+ IDXGISwapChain4 *This,
+ UINT buffer_count,
+ UINT width,
+ UINT height,
+ DXGI_FORMAT format,
+ UINT flags,
+ const UINT *node_mask,
+ IUnknown *const *present_queue);
+
+ /*** IDXGISwapChain4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetHDRMetaData)(
+ IDXGISwapChain4 *This,
+ DXGI_HDR_METADATA_TYPE type,
+ UINT size,
+ void *metadata);
+
+ END_INTERFACE
+} IDXGISwapChain4Vtbl;
+
+interface IDXGISwapChain4 {
+ CONST_VTBL IDXGISwapChain4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGISwapChain4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGISwapChain4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGISwapChain4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGISwapChain4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGISwapChain4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGISwapChain4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDeviceSubObject methods ***/
+#define IDXGISwapChain4_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** IDXGISwapChain methods ***/
+#define IDXGISwapChain4_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
+#define IDXGISwapChain4_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
+#define IDXGISwapChain4_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain4_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
+#define IDXGISwapChain4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGISwapChain4_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
+#define IDXGISwapChain4_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
+#define IDXGISwapChain4_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
+#define IDXGISwapChain4_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+#define IDXGISwapChain4_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
+/*** IDXGISwapChain1 methods ***/
+#define IDXGISwapChain4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+#define IDXGISwapChain4_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
+#define IDXGISwapChain4_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
+#define IDXGISwapChain4_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
+#define IDXGISwapChain4_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
+#define IDXGISwapChain4_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
+#define IDXGISwapChain4_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
+#define IDXGISwapChain4_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
+#define IDXGISwapChain4_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
+#define IDXGISwapChain4_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
+#define IDXGISwapChain4_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
+/*** IDXGISwapChain2 methods ***/
+#define IDXGISwapChain4_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
+#define IDXGISwapChain4_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
+#define IDXGISwapChain4_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain4_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
+#define IDXGISwapChain4_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
+#define IDXGISwapChain4_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
+#define IDXGISwapChain4_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
+/*** IDXGISwapChain3 methods ***/
+#define IDXGISwapChain4_GetCurrentBackBufferIndex(This) (This)->lpVtbl->GetCurrentBackBufferIndex(This)
+#define IDXGISwapChain4_CheckColorSpaceSupport(This,colour_space,colour_space_support) (This)->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support)
+#define IDXGISwapChain4_SetColorSpace1(This,colour_space) (This)->lpVtbl->SetColorSpace1(This,colour_space)
+#define IDXGISwapChain4_ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue) (This)->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue)
+/*** IDXGISwapChain4 methods ***/
+#define IDXGISwapChain4_SetHDRMetaData(This,type,size,metadata) (This)->lpVtbl->SetHDRMetaData(This,type,size,metadata)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_QueryInterface(IDXGISwapChain4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGISwapChain4_AddRef(IDXGISwapChain4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGISwapChain4_Release(IDXGISwapChain4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_SetPrivateData(IDXGISwapChain4* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetPrivateDataInterface(IDXGISwapChain4* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetPrivateData(IDXGISwapChain4* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetParent(IDXGISwapChain4* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDeviceSubObject methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_GetDevice(IDXGISwapChain4* This,REFIID riid,void **device) {
+ return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** IDXGISwapChain methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_Present(IDXGISwapChain4* This,UINT sync_interval,UINT flags) {
+ return This->lpVtbl->Present(This,sync_interval,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetBuffer(IDXGISwapChain4* This,UINT buffer_idx,REFIID riid,void **surface) {
+ return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetFullscreenState(IDXGISwapChain4* This,WINBOOL fullscreen,IDXGIOutput *target) {
+ return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetFullscreenState(IDXGISwapChain4* This,WINBOOL *fullscreen,IDXGIOutput **target) {
+ return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetDesc(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_ResizeBuffers(IDXGISwapChain4* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
+ return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_ResizeTarget(IDXGISwapChain4* This,const DXGI_MODE_DESC *target_mode_desc) {
+ return This->lpVtbl->ResizeTarget(This,target_mode_desc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetContainingOutput(IDXGISwapChain4* This,IDXGIOutput **output) {
+ return This->lpVtbl->GetContainingOutput(This,output);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetFrameStatistics(IDXGISwapChain4* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetLastPresentCount(IDXGISwapChain4* This,UINT *last_present_count) {
+ return This->lpVtbl->GetLastPresentCount(This,last_present_count);
+}
+/*** IDXGISwapChain1 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_GetDesc1(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetFullscreenDesc(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
+ return This->lpVtbl->GetFullscreenDesc(This,pDesc);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetHwnd(IDXGISwapChain4* This,HWND *pHwnd) {
+ return This->lpVtbl->GetHwnd(This,pHwnd);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetCoreWindow(IDXGISwapChain4* This,REFIID refiid,void **ppUnk) {
+ return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_Present1(IDXGISwapChain4* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
+ return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
+}
+static FORCEINLINE WINBOOL IDXGISwapChain4_IsTemporaryMonoSupported(IDXGISwapChain4* This) {
+ return This->lpVtbl->IsTemporaryMonoSupported(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetRestrictToOutput(IDXGISwapChain4* This,IDXGIOutput **ppRestrictToOutput) {
+ return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetBackgroundColor(IDXGISwapChain4* This,const DXGI_RGBA *pColor) {
+ return This->lpVtbl->SetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetBackgroundColor(IDXGISwapChain4* This,DXGI_RGBA *pColor) {
+ return This->lpVtbl->GetBackgroundColor(This,pColor);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetRotation(IDXGISwapChain4* This,DXGI_MODE_ROTATION Rotation) {
+ return This->lpVtbl->SetRotation(This,Rotation);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetRotation(IDXGISwapChain4* This,DXGI_MODE_ROTATION *pRotation) {
+ return This->lpVtbl->GetRotation(This,pRotation);
+}
+/*** IDXGISwapChain2 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_SetSourceSize(IDXGISwapChain4* This,UINT width,UINT height) {
+ return This->lpVtbl->SetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetSourceSize(IDXGISwapChain4* This,UINT *width,UINT *height) {
+ return This->lpVtbl->GetSourceSize(This,width,height);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetMaximumFrameLatency(IDXGISwapChain4* This,UINT max_latency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetMaximumFrameLatency(IDXGISwapChain4* This,UINT *max_latency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
+}
+static FORCEINLINE HANDLE IDXGISwapChain4_GetFrameLatencyWaitableObject(IDXGISwapChain4* This) {
+ return This->lpVtbl->GetFrameLatencyWaitableObject(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetMatrixTransform(IDXGISwapChain4* This,const DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->SetMatrixTransform(This,matrix);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_GetMatrixTransform(IDXGISwapChain4* This,DXGI_MATRIX_3X2_F *matrix) {
+ return This->lpVtbl->GetMatrixTransform(This,matrix);
+}
+/*** IDXGISwapChain3 methods ***/
+static FORCEINLINE UINT IDXGISwapChain4_GetCurrentBackBufferIndex(IDXGISwapChain4* This) {
+ return This->lpVtbl->GetCurrentBackBufferIndex(This);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_CheckColorSpaceSupport(IDXGISwapChain4* This,DXGI_COLOR_SPACE_TYPE colour_space,UINT *colour_space_support) {
+ return This->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_SetColorSpace1(IDXGISwapChain4* This,DXGI_COLOR_SPACE_TYPE colour_space) {
+ return This->lpVtbl->SetColorSpace1(This,colour_space);
+}
+static FORCEINLINE HRESULT IDXGISwapChain4_ResizeBuffers1(IDXGISwapChain4* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags,const UINT *node_mask,IUnknown *const *present_queue) {
+ return This->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue);
+}
+/*** IDXGISwapChain4 methods ***/
+static FORCEINLINE HRESULT IDXGISwapChain4_SetHDRMetaData(IDXGISwapChain4* This,DXGI_HDR_METADATA_TYPE type,UINT size,void *metadata) {
+ return This->lpVtbl->SetHDRMetaData(This,type,size,metadata);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGISwapChain4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDevice4 interface
+ */
+#ifndef __IDXGIDevice4_INTERFACE_DEFINED__
+#define __IDXGIDevice4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDevice4, 0x95b4f95f, 0xd8da, 0x4ca4, 0x9e,0xe6, 0x3b,0x76,0xd5,0x96,0x8a,0x10);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("95b4f95f-d8da-4ca4-9ee6-3b76d5968a10")
+IDXGIDevice4 : public IDXGIDevice3
+{
+ virtual HRESULT STDMETHODCALLTYPE OfferResources1(
+ UINT resource_count,
+ IDXGIResource *const *resources,
+ DXGI_OFFER_RESOURCE_PRIORITY priority,
+ UINT flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReclaimResources1(
+ UINT resource_count,
+ IDXGIResource *const *resources,
+ DXGI_RECLAIM_RESOURCE_RESULTS *results) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDevice4, 0x95b4f95f, 0xd8da, 0x4ca4, 0x9e,0xe6, 0x3b,0x76,0xd5,0x96,0x8a,0x10)
+#endif
+#else
+typedef struct IDXGIDevice4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDevice4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDevice4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDevice4 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIDevice4 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIDevice4 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIDevice4 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIDevice4 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIDevice methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdapter)(
+ IDXGIDevice4 *This,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDXGIDevice4 *This,
+ const DXGI_SURFACE_DESC *desc,
+ UINT surface_count,
+ DXGI_USAGE usage,
+ const DXGI_SHARED_RESOURCE *shared_resource,
+ IDXGISurface **surface);
+
+ HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
+ IDXGIDevice4 *This,
+ IUnknown *const *resources,
+ DXGI_RESIDENCY *residency,
+ UINT resource_count);
+
+ HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
+ IDXGIDevice4 *This,
+ INT priority);
+
+ HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
+ IDXGIDevice4 *This,
+ INT *priority);
+
+ /*** IDXGIDevice1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
+ IDXGIDevice4 *This,
+ UINT MaxLatency);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
+ IDXGIDevice4 *This,
+ UINT *pMaxLatency);
+
+ /*** IDXGIDevice2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OfferResources)(
+ IDXGIDevice4 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ DXGI_OFFER_RESOURCE_PRIORITY Priority);
+
+ HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
+ IDXGIDevice4 *This,
+ UINT NumResources,
+ IDXGIResource *const *ppResources,
+ WINBOOL *pDiscarded);
+
+ HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
+ IDXGIDevice4 *This,
+ HANDLE hEvent);
+
+ /*** IDXGIDevice3 methods ***/
+ void (STDMETHODCALLTYPE *Trim)(
+ IDXGIDevice4 *This);
+
+ /*** IDXGIDevice4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OfferResources1)(
+ IDXGIDevice4 *This,
+ UINT resource_count,
+ IDXGIResource *const *resources,
+ DXGI_OFFER_RESOURCE_PRIORITY priority,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *ReclaimResources1)(
+ IDXGIDevice4 *This,
+ UINT resource_count,
+ IDXGIResource *const *resources,
+ DXGI_RECLAIM_RESOURCE_RESULTS *results);
+
+ END_INTERFACE
+} IDXGIDevice4Vtbl;
+
+interface IDXGIDevice4 {
+ CONST_VTBL IDXGIDevice4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDevice4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDevice4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDevice4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIDevice4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIDevice4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIDevice4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIDevice methods ***/
+#define IDXGIDevice4_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
+#define IDXGIDevice4_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
+#define IDXGIDevice4_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
+#define IDXGIDevice4_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
+#define IDXGIDevice4_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
+/*** IDXGIDevice1 methods ***/
+#define IDXGIDevice4_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
+#define IDXGIDevice4_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
+/*** IDXGIDevice2 methods ***/
+#define IDXGIDevice4_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
+#define IDXGIDevice4_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
+#define IDXGIDevice4_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
+/*** IDXGIDevice3 methods ***/
+#define IDXGIDevice4_Trim(This) (This)->lpVtbl->Trim(This)
+/*** IDXGIDevice4 methods ***/
+#define IDXGIDevice4_OfferResources1(This,resource_count,resources,priority,flags) (This)->lpVtbl->OfferResources1(This,resource_count,resources,priority,flags)
+#define IDXGIDevice4_ReclaimResources1(This,resource_count,resources,results) (This)->lpVtbl->ReclaimResources1(This,resource_count,resources,results)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_QueryInterface(IDXGIDevice4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDevice4_AddRef(IDXGIDevice4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDevice4_Release(IDXGIDevice4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_SetPrivateData(IDXGIDevice4* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_SetPrivateDataInterface(IDXGIDevice4* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_GetPrivateData(IDXGIDevice4* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_GetParent(IDXGIDevice4* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIDevice methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_GetAdapter(IDXGIDevice4* This,IDXGIAdapter **adapter) {
+ return This->lpVtbl->GetAdapter(This,adapter);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_CreateSurface(IDXGIDevice4* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
+ return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_QueryResourceResidency(IDXGIDevice4* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
+ return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_SetGPUThreadPriority(IDXGIDevice4* This,INT priority) {
+ return This->lpVtbl->SetGPUThreadPriority(This,priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_GetGPUThreadPriority(IDXGIDevice4* This,INT *priority) {
+ return This->lpVtbl->GetGPUThreadPriority(This,priority);
+}
+/*** IDXGIDevice1 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_SetMaximumFrameLatency(IDXGIDevice4* This,UINT MaxLatency) {
+ return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_GetMaximumFrameLatency(IDXGIDevice4* This,UINT *pMaxLatency) {
+ return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
+}
+/*** IDXGIDevice2 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_OfferResources(IDXGIDevice4* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
+ return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_ReclaimResources(IDXGIDevice4* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
+ return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_EnqueueSetEvent(IDXGIDevice4* This,HANDLE hEvent) {
+ return This->lpVtbl->EnqueueSetEvent(This,hEvent);
+}
+/*** IDXGIDevice3 methods ***/
+static FORCEINLINE void IDXGIDevice4_Trim(IDXGIDevice4* This) {
+ This->lpVtbl->Trim(This);
+}
+/*** IDXGIDevice4 methods ***/
+static FORCEINLINE HRESULT IDXGIDevice4_OfferResources1(IDXGIDevice4* This,UINT resource_count,IDXGIResource *const *resources,DXGI_OFFER_RESOURCE_PRIORITY priority,UINT flags) {
+ return This->lpVtbl->OfferResources1(This,resource_count,resources,priority,flags);
+}
+static FORCEINLINE HRESULT IDXGIDevice4_ReclaimResources1(IDXGIDevice4* This,UINT resource_count,IDXGIResource *const *resources,DXGI_RECLAIM_RESOURCE_RESULTS *results) {
+ return This->lpVtbl->ReclaimResources1(This,resource_count,resources,results);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDevice4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory5 interface
+ */
+#ifndef __IDXGIFactory5_INTERFACE_DEFINED__
+#define __IDXGIFactory5_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory5, 0x7632e1f5, 0xee65, 0x4dca, 0x87,0xfd, 0x84,0xcd,0x75,0xf8,0x83,0x8d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7632e1f5-ee65-4dca-87fd-84cd75f8838d")
+IDXGIFactory5 : public IDXGIFactory4
+{
+ virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+ DXGI_FEATURE feature,
+ void *support_data,
+ UINT support_data_size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory5, 0x7632e1f5, 0xee65, 0x4dca, 0x87,0xfd, 0x84,0xcd,0x75,0xf8,0x83,0x8d)
+#endif
+#else
+typedef struct IDXGIFactory5Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory5 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory5 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory5 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory5 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory5 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory5 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory5 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory5 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory5 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory5 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory5 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory5 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory5 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory5 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory5 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory5 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory5 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory5 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory5 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory5 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory5 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory5 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory5 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory5 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ /*** IDXGIFactory3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ IDXGIFactory5 *This);
+
+ /*** IDXGIFactory4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
+ IDXGIFactory5 *This,
+ LUID luid,
+ REFIID iid,
+ void **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
+ IDXGIFactory5 *This,
+ REFIID iid,
+ void **adapter);
+
+ /*** IDXGIFactory5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ IDXGIFactory5 *This,
+ DXGI_FEATURE feature,
+ void *support_data,
+ UINT support_data_size);
+
+ END_INTERFACE
+} IDXGIFactory5Vtbl;
+
+interface IDXGIFactory5 {
+ CONST_VTBL IDXGIFactory5Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory5_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory5_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory5_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory5_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory5_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory5_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory5_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory5_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory5_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory5_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory5_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory5_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory5_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory5_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory5_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory5_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory5_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory5_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory5_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory5_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory5_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+/*** IDXGIFactory3 methods ***/
+#define IDXGIFactory5_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+/*** IDXGIFactory4 methods ***/
+#define IDXGIFactory5_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
+#define IDXGIFactory5_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
+/*** IDXGIFactory5 methods ***/
+#define IDXGIFactory5_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_QueryInterface(IDXGIFactory5* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory5_AddRef(IDXGIFactory5* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory5_Release(IDXGIFactory5* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_SetPrivateData(IDXGIFactory5* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_SetPrivateDataInterface(IDXGIFactory5* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_GetPrivateData(IDXGIFactory5* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_GetParent(IDXGIFactory5* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapters(IDXGIFactory5* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_MakeWindowAssociation(IDXGIFactory5* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_GetWindowAssociation(IDXGIFactory5* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChain(IDXGIFactory5* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_CreateSoftwareAdapter(IDXGIFactory5* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapters1(IDXGIFactory5* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory5_IsCurrent(IDXGIFactory5* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory5_IsWindowedStereoEnabled(IDXGIFactory5* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForHwnd(IDXGIFactory5* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForCoreWindow(IDXGIFactory5* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_GetSharedResourceAdapterLuid(IDXGIFactory5* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_RegisterStereoStatusWindow(IDXGIFactory5* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_RegisterStereoStatusEvent(IDXGIFactory5* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory5_UnregisterStereoStatus(IDXGIFactory5* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_RegisterOcclusionStatusWindow(IDXGIFactory5* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_RegisterOcclusionStatusEvent(IDXGIFactory5* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory5_UnregisterOcclusionStatus(IDXGIFactory5* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForComposition(IDXGIFactory5* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+/*** IDXGIFactory3 methods ***/
+static FORCEINLINE UINT IDXGIFactory5_GetCreationFlags(IDXGIFactory5* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+/*** IDXGIFactory4 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapterByLuid(IDXGIFactory5* This,LUID luid,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory5_EnumWarpAdapter(IDXGIFactory5* This,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
+}
+/*** IDXGIFactory5 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory5_CheckFeatureSupport(IDXGIFactory5* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
+ return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory5_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi1_5_h__ */
diff --git a/dxgi1_6.h b/dxgi1_6.h
new file mode 100644
index 0000000..bf6dd11
--- /dev/null
+++ b/dxgi1_6.h
@@ -0,0 +1,1382 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgi1_6.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgi1_6_h__
+#define __dxgi1_6_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIAdapter4_FWD_DEFINED__
+#define __IDXGIAdapter4_FWD_DEFINED__
+typedef interface IDXGIAdapter4 IDXGIAdapter4;
+#ifdef __cplusplus
+interface IDXGIAdapter4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIOutput6_FWD_DEFINED__
+#define __IDXGIOutput6_FWD_DEFINED__
+typedef interface IDXGIOutput6 IDXGIOutput6;
+#ifdef __cplusplus
+interface IDXGIOutput6;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory6_FWD_DEFINED__
+#define __IDXGIFactory6_FWD_DEFINED__
+typedef interface IDXGIFactory6 IDXGIFactory6;
+#ifdef __cplusplus
+interface IDXGIFactory6;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXGIFactory7_FWD_DEFINED__
+#define __IDXGIFactory7_FWD_DEFINED__
+typedef interface IDXGIFactory7 IDXGIFactory7;
+#ifdef __cplusplus
+interface IDXGIFactory7;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <dxgi1_5.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum DXGI_ADAPTER_FLAG3 {
+ DXGI_ADAPTER_FLAG3_NONE = 0x0,
+ DXGI_ADAPTER_FLAG3_REMOTE = 0x1,
+ DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2,
+ DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4,
+ DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8,
+ DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
+ DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
+ DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff
+} DXGI_ADAPTER_FLAG3;
+typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4
+} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
+typedef enum DXGI_GPU_PREFERENCE {
+ DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0,
+ DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1,
+ DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2
+} DXGI_GPU_PREFERENCE;
+typedef struct DXGI_ADAPTER_DESC3 {
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+ DXGI_ADAPTER_FLAG3 Flags;
+ DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
+ DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
+} DXGI_ADAPTER_DESC3;
+typedef struct DXGI_OUTPUT_DESC1 {
+ WCHAR DeviceName[32];
+ RECT DesktopCoordinates;
+ WINBOOL AttachedToDesktop;
+ DXGI_MODE_ROTATION Rotation;
+ HMONITOR Monitor;
+ UINT BitsPerColor;
+ DXGI_COLOR_SPACE_TYPE ColorSpace;
+ FLOAT RedPrimary[2];
+ FLOAT GreenPrimary[2];
+ FLOAT BluePrimary[2];
+ FLOAT WhitePoint[2];
+ FLOAT MinLuminance;
+ FLOAT MaxLuminance;
+ FLOAT MaxFullFrameLuminance;
+} DXGI_OUTPUT_DESC1;
+/*****************************************************************************
+ * IDXGIAdapter4 interface
+ */
+#ifndef __IDXGIAdapter4_INTERFACE_DEFINED__
+#define __IDXGIAdapter4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")
+IDXGIAdapter4 : public IDXGIAdapter3
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc3(
+ DXGI_ADAPTER_DESC3 *desc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e)
+#endif
+#else
+typedef struct IDXGIAdapter4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIAdapter4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIAdapter4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIAdapter4 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIAdapter4 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIAdapter4 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIAdapter4 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIAdapter4 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIAdapter methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
+ IDXGIAdapter4 *This,
+ UINT output_idx,
+ IDXGIOutput **output);
+
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIAdapter4 *This,
+ DXGI_ADAPTER_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
+ IDXGIAdapter4 *This,
+ REFGUID guid,
+ LARGE_INTEGER *umd_version);
+
+ /*** IDXGIAdapter1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGIAdapter4 *This,
+ DXGI_ADAPTER_DESC1 *pDesc);
+
+ /*** IDXGIAdapter2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc2)(
+ IDXGIAdapter4 *This,
+ DXGI_ADAPTER_DESC2 *pDesc);
+
+ /*** IDXGIAdapter3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)(
+ IDXGIAdapter4 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)(
+ IDXGIAdapter4 *This,
+ DWORD cookie);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)(
+ IDXGIAdapter4 *This,
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info);
+
+ HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)(
+ IDXGIAdapter4 *This,
+ UINT node_index,
+ DXGI_MEMORY_SEGMENT_GROUP segment_group,
+ UINT64 reservation);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)(
+ IDXGIAdapter4 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)(
+ IDXGIAdapter4 *This,
+ DWORD cookie);
+
+ /*** IDXGIAdapter4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc3)(
+ IDXGIAdapter4 *This,
+ DXGI_ADAPTER_DESC3 *desc);
+
+ END_INTERFACE
+} IDXGIAdapter4Vtbl;
+
+interface IDXGIAdapter4 {
+ CONST_VTBL IDXGIAdapter4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIAdapter4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIAdapter4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIAdapter4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIAdapter4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIAdapter4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIAdapter methods ***/
+#define IDXGIAdapter4_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
+#define IDXGIAdapter4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIAdapter4_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
+/*** IDXGIAdapter1 methods ***/
+#define IDXGIAdapter4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
+/*** IDXGIAdapter2 methods ***/
+#define IDXGIAdapter4_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
+/*** IDXGIAdapter3 methods ***/
+#define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie)
+#define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie)
+#define IDXGIAdapter4_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info)
+#define IDXGIAdapter4_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation)
+#define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie)
+#define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie)
+/*** IDXGIAdapter4 methods ***/
+#define IDXGIAdapter4_GetDesc3(This,desc) (This)->lpVtbl->GetDesc3(This,desc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIAdapter methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) {
+ return This->lpVtbl->EnumOutputs(This,output_idx,output);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_CheckInterfaceSupport(IDXGIAdapter4* This,REFGUID guid,LARGE_INTEGER *umd_version) {
+ return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
+}
+/*** IDXGIAdapter1 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) {
+ return This->lpVtbl->GetDesc1(This,pDesc);
+}
+/*** IDXGIAdapter2 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) {
+ return This->lpVtbl->GetDesc2(This,pDesc);
+}
+/*** IDXGIAdapter3 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
+}
+static FORCEINLINE void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) {
+ This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_QueryVideoMemoryInfo(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) {
+ return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_SetVideoMemoryReservation(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) {
+ return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation);
+}
+static FORCEINLINE HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
+}
+static FORCEINLINE void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) {
+ This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
+}
+/*** IDXGIAdapter4 methods ***/
+static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc3(IDXGIAdapter4* This,DXGI_ADAPTER_DESC3 *desc) {
+ return This->lpVtbl->GetDesc3(This,desc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIOutput6 interface
+ */
+#ifndef __IDXGIOutput6_INTERFACE_DEFINED__
+#define __IDXGIOutput6_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1")
+IDXGIOutput6 : public IDXGIOutput5
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDesc1(
+ DXGI_OUTPUT_DESC1 *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport(
+ UINT *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1)
+#endif
+#else
+typedef struct IDXGIOutput6Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput6 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput6 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput6 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput6 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput6 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput6 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput6 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput6 *This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput6 *This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput6 *This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput6 *This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput6 *This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput6 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput6 *This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput6 *This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput6 *This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput6 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput6 *This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput6 *This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput6 *This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput6 *This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput6 *This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput6 *This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ /*** IDXGIOutput2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
+ IDXGIOutput6 *This);
+
+ /*** IDXGIOutput3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
+ IDXGIOutput6 *This,
+ DXGI_FORMAT enum_format,
+ IUnknown *concerned_device,
+ UINT *flags);
+
+ /*** IDXGIOutput4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
+ IDXGIOutput6 *This,
+ DXGI_FORMAT format,
+ DXGI_COLOR_SPACE_TYPE colour_space,
+ IUnknown *device,
+ UINT *flags);
+
+ /*** IDXGIOutput5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)(
+ IDXGIOutput6 *This,
+ IUnknown *device,
+ UINT flags,
+ UINT format_count,
+ const DXGI_FORMAT *formats,
+ IDXGIOutputDuplication **duplication);
+
+ /*** IDXGIOutput6 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc1)(
+ IDXGIOutput6 *This,
+ DXGI_OUTPUT_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *CheckHardwareCompositionSupport)(
+ IDXGIOutput6 *This,
+ UINT *flags);
+
+ END_INTERFACE
+} IDXGIOutput6Vtbl;
+
+interface IDXGIOutput6 {
+ CONST_VTBL IDXGIOutput6Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput6_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput6_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput6_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput6_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput6_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput6_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput6_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput6_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput6_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput6_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput6_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput6_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput6_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput6_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput6_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput6_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput6_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput6_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+/*** IDXGIOutput2 methods ***/
+#define IDXGIOutput6_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
+/*** IDXGIOutput3 methods ***/
+#define IDXGIOutput6_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
+/*** IDXGIOutput4 methods ***/
+#define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
+/*** IDXGIOutput5 methods ***/
+#define IDXGIOutput6_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication)
+/*** IDXGIOutput6 methods ***/
+#define IDXGIOutput6_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
+#define IDXGIOutput6_CheckHardwareCompositionSupport(This,flags) (This)->lpVtbl->CheckHardwareCompositionSupport(This,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput6_Release(IDXGIOutput6* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList(IDXGIOutput6* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode(IDXGIOutput6* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList1(IDXGIOutput6* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode1(IDXGIOutput6* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+/*** IDXGIOutput2 methods ***/
+static FORCEINLINE WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) {
+ return This->lpVtbl->SupportsOverlays(This);
+}
+/*** IDXGIOutput3 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlaySupport(IDXGIOutput6* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
+ return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
+}
+/*** IDXGIOutput4 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlayColorSpaceSupport(IDXGIOutput6* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
+ return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
+}
+/*** IDXGIOutput5 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput1(IDXGIOutput6* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) {
+ return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication);
+}
+/*** IDXGIOutput6 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) {
+ return This->lpVtbl->GetDesc1(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput6_CheckHardwareCompositionSupport(IDXGIOutput6* This,UINT *flags) {
+ return This->lpVtbl->CheckHardwareCompositionSupport(This,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory6 interface
+ */
+#ifndef __IDXGIFactory6_INTERFACE_DEFINED__
+#define __IDXGIFactory6_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17")
+IDXGIFactory6 : public IDXGIFactory5
+{
+ virtual HRESULT STDMETHODCALLTYPE EnumAdapterByGpuPreference(
+ UINT adapter_idx,
+ DXGI_GPU_PREFERENCE gpu_preference,
+ REFIID iid,
+ void **adapter) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17)
+#endif
+#else
+typedef struct IDXGIFactory6Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory6 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory6 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory6 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory6 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory6 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory6 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory6 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory6 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory6 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory6 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory6 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory6 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory6 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory6 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory6 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory6 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory6 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory6 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory6 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory6 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory6 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory6 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory6 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory6 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory6 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ /*** IDXGIFactory3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ IDXGIFactory6 *This);
+
+ /*** IDXGIFactory4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
+ IDXGIFactory6 *This,
+ LUID luid,
+ REFIID iid,
+ void **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
+ IDXGIFactory6 *This,
+ REFIID iid,
+ void **adapter);
+
+ /*** IDXGIFactory5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ IDXGIFactory6 *This,
+ DXGI_FEATURE feature,
+ void *support_data,
+ UINT support_data_size);
+
+ /*** IDXGIFactory6 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
+ IDXGIFactory6 *This,
+ UINT adapter_idx,
+ DXGI_GPU_PREFERENCE gpu_preference,
+ REFIID iid,
+ void **adapter);
+
+ END_INTERFACE
+} IDXGIFactory6Vtbl;
+
+interface IDXGIFactory6 {
+ CONST_VTBL IDXGIFactory6Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory6_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory6_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory6_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory6_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory6_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory6_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory6_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory6_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory6_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory6_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory6_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory6_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory6_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory6_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory6_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory6_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory6_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory6_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory6_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+/*** IDXGIFactory3 methods ***/
+#define IDXGIFactory6_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+/*** IDXGIFactory4 methods ***/
+#define IDXGIFactory6_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
+#define IDXGIFactory6_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
+/*** IDXGIFactory5 methods ***/
+#define IDXGIFactory6_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
+/*** IDXGIFactory6 methods ***/
+#define IDXGIFactory6_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_QueryInterface(IDXGIFactory6* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory6_AddRef(IDXGIFactory6* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory6_Release(IDXGIFactory6* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateDataInterface(IDXGIFactory6* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_GetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_GetParent(IDXGIFactory6* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters(IDXGIFactory6* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_MakeWindowAssociation(IDXGIFactory6* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_GetWindowAssociation(IDXGIFactory6* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChain(IDXGIFactory6* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_CreateSoftwareAdapter(IDXGIFactory6* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters1(IDXGIFactory6* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory6_IsCurrent(IDXGIFactory6* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory6_IsWindowedStereoEnabled(IDXGIFactory6* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForHwnd(IDXGIFactory6* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForCoreWindow(IDXGIFactory6* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_GetSharedResourceAdapterLuid(IDXGIFactory6* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory6_UnregisterStereoStatus(IDXGIFactory6* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory6_UnregisterOcclusionStatus(IDXGIFactory6* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForComposition(IDXGIFactory6* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+/*** IDXGIFactory3 methods ***/
+static FORCEINLINE UINT IDXGIFactory6_GetCreationFlags(IDXGIFactory6* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+/*** IDXGIFactory4 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByLuid(IDXGIFactory6* This,LUID luid,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory6_EnumWarpAdapter(IDXGIFactory6* This,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
+}
+/*** IDXGIFactory5 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_CheckFeatureSupport(IDXGIFactory6* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
+ return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
+}
+/*** IDXGIFactory6 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByGpuPreference(IDXGIFactory6* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory6_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIFactory7 interface
+ */
+#ifndef __IDXGIFactory7_INTERFACE_DEFINED__
+#define __IDXGIFactory7_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8")
+IDXGIFactory7 : public IDXGIFactory6
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterAdaptersChangedEvent(
+ HANDLE event,
+ DWORD *cookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnregisterAdaptersChangedEvent(
+ DWORD cookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8)
+#endif
+#else
+typedef struct IDXGIFactory7Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIFactory7 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIFactory7 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIFactory7 *This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIFactory7 *This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIFactory7 *This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIFactory7 *This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIFactory7 *This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
+ IDXGIFactory7 *This,
+ UINT adapter_idx,
+ IDXGIAdapter **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
+ IDXGIFactory7 *This,
+ HWND window,
+ UINT flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
+ IDXGIFactory7 *This,
+ HWND *window);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
+ IDXGIFactory7 *This,
+ IUnknown *device,
+ DXGI_SWAP_CHAIN_DESC *desc,
+ IDXGISwapChain **swapchain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
+ IDXGIFactory7 *This,
+ HMODULE swrast,
+ IDXGIAdapter **adapter);
+
+ /*** IDXGIFactory1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
+ IDXGIFactory7 *This,
+ UINT Adapter,
+ IDXGIAdapter1 **ppAdapter);
+
+ WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
+ IDXGIFactory7 *This);
+
+ /*** IDXGIFactory2 methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
+ IDXGIFactory7 *This);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
+ IDXGIFactory7 *This,
+ IUnknown *pDevice,
+ HWND hWnd,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
+ IDXGIFactory7 *This,
+ IUnknown *pDevice,
+ IUnknown *pWindow,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
+ IDXGIFactory7 *This,
+ HANDLE hResource,
+ LUID *pLuid);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
+ IDXGIFactory7 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
+ IDXGIFactory7 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
+ IDXGIFactory7 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
+ IDXGIFactory7 *This,
+ HWND WindowHandle,
+ UINT wMsg,
+ DWORD *pdwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
+ IDXGIFactory7 *This,
+ HANDLE hEvent,
+ DWORD *pdwCookie);
+
+ void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
+ IDXGIFactory7 *This,
+ DWORD dwCookie);
+
+ HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
+ IDXGIFactory7 *This,
+ IUnknown *pDevice,
+ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ IDXGIOutput *pRestrictToOutput,
+ IDXGISwapChain1 **ppSwapChain);
+
+ /*** IDXGIFactory3 methods ***/
+ UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+ IDXGIFactory7 *This);
+
+ /*** IDXGIFactory4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
+ IDXGIFactory7 *This,
+ LUID luid,
+ REFIID iid,
+ void **adapter);
+
+ HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
+ IDXGIFactory7 *This,
+ REFIID iid,
+ void **adapter);
+
+ /*** IDXGIFactory5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+ IDXGIFactory7 *This,
+ DXGI_FEATURE feature,
+ void *support_data,
+ UINT support_data_size);
+
+ /*** IDXGIFactory6 methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
+ IDXGIFactory7 *This,
+ UINT adapter_idx,
+ DXGI_GPU_PREFERENCE gpu_preference,
+ REFIID iid,
+ void **adapter);
+
+ /*** IDXGIFactory7 methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterAdaptersChangedEvent)(
+ IDXGIFactory7 *This,
+ HANDLE event,
+ DWORD *cookie);
+
+ HRESULT (STDMETHODCALLTYPE *UnregisterAdaptersChangedEvent)(
+ IDXGIFactory7 *This,
+ DWORD cookie);
+
+ END_INTERFACE
+} IDXGIFactory7Vtbl;
+
+interface IDXGIFactory7 {
+ CONST_VTBL IDXGIFactory7Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIFactory7_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIFactory7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory7_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIFactory7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIFactory7_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIFactory methods ***/
+#define IDXGIFactory7_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
+#define IDXGIFactory7_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
+#define IDXGIFactory7_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
+#define IDXGIFactory7_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
+#define IDXGIFactory7_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
+/*** IDXGIFactory1 methods ***/
+#define IDXGIFactory7_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
+#define IDXGIFactory7_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
+/*** IDXGIFactory2 methods ***/
+#define IDXGIFactory7_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
+#define IDXGIFactory7_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory7_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
+#define IDXGIFactory7_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
+#define IDXGIFactory7_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory7_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory7_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
+#define IDXGIFactory7_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
+#define IDXGIFactory7_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
+#define IDXGIFactory7_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
+#define IDXGIFactory7_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
+/*** IDXGIFactory3 methods ***/
+#define IDXGIFactory7_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+/*** IDXGIFactory4 methods ***/
+#define IDXGIFactory7_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
+#define IDXGIFactory7_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
+/*** IDXGIFactory5 methods ***/
+#define IDXGIFactory7_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
+/*** IDXGIFactory6 methods ***/
+#define IDXGIFactory7_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
+/*** IDXGIFactory7 methods ***/
+#define IDXGIFactory7_RegisterAdaptersChangedEvent(This,event,cookie) (This)->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie)
+#define IDXGIFactory7_UnregisterAdaptersChangedEvent(This,cookie) (This)->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_QueryInterface(IDXGIFactory7* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIFactory7_AddRef(IDXGIFactory7* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIFactory7_Release(IDXGIFactory7* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateDataInterface(IDXGIFactory7* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_GetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_GetParent(IDXGIFactory7* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIFactory methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters(IDXGIFactory7* This,UINT adapter_idx,IDXGIAdapter **adapter) {
+ return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_MakeWindowAssociation(IDXGIFactory7* This,HWND window,UINT flags) {
+ return This->lpVtbl->MakeWindowAssociation(This,window,flags);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_GetWindowAssociation(IDXGIFactory7* This,HWND *window) {
+ return This->lpVtbl->GetWindowAssociation(This,window);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChain(IDXGIFactory7* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
+ return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_CreateSoftwareAdapter(IDXGIFactory7* This,HMODULE swrast,IDXGIAdapter **adapter) {
+ return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
+}
+/*** IDXGIFactory1 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters1(IDXGIFactory7* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
+ return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
+}
+static FORCEINLINE WINBOOL IDXGIFactory7_IsCurrent(IDXGIFactory7* This) {
+ return This->lpVtbl->IsCurrent(This);
+}
+/*** IDXGIFactory2 methods ***/
+static FORCEINLINE WINBOOL IDXGIFactory7_IsWindowedStereoEnabled(IDXGIFactory7* This) {
+ return This->lpVtbl->IsWindowedStereoEnabled(This);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForHwnd(IDXGIFactory7* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForCoreWindow(IDXGIFactory7* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_GetSharedResourceAdapterLuid(IDXGIFactory7* This,HANDLE hResource,LUID *pLuid) {
+ return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory7_UnregisterStereoStatus(IDXGIFactory7* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
+ return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
+}
+static FORCEINLINE void IDXGIFactory7_UnregisterOcclusionStatus(IDXGIFactory7* This,DWORD dwCookie) {
+ This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForComposition(IDXGIFactory7* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
+ return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
+}
+/*** IDXGIFactory3 methods ***/
+static FORCEINLINE UINT IDXGIFactory7_GetCreationFlags(IDXGIFactory7* This) {
+ return This->lpVtbl->GetCreationFlags(This);
+}
+/*** IDXGIFactory4 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByLuid(IDXGIFactory7* This,LUID luid,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_EnumWarpAdapter(IDXGIFactory7* This,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
+}
+/*** IDXGIFactory5 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_CheckFeatureSupport(IDXGIFactory7* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
+ return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
+}
+/*** IDXGIFactory6 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByGpuPreference(IDXGIFactory7* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
+ return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
+}
+/*** IDXGIFactory7 methods ***/
+static FORCEINLINE HRESULT IDXGIFactory7_RegisterAdaptersChangedEvent(IDXGIFactory7* This,HANDLE event,DWORD *cookie) {
+ return This->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie);
+}
+static FORCEINLINE HRESULT IDXGIFactory7_UnregisterAdaptersChangedEvent(IDXGIFactory7* This,DWORD cookie) {
+ return This->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIFactory7_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgi1_6_h__ */
diff --git a/dxgicommon.h b/dxgicommon.h
new file mode 100644
index 0000000..89dfafb
--- /dev/null
+++ b/dxgicommon.h
@@ -0,0 +1,75 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgicommon.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgicommon_h__
+#define __dxgicommon_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if 0
+typedef unsigned int UINT;
+#endif
+#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN (0xffffffff)
+
+#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN (0xfffffffe)
+
+typedef enum DXGI_COLOR_SPACE_TYPE {
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0x0,
+ DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 0x1,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 0x2,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 0x3,
+ DXGI_COLOR_SPACE_RESERVED = 0x4,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 0x5,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 0x6,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 0x7,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 0x8,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 0x9,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 0xa,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 0xb,
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 0xc,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 0xd,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 0xe,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 0xf,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 0x10,
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 0x11,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 0x12,
+ DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 0x13,
+ DXGI_COLOR_SPACE_CUSTOM = 0xffffffff
+} DXGI_COLOR_SPACE_TYPE;
+typedef struct DXGI_SAMPLE_DESC {
+ UINT Count;
+ UINT Quality;
+} DXGI_SAMPLE_DESC;
+typedef struct DXGI_RATIONAL {
+ UINT Numerator;
+ UINT Denominator;
+} DXGI_RATIONAL;
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgicommon_h__ */
diff --git a/dxgidebug.h b/dxgidebug.h
new file mode 100644
index 0000000..58ba005
--- /dev/null
+++ b/dxgidebug.h
@@ -0,0 +1,135 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgidebug.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgidebug_h__
+#define __dxgidebug_h__
+
+/* Forward declarations */
+
+#ifndef __IDXGIDebug_FWD_DEFINED__
+#define __IDXGIDebug_FWD_DEFINED__
+typedef interface IDXGIDebug IDXGIDebug;
+#ifdef __cplusplus
+interface IDXGIDebug;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b,0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);
+DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d,0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);
+DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1,0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);
+DEFINE_GUID(DXGI_DEBUG_APP, 0x06cd6e01, 0x4219, 0x4ebd,0x87, 0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62);
+typedef enum DXGI_DEBUG_RLO_FLAGS {
+ DXGI_DEBUG_RLO_SUMMARY = 0x1,
+ DXGI_DEBUG_RLO_DETAIL = 0x2,
+ DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x4,
+ DXGI_DEBUG_RLO_ALL = 0x7
+} DXGI_DEBUG_RLO_FLAGS;
+/*****************************************************************************
+ * IDXGIDebug interface
+ */
+#ifndef __IDXGIDebug_INTERFACE_DEFINED__
+#define __IDXGIDebug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDebug, 0x119e7452, 0xde9e, 0x40fe, 0x88,0x06, 0x88,0xf9,0x0c,0x12,0xb4,0x41);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("119e7452-de9e-40fe-8806-88f90c12b441")
+IDXGIDebug : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE ReportLiveObjects(
+ GUID apiid,
+ DXGI_DEBUG_RLO_FLAGS flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDebug, 0x119e7452, 0xde9e, 0x40fe, 0x88,0x06, 0x88,0xf9,0x0c,0x12,0xb4,0x41)
+#endif
+#else
+typedef struct IDXGIDebugVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDebug *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDebug *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDebug *This);
+
+ /*** IDXGIDebug methods ***/
+ HRESULT (STDMETHODCALLTYPE *ReportLiveObjects)(
+ IDXGIDebug *This,
+ GUID apiid,
+ DXGI_DEBUG_RLO_FLAGS flags);
+
+ END_INTERFACE
+} IDXGIDebugVtbl;
+
+interface IDXGIDebug {
+ CONST_VTBL IDXGIDebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDebug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDebug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDebug_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIDebug methods ***/
+#define IDXGIDebug_ReportLiveObjects(This,apiid,flags) (This)->lpVtbl->ReportLiveObjects(This,apiid,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDebug_QueryInterface(IDXGIDebug* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDebug_AddRef(IDXGIDebug* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDebug_Release(IDXGIDebug* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIDebug methods ***/
+static FORCEINLINE HRESULT IDXGIDebug_ReportLiveObjects(IDXGIDebug* This,GUID apiid,DXGI_DEBUG_RLO_FLAGS flags) {
+ return This->lpVtbl->ReportLiveObjects(This,apiid,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXGIDebug_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgidebug_h__ */
diff --git a/dxgiformat.h b/dxgiformat.h
new file mode 100644
index 0000000..b61eda2
--- /dev/null
+++ b/dxgiformat.h
@@ -0,0 +1,161 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgiformat.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgiformat_h__
+#define __dxgiformat_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DXGI_FORMAT_DEFINED (1)
+
+typedef enum DXGI_FORMAT {
+ DXGI_FORMAT_UNKNOWN = 0x0,
+ DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x1,
+ DXGI_FORMAT_R32G32B32A32_FLOAT = 0x2,
+ DXGI_FORMAT_R32G32B32A32_UINT = 0x3,
+ DXGI_FORMAT_R32G32B32A32_SINT = 0x4,
+ DXGI_FORMAT_R32G32B32_TYPELESS = 0x5,
+ DXGI_FORMAT_R32G32B32_FLOAT = 0x6,
+ DXGI_FORMAT_R32G32B32_UINT = 0x7,
+ DXGI_FORMAT_R32G32B32_SINT = 0x8,
+ DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x9,
+ DXGI_FORMAT_R16G16B16A16_FLOAT = 0xa,
+ DXGI_FORMAT_R16G16B16A16_UNORM = 0xb,
+ DXGI_FORMAT_R16G16B16A16_UINT = 0xc,
+ DXGI_FORMAT_R16G16B16A16_SNORM = 0xd,
+ DXGI_FORMAT_R16G16B16A16_SINT = 0xe,
+ DXGI_FORMAT_R32G32_TYPELESS = 0xf,
+ DXGI_FORMAT_R32G32_FLOAT = 0x10,
+ DXGI_FORMAT_R32G32_UINT = 0x11,
+ DXGI_FORMAT_R32G32_SINT = 0x12,
+ DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
+ DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
+ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
+ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
+ DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
+ DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
+ DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
+ DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
+ DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
+ DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
+ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
+ DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
+ DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
+ DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
+ DXGI_FORMAT_R16G16_TYPELESS = 0x21,
+ DXGI_FORMAT_R16G16_FLOAT = 0x22,
+ DXGI_FORMAT_R16G16_UNORM = 0x23,
+ DXGI_FORMAT_R16G16_UINT = 0x24,
+ DXGI_FORMAT_R16G16_SNORM = 0x25,
+ DXGI_FORMAT_R16G16_SINT = 0x26,
+ DXGI_FORMAT_R32_TYPELESS = 0x27,
+ DXGI_FORMAT_D32_FLOAT = 0x28,
+ DXGI_FORMAT_R32_FLOAT = 0x29,
+ DXGI_FORMAT_R32_UINT = 0x2a,
+ DXGI_FORMAT_R32_SINT = 0x2b,
+ DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
+ DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
+ DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
+ DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
+ DXGI_FORMAT_R8G8_TYPELESS = 0x30,
+ DXGI_FORMAT_R8G8_UNORM = 0x31,
+ DXGI_FORMAT_R8G8_UINT = 0x32,
+ DXGI_FORMAT_R8G8_SNORM = 0x33,
+ DXGI_FORMAT_R8G8_SINT = 0x34,
+ DXGI_FORMAT_R16_TYPELESS = 0x35,
+ DXGI_FORMAT_R16_FLOAT = 0x36,
+ DXGI_FORMAT_D16_UNORM = 0x37,
+ DXGI_FORMAT_R16_UNORM = 0x38,
+ DXGI_FORMAT_R16_UINT = 0x39,
+ DXGI_FORMAT_R16_SNORM = 0x3a,
+ DXGI_FORMAT_R16_SINT = 0x3b,
+ DXGI_FORMAT_R8_TYPELESS = 0x3c,
+ DXGI_FORMAT_R8_UNORM = 0x3d,
+ DXGI_FORMAT_R8_UINT = 0x3e,
+ DXGI_FORMAT_R8_SNORM = 0x3f,
+ DXGI_FORMAT_R8_SINT = 0x40,
+ DXGI_FORMAT_A8_UNORM = 0x41,
+ DXGI_FORMAT_R1_UNORM = 0x42,
+ DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
+ DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
+ DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
+ DXGI_FORMAT_BC1_TYPELESS = 0x46,
+ DXGI_FORMAT_BC1_UNORM = 0x47,
+ DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
+ DXGI_FORMAT_BC2_TYPELESS = 0x49,
+ DXGI_FORMAT_BC2_UNORM = 0x4a,
+ DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
+ DXGI_FORMAT_BC3_TYPELESS = 0x4c,
+ DXGI_FORMAT_BC3_UNORM = 0x4d,
+ DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
+ DXGI_FORMAT_BC4_TYPELESS = 0x4f,
+ DXGI_FORMAT_BC4_UNORM = 0x50,
+ DXGI_FORMAT_BC4_SNORM = 0x51,
+ DXGI_FORMAT_BC5_TYPELESS = 0x52,
+ DXGI_FORMAT_BC5_UNORM = 0x53,
+ DXGI_FORMAT_BC5_SNORM = 0x54,
+ DXGI_FORMAT_B5G6R5_UNORM = 0x55,
+ DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
+ DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
+ DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
+ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
+ DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
+ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
+ DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
+ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
+ DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
+ DXGI_FORMAT_BC6H_UF16 = 0x5f,
+ DXGI_FORMAT_BC6H_SF16 = 0x60,
+ DXGI_FORMAT_BC7_TYPELESS = 0x61,
+ DXGI_FORMAT_BC7_UNORM = 0x62,
+ DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
+ DXGI_FORMAT_AYUV = 0x64,
+ DXGI_FORMAT_Y410 = 0x65,
+ DXGI_FORMAT_Y416 = 0x66,
+ DXGI_FORMAT_NV12 = 0x67,
+ DXGI_FORMAT_P010 = 0x68,
+ DXGI_FORMAT_P016 = 0x69,
+ DXGI_FORMAT_420_OPAQUE = 0x6a,
+ DXGI_FORMAT_YUY2 = 0x6b,
+ DXGI_FORMAT_Y210 = 0x6c,
+ DXGI_FORMAT_Y216 = 0x6d,
+ DXGI_FORMAT_NV11 = 0x6e,
+ DXGI_FORMAT_AI44 = 0x6f,
+ DXGI_FORMAT_IA44 = 0x70,
+ DXGI_FORMAT_P8 = 0x71,
+ DXGI_FORMAT_A8P8 = 0x72,
+ DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
+ DXGI_FORMAT_P208 = 0x82,
+ DXGI_FORMAT_V208 = 0x83,
+ DXGI_FORMAT_V408 = 0x84,
+ DXGI_FORMAT_FORCE_UINT = 0xffffffff
+} DXGI_FORMAT;
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgiformat_h__ */
diff --git a/dxgitype.h b/dxgitype.h
new file mode 100644
index 0000000..5d628c1
--- /dev/null
+++ b/dxgitype.h
@@ -0,0 +1,96 @@
+/*** Autogenerated by WIDL 7.7 from include/dxgitype.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxgitype_h__
+#define __dxgitype_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <dxgicommon.h>
+#include <dxgiformat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if 0
+typedef unsigned int UINT;
+typedef LONG WINBOOL;
+#endif
+typedef enum DXGI_MODE_ROTATION {
+ DXGI_MODE_ROTATION_UNSPECIFIED = 0x0,
+ DXGI_MODE_ROTATION_IDENTITY = 0x1,
+ DXGI_MODE_ROTATION_ROTATE90 = 0x2,
+ DXGI_MODE_ROTATION_ROTATE180 = 0x3,
+ DXGI_MODE_ROTATION_ROTATE270 = 0x4
+} DXGI_MODE_ROTATION;
+typedef enum DXGI_MODE_SCANLINE_ORDER {
+ DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0x0,
+ DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 0x1,
+ DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 0x2,
+ DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 0x3
+} DXGI_MODE_SCANLINE_ORDER;
+typedef enum DXGI_MODE_SCALING {
+ DXGI_MODE_SCALING_UNSPECIFIED = 0x0,
+ DXGI_MODE_SCALING_CENTERED = 0x1,
+ DXGI_MODE_SCALING_STRETCHED = 0x2
+} DXGI_MODE_SCALING;
+#ifndef D3DCOLORVALUE_DEFINED
+#define D3DCOLORVALUE_DEFINED
+typedef struct _D3DCOLORVALUE {
+ float r;
+ float g;
+ float b;
+ float a;
+} D3DCOLORVALUE;
+#endif
+typedef D3DCOLORVALUE DXGI_RGBA;
+typedef struct DXGI_MODE_DESC {
+ UINT Width;
+ UINT Height;
+ DXGI_RATIONAL RefreshRate;
+ DXGI_FORMAT Format;
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
+ DXGI_MODE_SCALING Scaling;
+} DXGI_MODE_DESC;
+typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES {
+ WINBOOL ScaleAndOffsetSupported;
+ float MaxConvertedValue;
+ float MinConvertedValue;
+ UINT NumGammaControlPoints;
+ float ControlPointPositions[1025];
+} DXGI_GAMMA_CONTROL_CAPABILITIES;
+typedef struct DXGI_RGB {
+ float Red;
+ float Green;
+ float Blue;
+} DXGI_RGB;
+typedef struct DXGI_GAMMA_CONTROL {
+ DXGI_RGB Scale;
+ DXGI_RGB Offset;
+ DXGI_RGB GammaCurve[1025];
+} DXGI_GAMMA_CONTROL;
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxgitype_h__ */
diff --git a/dxtmpl.h b/dxtmpl.h
new file mode 100644
index 0000000..d18b1ea
--- /dev/null
+++ b/dxtmpl.h
@@ -0,0 +1,882 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef DXTmpl_h
+#define DXTmpl_h
+
+#include <limits.h>
+#include <string.h>
+#include <stdlib.h>
+#include <search.h>
+
+#define DXASSERT_VALID(pObj)
+
+#ifndef PASCAL_INLINE
+#define PASCAL_INLINE WINAPI
+#endif
+
+typedef void *DXLISTPOS;
+typedef DWORD DXLISTHANDLE;
+
+#define DX_BEFORE_START_POSITION ((void*)(INT_PTR)-1)
+
+#ifndef __CRT__NO_INLINE
+__CRT_INLINE WINBOOL DXIsValidAddress(const void *lp,UINT nBytes,WINBOOL bReadWrite) { return (lp!=NULL && !IsBadReadPtr(lp,nBytes) && (!bReadWrite || !IsBadWritePtr((LPVOID)lp,nBytes))); }
+#endif
+
+#ifdef __cplusplus
+
+template<class TYPE>
+inline void DXConstructElements(TYPE *pElements,int nCount) {
+ _ASSERT(nCount==0 || DXIsValidAddress(pElements,nCount *sizeof(TYPE),TRUE));
+ memset((void*)pElements,0,nCount *sizeof(TYPE));
+}
+
+template<class TYPE>
+inline void DXDestructElements(TYPE *pElements,int nCount) {
+ _ASSERT((nCount==0 || DXIsValidAddress(pElements,nCount *sizeof(TYPE),TRUE)));
+ pElements;
+ nCount;
+}
+
+template<class TYPE>
+inline void DXCopyElements(TYPE *pDest,const TYPE *pSrc,int nCount) {
+ _ASSERT((nCount==0 || DXIsValidAddress(pDest,nCount *sizeof(TYPE),TRUE)));
+ _ASSERT((nCount==0 || DXIsValidAddress(pSrc,nCount *sizeof(TYPE),FALSE)));
+ memcpy(pDest,pSrc,nCount *sizeof(TYPE));
+}
+
+template<class TYPE,class ARG_TYPE>
+WINBOOL DXCompareElements(const TYPE *pElement1,const ARG_TYPE *pElement2) {
+ _ASSERT(DXIsValidAddress(pElement1,sizeof(TYPE),FALSE));
+ _ASSERT(DXIsValidAddress(pElement2,sizeof(ARG_TYPE),FALSE));
+ return *pElement1==*pElement2;
+}
+
+template<class ARG_KEY>
+inline UINT DXHashKey(ARG_KEY key) { return ((UINT)(void*)(DWORD)key) >> 4; }
+
+struct CDXPlex {
+ CDXPlex *pNext;
+ UINT nMax;
+ UINT nCur;
+ void *data() { return this+1; }
+ static CDXPlex *PASCAL_INLINE Create(CDXPlex *&pHead,UINT nMax,UINT cbElement) {
+ CDXPlex *p = (CDXPlex*) new BYTE[sizeof(CDXPlex) + nMax *cbElement];
+ if(!p) return NULL;
+ p->nMax = nMax;
+ p->nCur = 0;
+ p->pNext = pHead;
+ pHead = p;
+ return p;
+ }
+ void FreeDataChain() {
+ CDXPlex *p = this;
+ while(p!=NULL) {
+ BYTE *bytes = (BYTE*) p;
+ CDXPlex *pNext = p->pNext;
+ delete [] bytes;
+ p = pNext;
+ }
+ }
+};
+
+template<class TYPE,class ARG_TYPE>
+class CDXArray {
+public:
+ CDXArray();
+ int GetSize() const;
+ int GetUpperBound() const;
+ void SetSize(int nNewSize,int nGrowBy = -1);
+ void FreeExtra();
+ void RemoveAll();
+ TYPE GetAt(int nIndex) const;
+ void SetAt(int nIndex,ARG_TYPE newElement);
+ TYPE &ElementAt(int nIndex);
+ const TYPE *GetData() const;
+ TYPE *GetData();
+ void SetAtGrow(int nIndex,ARG_TYPE newElement);
+ int Add(ARG_TYPE newElement);
+ int Append(const CDXArray &src);
+ void Copy(const CDXArray &src);
+ TYPE operator[](int nIndex) const;
+ TYPE &operator[](int nIndex);
+ void InsertAt(int nIndex,ARG_TYPE newElement,int nCount = 1);
+ void RemoveAt(int nIndex,int nCount = 1);
+ void InsertAt(int nStartIndex,CDXArray *pNewArray);
+ void Sort(int (__cdecl *compare)(const void *elem1,const void *elem2));
+protected:
+ TYPE *m_pData;
+ int m_nSize;
+ int m_nMaxSize;
+ int m_nGrowBy;
+public:
+ ~CDXArray();
+};
+
+template<class TYPE,class ARG_TYPE>
+inline int CDXArray<TYPE,ARG_TYPE>::GetSize() const { return m_nSize; }
+template<class TYPE,class ARG_TYPE>
+inline int CDXArray<TYPE,ARG_TYPE>::GetUpperBound() const { return m_nSize-1; }
+template<class TYPE,class ARG_TYPE>
+inline void CDXArray<TYPE,ARG_TYPE>::RemoveAll() { SetSize(0,-1); }
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXArray<TYPE,ARG_TYPE>::GetAt(int nIndex) const { _ASSERT((nIndex >= 0 && nIndex < m_nSize)); return m_pData[nIndex]; }
+template<class TYPE,class ARG_TYPE>
+inline void CDXArray<TYPE,ARG_TYPE>::SetAt(int nIndex,ARG_TYPE newElement) { _ASSERT((nIndex >= 0 && nIndex < m_nSize)); m_pData[nIndex] = newElement; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXArray<TYPE,ARG_TYPE>::ElementAt(int nIndex) { _ASSERT((nIndex >= 0 && nIndex < m_nSize)); return m_pData[nIndex]; }
+template<class TYPE,class ARG_TYPE>
+inline const TYPE *CDXArray<TYPE,ARG_TYPE>::GetData() const { return (const TYPE*)m_pData; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE *CDXArray<TYPE,ARG_TYPE>::GetData() { return (TYPE*)m_pData; }
+template<class TYPE,class ARG_TYPE>
+inline int CDXArray<TYPE,ARG_TYPE>::Add(ARG_TYPE newElement) {
+ int nIndex = m_nSize;
+ SetAtGrow(nIndex,newElement);
+ return nIndex;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXArray<TYPE,ARG_TYPE>::operator[](int nIndex) const { return GetAt(nIndex); }
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXArray<TYPE,ARG_TYPE>::operator[](int nIndex) { return ElementAt(nIndex); }
+template<class TYPE,class ARG_TYPE>
+CDXArray<TYPE,ARG_TYPE>::CDXArray() { m_pData = NULL; m_nSize = m_nMaxSize = m_nGrowBy = 0; }
+emplate<class TYPE,class ARG_TYPE>
+CDXArray<TYPE,ARG_TYPE>::~CDXArray() {
+ DXASSERT_VALID(this);
+ if(m_pData!=NULL) {
+ DXDestructElements(m_pData,m_nSize);
+ delete[] (BYTE*)m_pData;
+ }
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::SetSize(int nNewSize,int nGrowBy) {
+ DXASSERT_VALID(this);
+ _ASSERT(nNewSize >= 0);
+ if(nGrowBy!=-1) m_nGrowBy = nGrowBy;
+ if(nNewSize==0) {
+ if(m_pData!=NULL) {
+ DXDestructElements(m_pData,m_nSize);
+ delete[] (BYTE*)m_pData;
+ m_pData = NULL;
+ }
+ m_nSize = m_nMaxSize = 0;
+ } else if(!m_pData) {
+#ifdef SIZE_T_MAX
+ _ASSERT(nNewSize <= SIZE_T_MAX/sizeof(TYPE));
+#endif
+ m_pData = (TYPE*) new BYTE[nNewSize *sizeof(TYPE)];
+ DXConstructElements(m_pData,nNewSize);
+ m_nSize = m_nMaxSize = nNewSize;
+ } else if(nNewSize <= m_nMaxSize) {
+ if(nNewSize > m_nSize) {
+ DXConstructElements(&m_pData[m_nSize],nNewSize-m_nSize);
+ } else if(m_nSize > nNewSize) {
+ DXDestructElements(&m_pData[nNewSize],m_nSize-nNewSize);
+ }
+ m_nSize = nNewSize;
+ } else {
+ int nGrowBy = m_nGrowBy;
+ if(!nGrowBy) nGrowBy = min(1024,max(4,m_nSize / 8));
+ int nNewMax;
+ if(nNewSize < m_nMaxSize + nGrowBy) nNewMax = m_nMaxSize + nGrowBy;
+ else nNewMax = nNewSize;
+ _ASSERT(nNewMax >= m_nMaxSize);
+#ifdef SIZE_T_MAX
+ _ASSERT(nNewMax <= SIZE_T_MAX/sizeof(TYPE));
+#endif
+ TYPE *pNewData = (TYPE*) new BYTE[nNewMax *sizeof(TYPE)];
+
+ if(!pNewData) return;
+ memcpy(pNewData,m_pData,m_nSize *sizeof(TYPE));
+ _ASSERT(nNewSize > m_nSize);
+ DXConstructElements(&pNewData[m_nSize],nNewSize-m_nSize);
+ delete[] (BYTE*)m_pData;
+ m_pData = pNewData;
+ m_nSize = nNewSize;
+ m_nMaxSize = nNewMax;
+ }
+}
+
+template<class TYPE,class ARG_TYPE>
+int CDXArray<TYPE,ARG_TYPE>::Append(const CDXArray &src) {
+ DXASSERT_VALID(this);
+ _ASSERT(this!=&src);
+ int nOldSize = m_nSize;
+ SetSize(m_nSize + src.m_nSize);
+ DXCopyElements(m_pData + nOldSize,src.m_pData,src.m_nSize);
+ return nOldSize;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::Copy(const CDXArray &src) {
+ DXASSERT_VALID(this);
+ _ASSERT(this!=&src);
+ SetSize(src.m_nSize);
+ DXCopyElements(m_pData,src.m_pData,src.m_nSize);
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::FreeExtra() {
+ DXASSERT_VALID(this);
+ if(m_nSize!=m_nMaxSize) {
+#ifdef SIZE_T_MAX
+ _ASSERT(m_nSize <= SIZE_T_MAX/sizeof(TYPE));
+#endif
+ TYPE *pNewData = NULL;
+ if(m_nSize!=0) {
+ pNewData = (TYPE*) new BYTE[m_nSize *sizeof(TYPE)];
+ if(!pNewData) return;
+ memcpy(pNewData,m_pData,m_nSize *sizeof(TYPE));
+ }
+ delete[] (BYTE*)m_pData;
+ m_pData = pNewData;
+ m_nMaxSize = m_nSize;
+ }
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::SetAtGrow(int nIndex,ARG_TYPE newElement) {
+ DXASSERT_VALID(this);
+ _ASSERT(nIndex >= 0);
+ if(nIndex >= m_nSize) SetSize(nIndex+1,-1);
+ m_pData[nIndex] = newElement;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::InsertAt(int nIndex,ARG_TYPE newElement,int nCount) {
+ DXASSERT_VALID(this);
+ _ASSERT(nIndex >= 0);
+ _ASSERT(nCount > 0);
+ if(nIndex >= m_nSize) SetSize(nIndex + nCount,-1);
+ else {
+ int nOldSize = m_nSize;
+ SetSize(m_nSize + nCount,-1);
+ memmove(&m_pData[nIndex+nCount],&m_pData[nIndex],(nOldSize-nIndex) *sizeof(TYPE));
+ DXConstructElements(&m_pData[nIndex],nCount);
+ }
+ _ASSERT(nIndex + nCount <= m_nSize);
+ while(nCount--)
+ m_pData[nIndex++] = newElement;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::RemoveAt(int nIndex,int nCount) {
+ DXASSERT_VALID(this);
+ _ASSERT(nIndex >= 0);
+ _ASSERT(nCount >= 0);
+ _ASSERT(nIndex + nCount <= m_nSize);
+ int nMoveCount = m_nSize - (nIndex + nCount);
+ DXDestructElements(&m_pData[nIndex],nCount);
+ if(nMoveCount)
+ memcpy(&m_pData[nIndex],&m_pData[nIndex + nCount],nMoveCount *sizeof(TYPE));
+ m_nSize -= nCount;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::InsertAt(int nStartIndex,CDXArray *pNewArray) {
+ DXASSERT_VALID(this);
+ DXASSERT_VALID(pNewArray);
+ _ASSERT(nStartIndex >= 0);
+ if(pNewArray->GetSize() > 0) {
+ InsertAt(nStartIndex,pNewArray->GetAt(0),pNewArray->GetSize());
+ for(int i = 0;i < pNewArray->GetSize();i++)
+ SetAt(nStartIndex + i,pNewArray->GetAt(i));
+ }
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::Sort(int (__cdecl *compare)(const void *elem1,const void *elem2)) {
+ DXASSERT_VALID(this);
+ _ASSERT(m_pData!=NULL);
+ qsort(m_pData,m_nSize,sizeof(TYPE),compare);
+}
+
+#ifdef _DEBUG
+template<class TYPE,class ARG_TYPE>
+void CDXArray<TYPE,ARG_TYPE>::AssertValid() const {
+ if(!m_pData) {
+ _ASSERT(m_nSize==0);
+ _ASSERT(m_nMaxSize==0);
+ } else {
+ _ASSERT(m_nSize >= 0);
+ _ASSERT(m_nMaxSize >= 0);
+ _ASSERT(m_nSize <= m_nMaxSize);
+ _ASSERT(DXIsValidAddress(m_pData,m_nMaxSize *sizeof(TYPE),TRUE));
+ }
+}
+#endif
+
+template<class TYPE,class ARG_TYPE>
+class CDXList {
+protected:
+ struct CNode {
+ CNode *pNext;
+ CNode *pPrev;
+ TYPE data;
+ };
+public:
+ CDXList(int nBlockSize = 10);
+ int GetCount() const;
+ WINBOOL IsEmpty() const;
+ TYPE &GetHead();
+ TYPE GetHead() const;
+ TYPE &GetTail();
+ TYPE GetTail() const;
+
+ TYPE RemoveHead();
+ TYPE RemoveTail();
+ DXLISTPOS AddHead(ARG_TYPE newElement);
+ DXLISTPOS AddTail(ARG_TYPE newElement);
+ void AddHead(CDXList *pNewList);
+ void AddTail(CDXList *pNewList);
+ void RemoveAll();
+ DXLISTPOS GetHeadPosition() const;
+ DXLISTPOS GetTailPosition() const;
+ TYPE &GetNext(DXLISTPOS &rPosition);
+ TYPE GetNext(DXLISTPOS &rPosition) const;
+ TYPE &GetPrev(DXLISTPOS &rPosition);
+ TYPE GetPrev(DXLISTPOS &rPosition) const;
+ TYPE &GetAt(DXLISTPOS position);
+ TYPE GetAt(DXLISTPOS position) const;
+ void SetAt(DXLISTPOS pos,ARG_TYPE newElement);
+ void RemoveAt(DXLISTPOS position);
+ DXLISTPOS InsertBefore(DXLISTPOS position,ARG_TYPE newElement);
+ DXLISTPOS InsertAfter(DXLISTPOS position,ARG_TYPE newElement);
+ DXLISTPOS Find(ARG_TYPE searchValue,DXLISTPOS startAfter = NULL) const;
+ DXLISTPOS FindIndex(int nIndex) const;
+protected:
+ CNode *m_pNodeHead;
+ CNode *m_pNodeTail;
+ int m_nCount;
+ CNode *m_pNodeFree;
+ struct CDXPlex *m_pBlocks;
+ int m_nBlockSize;
+ CNode *NewNode(CNode *,CNode *);
+ void FreeNode(CNode *);
+public:
+ ~CDXList();
+#ifdef _DEBUG
+ void AssertValid() const;
+#endif
+};
+
+template<class TYPE,class ARG_TYPE>
+inline int CDXList<TYPE,ARG_TYPE>::GetCount() const { return m_nCount; }
+template<class TYPE,class ARG_TYPE>
+inline WINBOOL CDXList<TYPE,ARG_TYPE>::IsEmpty() const { return m_nCount==0; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXList<TYPE,ARG_TYPE>::GetHead() { _ASSERT(m_pNodeHead!=NULL); return m_pNodeHead->data; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXList<TYPE,ARG_TYPE>::GetHead() const { _ASSERT(m_pNodeHead!=NULL); return m_pNodeHead->data; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXList<TYPE,ARG_TYPE>::GetTail() { _ASSERT(m_pNodeTail!=NULL); return m_pNodeTail->data; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXList<TYPE,ARG_TYPE>::GetTail() const { _ASSERT(m_pNodeTail!=NULL); return m_pNodeTail->data; }
+template<class TYPE,class ARG_TYPE>
+inline DXLISTPOS CDXList<TYPE,ARG_TYPE>::GetHeadPosition() const { return (DXLISTPOS) m_pNodeHead; }
+template<class TYPE,class ARG_TYPE>
+inline DXLISTPOS CDXList<TYPE,ARG_TYPE>::GetTailPosition() const { return (DXLISTPOS) m_pNodeTail; }
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXList<TYPE,ARG_TYPE>::GetNext(DXLISTPOS &rPosition) {
+ CNode *pNode = (CNode *) rPosition;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ rPosition = (DXLISTPOS) pNode->pNext;
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXList<TYPE,ARG_TYPE>::GetNext(DXLISTPOS &rPosition) const {
+ CNode *pNode = (CNode *) rPosition;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ rPosition = (DXLISTPOS) pNode->pNext;
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXList<TYPE,ARG_TYPE>::GetPrev(DXLISTPOS &rPosition) {
+ CNode *pNode = (CNode *) rPosition;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ rPosition = (DXLISTPOS) pNode->pPrev;
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXList<TYPE,ARG_TYPE>::GetPrev(DXLISTPOS &rPosition) const {
+ CNode *pNode = (CNode *) rPosition;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ rPosition = (DXLISTPOS) pNode->pPrev;
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE &CDXList<TYPE,ARG_TYPE>::GetAt(DXLISTPOS position) {
+ CNode *pNode = (CNode *) position;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline TYPE CDXList<TYPE,ARG_TYPE>::GetAt(DXLISTPOS position) const {
+ CNode *pNode = (CNode *) position;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ return pNode->data;
+}
+template<class TYPE,class ARG_TYPE>
+inline void CDXList<TYPE,ARG_TYPE>::SetAt(DXLISTPOS pos,ARG_TYPE newElement) {
+ CNode *pNode = (CNode *) pos;
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ pNode->data = newElement;
+}
+
+template<class TYPE,class ARG_TYPE>
+CDXList<TYPE,ARG_TYPE>::CDXList(int nBlockSize) {
+ _ASSERT(nBlockSize > 0);
+ m_nCount = 0;
+ m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL;
+ m_pBlocks = NULL;
+ m_nBlockSize = nBlockSize;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::RemoveAll() {
+ DXASSERT_VALID(this);
+ CNode *pNode;
+ for(pNode = m_pNodeHead;pNode!=NULL;pNode = pNode->pNext)
+ DXDestructElements(&pNode->data,1);
+ m_nCount = 0;
+ m_pNodeHead = m_pNodeTail = m_pNodeFree = NULL;
+ m_pBlocks->FreeDataChain();
+ m_pBlocks = NULL;
+}
+
+template<class TYPE,class ARG_TYPE>
+CDXList<TYPE,ARG_TYPE>::~CDXList() {
+ RemoveAll();
+ _ASSERT(m_nCount==0);
+}
+
+template<class TYPE,class ARG_TYPE>
+typename CDXList<TYPE,ARG_TYPE>::CNode *
+CDXList<TYPE,ARG_TYPE>::NewNode(CNode *pPrev,CNode *pNext) {
+ if(!m_pNodeFree) {
+ CDXPlex *pNewBlock = CDXPlex::Create(m_pBlocks,m_nBlockSize,sizeof(CNode));
+ CNode *pNode = (CNode *) pNewBlock->data();
+ pNode += m_nBlockSize - 1;
+ for(int i = m_nBlockSize-1;i >= 0;i--,pNode--) {
+ pNode->pNext = m_pNodeFree;
+ m_pNodeFree = pNode;
+ }
+ }
+ _ASSERT(m_pNodeFree!=NULL);
+ CDXList::CNode *pNode = m_pNodeFree;
+ m_pNodeFree = m_pNodeFree->pNext;
+ pNode->pPrev = pPrev;
+ pNode->pNext = pNext;
+ m_nCount++;
+ _ASSERT(m_nCount > 0);
+ DXConstructElements(&pNode->data,1);
+ return pNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::FreeNode(CNode *pNode) {
+ DXDestructElements(&pNode->data,1);
+ pNode->pNext = m_pNodeFree;
+ m_pNodeFree = pNode;
+ m_nCount--;
+ _ASSERT(m_nCount >= 0);
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::AddHead(ARG_TYPE newElement) {
+ DXASSERT_VALID(this);
+ CNode *pNewNode = NewNode(NULL,m_pNodeHead);
+ pNewNode->data = newElement;
+ if(m_pNodeHead!=NULL) m_pNodeHead->pPrev = pNewNode;
+ else m_pNodeTail = pNewNode;
+ m_pNodeHead = pNewNode;
+ return (DXLISTPOS) pNewNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::AddTail(ARG_TYPE newElement) {
+ DXASSERT_VALID(this);
+ CNode *pNewNode = NewNode(m_pNodeTail,NULL);
+ pNewNode->data = newElement;
+ if(m_pNodeTail!=NULL) m_pNodeTail->pNext = pNewNode;
+ else m_pNodeHead = pNewNode;
+ m_pNodeTail = pNewNode;
+ return (DXLISTPOS) pNewNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::AddHead(CDXList *pNewList) {
+ DXASSERT_VALID(this);
+ DXASSERT_VALID(pNewList);
+ DXLISTPOS pos = pNewList->GetTailPosition();
+ while(pos!=NULL)
+ AddHead(pNewList->GetPrev(pos));
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::AddTail(CDXList *pNewList) {
+ DXASSERT_VALID(this);
+ DXASSERT_VALID(pNewList);
+ DXLISTPOS pos = pNewList->GetHeadPosition();
+ while(pos!=NULL)
+ AddTail(pNewList->GetNext(pos));
+}
+
+template<class TYPE,class ARG_TYPE>
+TYPE CDXList<TYPE,ARG_TYPE>::RemoveHead() {
+ DXASSERT_VALID(this);
+ _ASSERT(m_pNodeHead!=NULL);
+ _ASSERT(DXIsValidAddress(m_pNodeHead,sizeof(CNode),TRUE));
+ CNode *pOldNode = m_pNodeHead;
+ TYPE returnValue = pOldNode->data;
+ m_pNodeHead = pOldNode->pNext;
+ if(m_pNodeHead!=NULL) m_pNodeHead->pPrev = NULL;
+ else m_pNodeTail = NULL;
+ FreeNode(pOldNode);
+ return returnValue;
+}
+
+template<class TYPE,class ARG_TYPE>
+TYPE CDXList<TYPE,ARG_TYPE>::RemoveTail() {
+ DXASSERT_VALID(this);
+ _ASSERT(m_pNodeTail!=NULL);
+ _ASSERT(DXIsValidAddress(m_pNodeTail,sizeof(CNode),TRUE));
+ CNode *pOldNode = m_pNodeTail;
+ TYPE returnValue = pOldNode->data;
+ m_pNodeTail = pOldNode->pPrev;
+ if(m_pNodeTail!=NULL) m_pNodeTail->pNext = NULL;
+ else m_pNodeHead = NULL;
+ FreeNode(pOldNode);
+ return returnValue;
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::InsertBefore(DXLISTPOS position,ARG_TYPE newElement) {
+ DXASSERT_VALID(this);
+ if(!position) return AddHead(newElement);
+ CNode *pOldNode = (CNode *) position;
+ CNode *pNewNode = NewNode(pOldNode->pPrev,pOldNode);
+ pNewNode->data = newElement;
+ if(pOldNode->pPrev!=NULL) {
+ _ASSERT(DXIsValidAddress(pOldNode->pPrev,sizeof(CNode),TRUE));
+ pOldNode->pPrev->pNext = pNewNode;
+ } else {
+ _ASSERT(pOldNode==m_pNodeHead);
+ m_pNodeHead = pNewNode;
+ }
+ pOldNode->pPrev = pNewNode;
+ return (DXLISTPOS) pNewNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::InsertAfter(DXLISTPOS position,ARG_TYPE newElement) {
+ DXASSERT_VALID(this);
+ if(!position) return AddTail(newElement);
+ CNode *pOldNode = (CNode *) position;
+ _ASSERT(DXIsValidAddress(pOldNode,sizeof(CNode),TRUE));
+ CNode *pNewNode = NewNode(pOldNode,pOldNode->pNext);
+ pNewNode->data = newElement;
+ if(pOldNode->pNext!=NULL) {
+ _ASSERT(DXIsValidAddress(pOldNode->pNext,sizeof(CNode),TRUE));
+ pOldNode->pNext->pPrev = pNewNode;
+ } else {
+ _ASSERT(pOldNode==m_pNodeTail);
+ m_pNodeTail = pNewNode;
+ }
+ pOldNode->pNext = pNewNode;
+ return (DXLISTPOS) pNewNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::RemoveAt(DXLISTPOS position) {
+ DXASSERT_VALID(this);
+ CNode *pOldNode = (CNode *) position;
+ _ASSERT(DXIsValidAddress(pOldNode,sizeof(CNode),TRUE));
+ if(pOldNode==m_pNodeHead) {
+ m_pNodeHead = pOldNode->pNext;
+ } else {
+ _ASSERT(DXIsValidAddress(pOldNode->pPrev,sizeof(CNode),TRUE));
+ pOldNode->pPrev->pNext = pOldNode->pNext;
+ }
+ if(pOldNode==m_pNodeTail) m_pNodeTail = pOldNode->pPrev;
+ else {
+ _ASSERT(DXIsValidAddress(pOldNode->pNext,sizeof(CNode),TRUE));
+ pOldNode->pNext->pPrev = pOldNode->pPrev;
+ }
+ FreeNode(pOldNode);
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::FindIndex(int nIndex) const {
+ DXASSERT_VALID(this);
+ _ASSERT(nIndex >= 0);
+ if(nIndex >= m_nCount) return NULL;
+ CNode *pNode = m_pNodeHead;
+ while(nIndex--) {
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ pNode = pNode->pNext;
+ }
+ return (DXLISTPOS) pNode;
+}
+
+template<class TYPE,class ARG_TYPE>
+DXLISTPOS CDXList<TYPE,ARG_TYPE>::Find(ARG_TYPE searchValue,DXLISTPOS startAfter) const {
+ DXASSERT_VALID(this);
+ CNode *pNode = (CNode *) startAfter;
+ if(!pNode) pNode = m_pNodeHead;
+ else {
+ _ASSERT(DXIsValidAddress(pNode,sizeof(CNode),TRUE));
+ pNode = pNode->pNext;
+ }
+ for(;pNode!=NULL;pNode = pNode->pNext)
+ if(DXCompareElements(&pNode->data,&searchValue)) return (DXLISTPOS)pNode;
+ return NULL;
+}
+
+#ifdef _DEBUG
+template<class TYPE,class ARG_TYPE>
+void CDXList<TYPE,ARG_TYPE>::AssertValid() const {
+ if(!m_nCount) {
+ _ASSERT(!m_pNodeHead);
+ _ASSERT(!m_pNodeTail);
+ } else {
+ _ASSERT(DXIsValidAddress(m_pNodeHead,sizeof(CNode),TRUE));
+ _ASSERT(DXIsValidAddress(m_pNodeTail,sizeof(CNode),TRUE));
+ }
+}
+#endif
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+class CDXMap {
+protected:
+ struct CAssoc {
+ CAssoc *pNext;
+ UINT nHashValue;
+ KEY key;
+ VALUE value;
+ };
+public:
+ CDXMap(int nBlockSize = 10);
+ int GetCount() const;
+ WINBOOL IsEmpty() const;
+ WINBOOL Lookup(ARG_KEY key,VALUE& rValue) const;
+ VALUE& operator[](ARG_KEY key);
+ void SetAt(ARG_KEY key,ARG_VALUE newValue);
+ WINBOOL RemoveKey(ARG_KEY key);
+ void RemoveAll();
+ DXLISTPOS GetStartPosition() const;
+ void GetNextAssoc(DXLISTPOS &rNextPosition,KEY& rKey,VALUE& rValue) const;
+ UINT GetHashTableSize() const;
+ void InitHashTable(UINT hashSize,WINBOOL bAllocNow = TRUE);
+protected:
+ CAssoc **m_pHashTable;
+ UINT m_nHashTableSize;
+ int m_nCount;
+ CAssoc *m_pFreeList;
+ struct CDXPlex *m_pBlocks;
+ int m_nBlockSize;
+ CAssoc *NewAssoc();
+ void FreeAssoc(CAssoc*);
+ CAssoc *GetAssocAt(ARG_KEY,UINT&) const;
+public:
+ ~CDXMap();
+#ifdef _DEBUG
+ void AssertValid() const;
+#endif
+};
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+inline int CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::GetCount() const { return m_nCount; }
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+inline WINBOOL CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::IsEmpty() const { return m_nCount==0; }
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+inline void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::SetAt(ARG_KEY key,ARG_VALUE newValue) { (*this)[key] = newValue; }
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+inline DXLISTPOS CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::GetStartPosition() const { return (m_nCount==0) ? NULL : DX_BEFORE_START_POSITION; }
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+inline UINT CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::GetHashTableSize() const { return m_nHashTableSize; }
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::CDXMap(int nBlockSize) {
+ _ASSERT(nBlockSize > 0);
+ m_pHashTable = NULL;
+ m_nHashTableSize = 17;
+ m_nCount = 0;
+ m_pFreeList = NULL;
+ m_pBlocks = NULL;
+ m_nBlockSize = nBlockSize;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::InitHashTable(UINT nHashSize,WINBOOL bAllocNow) {
+ DXASSERT_VALID(this);
+ _ASSERT(m_nCount==0);
+ _ASSERT(nHashSize > 0);
+ if(m_pHashTable!=NULL) {
+ delete[] m_pHashTable;
+ m_pHashTable = NULL;
+ }
+ if(bAllocNow) {
+ m_pHashTable = new CAssoc *[nHashSize];
+ if(!m_pHashTable) return;
+ memset(m_pHashTable,0,sizeof(CAssoc*) *nHashSize);
+ }
+ m_nHashTableSize = nHashSize;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::RemoveAll() {
+ DXASSERT_VALID(this);
+ if(m_pHashTable!=NULL) {
+ for(UINT nHash = 0;nHash < m_nHashTableSize;nHash++) {
+ CAssoc *pAssoc;
+ for(pAssoc = m_pHashTable[nHash]; pAssoc!=NULL;
+ pAssoc = pAssoc->pNext)
+ {
+ DXDestructElements(&pAssoc->value,1);
+ DXDestructElements(&pAssoc->key,1);
+ }
+ }
+ }
+ delete[] m_pHashTable;
+ m_pHashTable = NULL;
+ m_nCount = 0;
+ m_pFreeList = NULL;
+ m_pBlocks->FreeDataChain();
+ m_pBlocks = NULL;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::~CDXMap() {
+ RemoveAll();
+ _ASSERT(m_nCount==0);
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+typename CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::CAssoc*
+CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::NewAssoc() {
+ if(!m_pFreeList) {
+ CDXPlex *newBlock = CDXPlex::Create(m_pBlocks,m_nBlockSize,sizeof(CDXMap::CAssoc));
+ CDXMap::CAssoc *pAssoc = (CDXMap::CAssoc*) newBlock->data();
+ pAssoc += m_nBlockSize - 1;
+ for(int i = m_nBlockSize-1;i >= 0;i--,pAssoc--) {
+ pAssoc->pNext = m_pFreeList;
+ m_pFreeList = pAssoc;
+ }
+ }
+ _ASSERT(m_pFreeList!=NULL);
+ CDXMap::CAssoc *pAssoc = m_pFreeList;
+ m_pFreeList = m_pFreeList->pNext;
+ m_nCount++;
+ _ASSERT(m_nCount > 0);
+ DXConstructElements(&pAssoc->key,1);
+ DXConstructElements(&pAssoc->value,1);
+ return pAssoc;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::FreeAssoc(CAssoc *pAssoc) {
+ DXDestructElements(&pAssoc->value,1);
+ DXDestructElements(&pAssoc->key,1);
+ pAssoc->pNext = m_pFreeList;
+ m_pFreeList = pAssoc;
+ m_nCount--;
+ _ASSERT(m_nCount >= 0);
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+typename CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::CAssoc*
+CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::GetAssocAt(ARG_KEY key,UINT& nHash) const {
+ nHash = DXHashKey(key) % m_nHashTableSize;
+ if(!m_pHashTable) return NULL;
+ CAssoc *pAssoc;
+ for(pAssoc = m_pHashTable[nHash];pAssoc!=NULL;pAssoc = pAssoc->pNext) {
+ if(DXCompareElements(&pAssoc->key,&key)) return pAssoc;
+ }
+ return NULL;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+WINBOOL CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::Lookup(ARG_KEY key,VALUE& rValue) const {
+ DXASSERT_VALID(this);
+ UINT nHash;
+ CAssoc *pAssoc = GetAssocAt(key,nHash);
+ if(!pAssoc) return FALSE;
+ rValue = pAssoc->value;
+ return TRUE;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+VALUE& CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::operator[](ARG_KEY key) {
+ DXASSERT_VALID(this);
+ UINT nHash;
+ CAssoc *pAssoc;
+ if(!(pAssoc = GetAssocAt(key,nHash))) {
+ if(!m_pHashTable) InitHashTable(m_nHashTableSize);
+ pAssoc = NewAssoc();
+ pAssoc->nHashValue = nHash;
+ pAssoc->key = key;
+ pAssoc->pNext = m_pHashTable[nHash];
+ m_pHashTable[nHash] = pAssoc;
+ }
+ return pAssoc->value;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+WINBOOL CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::RemoveKey(ARG_KEY key) {
+ DXASSERT_VALID(this);
+ if(!m_pHashTable) return FALSE;
+ CAssoc **ppAssocPrev;
+ ppAssocPrev = &m_pHashTable[DXHashKey(key) % m_nHashTableSize];
+ CAssoc *pAssoc;
+ for(pAssoc = *ppAssocPrev;pAssoc!=NULL;pAssoc = pAssoc->pNext) {
+ if(DXCompareElements(&pAssoc->key,&key)) {
+ *ppAssocPrev = pAssoc->pNext;
+ FreeAssoc(pAssoc);
+ return TRUE;
+ }
+ ppAssocPrev = &pAssoc->pNext;
+ }
+ return FALSE;
+}
+
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::GetNextAssoc(DXLISTPOS &rNextPosition,KEY& rKey,VALUE& rValue) const {
+ DXASSERT_VALID(this);
+ _ASSERT(m_pHashTable!=NULL);
+ CAssoc *pAssocRet = (CAssoc*)rNextPosition;
+ _ASSERT(pAssocRet!=NULL);
+ if(pAssocRet==(CAssoc*) DX_BEFORE_START_POSITION) {
+ for(UINT nBucket = 0;nBucket < m_nHashTableSize;nBucket++)
+ if((pAssocRet = m_pHashTable[nBucket])!=NULL)
+ break;
+ _ASSERT(pAssocRet!=NULL);
+ }
+ _ASSERT(DXIsValidAddress(pAssocRet,sizeof(CAssoc),TRUE));
+ CAssoc *pAssocNext;
+ if(!(pAssocNext = pAssocRet->pNext)) {
+ for(UINT nBucket = pAssocRet->nHashValue + 1;nBucket < m_nHashTableSize;nBucket++)
+ if((pAssocNext = m_pHashTable[nBucket])!=NULL)
+ break;
+ }
+ rNextPosition = (DXLISTPOS) pAssocNext;
+ rKey = pAssocRet->key;
+ rValue = pAssocRet->value;
+}
+
+#ifdef _DEBUG
+template<class KEY,class ARG_KEY,class VALUE,class ARG_VALUE>
+void CDXMap<KEY,ARG_KEY,VALUE,ARG_VALUE>::AssertValid() const {
+ _ASSERT(m_nHashTableSize > 0);
+ _ASSERT((m_nCount==0 || m_pHashTable!=NULL));
+}
+#endif
+
+#endif /* __cplusplus */
+
+#endif
diff --git a/dxva.h b/dxva.h
new file mode 100644
index 0000000..b850563
--- /dev/null
+++ b/dxva.h
@@ -0,0 +1,923 @@
+/*
+ * Copyright 2015 Michael Müller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_DXVA_H
+#define __WINE_DXVA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(DXVA_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+
+#define DXVA_USUAL_BLOCK_WIDTH 8
+#define DXVA_USUAL_BLOCK_HEIGHT 8
+#define DXVA_USUAL_BLOCK_SIZE (DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT)
+
+#include <pshpack1.h>
+
+typedef struct _DXVA_PicEntry_H264
+{
+ union
+ {
+ struct
+ {
+ UCHAR Index7Bits : 7;
+ UCHAR AssociatedFlag : 1;
+ } DUMMYSTRUCTNAME;
+ UCHAR bPicEntry;
+ } DUMMYUNIONNAME;
+} DXVA_PicEntry_H264, *LPDXVA_PicEntry_H264;
+
+typedef struct _DXVA_FilmGrainCharacteristics
+{
+ USHORT wFrameWidthInMbsMinus1;
+ USHORT wFrameHeightInMbsMinus1;
+ DXVA_PicEntry_H264 InPic;
+ DXVA_PicEntry_H264 OutPic;
+ USHORT PicOrderCnt_offset;
+ INT CurrPicOrderCnt;
+ UINT StatusReportFeedbackNumber;
+ UCHAR model_id;
+ UCHAR separate_colour_description_present_flag;
+ UCHAR film_grain_bit_depth_luma_minus8;
+ UCHAR film_grain_bit_depth_chroma_minus8;
+ UCHAR film_grain_full_range_flag;
+ UCHAR film_grain_colour_primaries;
+ UCHAR film_grain_transfer_characteristics;
+ UCHAR film_grain_matrix_coefficients;
+ UCHAR blending_mode_id;
+ UCHAR log2_scale_factor;
+ UCHAR comp_model_present_flag[4];
+ UCHAR num_intensity_intervals_minus1[4];
+ UCHAR num_model_values_minus1[4];
+ UCHAR intensity_interval_lower_bound[3][16];
+ UCHAR intensity_interval_upper_bound[3][16];
+ SHORT comp_model_value[3][16][8];
+} DXVA_FilmGrainChar_H264, *LPDXVA_FilmGrainChar_H264;
+
+typedef struct _DXVA_PictureParameters
+{
+ WORD wDecodedPictureIndex;
+ WORD wDeblockedPictureIndex;
+ WORD wForwardRefPictureIndex;
+ WORD wBackwardRefPictureIndex;
+ WORD wPicWidthInMBminus1;
+ WORD wPicHeightInMBminus1;
+ BYTE bMacroblockWidthMinus1;
+ BYTE bMacroblockHeightMinus1;
+ BYTE bBlockWidthMinus1;
+ BYTE bBlockHeightMinus1;
+ BYTE bBPPminus1;
+ BYTE bPicStructure;
+ BYTE bSecondField;
+ BYTE bPicIntra;
+ BYTE bPicBackwardPrediction;
+ BYTE bBidirectionalAveragingMode;
+ BYTE bMVprecisionAndChromaRelation;
+ BYTE bChromaFormat;
+ BYTE bPicScanFixed;
+ BYTE bPicScanMethod;
+ BYTE bPicReadbackRequests;
+ BYTE bRcontrol;
+ BYTE bPicSpatialResid8;
+ BYTE bPicOverflowBlocks;
+ BYTE bPicExtrapolation;
+ BYTE bPicDeblocked;
+ BYTE bPicDeblockConfined;
+ BYTE bPic4MVallowed;
+ BYTE bPicOBMC;
+ BYTE bPicBinPB;
+ BYTE bMV_RPS;
+ BYTE bReservedBits;
+ WORD wBitstreamFcodes;
+ WORD wBitstreamPCEelements;
+ BYTE bBitstreamConcealmentNeed;
+ BYTE bBitstreamConcealmentMethod;
+} DXVA_PictureParameters, *LPDXVA_PictureParameters;
+
+typedef struct _DXVA_SliceInfo
+{
+ WORD wHorizontalPosition;
+ WORD wVerticalPosition;
+ DWORD dwSliceBitsInBuffer;
+ DWORD dwSliceDataLocation;
+ BYTE bStartCodeBitOffset;
+ BYTE bReservedBits;
+ WORD wMBbitOffset;
+ WORD wNumberMBsInSlice;
+ WORD wQuantizerScaleCode;
+ WORD wBadSliceChopping;
+} DXVA_SliceInfo, *LPDXVA_SliceInfo;
+
+typedef struct _DXVA_QmatrixData
+{
+ BYTE bNewQmatrix[4];
+ WORD Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT];
+} DXVA_QmatrixData, *LPDXVA_QmatrixData;
+
+typedef struct _DXVA_PicParams_H264
+{
+ USHORT wFrameWidthInMbsMinus1;
+ USHORT wFrameHeightInMbsMinus1;
+ DXVA_PicEntry_H264 CurrPic;
+ UCHAR num_ref_frames;
+ union
+ {
+ struct
+ {
+ USHORT field_pic_flag : 1;
+ USHORT MbaffFrameFlag : 1;
+ USHORT residual_colour_transform_flag : 1;
+ USHORT sp_for_switch_flag : 1;
+ USHORT chroma_format_idc : 2;
+ USHORT RefPicFlag : 1;
+ USHORT constrained_intra_pred_flag : 1;
+ USHORT weighted_pred_flag : 1;
+ USHORT weighted_bipred_idc : 2;
+ USHORT MbsConsecutiveFlag : 1;
+ USHORT frame_mbs_only_flag : 1;
+ USHORT transform_8x8_mode_flag : 1;
+ USHORT MinLumaBipredSize8x8Flag : 1;
+ USHORT IntraPicFlag : 1;
+ } DUMMYSTRUCTNAME;
+ USHORT wBitFields;
+ } DUMMYUNIONNAME;
+ UCHAR bit_depth_luma_minus8;
+ UCHAR bit_depth_chroma_minus8;
+ USHORT Reserved16Bits;
+ UINT StatusReportFeedbackNumber;
+ DXVA_PicEntry_H264 RefFrameList[16];
+ INT CurrFieldOrderCnt[2];
+ INT FieldOrderCntList[16][2];
+ CHAR pic_init_qs_minus26;
+ CHAR chroma_qp_index_offset;
+ CHAR second_chroma_qp_index_offset;
+ UCHAR ContinuationFlag;
+ CHAR pic_init_qp_minus26;
+ UCHAR num_ref_idx_l0_active_minus1;
+ UCHAR num_ref_idx_l1_active_minus1;
+ UCHAR Reserved8BitsA;
+ USHORT FrameNumList[16];
+
+ UINT UsedForReferenceFlags;
+ USHORT NonExistingFrameFlags;
+ USHORT frame_num;
+ UCHAR log2_max_frame_num_minus4;
+ UCHAR pic_order_cnt_type;
+ UCHAR log2_max_pic_order_cnt_lsb_minus4;
+ UCHAR delta_pic_order_always_zero_flag;
+ UCHAR direct_8x8_inference_flag;
+ UCHAR entropy_coding_mode_flag;
+ UCHAR pic_order_present_flag;
+ UCHAR num_slice_groups_minus1;
+ UCHAR slice_group_map_type;
+ UCHAR deblocking_filter_control_present_flag;
+ UCHAR redundant_pic_cnt_present_flag;
+ UCHAR Reserved8BitsB;
+ USHORT slice_group_change_rate_minus1;
+ UCHAR SliceGroupMap[810];
+} DXVA_PicParams_H264, *LPDXVA_PicParams_H264;
+
+typedef struct _DXVA_Qmatrix_H264
+{
+ UCHAR bScalingLists4x4[6][16];
+ UCHAR bScalingLists8x8[2][64];
+} DXVA_Qmatrix_H264, *LPDXVA_Qmatrix_H264;
+
+typedef struct _DXVA_Slice_H264_Long
+{
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+ USHORT first_mb_in_slice;
+ USHORT NumMbsForSlice;
+ USHORT BitOffsetToSliceData;
+ UCHAR slice_type;
+ UCHAR luma_log2_weight_denom;
+ UCHAR chroma_log2_weight_denom;
+
+ UCHAR num_ref_idx_l0_active_minus1;
+ UCHAR num_ref_idx_l1_active_minus1;
+ CHAR slice_alpha_c0_offset_div2;
+ CHAR slice_beta_offset_div2;
+ UCHAR Reserved8Bits;
+ DXVA_PicEntry_H264 RefPicList[2][32];
+ SHORT Weights[2][32][3][2];
+ CHAR slice_qs_delta;
+ CHAR slice_qp_delta;
+ UCHAR redundant_pic_cnt;
+ UCHAR direct_spatial_mv_pred_flag;
+ UCHAR cabac_init_idc;
+ UCHAR disable_deblocking_filter_idc;
+ USHORT slice_id;
+} DXVA_Slice_H264_Long, *LPDXVA_Slice_H264_Long;
+
+typedef struct _DXVA_Slice_H264_Short
+{
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+} DXVA_Slice_H264_Short, *LPDXVA_Slice_H264_Short;
+
+
+typedef struct _DXVA_PicEntry_HEVC
+{
+ union
+ {
+ struct
+ {
+ UCHAR Index7Bits : 7;
+ UCHAR AssociatedFlag : 1;
+ };
+ UCHAR bPicEntry;
+ };
+} DXVA_PicEntry_HEVC, *LPDXVA_PicEntry_HEVC;
+
+typedef struct _DXVA_PicParams_HEVC
+{
+ USHORT PicWidthInMinCbsY;
+ USHORT PicHeightInMinCbsY;
+ union
+ {
+ struct
+ {
+ USHORT chroma_format_idc : 2;
+ USHORT separate_colour_plane_flag : 1;
+ USHORT bit_depth_luma_minus8 : 3;
+ USHORT bit_depth_chroma_minus8 : 3;
+ USHORT log2_max_pic_order_cnt_lsb_minus4 : 4;
+ USHORT NoPicReorderingFlag : 1;
+ USHORT NoBiPredFlag : 1;
+ USHORT ReservedBits1 : 1;
+ };
+ USHORT wFormatAndSequenceInfoFlags;
+ };
+ DXVA_PicEntry_HEVC CurrPic;
+ UCHAR sps_max_dec_pic_buffering_minus1;
+ UCHAR log2_min_luma_coding_block_size_minus3;
+ UCHAR log2_diff_max_min_luma_coding_block_size;
+ UCHAR log2_min_transform_block_size_minus2;
+ UCHAR log2_diff_max_min_transform_block_size;
+ UCHAR max_transform_hierarchy_depth_inter;
+ UCHAR max_transform_hierarchy_depth_intra;
+ UCHAR num_short_term_ref_pic_sets;
+ UCHAR num_long_term_ref_pics_sps;
+ UCHAR num_ref_idx_l0_default_active_minus1;
+ UCHAR num_ref_idx_l1_default_active_minus1;
+ CHAR init_qp_minus26;
+ UCHAR ucNumDeltaPocsOfRefRpsIdx;
+ USHORT wNumBitsForShortTermRPSInSlice;
+ USHORT ReservedBits2;
+
+ union
+ {
+ struct
+ {
+ UINT32 scaling_list_enabled_flag : 1;
+ UINT32 amp_enabled_flag : 1;
+ UINT32 sample_adaptive_offset_enabled_flag : 1;
+ UINT32 pcm_enabled_flag : 1;
+ UINT32 pcm_sample_bit_depth_luma_minus1 : 4;
+ UINT32 pcm_sample_bit_depth_chroma_minus1 : 4;
+ UINT32 log2_min_pcm_luma_coding_block_size_minus3 : 2;
+ UINT32 log2_diff_max_min_pcm_luma_coding_block_size : 2;
+ UINT32 pcm_loop_filter_disabled_flag : 1;
+ UINT32 long_term_ref_pics_present_flag : 1;
+ UINT32 sps_temporal_mvp_enabled_flag : 1;
+ UINT32 strong_intra_smoothing_enabled_flag : 1;
+ UINT32 dependent_slice_segments_enabled_flag : 1;
+ UINT32 output_flag_present_flag : 1;
+ UINT32 num_extra_slice_header_bits : 3;
+ UINT32 sign_data_hiding_enabled_flag : 1;
+ UINT32 cabac_init_present_flag : 1;
+ UINT32 ReservedBits3 : 5;
+ };
+ UINT32 dwCodingParamToolFlags;
+ };
+
+ union
+ {
+ struct
+ {
+ UINT32 constrained_intra_pred_flag : 1;
+ UINT32 transform_skip_enabled_flag : 1;
+ UINT32 cu_qp_delta_enabled_flag : 1;
+ UINT32 pps_slice_chroma_qp_offsets_present_flag : 1;
+ UINT32 weighted_pred_flag : 1;
+ UINT32 weighted_bipred_flag : 1;
+ UINT32 transquant_bypass_enabled_flag : 1;
+ UINT32 tiles_enabled_flag : 1;
+ UINT32 entropy_coding_sync_enabled_flag : 1;
+ UINT32 uniform_spacing_flag : 1;
+ UINT32 loop_filter_across_tiles_enabled_flag : 1;
+ UINT32 pps_loop_filter_across_slices_enabled_flag : 1;
+ UINT32 deblocking_filter_override_enabled_flag : 1;
+ UINT32 pps_deblocking_filter_disabled_flag : 1;
+ UINT32 lists_modification_present_flag : 1;
+ UINT32 slice_segment_header_extension_present_flag : 1;
+ UINT32 IrapPicFlag : 1;
+ UINT32 IdrPicFlag : 1;
+ UINT32 IntraPicFlag : 1;
+ UINT32 ReservedBits4 : 13;
+ };
+ UINT32 dwCodingSettingPicturePropertyFlags;
+ };
+ CHAR pps_cb_qp_offset;
+ CHAR pps_cr_qp_offset;
+ UCHAR num_tile_columns_minus1;
+ UCHAR num_tile_rows_minus1;
+ USHORT column_width_minus1[19];
+ USHORT row_height_minus1[21];
+ UCHAR diff_cu_qp_delta_depth;
+ CHAR pps_beta_offset_div2;
+ CHAR pps_tc_offset_div2;
+ UCHAR log2_parallel_merge_level_minus2;
+ INT CurrPicOrderCntVal;
+ DXVA_PicEntry_HEVC RefPicList[15];
+ UCHAR ReservedBits5;
+ INT PicOrderCntValList[15];
+ UCHAR RefPicSetStCurrBefore[8];
+ UCHAR RefPicSetStCurrAfter[8];
+ UCHAR RefPicSetLtCurr[8];
+ USHORT ReservedBits6;
+ USHORT ReservedBits7;
+ UINT StatusReportFeedbackNumber;
+} DXVA_PicParams_HEVC, *LPDXVA_PicParams_HEVC;
+
+typedef struct _DXVA_Qmatrix_HEVC
+{
+ UCHAR ucScalingLists0[6][16];
+ UCHAR ucScalingLists1[6][64];
+ UCHAR ucScalingLists2[6][64];
+ UCHAR ucScalingLists3[2][64];
+ UCHAR ucScalingListDCCoefSizeID2[6];
+ UCHAR ucScalingListDCCoefSizeID3[2];
+} DXVA_Qmatrix_HEVC, *LPDXVA_Qmatrix_HEVC;
+
+typedef struct _DXVA_Slice_HEVC_Short
+{
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+} DXVA_Slice_HEVC_Short, *LPDXVA_Slice_HEVC_Short;
+
+typedef struct _DXVA_PicEntry_VPx
+{
+ union
+ {
+ struct
+ {
+ UCHAR Index7Bits : 7;
+ UCHAR AssociatedFlag : 1;
+ };
+ UCHAR bPicEntry;
+ };
+} DXVA_PicEntry_VPx, *LPDXVA_PicEntry_VPx;
+
+typedef struct _segmentation_VP9
+{
+ union
+ {
+ struct
+ {
+ UCHAR enabled : 1;
+ UCHAR update_map : 1;
+ UCHAR temporal_update : 1;
+ UCHAR abs_delta : 1;
+ UCHAR ReservedSegmentFlags4Bits : 4;
+ };
+ UCHAR wSegmentInfoFlags;
+ };
+ UCHAR tree_probs[7];
+ UCHAR pred_probs[3];
+ SHORT feature_data[8][4];
+ UCHAR feature_mask[8];
+} DXVA_segmentation_VP9;
+
+typedef struct _DXVA_PicParams_VP9
+{
+ DXVA_PicEntry_VPx CurrPic;
+ UCHAR profile;
+ union
+ {
+ struct
+ {
+ USHORT frame_type : 1;
+ USHORT show_frame : 1;
+ USHORT error_resilient_mode : 1;
+ USHORT subsampling_x : 1;
+ USHORT subsampling_y : 1;
+ USHORT extra_plane : 1;
+ USHORT refresh_frame_context : 1;
+ USHORT frame_parallel_decoding_mode : 1;
+ USHORT intra_only : 1;
+ USHORT frame_context_idx : 2;
+ USHORT reset_frame_context : 2;
+ USHORT allow_high_precision_mv : 1;
+ USHORT ReservedFormatInfo2Bits : 2;
+ };
+ USHORT wFormatAndPictureInfoFlags;
+ };
+ UINT width;
+ UINT height;
+ UCHAR BitDepthMinus8Luma;
+ UCHAR BitDepthMinus8Chroma;
+ UCHAR interp_filter;
+ UCHAR Reserved8Bits;
+ DXVA_PicEntry_VPx ref_frame_map[8];
+ UINT ref_frame_coded_width[8];
+ UINT ref_frame_coded_height[8];
+ DXVA_PicEntry_VPx frame_refs[3];
+ CHAR ref_frame_sign_bias[4];
+ CHAR filter_level;
+ CHAR sharpness_level;
+ union
+ {
+ struct
+ {
+ UCHAR mode_ref_delta_enabled : 1;
+ UCHAR mode_ref_delta_update : 1;
+ UCHAR use_prev_in_find_mv_refs : 1;
+ UCHAR ReservedControlInfo5Bits : 5;
+ };
+ UCHAR wControlInfoFlags;
+ };
+ CHAR ref_deltas[4];
+ CHAR mode_deltas[2];
+ SHORT base_qindex;
+ CHAR y_dc_delta_q;
+ CHAR uv_dc_delta_q;
+ CHAR uv_ac_delta_q;
+ DXVA_segmentation_VP9 stVP9Segments;
+ UCHAR log2_tile_cols;
+ UCHAR log2_tile_rows;
+ USHORT uncompressed_header_size_byte_aligned;
+ USHORT first_partition_size;
+ USHORT Reserved16Bits;
+ UINT Reserved32Bits;
+ UINT StatusReportFeedbackNumber;
+} DXVA_PicParams_VP9, *LPDXVA_PicParams_VP9;
+
+typedef struct _segmentation_VP8
+{
+ union
+ {
+ struct
+ {
+ UCHAR segmentation_enabled : 1;
+ UCHAR update_mb_segmentation_map : 1;
+ UCHAR update_mb_segmentation_data : 1;
+ UCHAR mb_segement_abs_delta : 1;
+ UCHAR ReservedSegmentFlags4Bits : 4;
+ };
+ UCHAR wSegmentFlags;
+ };
+ CHAR segment_feature_data[2][4];
+ UCHAR mb_segment_tree_probs[3];
+} DXVA_segmentation_VP8;
+
+typedef struct _DXVA_PicParams_VP8
+{
+ UINT first_part_size;
+ UINT width;
+ UINT height;
+ DXVA_PicEntry_VPx CurrPic;
+ union
+ {
+ struct
+ {
+ UCHAR frame_type : 1;
+ UCHAR version : 3;
+ UCHAR show_frame : 1;
+ UCHAR clamp_type : 1;
+ UCHAR ReservedFrameTag3Bits : 2;
+ };
+ UCHAR wFrameTagFlags;
+ };
+ DXVA_segmentation_VP8 stVP8Segments;
+ UCHAR filter_type;
+ UCHAR filter_level;
+ UCHAR sharpness_level;
+ UCHAR mode_ref_lf_delta_enabled;
+ UCHAR mode_ref_lf_delta_update;
+ CHAR ref_lf_deltas[4];
+ CHAR mode_lf_deltas[4];
+ UCHAR log2_nbr_of_dct_partitions;
+ UCHAR base_qindex;
+ CHAR y1dc_delta_q;
+ CHAR y2dc_delta_q;
+ CHAR y2ac_delta_q;
+ CHAR uvdc_delta_q;
+ CHAR uvac_delta_q;
+ DXVA_PicEntry_VPx alt_fb_idx;
+ DXVA_PicEntry_VPx gld_fb_idx;
+ DXVA_PicEntry_VPx lst_fb_idx;
+ UCHAR ref_frame_sign_bias_golden;
+ UCHAR ref_frame_sign_bias_altref;
+ UCHAR refresh_entropy_probs;
+ UCHAR vp8_coef_update_probs[4][8][3][11];
+ UCHAR mb_no_coeff_skip;
+ UCHAR prob_skip_false;
+ UCHAR prob_intra;
+ UCHAR prob_last;
+ UCHAR prob_golden;
+ UCHAR intra_16x16_prob[4];
+ UCHAR intra_chroma_prob[3];
+ UCHAR vp8_mv_update_probs[2][19];
+ USHORT ReservedBits1;
+ USHORT ReservedBits2;
+ USHORT ReservedBits3;
+ UINT StatusReportFeedbackNumber;
+} DXVA_PicParams_VP8, *LPDXVA_PicParams_VP8;
+
+typedef struct _DXVA_Slice_VPx_Short
+{
+ UINT BSNALunitDataLocation;
+ UINT SliceBytesInBuffer;
+ USHORT wBadSliceChopping;
+} DXVA_Slice_VPx_Short, *LPDXVA_Slice_VPx_Short;
+
+typedef struct _DXVA_Status_VPx
+{
+ UINT StatusReportFeedbackNumber;
+ DXVA_PicEntry_VPx CurrPic;
+ UCHAR bBufType;
+ UCHAR bStatus;
+ UCHAR bReserved8Bits;
+ USHORT wNumMbsAffected;
+} DXVA_Status_VPx, *LPDXVA_Status_VPx;
+
+
+#define _DIRECTX_AV1_VA_
+
+/* AV1 decoder GUIDs */
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);
+DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);
+DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
+
+/* AV1 picture entry data structure */
+typedef struct _DXVA_PicEntry_AV1 {
+ UINT width;
+ UINT height;
+
+ INT wmmat[6];
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR wminvalid : 1;
+ UCHAR wmtype : 2;
+ UCHAR Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR GlobalMotionFlags;
+ } __C89_NAMELESSUNIONNAME;
+ UCHAR Index;
+ UINT16 Reserved16Bits;
+} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1;
+
+/* AV1 picture parameters data structure */
+typedef struct _DXVA_PicParams_AV1 {
+ UINT width;
+ UINT height;
+
+ UINT max_width;
+ UINT max_height;
+
+ UCHAR CurrPicTextureIndex;
+ UCHAR superres_denom;
+ UCHAR bitdepth;
+ UCHAR seq_profile;
+
+ struct {
+ UCHAR cols;
+ UCHAR rows;
+ USHORT context_update_id;
+ USHORT widths[64];
+ USHORT heights[64];
+ } tiles;
+
+ union {
+ __C89_NAMELESS struct {
+ UINT use_128x128_superblock : 1;
+ UINT intra_edge_filter : 1;
+ UINT interintra_compound : 1;
+ UINT masked_compound : 1;
+ UINT warped_motion : 1;
+ UINT dual_filter : 1;
+ UINT jnt_comp : 1;
+ UINT screen_content_tools : 1;
+ UINT integer_mv : 1;
+ UINT cdef : 1;
+ UINT restoration : 1;
+ UINT film_grain : 1;
+ UINT intrabc : 1;
+ UINT high_precision_mv : 1;
+ UINT switchable_motion_mode : 1;
+ UINT filter_intra : 1;
+ UINT disable_frame_end_update_cdf : 1;
+ UINT disable_cdf_update : 1;
+ UINT reference_mode : 1;
+ UINT skip_mode : 1;
+ UINT reduced_tx_set : 1;
+ UINT superres : 1;
+ UINT tx_mode : 2;
+ UINT use_ref_frame_mvs : 1;
+ UINT enable_ref_frame_mvs : 1;
+ UINT reference_frame_update : 1;
+ UINT Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UINT32 CodingParamToolFlags;
+ } coding;
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR frame_type : 2;
+ UCHAR show_frame : 1;
+ UCHAR showable_frame : 1;
+ UCHAR subsampling_x : 1;
+ UCHAR subsampling_y : 1;
+ UCHAR mono_chrome : 1;
+ UCHAR Reserved : 1;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR FormatAndPictureInfoFlags;
+ } format;
+
+ UCHAR primary_ref_frame;
+ UCHAR order_hint;
+ UCHAR order_hint_bits;
+
+ DXVA_PicEntry_AV1 frame_refs[7];
+ UCHAR RefFrameMapTextureIndex[8];
+
+ struct {
+ UCHAR filter_level[2];
+ UCHAR filter_level_u;
+ UCHAR filter_level_v;
+
+ UCHAR sharpness_level;
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR mode_ref_delta_enabled : 1;
+ UCHAR mode_ref_delta_update : 1;
+ UCHAR delta_lf_multi : 1;
+ UCHAR delta_lf_present : 1;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+ CHAR ref_deltas[8];
+ CHAR mode_deltas[2];
+ UCHAR delta_lf_res;
+ UCHAR frame_restoration_type[3];
+ USHORT log2_restoration_unit_size[3];
+ UINT16 Reserved16Bits;
+ } loop_filter;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR delta_q_present : 1;
+ UCHAR delta_q_res : 2;
+ UCHAR Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ UCHAR base_qindex;
+ CHAR y_dc_delta_q;
+ CHAR u_dc_delta_q;
+ CHAR v_dc_delta_q;
+ CHAR u_ac_delta_q;
+ CHAR v_ac_delta_q;
+ UCHAR qm_y;
+ UCHAR qm_u;
+ UCHAR qm_v;
+ UINT16 Reserved16Bits;
+ } quantization;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR damping : 2;
+ UCHAR bits : 2;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR primary : 6;
+ UCHAR secondary : 2;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR combined;
+ } y_strengths[8];
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR primary : 6;
+ UCHAR secondary : 2;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR combined;
+ } uv_strengths[8];
+
+ } cdef;
+
+ UCHAR interp_filter;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR enabled : 1;
+ UCHAR update_map : 1;
+ UCHAR update_data : 1;
+ UCHAR temporal_update : 1;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+ UCHAR Reserved24Bits[3];
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR alt_q : 1;
+ UCHAR alt_lf_y_v : 1;
+ UCHAR alt_lf_y_h : 1;
+ UCHAR alt_lf_u : 1;
+ UCHAR alt_lf_v : 1;
+ UCHAR ref_frame : 1;
+ UCHAR skip : 1;
+ UCHAR globalmv : 1;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR mask;
+ } feature_mask[8];
+
+ SHORT feature_data[8][8];
+
+ } segmentation;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ USHORT apply_grain : 1;
+ USHORT scaling_shift_minus8 : 2;
+ USHORT chroma_scaling_from_luma : 1;
+ USHORT ar_coeff_lag : 2;
+ USHORT ar_coeff_shift_minus6 : 2;
+ USHORT grain_scale_shift : 2;
+ USHORT overlap_flag : 1;
+ USHORT clip_to_restricted_range : 1;
+ USHORT matrix_coeff_is_identity : 1;
+ USHORT Reserved : 3;
+ } __C89_NAMELESSSTRUCTNAME;
+ USHORT ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ USHORT grain_seed;
+ UCHAR scaling_points_y[14][2];
+ UCHAR num_y_points;
+ UCHAR scaling_points_cb[10][2];
+ UCHAR num_cb_points;
+ UCHAR scaling_points_cr[10][2];
+ UCHAR num_cr_points;
+ UCHAR ar_coeffs_y[24];
+ UCHAR ar_coeffs_cb[25];
+ UCHAR ar_coeffs_cr[25];
+ UCHAR cb_mult;
+ UCHAR cb_luma_mult;
+ UCHAR cr_mult;
+ UCHAR cr_luma_mult;
+ UCHAR Reserved8Bits;
+ SHORT cb_offset;
+ SHORT cr_offset;
+ } film_grain;
+
+ UINT Reserved32Bits;
+ UINT StatusReportFeedbackNumber;
+} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1;
+
+/* AV1 tile data structure */
+typedef struct _DXVA_Tile_AV1 {
+ UINT DataOffset;
+ UINT DataSize;
+ USHORT row;
+ USHORT column;
+ UINT16 Reserved16Bits;
+ UCHAR anchor_frame;
+ UCHAR Reserved8Bits;
+} DXVA_Tile_AV1, *LPDXVA_Tile_AV1;
+
+typedef struct _DXVA_Status_AV1 {
+ UINT StatusReportFeedbackNumber;
+ DXVA_PicEntry_AV1 CurrPic;
+ UCHAR BufType;
+ UCHAR Status;
+ UCHAR Reserved8Bits;
+ USHORT NumMbsAffected;
+} DXVA_Status_AV1, *LPDXVA_Status_AV1;
+
+#include <poppack.h>
+
+typedef enum _DXVA_VideoChromaSubsampling
+{
+ DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+ DXVA_VideoChromaSubsampling_Vertically_Cosited = 0x2,
+ DXVA_VideoChromaSubsampling_Horizontally_Cosited = 0x4,
+ DXVA_VideoChromaSubsampling_ProgressiveChroma = 0x8,
+
+ DXVA_VideoChromaSubsampling_Unknown = 0,
+ DXVA_VideoChromaSubsampling_Cosited = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+ | DXVA_VideoChromaSubsampling_Vertically_Cosited
+ | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+ DXVA_VideoChromaSubsampling_DV_PAL = DXVA_VideoChromaSubsampling_Vertically_Cosited
+ | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+ DXVA_VideoChromaSubsampling_MPEG1 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ DXVA_VideoChromaSubsampling_MPEG2 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+ | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+} DXVA_VideoChromaSubsampling;
+
+typedef enum _DXVA_NominalRange
+{
+ DXVA_NominalRange_Unknown = 0,
+ DXVA_NominalRange_0_255 = 1,
+ DXVA_NominalRange_16_235 = 2,
+ DXVA_NominalRange_48_208 = 3,
+ DXVA_NominalRange_Normal = DXVA_NominalRange_0_255,
+ DXVA_NominalRange_Wide = DXVA_NominalRange_16_235,
+} DXVA_NominalRange;
+
+typedef enum _DXVA_VideoTransferMatrix
+{
+ DXVA_VideoTransferMatrix_Unknown = 0,
+ DXVA_VideoTransferMatrix_BT709 = 1,
+ DXVA_VideoTransferMatrix_BT601 = 2,
+ DXVA_VideoTransferMatrix_SMPTE240M = 3,
+} DXVA_VideoTransferMatrix;
+
+typedef enum _DXVA_VideoLighting
+{
+ DXVA_VideoLighting_Unknown = 0,
+ DXVA_VideoLighting_bright = 1,
+ DXVA_VideoLighting_office = 2,
+ DXVA_VideoLighting_dim = 3,
+ DXVA_VideoLighting_dark = 4,
+} DXVA_VideoLighting;
+
+typedef enum _DXVA_VideoPrimaries
+{
+ DXVA_VideoPrimaries_Unknown = 0,
+ DXVA_VideoPrimaries_reserved = 1,
+ DXVA_VideoPrimaries_BT709 = 2,
+ DXVA_VideoPrimaries_BT470_2_SysM = 3,
+ DXVA_VideoPrimaries_BT470_2_SysBG = 4,
+ DXVA_VideoPrimaries_SMPTE170M = 5,
+ DXVA_VideoPrimaries_SMPTE420M = 6,
+ DXVA_VideoPrimaries_EBU3213 = 7,
+ DXVA_VideoPrimaries_SMPTE_C = 8,
+} DXVA_VideoPrimaries;
+
+typedef enum _DXVA_VideoTransferFunction
+{
+ DXVA_VideoTransFunc_Unknown = 0,
+ DXVA_VideoTransFunc_10 = 1,
+ DXVA_VideoTransFunc_18 = 2,
+ DXVA_VideoTransFunc_20 = 3,
+ DXVA_VideoTransFunc_22 = 4,
+ DXVA_VideoTransFunc_22_709 = 5,
+ DXVA_VideoTransFunc_22_240M = 6,
+ DXVA_VideoTransFunc_22_8bit_sRGB = 7,
+ DXVA_VideoTransFunc_28 = 8,
+} DXVA_VideoTransferFunction;
+
+typedef struct _DXVA_ExtendedFormat
+{
+ UINT SampleFormat : 8;
+ UINT VideoChromaSubsampling : 4;
+ DXVA_NominalRange NominalRange : 3;
+ DXVA_VideoTransferMatrix VideoTransferMatrix : 3;
+ DXVA_VideoLighting VideoLighting : 4;
+ DXVA_VideoPrimaries VideoPrimaries : 5;
+ DXVA_VideoTransferFunction VideoTransferFunction : 5;
+} DXVA_ExtendedFormat;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_DXVA_H */
diff --git a/dxva2api.h b/dxva2api.h
new file mode 100644
index 0000000..e112494
--- /dev/null
+++ b/dxva2api.h
@@ -0,0 +1,1589 @@
+/*** Autogenerated by WIDL 7.7 from include/dxva2api.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxva2api_h__
+#define __dxva2api_h__
+
+/* Forward declarations */
+
+#ifndef __IDirect3DDeviceManager9_FWD_DEFINED__
+#define __IDirect3DDeviceManager9_FWD_DEFINED__
+typedef interface IDirect3DDeviceManager9 IDirect3DDeviceManager9;
+#ifdef __cplusplus
+interface IDirect3DDeviceManager9;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__
+#define __IDirectXVideoAccelerationService_FWD_DEFINED__
+typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService;
+#ifdef __cplusplus
+interface IDirectXVideoAccelerationService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoDecoderService_FWD_DEFINED__
+#define __IDirectXVideoDecoderService_FWD_DEFINED__
+typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService;
+#ifdef __cplusplus
+interface IDirectXVideoDecoderService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoDecoder_FWD_DEFINED__
+#define __IDirectXVideoDecoder_FWD_DEFINED__
+typedef interface IDirectXVideoDecoder IDirectXVideoDecoder;
+#ifdef __cplusplus
+interface IDirectXVideoDecoder;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoProcessorService_FWD_DEFINED__
+#define __IDirectXVideoProcessorService_FWD_DEFINED__
+typedef interface IDirectXVideoProcessorService IDirectXVideoProcessorService;
+#ifdef __cplusplus
+interface IDirectXVideoProcessorService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoProcessor_FWD_DEFINED__
+#define __IDirectXVideoProcessor_FWD_DEFINED__
+typedef interface IDirectXVideoProcessor IDirectXVideoProcessor;
+#ifdef __cplusplus
+interface IDirectXVideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoMemoryConfiguration_FWD_DEFINED__
+#define __IDirectXVideoMemoryConfiguration_FWD_DEFINED__
+typedef interface IDirectXVideoMemoryConfiguration IDirectXVideoMemoryConfiguration;
+#ifdef __cplusplus
+interface IDirectXVideoMemoryConfiguration;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if 0
+typedef DWORD IDirect3DDevice9;
+typedef DWORD IDirect3DSurface9;
+typedef DWORD D3DFORMAT;
+typedef DWORD D3DPOOL;
+#endif
+DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0,0x4563, 0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);
+#define DXVA2_ModeMPEG2_MOCOMP DXVA2_ModeMPEG2_MoComp
+DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);
+DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);
+DEFINE_GUID(DXVA2_ModeMPEG1_VLD, 0x6f3ec719, 0x3735,0x42cc, 0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16);
+DEFINE_GUID(DXVA2_ModeMPEG2and1_VLD, 0x86695f12, 0x340e,0x4f04, 0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60);
+DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_MoComp_NoFGT DXVA2_ModeH264_A
+DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_MoComp_FGT DXVA2_ModeH264_B
+DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_IDCT_NoFGT DXVA2_ModeH264_C
+DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_IDCT_FGT DXVA2_ModeH264_D
+DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeH264_E
+DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeH264_VLD_FGT DXVA2_ModeH264_F
+DEFINE_GUID(DXVA2_ModeH264_VLD_WithFMOASO_NoFGT, 0xd5f04ff9, 0x3418,0x45d8, 0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd);
+DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT, 0xd79be8da, 0x0cf1,0x4c81, 0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d);
+DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_NoFGT, 0xf9aaccbb, 0xc2b6,0x4cfc, 0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52);
+DEFINE_GUID(DXVA2_ModeH264_VLD_Multiview_NoFGT, 0x705b9d82, 0x76cf,0x49d6, 0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c);
+DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeWMV8_PostProc DXVA2_ModeWMV8_A
+DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeWMV8_MoComp DXVA2_ModeWMV8_B
+DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeWMV9_PostProc DXVA2_ModeWMV9_A
+DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeWMV9_MoComp DXVA2_ModeWMV9_B
+DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeWMV9_IDCT DXVA2_ModeWMV9_C
+DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeVC1_PostProc DXVA2_ModeVC1_A
+DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeVC1_MoComp DXVA2_ModeVC1_B
+DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeVC1_IDCT DXVA2_ModeVC1_C
+DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+#define DXVA2_ModeVC1_VLD DXVA2_ModeVC1_D
+DEFINE_GUID(DXVA2_ModeVC1_D2010, 0x1b81bea4, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+DEFINE_GUID(DXVA2_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
+DEFINE_GUID(DXVA2_VideoProcProgressiveDevice, 0x5a54a0c9, 0xc7ec,0x4bd9, 0x8e,0xde,0xf3,0xc7,0x5d,0xc4,0x39,0x3b);
+DEFINE_GUID(DXVA2_VideoProcBobDevice, 0x335aa36e, 0x7884,0x43a4, 0x9c,0x91,0x7f,0x87,0xfa,0xf3,0xe3,0x7e);
+DEFINE_GUID(DXVA2_VideoProcSoftwareDevice, 0x4553d47f, 0xee7e,0x4e3f, 0x94,0x75,0xdb,0xf1,0x37,0x6c,0x48,0x10);
+DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_Simple, 0xefd64d74, 0xc9e8,0x41d7, 0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);
+DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC, 0xed418a9f, 0x010d,0x4eda, 0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e);
+DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_GMC, 0xab998b5b, 0x4258,0x44a9, 0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae);
+DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c,0x4452, 0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);
+DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main10, 0x107af0e0, 0xef1a,0x4d19, 0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);
+DEFINE_GUID(DXVA2_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0,0x4585, 0x87,0x6d,0x83,0xaa,0x6d,0x60,0xb8,0x9e);
+DEFINE_GUID(DXVA2_ModeVP9_VLD_10bit_Profile2, 0xa4c749ef, 0x6ecf,0x48aa, 0x84,0x48,0x50,0xa7,0xa1,0x16,0x5f,0xf7);
+DEFINE_GUID(DXVA2_ModeVP8_VLD, 0x90b899ea, 0x3a62,0x4705, 0x88,0xb3,0x8d,0xf0,0x4b,0x27,0x44,0xe7);
+#ifndef REFERENCE_TIME_DEFINED
+#define REFERENCE_TIME_DEFINED
+typedef LONGLONG REFERENCE_TIME;
+#endif
+#define DXVA2_E_NOT_INITIALIZED ((HRESULT)0x80041000)
+#define DXVA2_E_NEW_VIDEO_DEVICE ((HRESULT)0x80041001)
+#define DXVA2_E_VIDEO_DEVICE_LOCKED ((HRESULT)0x80041002)
+#define DXVA2_E_NOT_AVAILABLE ((HRESULT)0x80041003)
+enum {
+ DXVA2_PictureParametersBufferType = 0,
+ DXVA2_MacroBlockControlBufferType = 1,
+ DXVA2_ResidualDifferenceBufferType = 2,
+ DXVA2_DeblockingControlBufferType = 3,
+ DXVA2_InverseQuantizationMatrixBufferType = 4,
+ DXVA2_SliceControlBufferType = 5,
+ DXVA2_BitStreamDateBufferType = 6,
+ DXVA2_MotionVectorBuffer = 7,
+ DXVA2_FilmGrainBuffer = 8
+};
+enum {
+ DXVA2_VideoDecoderRenderTarget = 0,
+ DXVA2_VideoProcessorRenderTarget = 1,
+ DXVA2_VideoSoftwareRenderTarget = 2
+};
+typedef struct _DXVA2_ExtendedFormat {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UINT SampleFormat : 8;
+ UINT VideoChromaSubsampling : 4;
+ UINT NominalRange : 3;
+ UINT VideoTransferMatrix : 3;
+ UINT VideoLighting : 4;
+ UINT VideoPrimaries : 5;
+ UINT VideoTransferFunction : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UINT value;
+ } __C89_NAMELESSUNIONNAME;
+} DXVA2_ExtendedFormat;
+typedef enum _DXVA2_SampleFormat {
+ DXVA2_SampleFormatMask = 0xff,
+ DXVA2_SampleUnknown = 0,
+ DXVA2_SampleProgressiveFrame = 2,
+ DXVA2_SampleFieldInterleavedEvenFirst = 3,
+ DXVA2_SampleFieldInterleavedOddFirst = 4,
+ DXVA2_SampleFieldSingleEven = 5,
+ DXVA2_SampleFieldSingleOdd = 6,
+ DXVA2_SampleSubStream = 7
+} DXVA2_SampleFormat;
+typedef enum _DXVA2_VideoChromaSubSampling {
+ DXVA2_VideoChromaSubsamplingMask = 0xf,
+ DXVA2_VideoChromaSubsampling_Unknown = 0,
+ DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,
+ DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,
+ DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,
+ DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+ DXVA2_VideoChromaSubsampling_MPEG2 = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+ DXVA2_VideoChromaSubsampling_DV_PAL = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited,
+ DXVA2_VideoChromaSubsampling_Cosited = (DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited) | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+} DXVA2_VideoChromaSubSampling;
+typedef enum _DXVA2_NominalRange {
+ DXVA2_NominalRangeMask = 0x7,
+ DXVA2_NominalRange_Unknown = 0,
+ DXVA2_NominalRange_Normal = 1,
+ DXVA2_NominalRange_Wide = 2,
+ DXVA2_NominalRange_0_255 = 1,
+ DXVA2_NominalRange_16_235 = 2,
+ DXVA2_NominalRange_48_208 = 3
+} DXVA2_NominalRange;
+typedef enum _DXVA2_VideoTransferMatrix {
+ DXVA2_VideoTransferMatrixMask = 0x7,
+ DXVA2_VideoTransferMatrix_Unknown = 0,
+ DXVA2_VideoTransferMatrix_BT709 = 1,
+ DXVA2_VideoTransferMatrix_BT601 = 2,
+ DXVA2_VideoTransferMatrix_SMPTE240M = 3
+} DXVA2_VideoTransferMatrix;
+typedef enum _DXVA2_VideoLighting {
+ DXVA2_VideoLightingMask = 0xf,
+ DXVA2_VideoLighting_Unknown = 0,
+ DXVA2_VideoLighting_bright = 1,
+ DXVA2_VideoLighting_office = 2,
+ DXVA2_VideoLighting_dim = 3,
+ DXVA2_VideoLighting_dark = 4
+} DXVA2_VideoLighting;
+typedef enum _DXVA2_VideoPrimaries {
+ DXVA2_VideoPrimariesMask = 0x1f,
+ DXVA2_VideoPrimaries_Unknown = 0,
+ DXVA2_VideoPrimaries_reserved = 1,
+ DXVA2_VideoPrimaries_BT709 = 2,
+ DXVA2_VideoPrimaries_BT470_2_SysM = 3,
+ DXVA2_VideoPrimaries_BT470_2_SysBG = 4,
+ DXVA2_VideoPrimaries_SMPTE170M = 5,
+ DXVA2_VideoPrimaries_SMPTE240M = 6,
+ DXVA2_VideoPrimaries_EBU3213 = 7,
+ DXVA2_VideoPrimaries_SMPTE_C = 8
+} DXVA2_VideoPrimaries;
+typedef enum _DXVA2_VideoTransferFunction {
+ DXVA2_VideoTransFuncMask = 0x1f,
+ DXVA2_VideoTransFunc_Unknown = 0,
+ DXVA2_VideoTransFunc_10 = 1,
+ DXVA2_VideoTransFunc_18 = 2,
+ DXVA2_VideoTransFunc_20 = 3,
+ DXVA2_VideoTransFunc_22 = 4,
+ DXVA2_VideoTransFunc_709 = 5,
+ DXVA2_VideoTransFunc_240M = 6,
+ DXVA2_VideoTransFunc_sRGB = 7,
+ DXVA2_VideoTransFunc_28 = 8
+} DXVA2_VideoTransferFunction;
+#define DXVA2_VideoTransFunc_22_709 DXVA2_VideoTransFunc_709
+#define DXVA2_VideoTransFunc_22_240M DXVA2_VideoTransFunc_240M
+#define DXVA2_VideoTransFunc_22_8bit_sRGB DXVA2_VideoTransFunc_sRGB
+typedef struct _DXVA2_Frequency {
+ UINT Numerator;
+ UINT Denominator;
+} DXVA2_Frequency;
+typedef struct _DXVA2_ConfigPictureDecode {
+ GUID guidConfigBitstreamEncryption;
+ GUID guidConfigMBcontrolEncryption;
+ GUID guidConfigResidDiffEncryption;
+ UINT ConfigBitstreamRaw;
+ UINT ConfigMBcontrolRasterOrder;
+ UINT ConfigResidDiffHost;
+ UINT ConfigSpatialResid8;
+ UINT ConfigResid8Subtraction;
+ UINT ConfigSpatialHost8or9Clipping;
+ UINT ConfigSpatialResidInterleaved;
+ UINT ConfigIntraResidUnsigned;
+ UINT ConfigResidDiffAccelerator;
+ UINT ConfigHostInverseScan;
+ UINT ConfigSpecificIDCT;
+ UINT Config4GroupedCoefs;
+ UINT ConfigMinRenderTargetBuffCount;
+ USHORT ConfigDecoderSpecific;
+} DXVA2_ConfigPictureDecode;
+typedef struct _DXVA2_VideoDesc {
+ UINT SampleWidth;
+ UINT SampleHeight;
+ DXVA2_ExtendedFormat SampleFormat;
+ D3DFORMAT Format;
+ DXVA2_Frequency InputSampleFreq;
+ DXVA2_Frequency OutputFrameFreq;
+ UINT UABProtectionLevel;
+ UINT Reserved;
+} DXVA2_VideoDesc;
+enum {
+ DXVA2_DeinterlaceTech_Unknown = 0x0,
+ DXVA2_DeinterlaceTech_BOBLineReplicate = 0x1,
+ DXVA2_DeinterlaceTech_BOBVerticalStretch = 0x2,
+ DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap = 0x4,
+ DXVA2_DeinterlaceTech_MedianFiltering = 0x8,
+ DXVA2_DeinterlaceTech_EdgeFiltering = 0x10,
+ DXVA2_DeinterlaceTech_FieldAdaptive = 0x20,
+ DXVA2_DeinterlaceTech_PixelAdaptive = 0x40,
+ DXVA2_DeinterlaceTech_MotionVectorSteered = 0x80,
+ DXVA2_DeinterlaceTech_InverseTelecine = 0x100,
+ DXVA2_DeinterlaceTech_Mask = 0x1ff
+};
+enum {
+ DXVA2_NoiseFilterLumaLevel = 1,
+ DXVA2_NoiseFilterLumaThreshold = 2,
+ DXVA2_NoiseFilterLumaRadius = 3,
+ DXVA2_NoiseFilterChromaLevel = 4,
+ DXVA2_NoiseFilterChromaThreshold = 5,
+ DXVA2_NoiseFilterChromaRadius = 6,
+ DXVA2_DetailFilterLumaLevel = 7,
+ DXVA2_DetailFilterLumaThreshold = 8,
+ DXVA2_DetailFilterLumaRadius = 9,
+ DXVA2_DetailFilterChromaLevel = 10,
+ DXVA2_DetailFilterChromaThreshold = 11,
+ DXVA2_DetailFilterChromaRadius = 12
+};
+enum {
+ DXVA2_NoiseFilterTech_Unsupported = 0,
+ DXVA2_NoiseFilterTech_Unknown = 0x1,
+ DXVA2_NoiseFilterTech_Median = 0x2,
+ DXVA2_NoiseFilterTech_Temporal = 0x4,
+ DXVA2_NoiseFilterTech_BlockNoise = 0x8,
+ DXVA2_NoiseFilterTech_MosquitoNoise = 0x10,
+ DXVA2_NoiseFilterTech_Mask = 0x1f
+};
+enum {
+ DXVA2_DetailFilterTech_Unsupported = 0,
+ DXVA2_DetailFilterTech_Unknown = 0x1,
+ DXVA2_DetailFilterTech_Edge = 0x2,
+ DXVA2_DetailFilterTech_Sharpening = 0x4,
+ DXVA2_DetailFilterTech_Mask = 0x7
+};
+enum {
+ DXVA2_ProcAmp_None = 0x0,
+ DXVA2_ProcAmp_Brightness = 0x1,
+ DXVA2_ProcAmp_Contrast = 0x2,
+ DXVA2_ProcAmp_Hue = 0x4,
+ DXVA2_ProcAmp_Saturation = 0x8,
+ DXVA2_ProcAmp_Mask = 0xf
+};
+enum {
+ DXVA2_VideoProcess_None = 0x0,
+ DXVA2_VideoProcess_YUV2RGB = 0x1,
+ DXVA2_VideoProcess_StretchX = 0x2,
+ DXVA2_VideoProcess_StretchY = 0x4,
+ DXVA2_VideoProcess_AlphaBlend = 0x8,
+ DXVA2_VideoProcess_SubRects = 0x10,
+ DXVA2_VideoProcess_SubStreams = 0x20,
+ DXVA2_VideoProcess_SubStreamsExtended = 0x40,
+ DXVA2_VideoProcess_YUV2RGBExtended = 0x80,
+ DXVA2_VideoProcess_AlphaBlendExtended = 0x100,
+ DXVA2_VideoProcess_Constriction = 0x200,
+ DXVA2_VideoProcess_NoiseFilter = 0x400,
+ DXVA2_VideoProcess_DetailFilter = 0x800,
+ DXVA2_VideoProcess_PlanarAlpha = 0x1000,
+ DXVA2_VideoProcess_LinearScaling = 0x2000,
+ DXVA2_VideoProcess_GammaCompensated = 0x4000,
+ DXVA2_VideoProcess_MaintainsOriginalFieldData = 0x8000,
+ DXVA2_VideoProcess_Mask = 0xffff
+};
+enum {
+ DXVA2_VPDev_HardwareDevice = 0x1,
+ DXVA2_VPDev_EmulatedDXVA1 = 0x2,
+ DXVA2_VPDev_SoftwareDevice = 0x4,
+ DXVA2_VPDev_Mask = 0x7
+};
+enum {
+ DXVA2_SampleData_RFF = 0x1,
+ DXVA2_SampleData_TFF = 0x2,
+ DXVA2_SampleData_RFF_TFF_Present = 0x4,
+ DXVA2_SampleData_Mask = 0xffff
+};
+enum {
+ DXVA2_DestData_RFF = 0x1,
+ DXVA2_DestData_TFF = 0x2,
+ DXVA2_DestData_RFF_TFF_Present = 0x4,
+ DXVA2_DestData_Mask = 0xffff
+};
+typedef struct _DXVA2_DecodeBufferDesc {
+ DWORD CompressedBufferType;
+ UINT BufferIndex;
+ UINT DataOffset;
+ UINT DataSize;
+ UINT FirstMBaddress;
+ UINT NumMBsInBuffer;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ UINT ReservedBits;
+ PVOID pvPVPState;
+} DXVA2_DecodeBufferDesc;
+typedef struct _DXVA2_AES_CTR_IV {
+ UINT64 IV;
+ UINT64 Count;
+} DXVA2_AES_CTR_IV;
+typedef struct _DXVA2_DecodeExtensionData {
+ UINT Function;
+ PVOID pPrivateInputData;
+ UINT PrivateInputDataSize;
+ PVOID pPrivateOutputData;
+ UINT PrivateOutputDataSize;
+} DXVA2_DecodeExtensionData;
+typedef struct _DXVA2_DecodeExecuteParams {
+ UINT NumCompBuffers;
+ DXVA2_DecodeBufferDesc *pCompressedBuffers;
+ DXVA2_DecodeExtensionData *pExtensionData;
+} DXVA2_DecodeExecuteParams;
+typedef struct _DXVA2_VideoProcessorCaps {
+ UINT DeviceCaps;
+ D3DPOOL InputPool;
+ UINT NumForwardRefSamples;
+ UINT NumBackwardRefSamples;
+ UINT Reserved;
+ UINT DeinterlaceTechnology;
+ UINT ProcAmpControlCaps;
+ UINT VideoProcessorOperations;
+ UINT NoiseFilterTechnology;
+ UINT DetailFilterTechnology;
+} DXVA2_VideoProcessorCaps;
+typedef struct _DXVA2_Fixed32 {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ USHORT Fraction;
+ SHORT Value;
+ } __C89_NAMELESSSTRUCTNAME;
+ LONG ll;
+ } __C89_NAMELESSUNIONNAME;
+} DXVA2_Fixed32;
+typedef struct _DXVA2_ValueRange {
+ DXVA2_Fixed32 MinValue;
+ DXVA2_Fixed32 MaxValue;
+ DXVA2_Fixed32 DefaultValue;
+ DXVA2_Fixed32 StepSize;
+} DXVA2_ValueRange;
+typedef struct _DXVA2_AYUVSample8 {
+ UCHAR Cr;
+ UCHAR Cb;
+ UCHAR Y;
+ UCHAR Alpha;
+} DXVA2_AYUVSample8;
+typedef struct _DXVA2_AYUVSample16 {
+ USHORT Cr;
+ USHORT Cb;
+ USHORT Y;
+ USHORT Alpha;
+} DXVA2_AYUVSample16;
+typedef struct _DXVA2_ProcAmpValues {
+ DXVA2_Fixed32 Brightness;
+ DXVA2_Fixed32 Contrast;
+ DXVA2_Fixed32 Hue;
+ DXVA2_Fixed32 Saturation;
+} DXVA2_ProcAmpValues;
+typedef struct _DXVA2_FilterValues {
+ DXVA2_Fixed32 Level;
+ DXVA2_Fixed32 Threshold;
+ DXVA2_Fixed32 Radius;
+} DXVA2_FilterValues;
+typedef struct _DXVA2_VideoProcessBltParams {
+ REFERENCE_TIME TargetFrame;
+ RECT TargetRect;
+ SIZE ConstrictionSize;
+ UINT StreamingFlags;
+ DXVA2_AYUVSample16 BackgroundColor;
+ DXVA2_ExtendedFormat DestFormat;
+ DXVA2_ProcAmpValues ProcAmpValues;
+ DXVA2_Fixed32 Alpha;
+ DXVA2_FilterValues NoiseFilterLuma;
+ DXVA2_FilterValues NoiseFilterChroma;
+ DXVA2_FilterValues DetailFilterLuma;
+ DXVA2_FilterValues DetailFilterChroma;
+ DWORD DestData;
+} DXVA2_VideoProcessBltParams;
+#ifdef _D3D9_H_
+typedef struct _DXVA2_VideoSample {
+ REFERENCE_TIME Start;
+ REFERENCE_TIME End;
+ DXVA2_ExtendedFormat SampleFormat;
+ IDirect3DSurface9 *SrcSurface;
+ RECT SrcRect;
+ RECT DstRect;
+ DXVA2_AYUVSample8 Pal[16];
+ DXVA2_Fixed32 PlanarAlpha;
+ DWORD SampleData;
+} DXVA2_VideoSample;
+typedef enum __WIDL_dxva2api_generated_name_0000000C {
+ DXVA2_SurfaceType_DecoderRenderTarget = 0,
+ DXVA2_SurfaceType_ProcessorRenderTarget = 1,
+ DXVA2_SurfaceType_D3DRenderTargetTexture = 2
+} DXVA2_SurfaceType;
+#ifndef __IDirect3DDeviceManager9_FWD_DEFINED__
+#define __IDirect3DDeviceManager9_FWD_DEFINED__
+typedef interface IDirect3DDeviceManager9 IDirect3DDeviceManager9;
+#ifdef __cplusplus
+interface IDirect3DDeviceManager9;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__
+#define __IDirectXVideoAccelerationService_FWD_DEFINED__
+typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService;
+#ifdef __cplusplus
+interface IDirectXVideoAccelerationService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoDecoderService_FWD_DEFINED__
+#define __IDirectXVideoDecoderService_FWD_DEFINED__
+typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService;
+#ifdef __cplusplus
+interface IDirectXVideoDecoderService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoProcessorService_FWD_DEFINED__
+#define __IDirectXVideoProcessorService_FWD_DEFINED__
+typedef interface IDirectXVideoProcessorService IDirectXVideoProcessorService;
+#ifdef __cplusplus
+interface IDirectXVideoProcessorService;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoDecoder_FWD_DEFINED__
+#define __IDirectXVideoDecoder_FWD_DEFINED__
+typedef interface IDirectXVideoDecoder IDirectXVideoDecoder;
+#ifdef __cplusplus
+interface IDirectXVideoDecoder;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectXVideoProcessor_FWD_DEFINED__
+#define __IDirectXVideoProcessor_FWD_DEFINED__
+typedef interface IDirectXVideoProcessor IDirectXVideoProcessor;
+#ifdef __cplusplus
+interface IDirectXVideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IDirect3DDeviceManager9 interface
+ */
+#ifndef __IDirect3DDeviceManager9_INTERFACE_DEFINED__
+#define __IDirect3DDeviceManager9_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75")
+IDirect3DDeviceManager9 : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE ResetDevice(
+ IDirect3DDevice9 *pDevice,
+ UINT resetToken) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle(
+ HANDLE *phDevice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle(
+ HANDLE hDevice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TestDevice(
+ HANDLE hDevice) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LockDevice(
+ HANDLE hDevice,
+ IDirect3DDevice9 **ppDevice,
+ WINBOOL fBlock) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnlockDevice(
+ HANDLE hDevice,
+ WINBOOL fSaveState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoService(
+ HANDLE hDevice,
+ REFIID riid,
+ void **ppService) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75)
+#endif
+#else
+typedef struct IDirect3DDeviceManager9Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirect3DDeviceManager9 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirect3DDeviceManager9 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirect3DDeviceManager9 *This);
+
+ /*** IDirect3DDeviceManager9 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ResetDevice)(
+ IDirect3DDeviceManager9 *This,
+ IDirect3DDevice9 *pDevice,
+ UINT resetToken);
+
+ HRESULT (STDMETHODCALLTYPE *OpenDeviceHandle)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE *phDevice);
+
+ HRESULT (STDMETHODCALLTYPE *CloseDeviceHandle)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE hDevice);
+
+ HRESULT (STDMETHODCALLTYPE *TestDevice)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE hDevice);
+
+ HRESULT (STDMETHODCALLTYPE *LockDevice)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE hDevice,
+ IDirect3DDevice9 **ppDevice,
+ WINBOOL fBlock);
+
+ HRESULT (STDMETHODCALLTYPE *UnlockDevice)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE hDevice,
+ WINBOOL fSaveState);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoService)(
+ IDirect3DDeviceManager9 *This,
+ HANDLE hDevice,
+ REFIID riid,
+ void **ppService);
+
+ END_INTERFACE
+} IDirect3DDeviceManager9Vtbl;
+
+interface IDirect3DDeviceManager9 {
+ CONST_VTBL IDirect3DDeviceManager9Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirect3DDeviceManager9_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirect3DDeviceManager9_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirect3DDeviceManager9 methods ***/
+#define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken)
+#define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
+#define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
+#define IDirect3DDeviceManager9_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice)
+#define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock)
+#define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState)
+#define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_QueryInterface(IDirect3DDeviceManager9* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirect3DDeviceManager9_AddRef(IDirect3DDeviceManager9* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirect3DDeviceManager9_Release(IDirect3DDeviceManager9* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirect3DDeviceManager9 methods ***/
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_ResetDevice(IDirect3DDeviceManager9* This,IDirect3DDevice9 *pDevice,UINT resetToken) {
+ return This->lpVtbl->ResetDevice(This,pDevice,resetToken);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_OpenDeviceHandle(IDirect3DDeviceManager9* This,HANDLE *phDevice) {
+ return This->lpVtbl->OpenDeviceHandle(This,phDevice);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_CloseDeviceHandle(IDirect3DDeviceManager9* This,HANDLE hDevice) {
+ return This->lpVtbl->CloseDeviceHandle(This,hDevice);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_TestDevice(IDirect3DDeviceManager9* This,HANDLE hDevice) {
+ return This->lpVtbl->TestDevice(This,hDevice);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_LockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,IDirect3DDevice9 **ppDevice,WINBOOL fBlock) {
+ return This->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_UnlockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,WINBOOL fSaveState) {
+ return This->lpVtbl->UnlockDevice(This,hDevice,fSaveState);
+}
+static FORCEINLINE HRESULT IDirect3DDeviceManager9_GetVideoService(IDirect3DDeviceManager9* This,HANDLE hDevice,REFIID riid,void **ppService) {
+ return This->lpVtbl->GetVideoService(This,hDevice,riid,ppService);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirect3DDeviceManager9_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoAccelerationService interface
+ */
+#ifndef __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
+#define __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fc51a550-d5e7-11d9-af55-00054e43ff02")
+IDirectXVideoAccelerationService : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateSurface(
+ UINT width,
+ UINT height,
+ UINT backBuffers,
+ D3DFORMAT format,
+ D3DPOOL pool,
+ DWORD usage,
+ DWORD dxvaType,
+ IDirect3DSurface9 **ppSurface,
+ HANDLE *pSharedHandle) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02)
+#endif
+#else
+typedef struct IDirectXVideoAccelerationServiceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoAccelerationService *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoAccelerationService *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoAccelerationService *This);
+
+ /*** IDirectXVideoAccelerationService methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDirectXVideoAccelerationService *This,
+ UINT width,
+ UINT height,
+ UINT backBuffers,
+ D3DFORMAT format,
+ D3DPOOL pool,
+ DWORD usage,
+ DWORD dxvaType,
+ IDirect3DSurface9 **ppSurface,
+ HANDLE *pSharedHandle);
+
+ END_INTERFACE
+} IDirectXVideoAccelerationServiceVtbl;
+
+interface IDirectXVideoAccelerationService {
+ CONST_VTBL IDirectXVideoAccelerationServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoAccelerationService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoAccelerationService_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoAccelerationService methods ***/
+#define IDirectXVideoAccelerationService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoAccelerationService_QueryInterface(IDirectXVideoAccelerationService* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoAccelerationService_AddRef(IDirectXVideoAccelerationService* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoAccelerationService_Release(IDirectXVideoAccelerationService* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoAccelerationService methods ***/
+static FORCEINLINE HRESULT IDirectXVideoAccelerationService_CreateSurface(IDirectXVideoAccelerationService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) {
+ return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoDecoderService interface
+ */
+#ifndef __IDirectXVideoDecoderService_INTERFACE_DEFINED__
+#define __IDirectXVideoDecoderService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fc51a551-d5e7-11d9-af55-00054e43ff02")
+IDirectXVideoDecoderService : public IDirectXVideoAccelerationService
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDecoderDeviceGuids(
+ UINT *count,
+ GUID **pGuids) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDecoderRenderTargets(
+ REFGUID guid,
+ UINT *pCount,
+ D3DFORMAT **pFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurations(
+ REFGUID guid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ void *pReserved,
+ UINT *pCount,
+ DXVA2_ConfigPictureDecode **ppConfigs) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
+ REFGUID guid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ const DXVA2_ConfigPictureDecode *pConfig,
+ IDirect3DSurface9 **ppDecoderRenderTargets,
+ UINT NumSurfaces,
+ IDirectXVideoDecoder **ppDecode) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02)
+#endif
+#else
+typedef struct IDirectXVideoDecoderServiceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoDecoderService *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoDecoderService *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoDecoderService *This);
+
+ /*** IDirectXVideoAccelerationService methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDirectXVideoDecoderService *This,
+ UINT width,
+ UINT height,
+ UINT backBuffers,
+ D3DFORMAT format,
+ D3DPOOL pool,
+ DWORD usage,
+ DWORD dxvaType,
+ IDirect3DSurface9 **ppSurface,
+ HANDLE *pSharedHandle);
+
+ /*** IDirectXVideoDecoderService methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDecoderDeviceGuids)(
+ IDirectXVideoDecoderService *This,
+ UINT *count,
+ GUID **pGuids);
+
+ HRESULT (STDMETHODCALLTYPE *GetDecoderRenderTargets)(
+ IDirectXVideoDecoderService *This,
+ REFGUID guid,
+ UINT *pCount,
+ D3DFORMAT **pFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetDecoderConfigurations)(
+ IDirectXVideoDecoderService *This,
+ REFGUID guid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ void *pReserved,
+ UINT *pCount,
+ DXVA2_ConfigPictureDecode **ppConfigs);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)(
+ IDirectXVideoDecoderService *This,
+ REFGUID guid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ const DXVA2_ConfigPictureDecode *pConfig,
+ IDirect3DSurface9 **ppDecoderRenderTargets,
+ UINT NumSurfaces,
+ IDirectXVideoDecoder **ppDecode);
+
+ END_INTERFACE
+} IDirectXVideoDecoderServiceVtbl;
+
+interface IDirectXVideoDecoderService {
+ CONST_VTBL IDirectXVideoDecoderServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoderService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoDecoderService_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoAccelerationService methods ***/
+#define IDirectXVideoDecoderService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle)
+/*** IDirectXVideoDecoderService methods ***/
+#define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,count,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,count,pGuids)
+#define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,guid,pCount,pFormats)
+#define IDirectXVideoDecoderService_GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs) (This)->lpVtbl->GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs)
+#define IDirectXVideoDecoderService_CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) (This)->lpVtbl->CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_QueryInterface(IDirectXVideoDecoderService* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoDecoderService_AddRef(IDirectXVideoDecoderService* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoDecoderService_Release(IDirectXVideoDecoderService* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoAccelerationService methods ***/
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_CreateSurface(IDirectXVideoDecoderService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) {
+ return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle);
+}
+/*** IDirectXVideoDecoderService methods ***/
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderDeviceGuids(IDirectXVideoDecoderService* This,UINT *count,GUID **pGuids) {
+ return This->lpVtbl->GetDecoderDeviceGuids(This,count,pGuids);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderRenderTargets(IDirectXVideoDecoderService* This,REFGUID guid,UINT *pCount,D3DFORMAT **pFormats) {
+ return This->lpVtbl->GetDecoderRenderTargets(This,guid,pCount,pFormats);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderConfigurations(IDirectXVideoDecoderService* This,REFGUID guid,const DXVA2_VideoDesc *pVideoDesc,void *pReserved,UINT *pCount,DXVA2_ConfigPictureDecode **ppConfigs) {
+ return This->lpVtbl->GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoderService_CreateVideoDecoder(IDirectXVideoDecoderService* This,REFGUID guid,const DXVA2_VideoDesc *pVideoDesc,const DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 **ppDecoderRenderTargets,UINT NumSurfaces,IDirectXVideoDecoder **ppDecode) {
+ return This->lpVtbl->CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoDecoderService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoDecoder interface
+ */
+#ifndef __IDirectXVideoDecoder_INTERFACE_DEFINED__
+#define __IDirectXVideoDecoder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f2b0810a-fd00-43c9-918c-df94e2d8ef7d")
+IDirectXVideoDecoder : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderService(
+ IDirectXVideoDecoderService **ppService) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
+ GUID *pDeviceGuid,
+ DXVA2_VideoDesc *pVideoDesc,
+ DXVA2_ConfigPictureDecode *pConfig,
+ IDirect3DSurface9 ***pDecoderRenderTargets,
+ UINT *pNumSurfaces) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+ UINT BufferType,
+ void **ppBuffer,
+ UINT *pBufferSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
+ UINT BufferType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginFrame(
+ IDirect3DSurface9 *pRenderTarget,
+ void *pvPVPData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndFrame(
+ HANDLE *pHandleComplete) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Execute(
+ const DXVA2_DecodeExecuteParams *pExecuteParams) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d)
+#endif
+#else
+typedef struct IDirectXVideoDecoderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoDecoder *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoDecoder *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoDecoder *This);
+
+ /*** IDirectXVideoDecoder methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetVideoDecoderService)(
+ IDirectXVideoDecoder *This,
+ IDirectXVideoDecoderService **ppService);
+
+ HRESULT (STDMETHODCALLTYPE *GetCreationParameters)(
+ IDirectXVideoDecoder *This,
+ GUID *pDeviceGuid,
+ DXVA2_VideoDesc *pVideoDesc,
+ DXVA2_ConfigPictureDecode *pConfig,
+ IDirect3DSurface9 ***pDecoderRenderTargets,
+ UINT *pNumSurfaces);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ IDirectXVideoDecoder *This,
+ UINT BufferType,
+ void **ppBuffer,
+ UINT *pBufferSize);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
+ IDirectXVideoDecoder *This,
+ UINT BufferType);
+
+ HRESULT (STDMETHODCALLTYPE *BeginFrame)(
+ IDirectXVideoDecoder *This,
+ IDirect3DSurface9 *pRenderTarget,
+ void *pvPVPData);
+
+ HRESULT (STDMETHODCALLTYPE *EndFrame)(
+ IDirectXVideoDecoder *This,
+ HANDLE *pHandleComplete);
+
+ HRESULT (STDMETHODCALLTYPE *Execute)(
+ IDirectXVideoDecoder *This,
+ const DXVA2_DecodeExecuteParams *pExecuteParams);
+
+ END_INTERFACE
+} IDirectXVideoDecoderVtbl;
+
+interface IDirectXVideoDecoder {
+ CONST_VTBL IDirectXVideoDecoderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoDecoder methods ***/
+#define IDirectXVideoDecoder_GetVideoDecoderService(This,ppService) (This)->lpVtbl->GetVideoDecoderService(This,ppService)
+#define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces)
+#define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize)
+#define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) (This)->lpVtbl->ReleaseBuffer(This,BufferType)
+#define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) (This)->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData)
+#define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) (This)->lpVtbl->EndFrame(This,pHandleComplete)
+#define IDirectXVideoDecoder_Execute(This,pExecuteParams) (This)->lpVtbl->Execute(This,pExecuteParams)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoDecoder_QueryInterface(IDirectXVideoDecoder* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoDecoder_AddRef(IDirectXVideoDecoder* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoDecoder_Release(IDirectXVideoDecoder* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoDecoder methods ***/
+static FORCEINLINE HRESULT IDirectXVideoDecoder_GetVideoDecoderService(IDirectXVideoDecoder* This,IDirectXVideoDecoderService **ppService) {
+ return This->lpVtbl->GetVideoDecoderService(This,ppService);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_GetCreationParameters(IDirectXVideoDecoder* This,GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 ***pDecoderRenderTargets,UINT *pNumSurfaces) {
+ return This->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_GetBuffer(IDirectXVideoDecoder* This,UINT BufferType,void **ppBuffer,UINT *pBufferSize) {
+ return This->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_ReleaseBuffer(IDirectXVideoDecoder* This,UINT BufferType) {
+ return This->lpVtbl->ReleaseBuffer(This,BufferType);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_BeginFrame(IDirectXVideoDecoder* This,IDirect3DSurface9 *pRenderTarget,void *pvPVPData) {
+ return This->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_EndFrame(IDirectXVideoDecoder* This,HANDLE *pHandleComplete) {
+ return This->lpVtbl->EndFrame(This,pHandleComplete);
+}
+static FORCEINLINE HRESULT IDirectXVideoDecoder_Execute(IDirectXVideoDecoder* This,const DXVA2_DecodeExecuteParams *pExecuteParams) {
+ return This->lpVtbl->Execute(This,pExecuteParams);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoDecoder_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoProcessorService interface
+ */
+#ifndef __IDirectXVideoProcessorService_INTERFACE_DEFINED__
+#define __IDirectXVideoProcessorService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoProcessorService, 0xfc51a552, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fc51a552-d5e7-11d9-af55-00054e43ff02")
+IDirectXVideoProcessorService : public IDirectXVideoAccelerationService
+{
+ virtual HRESULT STDMETHODCALLTYPE RegisterVideoProcessorSoftwareDevice(
+ void *pCallbacks) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceGuids(
+ const DXVA2_VideoDesc *pVideoDesc,
+ UINT *pCount,
+ GUID **pGuids) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRenderTargets(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ UINT *pCount,
+ D3DFORMAT **pFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorSubStreamFormats(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT *pCount,
+ D3DFORMAT **pFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ DXVA2_VideoProcessorCaps *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT ProcAmpCap,
+ DXVA2_ValueRange *pRange) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT renderTargetFormat,
+ UINT FilterSetting,
+ DXVA2_ValueRange *pRange) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT MaxNumSubStreams,
+ IDirectXVideoProcessor **ppVidProcess) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoProcessorService, 0xfc51a552, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02)
+#endif
+#else
+typedef struct IDirectXVideoProcessorServiceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoProcessorService *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoProcessorService *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoProcessorService *This);
+
+ /*** IDirectXVideoAccelerationService methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateSurface)(
+ IDirectXVideoProcessorService *This,
+ UINT width,
+ UINT height,
+ UINT backBuffers,
+ D3DFORMAT format,
+ D3DPOOL pool,
+ DWORD usage,
+ DWORD dxvaType,
+ IDirect3DSurface9 **ppSurface,
+ HANDLE *pSharedHandle);
+
+ /*** IDirectXVideoProcessorService methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterVideoProcessorSoftwareDevice)(
+ IDirectXVideoProcessorService *This,
+ void *pCallbacks);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceGuids)(
+ IDirectXVideoProcessorService *This,
+ const DXVA2_VideoDesc *pVideoDesc,
+ UINT *pCount,
+ GUID **pGuids);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorRenderTargets)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ UINT *pCount,
+ D3DFORMAT **pFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorSubStreamFormats)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT *pCount,
+ D3DFORMAT **pFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ DXVA2_VideoProcessorCaps *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT ProcAmpCap,
+ DXVA2_ValueRange *pRange);
+
+ HRESULT (STDMETHODCALLTYPE *GetFilterPropertyRange)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT renderTargetFormat,
+ UINT FilterSetting,
+ DXVA2_ValueRange *pRange);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
+ IDirectXVideoProcessorService *This,
+ REFGUID VideoProcDeviceGuid,
+ const DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT RenderTargetFormat,
+ UINT MaxNumSubStreams,
+ IDirectXVideoProcessor **ppVidProcess);
+
+ END_INTERFACE
+} IDirectXVideoProcessorServiceVtbl;
+
+interface IDirectXVideoProcessorService {
+ CONST_VTBL IDirectXVideoProcessorServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoProcessorService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoProcessorService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoProcessorService_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoAccelerationService methods ***/
+#define IDirectXVideoProcessorService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle)
+/*** IDirectXVideoProcessorService methods ***/
+#define IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(This,pCallbacks) (This)->lpVtbl->RegisterVideoProcessorSoftwareDevice(This,pCallbacks)
+#define IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids) (This)->lpVtbl->GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids)
+#define IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats) (This)->lpVtbl->GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats)
+#define IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats) (This)->lpVtbl->GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats)
+#define IDirectXVideoProcessorService_GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps)
+#define IDirectXVideoProcessorService_GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange) (This)->lpVtbl->GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange)
+#define IDirectXVideoProcessorService_GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange) (This)->lpVtbl->GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange)
+#define IDirectXVideoProcessorService_CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess) (This)->lpVtbl->CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_QueryInterface(IDirectXVideoProcessorService* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoProcessorService_AddRef(IDirectXVideoProcessorService* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoProcessorService_Release(IDirectXVideoProcessorService* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoAccelerationService methods ***/
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_CreateSurface(IDirectXVideoProcessorService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) {
+ return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle);
+}
+/*** IDirectXVideoProcessorService methods ***/
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(IDirectXVideoProcessorService* This,void *pCallbacks) {
+ return This->lpVtbl->RegisterVideoProcessorSoftwareDevice(This,pCallbacks);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(IDirectXVideoProcessorService* This,const DXVA2_VideoDesc *pVideoDesc,UINT *pCount,GUID **pGuids) {
+ return This->lpVtbl->GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,UINT *pCount,D3DFORMAT **pFormats) {
+ return This->lpVtbl->GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT *pCount,D3DFORMAT **pFormats) {
+ return This->lpVtbl->GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetVideoProcessorCaps(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,DXVA2_VideoProcessorCaps *pCaps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetProcAmpRange(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT ProcAmpCap,DXVA2_ValueRange *pRange) {
+ return This->lpVtbl->GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_GetFilterPropertyRange(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT renderTargetFormat,UINT FilterSetting,DXVA2_ValueRange *pRange) {
+ return This->lpVtbl->GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessorService_CreateVideoProcessor(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT MaxNumSubStreams,IDirectXVideoProcessor **ppVidProcess) {
+ return This->lpVtbl->CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoProcessorService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoProcessor interface
+ */
+#ifndef __IDirectXVideoProcessor_INTERFACE_DEFINED__
+#define __IDirectXVideoProcessor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoProcessor, 0x8c3a39f0, 0x916e, 0x4690, 0x80,0x4f, 0x4c,0x80,0x01,0x35,0x5d,0x25);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8c3a39f0-916e-4690-804f-4c8001355d25")
+IDirectXVideoProcessor : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorService(
+ IDirectXVideoProcessorService **ppService) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
+ GUID *pDeviceGuid,
+ DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT *pRenderTargetFormat,
+ UINT *pMaxNumSubStreams) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
+ DXVA2_VideoProcessorCaps *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange(
+ UINT ProcAmpCap,
+ DXVA2_ValueRange *pRange) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange(
+ UINT FilterSetting,
+ DXVA2_ValueRange *pRange) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessBlt(
+ IDirect3DSurface9 *pRenderTarget,
+ const DXVA2_VideoProcessBltParams *pBltParams,
+ const DXVA2_VideoSample *pSamples,
+ UINT NumSamples,
+ HANDLE *pHandleComplete) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoProcessor, 0x8c3a39f0, 0x916e, 0x4690, 0x80,0x4f, 0x4c,0x80,0x01,0x35,0x5d,0x25)
+#endif
+#else
+typedef struct IDirectXVideoProcessorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoProcessor *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoProcessor *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoProcessor *This);
+
+ /*** IDirectXVideoProcessor methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorService)(
+ IDirectXVideoProcessor *This,
+ IDirectXVideoProcessorService **ppService);
+
+ HRESULT (STDMETHODCALLTYPE *GetCreationParameters)(
+ IDirectXVideoProcessor *This,
+ GUID *pDeviceGuid,
+ DXVA2_VideoDesc *pVideoDesc,
+ D3DFORMAT *pRenderTargetFormat,
+ UINT *pMaxNumSubStreams);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ IDirectXVideoProcessor *This,
+ DXVA2_VideoProcessorCaps *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)(
+ IDirectXVideoProcessor *This,
+ UINT ProcAmpCap,
+ DXVA2_ValueRange *pRange);
+
+ HRESULT (STDMETHODCALLTYPE *GetFilterPropertyRange)(
+ IDirectXVideoProcessor *This,
+ UINT FilterSetting,
+ DXVA2_ValueRange *pRange);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessBlt)(
+ IDirectXVideoProcessor *This,
+ IDirect3DSurface9 *pRenderTarget,
+ const DXVA2_VideoProcessBltParams *pBltParams,
+ const DXVA2_VideoSample *pSamples,
+ UINT NumSamples,
+ HANDLE *pHandleComplete);
+
+ END_INTERFACE
+} IDirectXVideoProcessorVtbl;
+
+interface IDirectXVideoProcessor {
+ CONST_VTBL IDirectXVideoProcessorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoProcessor_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoProcessor methods ***/
+#define IDirectXVideoProcessor_GetVideoProcessorService(This,ppService) (This)->lpVtbl->GetVideoProcessorService(This,ppService)
+#define IDirectXVideoProcessor_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams)
+#define IDirectXVideoProcessor_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps)
+#define IDirectXVideoProcessor_GetProcAmpRange(This,ProcAmpCap,pRange) (This)->lpVtbl->GetProcAmpRange(This,ProcAmpCap,pRange)
+#define IDirectXVideoProcessor_GetFilterPropertyRange(This,FilterSetting,pRange) (This)->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange)
+#define IDirectXVideoProcessor_VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) (This)->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoProcessor_QueryInterface(IDirectXVideoProcessor* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoProcessor_AddRef(IDirectXVideoProcessor* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoProcessor_Release(IDirectXVideoProcessor* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoProcessor methods ***/
+static FORCEINLINE HRESULT IDirectXVideoProcessor_GetVideoProcessorService(IDirectXVideoProcessor* This,IDirectXVideoProcessorService **ppService) {
+ return This->lpVtbl->GetVideoProcessorService(This,ppService);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessor_GetCreationParameters(IDirectXVideoProcessor* This,GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,D3DFORMAT *pRenderTargetFormat,UINT *pMaxNumSubStreams) {
+ return This->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessor_GetVideoProcessorCaps(IDirectXVideoProcessor* This,DXVA2_VideoProcessorCaps *pCaps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,pCaps);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessor_GetProcAmpRange(IDirectXVideoProcessor* This,UINT ProcAmpCap,DXVA2_ValueRange *pRange) {
+ return This->lpVtbl->GetProcAmpRange(This,ProcAmpCap,pRange);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessor_GetFilterPropertyRange(IDirectXVideoProcessor* This,UINT FilterSetting,DXVA2_ValueRange *pRange) {
+ return This->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange);
+}
+static FORCEINLINE HRESULT IDirectXVideoProcessor_VideoProcessBlt(IDirectXVideoProcessor* This,IDirect3DSurface9 *pRenderTarget,const DXVA2_VideoProcessBltParams *pBltParams,const DXVA2_VideoSample *pSamples,UINT NumSamples,HANDLE *pHandleComplete) {
+ return This->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoProcessor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectXVideoMemoryConfiguration interface
+ */
+#ifndef __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__
+#define __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectXVideoMemoryConfiguration, 0xb7f916dd, 0xdb3b, 0x49c1, 0x84,0xd7, 0xe4,0x5e,0xf9,0x9e,0xc7,0x26);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b7f916dd-db3b-49c1-84d7-e45ef99ec726")
+IDirectXVideoMemoryConfiguration : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetAvailableSurfaceTypeByIndex(
+ DWORD wTypeIndex,
+ DXVA2_SurfaceType *pdwType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSurfaceType(
+ DXVA2_SurfaceType dwType) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectXVideoMemoryConfiguration, 0xb7f916dd, 0xdb3b, 0x49c1, 0x84,0xd7, 0xe4,0x5e,0xf9,0x9e,0xc7,0x26)
+#endif
+#else
+typedef struct IDirectXVideoMemoryConfigurationVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDirectXVideoMemoryConfiguration *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDirectXVideoMemoryConfiguration *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDirectXVideoMemoryConfiguration *This);
+
+ /*** IDirectXVideoMemoryConfiguration methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAvailableSurfaceTypeByIndex)(
+ IDirectXVideoMemoryConfiguration *This,
+ DWORD wTypeIndex,
+ DXVA2_SurfaceType *pdwType);
+
+ HRESULT (STDMETHODCALLTYPE *SetSurfaceType)(
+ IDirectXVideoMemoryConfiguration *This,
+ DXVA2_SurfaceType dwType);
+
+ END_INTERFACE
+} IDirectXVideoMemoryConfigurationVtbl;
+
+interface IDirectXVideoMemoryConfiguration {
+ CONST_VTBL IDirectXVideoMemoryConfigurationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectXVideoMemoryConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoMemoryConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoMemoryConfiguration_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectXVideoMemoryConfiguration methods ***/
+#define IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType) (This)->lpVtbl->GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType)
+#define IDirectXVideoMemoryConfiguration_SetSurfaceType(This,dwType) (This)->lpVtbl->SetSurfaceType(This,dwType)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectXVideoMemoryConfiguration_QueryInterface(IDirectXVideoMemoryConfiguration* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectXVideoMemoryConfiguration_AddRef(IDirectXVideoMemoryConfiguration* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectXVideoMemoryConfiguration_Release(IDirectXVideoMemoryConfiguration* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDirectXVideoMemoryConfiguration methods ***/
+static FORCEINLINE HRESULT IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(IDirectXVideoMemoryConfiguration* This,DWORD wTypeIndex,DXVA2_SurfaceType *pdwType) {
+ return This->lpVtbl->GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType);
+}
+static FORCEINLINE HRESULT IDirectXVideoMemoryConfiguration_SetSurfaceType(IDirectXVideoMemoryConfiguration* This,DXVA2_SurfaceType dwType) {
+ return This->lpVtbl->SetSurfaceType(This,dwType);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__ */
+
+HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager);
+HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService);
+#endif
+static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) {
+ DXVA2_Fixed32 f32;
+ f32.ll = 0 + (1 << 16);
+ return f32;
+}
+
+static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) {
+ DXVA2_Fixed32 f32;
+ f32.ll = 0;
+ return f32;
+}
+
+static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {
+ return (float)f32.Value + (float)f32.Fraction / (1 << 16);
+}
+
+static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {
+ DXVA2_Fixed32 f32;
+ f32.Value = ((ULONG) (f * (1 << 16))) >> 16;
+ f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
+ return f32;
+}
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxva2api_h__ */
diff --git a/dxvahd.h b/dxvahd.h
new file mode 100644
index 0000000..54cd2ad
--- /dev/null
+++ b/dxvahd.h
@@ -0,0 +1,750 @@
+/*** Autogenerated by WIDL 7.7 from include/dxvahd.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __dxvahd_h__
+#define __dxvahd_h__
+
+/* Forward declarations */
+
+#ifndef __IDXVAHD_Device_FWD_DEFINED__
+#define __IDXVAHD_Device_FWD_DEFINED__
+typedef interface IDXVAHD_Device IDXVAHD_Device;
+#ifdef __cplusplus
+interface IDXVAHD_Device;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
+#define __IDXVAHD_VideoProcessor_FWD_DEFINED__
+typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
+#ifdef __cplusplus
+interface IDXVAHD_VideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#if (_WIN32_WINNT >= 0x0601)
+#if 0
+#ifndef __IDirect3DSurface9_FWD_DEFINED__
+#define __IDirect3DSurface9_FWD_DEFINED__
+typedef interface IDirect3DSurface9 IDirect3DSurface9;
+#ifdef __cplusplus
+interface IDirect3DSurface9;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirect3DDevice9Ex_FWD_DEFINED__
+#define __IDirect3DDevice9Ex_FWD_DEFINED__
+typedef interface IDirect3DDevice9Ex IDirect3DDevice9Ex;
+#ifdef __cplusplus
+interface IDirect3DDevice9Ex;
+#endif /* __cplusplus */
+#endif
+
+typedef DWORD D3DFORMAT;
+typedef DWORD D3DPOOL;
+typedef struct __WIDL_dxvahd_generated_name_0000000C {
+ char dummy;
+} D3DCOLOR;
+#endif
+#ifndef CALLBACK
+#if defined(_ARM_)
+#define CALLBACK
+#else
+#define CALLBACK __stdcall
+#endif
+#endif
+#ifndef __IDXVAHD_Device_FWD_DEFINED__
+#define __IDXVAHD_Device_FWD_DEFINED__
+typedef interface IDXVAHD_Device IDXVAHD_Device;
+#ifdef __cplusplus
+interface IDXVAHD_Device;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
+#define __IDXVAHD_VideoProcessor_FWD_DEFINED__
+typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
+#ifdef __cplusplus
+interface IDXVAHD_VideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+typedef enum _DXVAHD_ALPHA_FILL_MODE {
+ DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0,
+ DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1,
+ DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2,
+ DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3
+} DXVAHD_ALPHA_FILL_MODE;
+typedef struct _DXVAHD_COLOR_YCbCrA {
+ FLOAT Y;
+ FLOAT Cb;
+ FLOAT Cr;
+ FLOAT A;
+} DXVAHD_COLOR_YCbCrA;
+typedef struct _DXVAHD_COLOR_RGBA {
+ FLOAT R;
+ FLOAT G;
+ FLOAT B;
+ FLOAT A;
+} DXVAHD_COLOR_RGBA;
+typedef union _DXVAHD_COLOR {
+ DXVAHD_COLOR_RGBA RGB;
+ DXVAHD_COLOR_YCbCrA YCbCr;
+} DXVAHD_COLOR;
+typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA {
+ WINBOOL YCbCr;
+ DXVAHD_COLOR BackgroundColor;
+} DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA;
+typedef enum _DXVAHD_BLT_STATE {
+ DXVAHD_BLT_STATE_TARGET_RECT = 0,
+ DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
+ DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
+ DXVAHD_BLT_STATE_ALPHA_FILL = 3,
+ DXVAHD_BLT_STATE_CONSTRICTION = 4,
+ DXVAHD_BLT_STATE_PRIVATE = 1000
+} DXVAHD_BLT_STATE;
+typedef enum _DXVAHD_DEVICE_CAPS {
+ DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1,
+ DXVAHD_DEVICE_CAPS_xvYCC = 0x2,
+ DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
+ DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8
+} DXVAHD_DEVICE_CAPS;
+typedef enum _DXVAHD_DEVICE_TYPE {
+ DXVAHD_DEVICE_TYPE_HARDWARE = 0,
+ DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
+ DXVAHD_DEVICE_TYPE_REFERENCE = 2,
+ DXVAHD_DEVICE_TYPE_OTHER = 3
+} DXVAHD_DEVICE_TYPE;
+typedef enum _DXVAHD_DEVICE_USAGE {
+ DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
+ DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
+ DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
+} DXVAHD_DEVICE_USAGE;
+typedef enum _DXVAHD_FEATURE_CAPS {
+ DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1,
+ DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2,
+ DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4,
+ DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8
+} DXVAHD_FEATURE_CAPS;
+typedef enum _DXVAHD_FILTER {
+ DXVAHD_FILTER_BRIGHTNESS = 0,
+ DXVAHD_FILTER_CONTRAST = 1,
+ DXVAHD_FILTER_HUE = 2,
+ DXVAHD_FILTER_SATURATION = 3,
+ DXVAHD_FILTER_NOISE_REDUCTION = 4,
+ DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
+ DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
+} DXVAHD_FILTER;
+typedef enum _DXVAHD_FILTER_CAPS {
+ DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1,
+ DXVAHD_FILTER_CAPS_CONTRAST = 0x2,
+ DXVAHD_FILTER_CAPS_HUE = 0x4,
+ DXVAHD_FILTER_CAPS_SATURATION = 0x8,
+ DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10,
+ DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
+ DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40
+} DXVAHD_FILTER_CAPS;
+typedef enum _DXVAHD_FRAME_FORMAT {
+ DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
+ DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
+ DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
+} DXVAHD_FRAME_FORMAT;
+typedef enum _DXVAHD_INPUT_FORMAT_CAPS {
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1,
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2,
+ DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
+ DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
+} DXVAHD_INPUT_FORMAT_CAPS;
+typedef enum _DXVAHD_ITELECINE_CAPS {
+ DXVAHD_ITELECINE_CAPS_32 = 0x1,
+ DXVAHD_ITELECINE_CAPS_22 = 0x2,
+ DXVAHD_ITELECINE_CAPS_2224 = 0x4,
+ DXVAHD_ITELECINE_CAPS_2332 = 0x8,
+ DXVAHD_ITELECINE_CAPS_32322 = 0x10,
+ DXVAHD_ITELECINE_CAPS_55 = 0x20,
+ DXVAHD_ITELECINE_CAPS_64 = 0x40,
+ DXVAHD_ITELECINE_CAPS_87 = 0x80,
+ DXVAHD_ITELECINE_CAPS_222222222223 = 0x100,
+ DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000
+} DXVAHD_ITELECINE_CAPS;
+typedef enum _DXVAHD_OUTPUT_RATE {
+ DXVAHD_OUTPUT_RATE_NORMAL = 0,
+ DXVAHD_OUTPUT_RATE_HALF = 1,
+ DXVAHD_OUTPUT_RATE_CUSTOM = 2
+} DXVAHD_OUTPUT_RATE;
+typedef enum _DXVAHD_PROCESSOR_CAPS {
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
+ DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
+ DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
+ DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
+} DXVAHD_PROCESSOR_CAPS;
+typedef enum _DXVAHD_STREAM_STATE {
+ DXVAHD_STREAM_STATE_D3DFORMAT = 0,
+ DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
+ DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
+ DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
+ DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
+ DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
+ DXVAHD_STREAM_STATE_ALPHA = 6,
+ DXVAHD_STREAM_STATE_PALETTE = 7,
+ DXVAHD_STREAM_STATE_LUMA_KEY = 8,
+ DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
+ DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
+ DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
+ DXVAHD_STREAM_STATE_FILTER_HUE = 102,
+ DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
+ DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
+ DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
+ DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
+ DXVAHD_STREAM_STATE_PRIVATE = 1000
+} DXVAHD_STREAM_STATE;
+typedef enum _DXVAHD_SURFACE_TYPE {
+ DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
+ DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
+ DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
+} DXVAHD_SURFACE_TYPE;
+typedef struct _DXVAHD_VPDEVCAPS {
+ DXVAHD_DEVICE_TYPE DeviceType;
+ UINT DeviceCaps;
+ UINT FeatureCaps;
+ UINT FilterCaps;
+ UINT InputFormatCaps;
+ D3DPOOL InputPool;
+ UINT OutputFormatCount;
+ UINT InputFormatCount;
+ UINT VideoProcessorCount;
+ UINT MaxInputStreams;
+ UINT MaxStreamStates;
+} DXVAHD_VPDEVCAPS;
+typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA {
+ DXVAHD_ALPHA_FILL_MODE Mode;
+ UINT StreamNumber;
+} DXVAHD_BLT_STATE_ALPHA_FILL_DATA;
+typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA {
+ WINBOOL Enable;
+ SIZE Size;
+} DXVAHD_BLT_STATE_CONSTRICTION_DATA;
+typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
+ UINT Usage : 1;
+ UINT RGB_Range : 1;
+ UINT YCbCr_Matrix : 1;
+ UINT YCbCr_xvYCC : 1;
+} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
+typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA {
+ GUID Guid;
+ UINT DataSize;
+ void *pData;
+} DXVAHD_BLT_STATE_PRIVATE_DATA;
+typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA {
+ WINBOOL Enable;
+ RECT TargetRect;
+} DXVAHD_BLT_STATE_TARGET_RECT_DATA;
+typedef struct _DXVAHD_RATIONAL {
+ UINT Numerator;
+ UINT Denominator;
+} DXVAHD_RATIONAL;
+typedef struct _DXVAHD_CONTENT_DESC {
+ DXVAHD_FRAME_FORMAT InputFrameFormat;
+ DXVAHD_RATIONAL InputFrameRate;
+ UINT InputWidth;
+ UINT InputHeight;
+ DXVAHD_RATIONAL OutputFrameRate;
+ UINT OutputWidth;
+ UINT OutputHeight;
+} DXVAHD_CONTENT_DESC;
+typedef struct _DXVAHD_CUSTOM_RATE_DATA {
+ DXVAHD_RATIONAL CustomRate;
+ UINT OutputFrames;
+ WINBOOL InputInterlaced;
+ UINT InputFramesOrFields;
+} DXVAHD_CUSTOM_RATE_DATA;
+typedef struct _DXVAHD_FILTER_RANGE_DATA {
+ INT Minimum;
+ INT Maximum;
+ INT Default;
+ FLOAT Multiplier;
+} DXVAHD_FILTER_RANGE_DATA;
+typedef struct _DXVAHD_STREAM_DATA {
+ WINBOOL Enable;
+ UINT OutputIndex;
+ UINT InputFrameOrField;
+ UINT PastFrames;
+ UINT FutureFrames;
+ IDirect3DSurface9 **ppPastSurfaces;
+ IDirect3DSurface9 *pInputSurface;
+ IDirect3DSurface9 **ppFutureSurfaces;
+} DXVAHD_STREAM_DATA;
+typedef struct _DXVAHD_VPCAPS {
+ GUID VPGuid;
+ UINT PastFrames;
+ UINT FutureFrames;
+ UINT ProcessorCaps;
+ UINT ITelecineCaps;
+ UINT CustomRateCount;
+} DXVAHD_VPCAPS;
+typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA {
+ WINBOOL Enable;
+ FLOAT Alpha;
+} DXVAHD_STREAM_STATE_ALPHA_DATA;
+typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA {
+ WINBOOL Enable;
+ DXVAHD_RATIONAL SourceAspectRatio;
+ DXVAHD_RATIONAL DestinationAspectRatio;
+} DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA;
+typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA {
+ D3DFORMAT Format;
+} DXVAHD_STREAM_STATE_D3DFORMAT_DATA;
+typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA {
+ WINBOOL Enable;
+ RECT DestinationRect;
+} DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA;
+typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA {
+ WINBOOL Enable;
+ INT Level;
+} DXVAHD_STREAM_STATE_FILTER_DATA;
+typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA {
+ DXVAHD_FRAME_FORMAT FrameFormat;
+} DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA;
+typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
+ UINT Type : 1;
+ UINT RGB_Range : 1;
+ UINT YCbCr_Matrix : 1;
+ UINT YCbCr_xvYCC : 1;
+} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
+typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
+ WINBOOL Enable;
+ FLOAT Lower;
+ FLOAT Upper;
+} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
+typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA {
+ WINBOOL RepeatFrame;
+ DXVAHD_OUTPUT_RATE OutputRate;
+ DXVAHD_RATIONAL CustomRate;
+} DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA;
+typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA {
+ WINBOOL Enable;
+ RECT SourceRect;
+} DXVAHD_STREAM_STATE_SOURCE_RECT_DATA;
+typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA {
+ WINBOOL Enable;
+ UINT ITelecineFlags;
+ UINT Frames;
+ UINT InputField;
+} DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA;
+typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA {
+ GUID Guid;
+ UINT DataSize;
+ void *pData;
+} DXVAHD_STREAM_STATE_PRIVATE_DATA;
+typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA {
+ UINT Count;
+ D3DCOLOR *pEntries;
+} DXVAHD_STREAM_STATE_PALETTE_DATA;
+typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);
+typedef HRESULT ( CALLBACK *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);
+
+typedef struct _DXVAHDSW_CALLBACKS {
+ PDXVAHDSW_CreateDevice CreateDevice;
+ PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;
+ PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;
+ PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;
+ PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;
+ PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;
+ PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;
+ PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;
+ PDXVAHDSW_DestroyDevice DestroyDevice;
+ PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;
+ PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;
+ PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;
+ PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;
+ PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;
+ PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;
+ PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;
+} DXVAHDSW_CALLBACKS;
+
+HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
+
+/*****************************************************************************
+ * IDXVAHD_Device interface
+ */
+#ifndef __IDXVAHD_Device_INTERFACE_DEFINED__
+#define __IDXVAHD_Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("95f12dfd-d77e-49be-815f-57d579634d6d")
+IDXVAHD_Device : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoSurface(
+ UINT Width,
+ UINT Height,
+ D3DFORMAT Format,
+ D3DPOOL Pool,
+ DWORD Usage,
+ DXVAHD_SURFACE_TYPE Type,
+ UINT NumSurfaces,
+ IDirect3DSurface9 **ppSurfaces,
+ HANDLE *pSharedHandle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceCaps(
+ DXVAHD_VPDEVCAPS *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorOutputFormats(
+ UINT Count,
+ D3DFORMAT *pFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorInputFormats(
+ UINT Count,
+ D3DFORMAT *pFormats) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
+ UINT Count,
+ DXVAHD_VPCAPS *pCaps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRates(
+ const GUID *pVPGuid,
+ UINT Count,
+ DXVAHD_CUSTOM_RATE_DATA *pRates) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
+ DXVAHD_FILTER Filter,
+ DXVAHD_FILTER_RANGE_DATA *pRange) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
+ const GUID *pVPGuid,
+ IDXVAHD_VideoProcessor **ppVideoProcessor) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d)
+#endif
+#else
+typedef struct IDXVAHD_DeviceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXVAHD_Device *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXVAHD_Device *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXVAHD_Device *This);
+
+ /*** IDXVAHD_Device methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateVideoSurface)(
+ IDXVAHD_Device *This,
+ UINT Width,
+ UINT Height,
+ D3DFORMAT Format,
+ D3DPOOL Pool,
+ DWORD Usage,
+ DXVAHD_SURFACE_TYPE Type,
+ UINT NumSurfaces,
+ IDirect3DSurface9 **ppSurfaces,
+ HANDLE *pSharedHandle);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceCaps)(
+ IDXVAHD_Device *This,
+ DXVAHD_VPDEVCAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorOutputFormats)(
+ IDXVAHD_Device *This,
+ UINT Count,
+ D3DFORMAT *pFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorInputFormats)(
+ IDXVAHD_Device *This,
+ UINT Count,
+ D3DFORMAT *pFormats);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ IDXVAHD_Device *This,
+ UINT Count,
+ DXVAHD_VPCAPS *pCaps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRates)(
+ IDXVAHD_Device *This,
+ const GUID *pVPGuid,
+ UINT Count,
+ DXVAHD_CUSTOM_RATE_DATA *pRates);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
+ IDXVAHD_Device *This,
+ DXVAHD_FILTER Filter,
+ DXVAHD_FILTER_RANGE_DATA *pRange);
+
+ HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
+ IDXVAHD_Device *This,
+ const GUID *pVPGuid,
+ IDXVAHD_VideoProcessor **ppVideoProcessor);
+
+ END_INTERFACE
+} IDXVAHD_DeviceVtbl;
+
+interface IDXVAHD_Device {
+ CONST_VTBL IDXVAHD_DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXVAHD_Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXVAHD_Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXVAHD_Device_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXVAHD_Device methods ***/
+#define IDXVAHD_Device_CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle) (This)->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle)
+#define IDXVAHD_Device_GetVideoProcessorDeviceCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps)
+#define IDXVAHD_Device_GetVideoProcessorOutputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats)
+#define IDXVAHD_Device_GetVideoProcessorInputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats)
+#define IDXVAHD_Device_GetVideoProcessorCaps(This,Count,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps)
+#define IDXVAHD_Device_GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates) (This)->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates)
+#define IDXVAHD_Device_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
+#define IDXVAHD_Device_CreateVideoProcessor(This,pVPGuid,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXVAHD_Device_QueryInterface(IDXVAHD_Device* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXVAHD_Device_AddRef(IDXVAHD_Device* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXVAHD_Device_Release(IDXVAHD_Device* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXVAHD_Device methods ***/
+static FORCEINLINE HRESULT IDXVAHD_Device_CreateVideoSurface(IDXVAHD_Device* This,UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle) {
+ return This->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorDeviceCaps(IDXVAHD_Device* This,DXVAHD_VPDEVCAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorOutputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
+ return This->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorInputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
+ return This->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorCaps(IDXVAHD_Device* This,UINT Count,DXVAHD_VPCAPS *pCaps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorCustomRates(IDXVAHD_Device* This,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates) {
+ return This->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_GetVideoProcessorFilterRange(IDXVAHD_Device* This,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange) {
+ return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
+}
+static FORCEINLINE HRESULT IDXVAHD_Device_CreateVideoProcessor(IDXVAHD_Device* This,const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor) {
+ return This->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXVAHD_Device_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXVAHD_VideoProcessor interface
+ */
+#ifndef __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
+#define __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("95f4edf4-6e03-4cd7-be1b-3075d665aa52")
+IDXVAHD_VideoProcessor : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetVideoProcessBltState(
+ DXVAHD_BLT_STATE State,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessBltState(
+ DXVAHD_BLT_STATE State,
+ UINT DataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVideoProcessStreamState(
+ UINT StreamNumber,
+ DXVAHD_STREAM_STATE State,
+ UINT DataSize,
+ const void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessStreamState(
+ UINT StreamNumber,
+ DXVAHD_STREAM_STATE State,
+ UINT DataSize,
+ void *pData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE VideoProcessBltHD(
+ IDirect3DSurface9 *pOutputSurface,
+ UINT OutputFrame,
+ UINT StreamCount,
+ const DXVAHD_STREAM_DATA *pStreams) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52)
+#endif
+#else
+typedef struct IDXVAHD_VideoProcessorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXVAHD_VideoProcessor *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXVAHD_VideoProcessor *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXVAHD_VideoProcessor *This);
+
+ /*** IDXVAHD_VideoProcessor methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetVideoProcessBltState)(
+ IDXVAHD_VideoProcessor *This,
+ DXVAHD_BLT_STATE State,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessBltState)(
+ IDXVAHD_VideoProcessor *This,
+ DXVAHD_BLT_STATE State,
+ UINT DataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *SetVideoProcessStreamState)(
+ IDXVAHD_VideoProcessor *This,
+ UINT StreamNumber,
+ DXVAHD_STREAM_STATE State,
+ UINT DataSize,
+ const void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessStreamState)(
+ IDXVAHD_VideoProcessor *This,
+ UINT StreamNumber,
+ DXVAHD_STREAM_STATE State,
+ UINT DataSize,
+ void *pData);
+
+ HRESULT (STDMETHODCALLTYPE *VideoProcessBltHD)(
+ IDXVAHD_VideoProcessor *This,
+ IDirect3DSurface9 *pOutputSurface,
+ UINT OutputFrame,
+ UINT StreamCount,
+ const DXVAHD_STREAM_DATA *pStreams);
+
+ END_INTERFACE
+} IDXVAHD_VideoProcessorVtbl;
+
+interface IDXVAHD_VideoProcessor {
+ CONST_VTBL IDXVAHD_VideoProcessorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXVAHD_VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXVAHD_VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXVAHD_VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXVAHD_VideoProcessor methods ***/
+#define IDXVAHD_VideoProcessor_SetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_GetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
+#define IDXVAHD_VideoProcessor_VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams) (This)->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_QueryInterface(IDXVAHD_VideoProcessor* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXVAHD_VideoProcessor_AddRef(IDXVAHD_VideoProcessor* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXVAHD_VideoProcessor_Release(IDXVAHD_VideoProcessor* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXVAHD_VideoProcessor methods ***/
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_SetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData);
+}
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_GetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,void *pData) {
+ return This->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData);
+}
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_SetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData) {
+ return This->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
+}
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_GetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData) {
+ return This->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
+}
+static FORCEINLINE HRESULT IDXVAHD_VideoProcessor_VideoProcessBltHD(IDXVAHD_VideoProcessor* This,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams) {
+ return This->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ */
+
+#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /*WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dxvahd_h__ */