]> git.cworth.org Git - apitrace/blobdiff - d3d8types.py
Add support for GL_APPLE_flush_render
[apitrace] / d3d8types.py
index b49307f43172ccd538334408922aadbf646be500..6136d9888c15774525ce11d6650e2e5a63acc4d4 100644 (file)
@@ -1,52 +1,77 @@
+##########################################################################
+#
+# Copyright 2008-2009 VMware, Inc.
+# All Rights Reserved.
+#
+# 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.
+#
+##########################################################################/
+
 """d3d8types.h"""
 
-from windows import *
+from winapi import *
 
 D3DCOLOR = Alias("D3DCOLOR", DWORD)
 
-D3DVECTOR = Struct("D3DVECTOR", (
+D3DVECTOR = Struct("D3DVECTOR", [
     (Float, "x"),
     (Float, "y"),
     (Float, "z"),
-))
+])
 
-D3DCOLORVALUE = Struct("D3DCOLORVALUE", (
+D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
     (Float, "r"),
     (Float, "g"),
     (Float, "b"),
     (Float, "a"),
-))
+])
 
-D3DRECT = Struct("D3DRECT", (
+D3DRECT = Struct("D3DRECT", [
     (LONG, "x1"),
     (LONG, "y1"),
     (LONG, "x2"),
     (LONG, "y2"),
-))
+])
 
-D3DMATRIX = Struct("D3DMATRIX", (
-    (Float, "m[4][4]"),
-))
+D3DMATRIX = Struct("D3DMATRIX", [
+    (Array(Array(Float, "4"), "4"), "m"),
+])
 
-D3DVIEWPORT8 = Struct("D3DVIEWPORT8", (
+D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
     (DWORD, "X"),
     (DWORD, "Y"),
     (DWORD, "Width"),
     (DWORD, "Height"),
     (Float, "MinZ"),
     (Float, "MaxZ"),
-))
+])
 
-D3DCLIP = Flags(DWORD, (
+D3DCLIP = Flags(DWORD, [
     "D3DCLIPPLANE0",
     "D3DCLIPPLANE1",
     "D3DCLIPPLANE2",
     "D3DCLIPPLANE3",
     "D3DCLIPPLANE4",
     "D3DCLIPPLANE5",
-))
+])
 
-D3DCS = Flags(DWORD, (
+D3DCS = Flags(DWORD, [
     "D3DCS_ALL",
     "D3DCS_LEFT",
     "D3DCS_RIGHT",
@@ -60,29 +85,28 @@ D3DCS = Flags(DWORD, (
     "D3DCS_PLANE3",
     "D3DCS_PLANE4",
     "D3DCS_PLANE5",
-))
+])
 
-D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", (
+D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", [
     (DWORD, "ClipUnion"),
     (DWORD, "ClipIntersection"),
-))
+])
 
-D3DMATERIAL8 = Struct("D3DMATERIAL8", (
+D3DMATERIAL8 = Struct("D3DMATERIAL8", [
     (D3DCOLORVALUE, "Diffuse"),
     (D3DCOLORVALUE, "Ambient"),
     (D3DCOLORVALUE, "Specular"),
     (D3DCOLORVALUE, "Emissive"),
     (Float, "Power"),
-))
+])
 
-D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", (
+D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
     "D3DLIGHT_POINT",
     "D3DLIGHT_SPOT",
     "D3DLIGHT_DIRECTIONAL",
-    "D3DLIGHT_FORCE_DWORD",
-))
+])
 
-D3DLIGHT8 = Struct("D3DLIGHT8", (
+D3DLIGHT8 = Struct("D3DLIGHT8", [
     (D3DLIGHTTYPE, "Type"),
     (D3DCOLORVALUE, "Diffuse"),
     (D3DCOLORVALUE, "Specular"),
@@ -96,34 +120,32 @@ D3DLIGHT8 = Struct("D3DLIGHT8", (
     (Float, "Attenuation2"),
     (Float, "Theta"),
     (Float, "Phi"),
-))
+])
 
-D3DCS = Flags(DWORD, (
+D3DCLEAR = Flags(DWORD, [
     "D3DCLEAR_TARGET",
     "D3DCLEAR_ZBUFFER",
     "D3DCLEAR_STENCIL",
-))
+])
 
-D3DSHADEMODE = Enum("D3DSHADEMODE", (
+D3DSHADEMODE = Enum("D3DSHADEMODE", [
     "D3DSHADE_FLAT",
     "D3DSHADE_GOURAUD",
     "D3DSHADE_PHONG",
-    "D3DSHADE_FORCE_DWORD",
-))
+])
 
-D3DFILLMODE = Enum("D3DFILLMODE", (
+D3DFILLMODE = Enum("D3DFILLMODE", [
     "D3DFILL_POINT",
     "D3DFILL_WIREFRAME",
     "D3DFILL_SOLID",
-    "D3DFILL_FORCE_DWORD",
-))
+])
 
-D3DLINEPATTERN = Struct("D3DLINEPATTERN", (
+D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
     (WORD, "wRepeatFactor"),
     (WORD, "wLinePattern"),
-))
+])
 
