+D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
+ "D3DTTFF_DISABLE",
+ "D3DTTFF_COUNT1",
+ "D3DTTFF_COUNT2",
+ "D3DTTFF_COUNT3",
+ "D3DTTFF_COUNT4",
+ "D3DTTFF_PROJECTED",
+])
+
+
+D3DTEXTURESTAGESTATEVALUE = Polymorphic(DWORD, "Type", [
+ ("D3DTSS_COLOROP", D3DTEXTUREOP),
+ ("D3DTSS_COLORARG1", D3DTA),
+ ("D3DTSS_COLORARG2", D3DTA),
+ ("D3DTSS_ALPHAOP", D3DTEXTUREOP),
+ ("D3DTSS_ALPHAARG1", D3DTA),
+ ("D3DTSS_ALPHAARG2", D3DTA),
+ ("D3DTSS_BUMPENVMAT00", FLOAT_AS_DWORD),
+ ("D3DTSS_BUMPENVMAT01", FLOAT_AS_DWORD),
+ ("D3DTSS_BUMPENVMAT10", FLOAT_AS_DWORD),
+ ("D3DTSS_BUMPENVMAT11", FLOAT_AS_DWORD),
+ ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI,),
+ ("D3DTSS_BUMPENVLSCALE", FLOAT_AS_DWORD),
+ ("D3DTSS_BUMPENVLOFFSET", FLOAT_AS_DWORD),
+ ("D3DTSS_TEXTURETRANSFORMFLAGS", D3DTEXTURETRANSFORMFLAGS),
+ ("D3DTSS_COLORARG0", D3DTA,),
+ ("D3DTSS_ALPHAARG0", D3DTA,),
+ ("D3DTSS_RESULTARG", D3DTA,),
+ ("D3DTSS_CONSTANT", D3DCOLOR),
+])
+
+D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
+ expr for expr, types in D3DTEXTURESTAGESTATEVALUE.switch_types
+])
+