]> git.cworth.org Git - apitrace/blobdiff - specs/d3d9types.py
Allow basic specification of polymorphic types.
[apitrace] / specs / d3d9types.py
index 73011ee36f5945aef4d2e691f1819ddce9e59b52..6dc250c81733dd0d0a1a0f4905402a44932e294d 100644 (file)
@@ -62,7 +62,7 @@ D3DVIEWPORT9 = Struct("D3DVIEWPORT9", [
     (Float, "MaxZ"),
 ])
 
-D3DCLIP = Flags(DWORD, [
+D3DCLIPPLANE = Flags(DWORD, [
     "D3DCLIPPLANE0",
     "D3DCLIPPLANE1",
     "D3DCLIPPLANE2",
@@ -246,124 +246,12 @@ D3DTS = Flags(DWORD, [
     "D3DTS_WORLD3",
 ])
 
-D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
-    "D3DRS_ZENABLE",
-    "D3DRS_FILLMODE",
-    "D3DRS_SHADEMODE",
-    "D3DRS_ZWRITEENABLE",
-    "D3DRS_ALPHATESTENABLE",
-    "D3DRS_LASTPIXEL",
-    "D3DRS_SRCBLEND",
-    "D3DRS_DESTBLEND",
-    "D3DRS_CULLMODE",
-    "D3DRS_ZFUNC",
-    "D3DRS_ALPHAREF",
-    "D3DRS_ALPHAFUNC",
-    "D3DRS_DITHERENABLE",
-    "D3DRS_ALPHABLENDENABLE",
-    "D3DRS_FOGENABLE",
-    "D3DRS_SPECULARENABLE",
-    "D3DRS_FOGCOLOR",
-    "D3DRS_FOGTABLEMODE",
-    "D3DRS_FOGSTART",
-    "D3DRS_FOGEND",
-    "D3DRS_FOGDENSITY",
-    "D3DRS_RANGEFOGENABLE",
-    "D3DRS_STENCILENABLE",
-    "D3DRS_STENCILFAIL",
-    "D3DRS_STENCILZFAIL",
-    "D3DRS_STENCILPASS",
-    "D3DRS_STENCILFUNC",
-    "D3DRS_STENCILREF",
-    "D3DRS_STENCILMASK",
-    "D3DRS_STENCILWRITEMASK",
-    "D3DRS_TEXTUREFACTOR",
-    "D3DRS_WRAP0",
-    "D3DRS_WRAP1",
-    "D3DRS_WRAP2",
-    "D3DRS_WRAP3",
-    "D3DRS_WRAP4",
-    "D3DRS_WRAP5",
-    "D3DRS_WRAP6",
-    "D3DRS_WRAP7",
-    "D3DRS_CLIPPING",
-    "D3DRS_LIGHTING",
-    "D3DRS_AMBIENT",
-    "D3DRS_FOGVERTEXMODE",
-    "D3DRS_COLORVERTEX",
-    "D3DRS_LOCALVIEWER",
-    "D3DRS_NORMALIZENORMALS",
-    "D3DRS_DIFFUSEMATERIALSOURCE",
-    "D3DRS_SPECULARMATERIALSOURCE",
-    "D3DRS_AMBIENTMATERIALSOURCE",
-    "D3DRS_EMISSIVEMATERIALSOURCE",
-    "D3DRS_VERTEXBLEND",
-    "D3DRS_CLIPPLANEENABLE",
-    "D3DRS_POINTSIZE",
-    "D3DRS_POINTSIZE_MIN",
-    "D3DRS_POINTSPRITEENABLE",
-    "D3DRS_POINTSCALEENABLE",
-    "D3DRS_POINTSCALE_A",
-    "D3DRS_POINTSCALE_B",
-    "D3DRS_POINTSCALE_C",
-    "D3DRS_MULTISAMPLEANTIALIAS",
-    "D3DRS_MULTISAMPLEMASK",
-    "D3DRS_PATCHEDGESTYLE",
-    "D3DRS_DEBUGMONITORTOKEN",
-    "D3DRS_POINTSIZE_MAX",
-    "D3DRS_INDEXEDVERTEXBLENDENABLE",
-    "D3DRS_COLORWRITEENABLE",
-    "D3DRS_TWEENFACTOR",
-    "D3DRS_BLENDOP",
-    "D3DRS_POSITIONDEGREE",
-    "D3DRS_NORMALDEGREE",
-    "D3DRS_SCISSORTESTENABLE",
-    "D3DRS_SLOPESCALEDEPTHBIAS",
-    "D3DRS_ANTIALIASEDLINEENABLE",
-    "D3DRS_MINTESSELLATIONLEVEL",
-    "D3DRS_MAXTESSELLATIONLEVEL",
-    "D3DRS_ADAPTIVETESS_X",
-    "D3DRS_ADAPTIVETESS_Y",
-    "D3DRS_ADAPTIVETESS_Z",
-    "D3DRS_ADAPTIVETESS_W",
-    "D3DRS_ENABLEADAPTIVETESSELLATION",
-    "D3DRS_TWOSIDEDSTENCILMODE",
-    "D3DRS_CCW_STENCILFAIL",
-    "D3DRS_CCW_STENCILZFAIL",
-    "D3DRS_CCW_STENCILPASS",
-    "D3DRS_CCW_STENCILFUNC",
-    "D3DRS_COLORWRITEENABLE1",
-    "D3DRS_COLORWRITEENABLE2",
-    "D3DRS_COLORWRITEENABLE3",
-    "D3DRS_BLENDFACTOR",
-    "D3DRS_SRGBWRITEENABLE",
-    "D3DRS_DEPTHBIAS",
-    "D3DRS_WRAP8",
-    "D3DRS_WRAP9",
-    "D3DRS_WRAP10",
-    "D3DRS_WRAP11",
-    "D3DRS_WRAP12",
-    "D3DRS_WRAP13",
-    "D3DRS_WRAP14",
-    "D3DRS_WRAP15",
-    "D3DRS_SEPARATEALPHABLENDENABLE",
-    "D3DRS_SRCBLENDALPHA",
-    "D3DRS_DESTBLENDALPHA",
-    "D3DRS_BLENDOPALPHA",
-])
-
 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
     "D3DMCS_MATERIAL",
     "D3DMCS_COLOR1",
     "D3DMCS_COLOR2",
 ])
 