-D3DBLEND = Enum("D3DBLEND", (
+D3DBLEND = Enum("D3DBLEND", [
     "D3DBLEND_ZERO",
     "D3DBLEND_ONE",
     "D3DBLEND_SRCCOLOR",
@@ -137,35 +159,31 @@ D3DBLEND = Enum("D3DBLEND", (
     "D3DBLEND_SRCALPHASAT",
     "D3DBLEND_BOTHSRCALPHA",
     "D3DBLEND_BOTHINVSRCALPHA",
-    "D3DBLEND_FORCE_DWORD",
-))
+])
 
-D3DBLENDOP = Enum("D3DBLENDOP", (
+D3DBLENDOP = Enum("D3DBLENDOP", [
     "D3DBLENDOP_ADD",
     "D3DBLENDOP_SUBTRACT",
     "D3DBLENDOP_REVSUBTRACT",
     "D3DBLENDOP_MIN",
     "D3DBLENDOP_MAX",
-    "D3DBLENDOP_FORCE_DWORD",
-))
+])
 
-D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", (
+D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
     "D3DTADDRESS_WRAP",
     "D3DTADDRESS_MIRROR",
     "D3DTADDRESS_CLAMP",
     "D3DTADDRESS_BORDER",
     "D3DTADDRESS_MIRRORONCE",
-    "D3DTADDRESS_FORCE_DWORD",
-))
+])
 
-D3DCULL = Enum("D3DCULL", (
+D3DCULL = Enum("D3DCULL", [
     "D3DCULL_NONE",
     "D3DCULL_CW",
     "D3DCULL_CCW",
-    "D3DCULL_FORCE_DWORD",
-))
+])
 
-D3DCMPFUNC = Enum("D3DCMPFUNC", (
+D3DCMPFUNC = Enum("D3DCMPFUNC", [
     "D3DCMP_NEVER",
     "D3DCMP_LESS",
     "D3DCMP_EQUAL",
@@ -174,10 +192,9 @@ D3DCMPFUNC = Enum("D3DCMPFUNC", (
     "D3DCMP_NOTEQUAL",
     "D3DCMP_GREATEREQUAL",
     "D3DCMP_ALWAYS",
-    "D3DCMP_FORCE_DWORD",
-))
+])
 
-D3DSTENCILOP = Enum("D3DSTENCILOP", (
+D3DSTENCILOP = Enum("D3DSTENCILOP", [
     "D3DSTENCILOP_KEEP",
     "D3DSTENCILOP_ZERO",
     "D3DSTENCILOP_REPLACE",
@@ -186,36 +203,31 @@ D3DSTENCILOP = Enum("D3DSTENCILOP", (
     "D3DSTENCILOP_INVERT",
     "D3DSTENCILOP_INCR",
     "D3DSTENCILOP_DECR",
-    "D3DSTENCILOP_FORCE_DWORD",
-))
+])
 
-D3DFOGMODE = Enum("D3DFOGMODE", (
+D3DFOGMODE = Enum("D3DFOGMODE", [
     "D3DFOG_NONE",
     "D3DFOG_EXP",
     "D3DFOG_EXP2",
     "D3DFOG_LINEAR",
-    "D3DFOG_FORCE_DWORD",
-))
+])
 
-D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", (
+D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
     "D3DZB_FALSE",
     "D3DZB_TRUE",
     "D3DZB_USEW",
-    "D3DZB_FORCE_DWORD",
-))
-
+])
 
