+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
+
+D3DRENDERSTATETYPE, D3DRENDERSTATEVALUE = EnumPolymorphic("D3DRENDERSTATETYPE", "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
+], DWORD)
+
+D3DTSS_TCI = Flags(DWORD, [
+ #"D3DTSS_TCI_PASSTHRU", # 0