-D3DWRAP = Flags(DWORD, [
-    "D3DWRAP_U",
-    "D3DWRAP_V",
-    "D3DWRAP_W",
-])
-
 D3DWRAPCOORD = Flags(DWORD, [
     "D3DWRAPCOORD_0",
     "D3DWRAPCOORD_1",
@@ -378,6 +266,147 @@ D3DCOLORWRITEENABLE = Flags(DWORD, [
     "D3DCOLORWRITEENABLE_ALPHA",
 ])
 
+D3DDEGREETYPE = Enum("D3DDEGREETYPE", [
+    "D3DDEGREE_LINEAR",
+    "D3DDEGREE_QUADRATIC",
+    "D3DDEGREE_CUBIC",
+    "D3DDEGREE_QUINTIC",
+])
+
+D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
+    "D3DPATCHEDGE_DISCRETE",
+    "D3DPATCHEDGE_CONTINUOUS",
+])
+
+D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
+    "D3DVBF_DISABLE",
+    "D3DVBF_1WEIGHTS",
+    "D3DVBF_2WEIGHTS",
+    "D3DVBF_3WEIGHTS",
+    "D3DVBF_TWEENING",
+    "D3DVBF_0WEIGHTS",
+])
+
+D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
+    "D3DDMT_ENABLE",
+    "D3DDMT_DISABLE",
+])
+
+# TODO: Convert these to/from actual floats
+FLOAT_AS_DWORD = DWORD
+
+D3DRENDERSTATEVALUE = Polymorphic(DWORD, "State", [
+    ("D3DRS_ZENABLE", D3DZBUFFERTYPE),
+    ("D3DRS_FILLMODE", D3DFILLMODE),
+    ("D3DRS_SHADEMODE", D3DSHADEMODE),
+    ("D3DRS_ZWRITEENABLE", BOOL),
+    ("D3DRS_ALPHATESTENABLE", BOOL),
+    ("D3DRS_LASTPIXEL", BOOL),
+    ("D3DRS_SRCBLEND", D3DBLEND),
+    ("D3DRS_DESTBLEND", D3DBLEND),
+    ("D3DRS_CULLMODE", D3DCULL),
+    ("D3DRS_ZFUNC", D3DCMPFUNC),
+    ("D3DRS_ALPHAREF", DWORD),
+    ("D3DRS_ALPHAFUNC", D3DCMPFUNC),
+    ("D3DRS_DITHERENABLE", BOOL),
+    ("D3DRS_ALPHABLENDENABLE", BOOL),
+    ("D3DRS_FOGENABLE", BOOL),
+    ("D3DRS_SPECULARENABLE", BOOL),
+    ("D3DRS_FOGCOLOR", D3DCOLOR),
+    ("D3DRS_FOGTABLEMODE", D3DFOGMODE),
+    ("D3DRS_FOGSTART", FLOAT_AS_DWORD),
+    ("D3DRS_FOGEND", FLOAT_AS_DWORD),
+    ("D3DRS_FOGDENSITY", FLOAT_AS_DWORD),
+    ("D3DRS_RANGEFOGENABLE", BOOL),
+    ("D3DRS_STENCILENABLE", BOOL),
+    ("D3DRS_STENCILFAIL", D3DSTENCILOP),
+    ("D3DRS_STENCILZFAIL", D3DSTENCILOP),
+    ("D3DRS_STENCILPASS", D3DSTENCILOP),
+    ("D3DRS_STENCILFUNC", D3DCMPFUNC),
+    ("D3DRS_STENCILREF", DWORD),
+    ("D3DRS_STENCILMASK", DWORD),
+    ("D3DRS_STENCILWRITEMASK", DWORD),
+    ("D3DRS_TEXTUREFACTOR", D3DCOLOR),
+    ("D3DRS_WRAP0", D3DWRAPCOORD),
+    ("D3DRS_WRAP1", D3DWRAPCOORD),
+    ("D3DRS_WRAP2", D3DWRAPCOORD),
+    ("D3DRS_WRAP3", D3DWRAPCOORD),
+    ("D3DRS_WRAP4", D3DWRAPCOORD),
+    ("D3DRS_WRAP5", D3DWRAPCOORD),
+    ("D3DRS_WRAP6", D3DWRAPCOORD),
+    ("D3DRS_WRAP7", D3DWRAPCOORD),
+    ("D3DRS_CLIPPING", BOOL),
+    ("D3DRS_LIGHTING", BOOL),
+    ("D3DRS_AMBIENT", D3DCOLOR),
+    ("D3DRS_FOGVERTEXMODE", D3DFOGMODE),
+    ("D3DRS_COLORVERTEX", BOOL),
+    ("D3DRS_LOCALVIEWER", BOOL),
+    ("D3DRS_NORMALIZENORMALS", BOOL),
+    ("D3DRS_DIFFUSEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
+    ("D3DRS_SPECULARMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
+    ("D3DRS_AMBIENTMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
+    ("D3DRS_EMISSIVEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
+    ("D3DRS_VERTEXBLEND", D3DVERTEXBLENDFLAGS),
+    ("D3DRS_CLIPPLANEENABLE", D3DCLIPPLANE),
+    ("D3DRS_POINTSIZE", FLOAT_AS_DWORD),
+    ("D3DRS_POINTSIZE_MIN", FLOAT_AS_DWORD),
+    ("D3DRS_POINTSPRITEENABLE", BOOL),
+    ("D3DRS_POINTSCALEENABLE", BOOL),
+    ("D3DRS_POINTSCALE_A", FLOAT_AS_DWORD),
+    ("D3DRS_POINTSCALE_B", FLOAT_AS_DWORD),
+    ("D3DRS_POINTSCALE_C", FLOAT_AS_DWORD),
+    ("D3DRS_MULTISAMPLEANTIALIAS", BOOL),
+    ("D3DRS_MULTISAMPLEMASK", DWORD),
+    ("D3DRS_PATCHEDGESTYLE", D3DPATCHEDGESTYLE),
+    ("D3DRS_DEBUGMONITORTOKEN", D3DDEBUGMONITORTOKENS),
+    ("D3DRS_POINTSIZE_MAX", FLOAT_AS_DWORD),
+    ("D3DRS_INDEXEDVERTEXBLENDENABLE", BOOL),
+    ("D3DRS_COLORWRITEENABLE", DWORD),
+    ("D3DRS_TWEENFACTOR", FLOAT_AS_DWORD),
+    ("D3DRS_BLENDOP", D3DBLENDOP),
+    ("D3DRS_POSITIONDEGREE", D3DDEGREETYPE),
+    ("D3DRS_NORMALDEGREE", D3DDEGREETYPE),
+    ("D3DRS_SCISSORTESTENABLE", BOOL),
+    ("D3DRS_SLOPESCALEDEPTHBIAS", FLOAT_AS_DWORD),
+    ("D3DRS_ANTIALIASEDLINEENABLE", BOOL),
+    ("D3DRS_MINTESSELLATIONLEVEL", FLOAT_AS_DWORD),
+    ("D3DRS_MAXTESSELLATIONLEVEL", FLOAT_AS_DWORD),
+    ("D3DRS_ADAPTIVETESS_X", FLOAT_AS_DWORD),
+    ("D3DRS_ADAPTIVETESS_Y", FLOAT_AS_DWORD),
+    ("D3DRS_ADAPTIVETESS_Z", FLOAT_AS_DWORD),
+    ("D3DRS_ADAPTIVETESS_W", FLOAT_AS_DWORD),
+    ("D3DRS_ENABLEADAPTIVETESSELLATION", BOOL),
+    ("D3DRS_TWOSIDEDSTENCILMODE", BOOL),
+    ("D3DRS_CCW_STENCILFAIL", D3DSTENCILOP),
+    ("D3DRS_CCW_STENCILZFAIL", D3DSTENCILOP),
+    ("D3DRS_CCW_STENCILPASS", D3DSTENCILOP),
+    ("D3DRS_CCW_STENCILFUNC", D3DCMPFUNC),
+    ("D3DRS_COLORWRITEENABLE1", D3DCOLORWRITEENABLE),
+    ("D3DRS_COLORWRITEENABLE2", D3DCOLORWRITEENABLE),
+    ("D3DRS_COLORWRITEENABLE3", D3DCOLORWRITEENABLE),
+    ("D3DRS_BLENDFACTOR", D3DCOLOR),
+    ("D3DRS_SRGBWRITEENABLE", BOOL),
+    ("D3DRS_DEPTHBIAS", FLOAT_AS_DWORD),
+    ("D3DRS_WRAP8", D3DWRAPCOORD),
+    ("D3DRS_WRAP9", D3DWRAPCOORD),
+    ("D3DRS_WRAP10", D3DWRAPCOORD),
+    ("D3DRS_WRAP11", D3DWRAPCOORD),
+    ("D3DRS_WRAP12", D3DWRAPCOORD),
+    ("D3DRS_WRAP13", D3DWRAPCOORD),
+    ("D3DRS_WRAP14", D3DWRAPCOORD),
+    ("D3DRS_WRAP15", D3DWRAPCOORD),
+    ("D3DRS_SEPARATEALPHABLENDENABLE", BOOL),
+    ("D3DRS_SRCBLENDALPHA", D3DBLEND),
+    ("D3DRS_DESTBLENDALPHA", D3DBLEND),
+    ("D3DRS_BLENDOPALPHA", D3DBLENDOP),
+
+    # XXX: D3DRENDERSTATE_WRAPBIAS + n
+])
+
+D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE",
+    [expr for expr, types in D3DRENDERSTATEVALUE.switch_types]
+)
+
 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
     "D3DTSS_COLOROP",
     "D3DTSS_COLORARG1",
@@ -800,33 +829,12 @@ D3DBASISTYPE = Enum("D3DBASISTYPE", [
     "D3DBASIS_CATMULL_ROM",
 ])
 
-D3DDEGREETYPE = Enum("D3DDEGREETYPE", [
-    "D3DDEGREE_LINEAR",
-    "D3DDEGREE_QUADRATIC",
-    "D3DDEGREE_CUBIC",
-    "D3DDEGREE_QUINTIC",
-])
-
-D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
-    "D3DPATCHEDGE_DISCRETE",
-    "D3DPATCHEDGE_CONTINUOUS",
-])
-
 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
     "D3DSBT_ALL",
     "D3DSBT_PIXELSTATE",
     "D3DSBT_VERTEXSTATE",
 ])
 
-D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
-    "D3DVBF_DISABLE",
-    "D3DVBF_1WEIGHTS",
-    "D3DVBF_2WEIGHTS",
-    "D3DVBF_3WEIGHTS",
-    "D3DVBF_TWEENING",
-    "D3DVBF_0WEIGHTS",
-])
-
 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
     "D3DTTFF_DISABLE",
     "D3DTTFF_COUNT1",
@@ -1159,11 +1167,6 @@ D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
     (UINT, "ScanLine"),
 ])
 
-D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
-    "D3DDMT_ENABLE",
-    "D3DDMT_DISABLE",
-])
-
 D3DQUERYTYPE = Enum("D3DQUERYTYPE", [
     "D3DQUERYTYPE_VCACHE",
     "D3DQUERYTYPE_RESOURCEMANAGER",