-D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", (
+D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
     "D3DPT_POINTLIST",
     "D3DPT_LINELIST",
     "D3DPT_LINESTRIP",
     "D3DPT_TRIANGLELIST",
     "D3DPT_TRIANGLESTRIP",
     "D3DPT_TRIANGLEFAN",
-    "D3DPT_FORCE_DWORD",
-))
+])
 
-D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", (
+D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
     "D3DTS_VIEW",
     "D3DTS_PROJECTION",
     "D3DTS_TEXTURE0",
@@ -226,18 +238,16 @@ D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", (
     "D3DTS_TEXTURE5",
     "D3DTS_TEXTURE6",
     "D3DTS_TEXTURE7",
-    "D3DTS_FORCE_DWORD",
-))
+])
 
-D3DTS = Flags(DWORD, (
-    "D3DTS_WORLDMATRIX(index)",
+D3DTS = Flags(DWORD, [
     "D3DTS_WORLD",
     "D3DTS_WORLD1",
     "D3DTS_WORLD2",
     "D3DTS_WORLD3",
-))
+])
 
-D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", (
+D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
     "D3DRS_ZENABLE",
     "D3DRS_FILLMODE",
     "D3DRS_SHADEMODE",
@@ -314,38 +324,35 @@ D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", (
     "D3DRS_BLENDOP",
     "D3DRS_POSITIONORDER",
     "D3DRS_NORMALORDER",
-    "D3DRS_FORCE_DWORD",
-))
-
+])
 
-D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", (
+D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
     "D3DMCS_MATERIAL",
     "D3DMCS_COLOR1",
     "D3DMCS_COLOR2",
-    "D3DMCS_FORCE_DWORD",
-))
+])
 
-D3DWRAP = Flags(DWORD, (
+D3DWRAP = Flags(DWORD, [
     "D3DWRAP_U",
     "D3DWRAP_V",
     "D3DWRAP_W",
-))
+])
 
-D3DWRAPCOORD = Flags(DWORD, (
+D3DWRAPCOORD = Flags(DWORD, [
     "D3DWRAPCOORD_0",
     "D3DWRAPCOORD_1",
     "D3DWRAPCOORD_2",
     "D3DWRAPCOORD_3",
-))
+])
 
-D3DCOLORWRITEENABLE = Flags(DWORD, (
+D3DCOLORWRITEENABLE = Flags(DWORD, [
     "D3DCOLORWRITEENABLE_RED",
     "D3DCOLORWRITEENABLE_GREEN",
     "D3DCOLORWRITEENABLE_BLUE",
     "D3DCOLORWRITEENABLE_ALPHA",
-))
+])
 
-D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", (
+D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
     "D3DTSS_COLOROP",
     "D3DTSS_COLORARG1",
     "D3DTSS_COLORARG2",
@@ -373,17 +380,16 @@ D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", (
     "D3DTSS_COLORARG0",
     "D3DTSS_ALPHAARG0",
     "D3DTSS_RESULTARG",
-    "D3DTSS_FORCE_DWORD",
-))
+])
 
-D3DTSS = Flags(DWORD, (
+D3DTSS = Flags(DWORD, [
     "D3DTSS_TCI_PASSTHRU",
     "D3DTSS_TCI_CAMERASPACENORMAL",
     "D3DTSS_TCI_CAMERASPACEPOSITION",
     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
-))
+])
 
-D3DTEXTUREOP = Enum("D3DTEXTUREOP", (
+D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
     "D3DTOP_DISABLE",
     "D3DTOP_SELECTARG1",
     "D3DTOP_SELECTARG2",
@@ -410,10 +416,9 @@ D3DTEXTUREOP = Enum("D3DTEXTUREOP", (
     "D3DTOP_DOTPRODUCT3",
     "D3DTOP_MULTIPLYADD",
     "D3DTOP_LERP",
-    "D3DTOP_FORCE_DWORD",
-))
+])
 
-D3DTA = Flags(DWORD, (
+D3DTA = Flags(DWORD, [
     "D3DTA_SELECTMASK",
     "D3DTA_DIFFUSE",
     "D3DTA_CURRENT",
@@ -423,23 +428,22 @@ D3DTA = Flags(DWORD, (
     "D3DTA_TEMP",
     "D3DTA_COMPLEMENT",
     "D3DTA_ALPHAREPLICATE",
-))
+])
 
-D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", (
+D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
     "D3DTEXF_NONE",
     "D3DTEXF_POINT",
     "D3DTEXF_LINEAR",
     "D3DTEXF_ANISOTROPIC",
     "D3DTEXF_FLATCUBIC",
     "D3DTEXF_GAUSSIANCUBIC",
-    "D3DTEXF_FORCE_DWORD",
-))
+])
 
-D3DPV = Flags(DWORD, (
+D3DPV = Flags(DWORD, [
     "D3DPV_DONOTCOPYDATA",
-))
+])
 
-D3DFVF = Flags(DWORD, (
+D3DFVF = Flags(DWORD, [
     "D3DFVF_RESERVED0",
     "D3DFVF_POSITION_MASK",
     "D3DFVF_XYZ",
@@ -482,9 +486,9 @@ D3DFVF = Flags(DWORD, (
     "D3DFVF_TEXCOORDSIZE2(3)",
     "D3DFVF_TEXCOORDSIZE4(3)",
     "D3DFVF_TEXCOORDSIZE1(3)",
-))
+])
 
-D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", (
+D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
     "D3DVSD_TOKEN_NOP",
     "D3DVSD_TOKEN_STREAM",
     "D3DVSD_TOKEN_STREAMDATA",
@@ -492,10 +496,9 @@ D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", (
     "D3DVSD_TOKEN_CONSTMEM",
     "D3DVSD_TOKEN_EXT",
     "D3DVSD_TOKEN_END",
-    "D3DVSD_FORCE_DWORD",
-))
+])
 
-D3DVSDT = Flags(DWORD, (
+D3DVSDT = Flags(DWORD, [
     "D3DVSDT_FLOAT1",
     "D3DVSDT_FLOAT2",
     "D3DVSDT_FLOAT3",
@@ -523,9 +526,9 @@ D3DVSDT = Flags(DWORD, (
     "D3DVSDE_NORMAL2",
     "D3DDP_MAXTEXCOORD",
     "D3DSI_OPCODE_MASK",
-))
+])
 
-D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", (
+D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
     "D3DSIO_NOP",
     "D3DSIO_MOV",
     "D3DSIO_ADD",
@@ -580,49 +583,43 @@ D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", (
     "D3DSIO_PHASE",
     "D3DSIO_COMMENT",
     "D3DSIO_END",
-    "D3DSIO_FORCE_DWORD",
-))
+])
 
-D3DSP = Flags(DWORD, (
+D3DSP = Flags(DWORD, [
     "D3DSP_WRITEMASK_0",
     "D3DSP_WRITEMASK_1",
     "D3DSP_WRITEMASK_2",
     "D3DSP_WRITEMASK_3",
     "D3DSP_WRITEMASK_ALL",
-))
+])
 
-D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", (
+D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
     "D3DSPDM_NONE",
     "D3DSPDM_SATURATE",
-    "D3DSPDM_FORCE_DWORD",
-))
+])
 
-D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", (
+D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
     "D3DSPR_TEMP",
     "D3DSPR_INPUT",
     "D3DSPR_CONST",
-    "D3DSPR_ADDR",
-    "D3DSPR_TEXTURE",
+    "D3DSPR_ADDR|D3DSPR_TEXTURE",
     "D3DSPR_RASTOUT",
     "D3DSPR_ATTROUT",
     "D3DSPR_TEXCRDOUT",
-    "D3DSPR_FORCE_DWORD",
-))
+])
 
-D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", (
+D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
     "D3DSRO_POSITION",
     "D3DSRO_FOG",
     "D3DSRO_POINT_SIZE",
-    "D3DSRO_FORCE_DWORD",
-))
+])
 
-D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", (
+D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
     "D3DVS_ADDRMODE_ABSOLUTE",
     "D3DVS_ADDRMODE_RELATIVE",
-    "D3DVS_ADDRMODE_FORCE_DWORD",
-))
+])
 
-D3DVS = Flags(DWORD, (
+D3DVS = Flags(DWORD, [
     "D3DVS_X_X",
     "D3DVS_X_Y",
     "D3DVS_X_Z",
@@ -640,17 +637,17 @@ D3DVS = Flags(DWORD, (
     "D3DVS_W_Z",
     "D3DVS_W_W",
     "D3DVS_NOSWIZZLE",
-))
+])
 
-D3DSP = Flags(DWORD, (
+D3DSP = Flags(DWORD, [
     "D3DSP_NOSWIZZLE",
     "D3DSP_REPLICATERED",
     "D3DSP_REPLICATEGREEN",
     "D3DSP_REPLICATEBLUE",
     "D3DSP_REPLICATEALPHA",
-))
+])
 
-D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", (
+D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
     "D3DSPSM_NONE",
     "D3DSPSM_NEG",
     "D3DSPSM_BIAS",
@@ -662,65 +659,57 @@ D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", (
     "D3DSPSM_X2NEG",
     "D3DSPSM_DZ",
     "D3DSPSM_DW",
-    "D3DSPSM_FORCE_DWORD",
-))
+])
 
-D3DBASISTYPE = Enum("D3DBASISTYPE", (
+D3DBASISTYPE = Enum("D3DBASISTYPE", [
     "D3DBASIS_BEZIER",
     "D3DBASIS_BSPLINE",
     "D3DBASIS_INTERPOLATE",
-    "D3DBASIS_FORCE_DWORD",
-))
+])
 
-D3DORDERTYPE = Enum("D3DORDERTYPE", (
+D3DORDERTYPE = Enum("D3DORDERTYPE", [
     "D3DORDER_LINEAR",
     "D3DORDER_QUADRATIC",
     "D3DORDER_CUBIC",
     "D3DORDER_QUINTIC",
-    "D3DORDER_FORCE_DWORD",
-))
+])
 
-D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", (
+D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
     "D3DPATCHEDGE_DISCRETE",
     "D3DPATCHEDGE_CONTINUOUS",
-    "D3DPATCHEDGE_FORCE_DWORD",
-))
+])
 
-D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", (
+D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
     "D3DSBT_ALL",
     "D3DSBT_PIXELSTATE",
     "D3DSBT_VERTEXSTATE",
-    "D3DSBT_FORCE_DWORD",
-))
+])
 
-D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", (
+D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
     "D3DVBF_DISABLE",
     "D3DVBF_1WEIGHTS",
     "D3DVBF_2WEIGHTS",
     "D3DVBF_3WEIGHTS",
     "D3DVBF_TWEENING",
     "D3DVBF_0WEIGHTS",
-    "D3DVBF_FORCE_DWORD",
-))
+])
 
-D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", (
+D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
     "D3DTTFF_DISABLE",
     "D3DTTFF_COUNT1",
     "D3DTTFF_COUNT2",
     "D3DTTFF_COUNT3",
     "D3DTTFF_COUNT4",
     "D3DTTFF_PROJECTED",
-    "D3DTTFF_FORCE_DWORD",
-))
+])
 
-D3DDEVTYPE = Enum("D3DDEVTYPE", (
+D3DDEVTYPE = Enum("D3DDEVTYPE", [
     "D3DDEVTYPE_HAL",
     "D3DDEVTYPE_REF",
     "D3DDEVTYPE_SW",
-    "D3DDEVTYPE_FORCE_DWORD",
-))
+])
 
-D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", (
+D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
     "D3DMULTISAMPLE_NONE",
     "D3DMULTISAMPLE_2_SAMPLES",
     "D3DMULTISAMPLE_3_SAMPLES",
@@ -737,10 +726,9 @@ D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", (
     "D3DMULTISAMPLE_14_SAMPLES",
     "D3DMULTISAMPLE_15_SAMPLES",
     "D3DMULTISAMPLE_16_SAMPLES",
-    "D3DMULTISAMPLE_FORCE_DWORD",
-))
+])
 
-D3DFORMAT = Enum("D3DFORMAT", (
+D3DFORMAT = Enum("D3DFORMAT", [
     "D3DFMT_UNKNOWN",
     "D3DFMT_R8G8B8",
     "D3DFMT_A8R8G8B8",
@@ -784,45 +772,42 @@ D3DFORMAT = Enum("D3DFORMAT", (
     "D3DFMT_VERTEXDATA",
     "D3DFMT_INDEX16",
     "D3DFMT_INDEX32",
-    "D3DFMT_FORCE_DWORD",
-))
+])
 
-D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", (
+D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
     (UINT, "Width"),
     (UINT, "Height"),
     (UINT, "RefreshRate"),
     (D3DFORMAT, "Format"),
-))
+])
 
-D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", (
+D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
     (UINT, "AdapterOrdinal"),
     (D3DDEVTYPE, "DeviceType"),
     (HWND, "hFocusWindow"),
     (DWORD, "BehaviorFlags"),
-))
+])
 
-D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", (
+D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
     "D3DSWAPEFFECT_DISCARD",
     "D3DSWAPEFFECT_FLIP",
     "D3DSWAPEFFECT_COPY",
     "D3DSWAPEFFECT_COPY_VSYNC",
-    "D3DSWAPEFFECT_FORCE_DWORD",
-))
+])
 
-D3DPOOL = Enum("D3DPOOL", (
+D3DPOOL = Enum("D3DPOOL", [
     "D3DPOOL_DEFAULT",
     "D3DPOOL_MANAGED",
     "D3DPOOL_SYSTEMMEM",
     "D3DPOOL_SCRATCH",
-    "D3DPOOL_FORCE_DWORD",
-))
+])
 
-D3DPRESENT = Flags(DWORD, (
+D3DPRESENT = Flags(DWORD, [
     "D3DPRESENT_RATE_DEFAULT",
     "D3DPRESENT_RATE_UNLIMITED",
-))
+])
 
-D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", (
+D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
     (UINT, "BackBufferWidth"),
     (UINT, "BackBufferHeight"),
     (D3DFORMAT, "BackBufferFormat"),
@@ -836,28 +821,25 @@ D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", (
     (DWORD, "Flags"),
     (UINT, "FullScreen_RefreshRateInHz"),
     (UINT, "FullScreen_PresentationInterval"),
+])
 
-))
-
-D3DPRESENTFLAG = Flags(DWORD, (
+D3DPRESENTFLAG = Flags(DWORD, [
     "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
-))
+])
 
-D3DGAMMARAMP = Struct("D3DGAMMARAMP", (
-    (WORD, "red[256]"),
-    (WORD, "green[256]"),
-    (WORD, "blue[256]"),
-))
+D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
+    (Array(WORD, "256"), "red"),
+    (Array(WORD, "256"), "green"),
+    (Array(WORD, "256"), "blue"),
+])
 
-D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", (
+D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
     "D3DBACKBUFFER_TYPE_MONO",
     "D3DBACKBUFFER_TYPE_LEFT",
     "D3DBACKBUFFER_TYPE_RIGHT",
+])
 
-    "D3DBACKBUFFER_TYPE_FORCE_DWORD",
-))
-
-D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", (
+D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
     "D3DRTYPE_SURFACE",
     "D3DRTYPE_VOLUME",
     "D3DRTYPE_TEXTURE",
@@ -865,10 +847,9 @@ D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", (
     "D3DRTYPE_CUBETEXTURE",
     "D3DRTYPE_VERTEXBUFFER",
     "D3DRTYPE_INDEXBUFFER",
-    "D3DRTYPE_FORCE_DWORD",
-))
+])
 
-D3DUSAGE = Flags(DWORD, (
+D3DUSAGE = Flags(DWORD, [
     "D3DUSAGE_RENDERTARGET",
     "D3DUSAGE_DEPTHSTENCIL",
     "D3DUSAGE_WRITEONLY",
@@ -878,44 +859,43 @@ D3DUSAGE = Flags(DWORD, (
     "D3DUSAGE_RTPATCHES",
     "D3DUSAGE_NPATCHES",
     "D3DUSAGE_DYNAMIC",
-))
+])
 
-D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", (
+D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
     "D3DCUBEMAP_FACE_POSITIVE_X",
     "D3DCUBEMAP_FACE_NEGATIVE_X",
     "D3DCUBEMAP_FACE_POSITIVE_Y",
     "D3DCUBEMAP_FACE_NEGATIVE_Y",
     "D3DCUBEMAP_FACE_POSITIVE_Z",
     "D3DCUBEMAP_FACE_NEGATIVE_Z",
-    "D3DCUBEMAP_FACE_FORCE_DWORD",
-))
+])
 
-D3DLOCK = Flags(DWORD, (
+D3DLOCK = Flags(DWORD, [
     "D3DLOCK_READONLY",
     "D3DLOCK_DISCARD",
     "D3DLOCK_NOOVERWRITE",
     "D3DLOCK_NOSYSLOCK",
     "D3DLOCK_NO_DIRTY_UPDATE",
-))
+])
 
-D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", (
+D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
     (D3DFORMAT, "Format"),
     (D3DRESOURCETYPE, "Type"),
     (DWORD, "Usage"),
     (D3DPOOL, "Pool"),
     (UINT, "Size"),
     (DWORD, "FVF"),
-))
+])
 
-D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", (
+D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
     (D3DFORMAT, "Format"),
     (D3DRESOURCETYPE, "Type"),
     (DWORD, "Usage"),
     (D3DPOOL, "Pool"),
     (UINT, "Size"),
-))
+])
 
-D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", (
+D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
     (D3DFORMAT, "Format"),
     (D3DRESOURCETYPE, "Type"),
     (DWORD, "Usage"),
@@ -924,9 +904,9 @@ D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", (
     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
     (UINT, "Width"),
     (UINT, "Height"),
-))
+])
 
-D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", (
+D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
     (D3DFORMAT, "Format"),
     (D3DRESOURCETYPE, "Type"),
     (DWORD, "Usage"),
@@ -935,34 +915,34 @@ D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", (
     (UINT, "Width"),
     (UINT, "Height"),
     (UINT, "Depth"),
-))
+])
 
-D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", (
+D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
     (INT, "Pitch"),
     (PVOID, "pBits"),
-))
+])
 
-D3DBOX = Struct("D3DBOX", (
+D3DBOX = Struct("D3DBOX", [
     (UINT, "Left"),
     (UINT, "Top"),
     (UINT, "Right"),
     (UINT, "Bottom"),
     (UINT, "Front"),
     (UINT, "Back"),
-))
+])
 
-D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", (
+D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
     (INT, "RowPitch"),
     (INT, "SlicePitch"),
     (PVOID, "pBits"),
-))
+])
 
-D3DRANGE = Struct("D3DRANGE", (
+D3DRANGE = Struct("D3DRANGE", [
     (UINT, "Offset"),
     (UINT, "Size"),
-))
+])
 
-D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", (
+D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
     (UINT, "StartVertexOffsetWidth"),
     (UINT, "StartVertexOffsetHeight"),
     (UINT, "Width"),
@@ -970,18 +950,18 @@ D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", (
     (UINT, "Stride"),
     (D3DBASISTYPE, "Basis"),
     (D3DORDERTYPE, "Order"),
-))
+])
 
-D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", (
+D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
     (UINT, "StartVertexOffset"),
     (UINT, "NumVertices"),
     (D3DBASISTYPE, "Basis"),
     (D3DORDERTYPE, "Order"),
-))
+])
 
-D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", (
-    (String, "Driver"),
-    (String, "Description"),
+D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
+    (CString, "Driver"),
+    (CString, "Description"),
     (LARGE_INTEGER, "DriverVersion"),
     (DWORD, "VendorId"),
     (DWORD, "DeviceId"),
@@ -989,25 +969,24 @@ D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", (
     (DWORD, "Revision"),
     (GUID, "DeviceIdentifier"),
     (DWORD, "WHQLLevel"),
-))
+])
 
-D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", (
+D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
     (BOOL, "InVBlank"),
     (UINT, "ScanLine"),
-))
+])
 
-D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", (
+D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
     "D3DDMT_ENABLE",
     "D3DDMT_DISABLE",
-    "D3DDMT_FORCE_DWORD",
-))
+])
 
-D3DDEVINFOID = Flags(DWORD, (
+D3DDEVINFOID = Flags(DWORD, [
     "D3DDEVINFOID_RESOURCEMANAGER",
     "D3DDEVINFOID_VERTEXSTATS",
-))
+])
 
-D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", (
+D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
     (BOOL, "bThrashing"),
     (DWORD, "ApproxBytesDownloaded"),
     (DWORD, "NumEvicts"),
@@ -1019,14 +998,14 @@ D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", (
     (DWORD, "WorkingSetBytes"),
     (DWORD, "TotalManaged"),
     (DWORD, "TotalBytes"),
-))
+])
 
-D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", (
-    (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
-))
+D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
+    (Array(D3DRESOURCESTATS, "D3DRTYPECOUNT"), "stats"),
+])
 
-D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", (
+D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
     (DWORD, "NumRenderedTriangles"),
     (DWORD, "NumExtraClippingTriangles"),
-))
+])