##########################################################################
#
+# Copyright 2011 Jose Fonseca
# Copyright 2008-2009 VMware, Inc.
# All Rights Reserved.
#
"D3DTS_TEXTURE5",
"D3DTS_TEXTURE6",
"D3DTS_TEXTURE7",
-])
-
-D3DTS = Flags(DWORD, [
"D3DTS_WORLD",
"D3DTS_WORLD1",
"D3DTS_WORLD2",
# TODO: Convert these to/from actual floats
FLOAT_AS_DWORD = DWORD
-D3DRENDERSTATEVALUE = Polymorphic(DWORD, "State", [
+D3DRENDERSTATETYPE, D3DRENDERSTATEVALUE = EnumPolymorphic("D3DRENDERSTATETYPE", "State", [
("D3DRS_ZENABLE", D3DZBUFFERTYPE),
("D3DRS_FILLMODE", D3DFILLMODE),
("D3DRS_SHADEMODE", D3DSHADEMODE),
("D3DRS_BLENDOPALPHA", D3DBLENDOP),
# XXX: D3DRENDERSTATE_WRAPBIAS + n
-])
-
-D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
- expr for expr, types in D3DRENDERSTATEVALUE.switch_types
-])
+], DWORD)
D3DTSS_TCI = Flags(DWORD, [
- #"D3DTSS_TCI_PASSTHRU", 0
+ #"D3DTSS_TCI_PASSTHRU", # 0
"D3DTSS_TCI_CAMERASPACENORMAL",
"D3DTSS_TCI_CAMERASPACEPOSITION",
"D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
"D3DTTFF_PROJECTED",
])
+D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
+ "D3DTEXF_NONE",
+ "D3DTEXF_POINT",
+ "D3DTEXF_LINEAR",
+ "D3DTEXF_ANISOTROPIC",
+ "D3DTEXF_PYRAMIDALQUAD",
+ "D3DTEXF_GAUSSIANQUAD",
+ "D3DTEXF_CONVOLUTIONMONO",
+])
-D3DTEXTURESTAGESTATEVALUE = Polymorphic(DWORD, "Type", [
+D3DTEXTURESTAGESTATETYPE, D3DTEXTURESTAGESTATEVALUE = EnumPolymorphic("D3DTEXTURESTAGESTATETYPE", "Type", [
("D3DTSS_COLOROP", D3DTEXTUREOP),
("D3DTSS_COLORARG1", D3DTA),
("D3DTSS_COLORARG2", D3DTA),
("D3DTSS_BUMPENVMAT01", FLOAT_AS_DWORD),
("D3DTSS_BUMPENVMAT10", FLOAT_AS_DWORD),
("D3DTSS_BUMPENVMAT11", FLOAT_AS_DWORD),
- ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI,),
+ ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI),
("D3DTSS_BUMPENVLSCALE", FLOAT_AS_DWORD),
("D3DTSS_BUMPENVLOFFSET", FLOAT_AS_DWORD),
("D3DTSS_TEXTURETRANSFORMFLAGS", D3DTEXTURETRANSFORMFLAGS),
("D3DTSS_ALPHAARG0", D3DTA,),
("D3DTSS_RESULTARG", D3DTA,),
("D3DTSS_CONSTANT", D3DCOLOR),
-])
-
-D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
- expr for expr, types in D3DTEXTURESTAGESTATEVALUE.switch_types
-])
+], DWORD)
-D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
- "D3DTEXF_NONE",
- "D3DTEXF_POINT",
- "D3DTEXF_LINEAR",
- "D3DTEXF_ANISOTROPIC",
- "D3DTEXF_PYRAMIDALQUAD",
- "D3DTEXF_GAUSSIANQUAD",
- "D3DTEXF_CONVOLUTIONMONO",
-])
-
-D3DSAMPLERSTATEVALUE = Polymorphic(DWORD, "Type", [
+D3DSAMPLERSTATETYPE, D3DSAMPLERSTATEVALUE = EnumPolymorphic("D3DSAMPLERSTATETYPE", "Type", [
("D3DSAMP_ADDRESSU", D3DTEXTUREADDRESS),
("D3DSAMP_ADDRESSV", D3DTEXTUREADDRESS),
("D3DSAMP_ADDRESSW", D3DTEXTUREADDRESS),
("D3DSAMP_SRGBTEXTURE", BOOL),
("D3DSAMP_ELEMENTINDEX", DWORD),
("D3DSAMP_DMAPOFFSET", DWORD),
-])
-
-D3DSAMPLERSTATETYPE = Enum("D3DSAMPLERSTATETYPE", [
- expr for expr, types in D3DSAMPLERSTATEVALUE.switch_types
-])
+], DWORD)
D3DPV = Flags(DWORD, [
"D3DPV_DONOTCOPYDATA",
#"D3DFVF_TEXCOORDSIZE4(3)",
])
-D3DDECLUSAGE = Enum("D3DDECLUSAGE", [
+D3DDECLUSAGE = FakeEnum(BYTE, [
"D3DDECLUSAGE_POSITION",
"D3DDECLUSAGE_BLENDWEIGHT",
"D3DDECLUSAGE_BLENDINDICES",
"D3DDECLUSAGE_SAMPLE",
])
-D3DDECLMETHOD = Enum("D3DDECLMETHOD", [
+D3DDECLMETHOD = FakeEnum(BYTE, [
"D3DDECLMETHOD_DEFAULT",
"D3DDECLMETHOD_PARTIALU",
"D3DDECLMETHOD_PARTIALV",
"D3DDECLMETHOD_LOOKUPPRESAMPLED",
])
-D3DDECLTYPE = Enum("D3DDECLTYPE", [
+D3DDECLTYPE = FakeEnum(BYTE, [
"D3DDECLTYPE_FLOAT1",
"D3DDECLTYPE_FLOAT2",
"D3DDECLTYPE_FLOAT3",
D3DVERTEXELEMENT9 = Struct("D3DVERTEXELEMENT9", [
(WORD, "Stream"),
(WORD, "Offset"),
- (BYTE, "Type"),
- (BYTE, "Method"),
- (BYTE, "Usage"),
+ (D3DDECLTYPE, "Type"), # BYTE
+ (D3DDECLMETHOD, "Method"), # BYTE
+ (D3DDECLUSAGE, "Usage"), # BYTE
(BYTE, "UsageIndex"),
])
-D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
- "D3DSIO_NOP",
- "D3DSIO_MOV",
- "D3DSIO_ADD",
- "D3DSIO_SUB",
- "D3DSIO_MAD",
- "D3DSIO_MUL",
- "D3DSIO_RCP",
- "D3DSIO_RSQ",
- "D3DSIO_DP3",
- "D3DSIO_DP4",
- "D3DSIO_MIN",
- "D3DSIO_MAX",
- "D3DSIO_SLT",
- "D3DSIO_SGE",
- "D3DSIO_EXP",
- "D3DSIO_LOG",
- "D3DSIO_LIT",
- "D3DSIO_DST",
- "D3DSIO_LRP",
- "D3DSIO_FRC",
- "D3DSIO_M4x4",
- "D3DSIO_M4x3",
- "D3DSIO_M3x4",
- "D3DSIO_M3x3",
- "D3DSIO_M3x2",
- "D3DSIO_CALL",
- "D3DSIO_CALLNZ",
- "D3DSIO_LOOP",
- "D3DSIO_RET",
- "D3DSIO_ENDLOOP",
- "D3DSIO_LABEL",
- "D3DSIO_DCL",
- "D3DSIO_POW",
- "D3DSIO_CRS",
- "D3DSIO_SGN",
- "D3DSIO_ABS",
- "D3DSIO_NRM",
- "D3DSIO_SINCOS",
- "D3DSIO_REP",
- "D3DSIO_ENDREP",
- "D3DSIO_IF",
- "D3DSIO_IFC",
- "D3DSIO_ELSE",
- "D3DSIO_ENDIF",
- "D3DSIO_BREAK",
- "D3DSIO_BREAKC",
- "D3DSIO_MOVA",
- "D3DSIO_DEFB",
- "D3DSIO_DEFI",
- "D3DSIO_TEXCOORD",
- "D3DSIO_TEXKILL",
- "D3DSIO_TEX",
- "D3DSIO_TEXBEM",
- "D3DSIO_TEXBEML",
- "D3DSIO_TEXREG2AR",
- "D3DSIO_TEXREG2GB",
- "D3DSIO_TEXM3x2PAD",
- "D3DSIO_TEXM3x2TEX",
- "D3DSIO_TEXM3x3PAD",
- "D3DSIO_TEXM3x3TEX",
- "D3DSIO_RESERVED0",
- "D3DSIO_TEXM3x3SPEC",
- "D3DSIO_TEXM3x3VSPEC",
- "D3DSIO_EXPP",
- "D3DSIO_LOGP",
- "D3DSIO_CND",
- "D3DSIO_DEF",
- "D3DSIO_TEXREG2RGB",
- "D3DSIO_TEXDP3TEX",
- "D3DSIO_TEXM3x2DEPTH",
- "D3DSIO_TEXDP3",
- "D3DSIO_TEXM3x3",
- "D3DSIO_TEXDEPTH",
- "D3DSIO_CMP",
- "D3DSIO_BEM",
- "D3DSIO_DP2ADD",
- "D3DSIO_DSX",
- "D3DSIO_DSY",
- "D3DSIO_TEXLDD",
- "D3DSIO_SETP",
- "D3DSIO_TEXLDL",
- "D3DSIO_BREAKP",
- "D3DSIO_PHASE",
- "D3DSIO_COMMENT",
- "D3DSIO_END",
-])
-
-D3DSHADER_COMPARISON = Enum("D3DSHADER_COMPARISON", [
- "D3DSPC_RESERVED0",
- "D3DSPC_GT",
- "D3DSPC_EQ",
- "D3DSPC_GE",
- "D3DSPC_LT",
- "D3DSPC_NE",
- "D3DSPC_LE",
- "D3DSPC_RESERVED1",
-])
-
-D3DSAMPLER_TEXTURE_TYPE = Enum("D3DSAMPLER_TEXTURE_TYPE", [
- "D3DSTT_UNKNOWN",
- "D3DSTT_2D",
- "D3DSTT_CUBE",
- "D3DSTT_VOLUME",
-])
-
-D3DSP = Flags(DWORD, [
- "D3DSP_WRITEMASK_0",
- "D3DSP_WRITEMASK_1",
- "D3DSP_WRITEMASK_2",
- "D3DSP_WRITEMASK_3",
- "D3DSP_WRITEMASK_ALL",
-])
-
-D3DSHADER_PARAM_DSTMOD_TYPE = Flags(DWORD, [
- "D3DSPDM_NONE",
- "D3DSPDM_SATURATE",
- "D3DSPDM_PARTIALPRECISION",
- "D3DSPDM_MSAMPCENTROID",
-])
-
-D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
- "D3DSPR_TEMP",
- "D3DSPR_INPUT",
- "D3DSPR_CONST",
- "D3DSPR_ADDR|D3DSPR_TEXTURE",
- "D3DSPR_RASTOUT",
- "D3DSPR_ATTROUT",
- "D3DSPR_TEXCRDOUT|D3DSPR_OUTPUT",
- "D3DSPR_CONSTINT",
- "D3DSPR_COLOROUT",
- "D3DSPR_DEPTHOUT",
- "D3DSPR_SAMPLER",
- "D3DSPR_CONST2",
- "D3DSPR_CONST3",
- "D3DSPR_CONST4",
- "D3DSPR_CONSTBOOL",
- "D3DSPR_LOOP",
- "D3DSPR_TEMPFLOAT16",
- "D3DSPR_MISCTYPE",
- "D3DSPR_LABEL",
- "D3DSPR_PREDICATE",
-])
-
-D3DSHADER_MISCTYPE_OFFSETS = Enum("D3DSHADER_MISCTYPE_OFFSETS", [
- "D3DSMO_POSITION",
- "D3DSMO_FACE",
-])
-
-D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
- "D3DSRO_POSITION",
- "D3DSRO_FOG",
- "D3DSRO_POINT_SIZE",
-])
-
-D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
- "D3DVS_ADDRMODE_ABSOLUTE",
- "D3DVS_ADDRMODE_RELATIVE",
-])
-
-D3DSHADER_ADDRESSMODE_TYPE = Enum("D3DSHADER_ADDRESSMODE_TYPE", [
- "D3DSHADER_ADDRMODE_ABSOLUTE",
- "D3DSHADER_ADDRMODE_RELATIVE",
-])
-
-D3DVS = Flags(DWORD, [
- "D3DVS_X_X",
- "D3DVS_X_Y",
- "D3DVS_X_Z",
- "D3DVS_X_W",
- "D3DVS_Y_X",
- "D3DVS_Y_Y",
- "D3DVS_Y_Z",
- "D3DVS_Y_W",
- "D3DVS_Z_X",
- "D3DVS_Z_Y",
- "D3DVS_Z_Z",
- "D3DVS_Z_W",
- "D3DVS_W_X",
- "D3DVS_W_Y",
- "D3DVS_W_Z",
- "D3DVS_W_W",
- "D3DVS_NOSWIZZLE",
-])
-
-D3DSP = Flags(DWORD, [
- "D3DSP_NOSWIZZLE",
- "D3DSP_REPLICATERED",
- "D3DSP_REPLICATEGREEN",
- "D3DSP_REPLICATEBLUE",
- "D3DSP_REPLICATEALPHA",
-])
-
-D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
- "D3DSPSM_NONE",
- "D3DSPSM_NEG",
- "D3DSPSM_BIAS",
- "D3DSPSM_BIASNEG",
- "D3DSPSM_SIGN",
- "D3DSPSM_SIGNNEG",
- "D3DSPSM_COMP",
- "D3DSPSM_X2",
- "D3DSPSM_X2NEG",
- "D3DSPSM_DZ",
- "D3DSPSM_DW",
- "D3DSPSM_ABS",
- "D3DSPSM_ABSNEG",
- "D3DSPSM_NOT",
-])
-
D3DBASISTYPE = Enum("D3DBASISTYPE", [
"D3DBASIS_BEZIER",
"D3DBASIS_BSPLINE",
"D3DFMT_A32B32G32R32F",
"D3DFMT_CxV8U8",
"D3DFMT_A1",
+ "D3DFMT_A2B10G10R10_XR_BIAS",
"D3DFMT_BINARYBUFFER",
# Unofficial formats
- "D3DFMT_ATI1",
- "D3DFMT_ATI2",
+ "D3DFMT_ATI1N",
+ "D3DFMT_ATI2N",
"D3DFMT_AYUV",
"D3DFMT_DF16",
"D3DFMT_DF24",
"D3DFMT_INTZ",
"D3DFMT_NULL",
"D3DFMT_NV12",
+ "D3DFMT_YV12",
"D3DFMT_RAWZ",
])
(D3DFORMAT, "Format"),
])
+D3DCREATE = Flags(DWORD, [
+ "D3DCREATE_FPU_PRESERVE",
+ "D3DCREATE_MULTITHREADED",
+ "D3DCREATE_PUREDEVICE",
+ "D3DCREATE_SOFTWARE_VERTEXPROCESSING",
+ "D3DCREATE_HARDWARE_VERTEXPROCESSING",
+ "D3DCREATE_MIXED_VERTEXPROCESSING",
+ "D3DCREATE_DISABLE_DRIVER_MANAGEMENT",
+ "D3DCREATE_ADAPTERGROUP_DEVICE",
+ "D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX",
+ "D3DCREATE_NOWINDOWCHANGES",
+ "D3DCREATE_DISABLE_PSGP_THREADING",
+ "D3DCREATE_ENABLE_PRESENTSTATS",
+ "D3DCREATE_DISABLE_PRINTSCREEN",
+ "D3DCREATE_SCREENSAVER",
+])
+
D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
(UINT, "AdapterOrdinal"),
(D3DDEVTYPE, "DeviceType"),
(HWND, "hFocusWindow"),
- (DWORD, "BehaviorFlags"),
+ (D3DCREATE, "BehaviorFlags"),
])
D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
"D3DPRESENT_RATE_DEFAULT",
])
+D3DPRESENTFLAG = Flags(DWORD, [
+ "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
+ "D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL",
+ "D3DPRESENTFLAG_DEVICECLIP",
+ "D3DPRESENTFLAG_VIDEO",
+ "D3DPRESENTFLAG_NOAUTOROTATE",
+ "D3DPRESENTFLAG_UNPRUNEDMODE",
+])
+
+D3DPRESENT_INTERVAL = Flags(DWORD, [
+ "D3DPRESENT_INTERVAL_DEFAULT", # 0
+ "D3DPRESENT_INTERVAL_ONE",
+ "D3DPRESENT_INTERVAL_TWO",
+ "D3DPRESENT_INTERVAL_THREE",
+ "D3DPRESENT_INTERVAL_FOUR",
+ "D3DPRESENT_INTERVAL_IMMEDIATE",
+])
+
D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
(UINT, "BackBufferWidth"),
(UINT, "BackBufferHeight"),
(BOOL, "Windowed"),
(BOOL, "EnableAutoDepthStencil"),
(D3DFORMAT, "AutoDepthStencilFormat"),
- (DWORD, "Flags"),
+ (D3DPRESENTFLAG, "Flags"),
(UINT, "FullScreen_RefreshRateInHz"),
- (UINT, "PresentationInterval"),
-])
-
-D3DPRESENTFLAG = Flags(DWORD, [
- "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
- "D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL",
- "D3DPRESENTFLAG_DEVICECLIP",
- "D3DPRESENTFLAG_VIDEO",
- "D3DPRESENTFLAG_NOAUTOROTATE",
- "D3DPRESENTFLAG_UNPRUNEDMODE",
+ (D3DPRESENT_INTERVAL, "PresentationInterval"),
])
D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
D3DUSAGE = Flags(DWORD, [
"D3DUSAGE_RENDERTARGET",
"D3DUSAGE_DEPTHSTENCIL",
+ "D3DUSAGE_WRITEONLY",
+ "D3DUSAGE_SOFTWAREPROCESSING",
+ "D3DUSAGE_DONOTCLIP",
+ "D3DUSAGE_POINTS",
+ "D3DUSAGE_RTPATCHES",
+ "D3DUSAGE_NPATCHES",
"D3DUSAGE_DYNAMIC",
- "D3DUSAGE_NONSECURE",
"D3DUSAGE_AUTOGENMIPMAP",
+ "D3DUSAGE_RESTRICTED_CONTENT",
+ "D3DUSAGE_RESTRICT_SHARED_RESOURCE",
+ "D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER",
"D3DUSAGE_DMAP",
"D3DUSAGE_QUERY_LEGACYBUMPMAP",
"D3DUSAGE_QUERY_SRGBREAD",
"D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING",
"D3DUSAGE_QUERY_VERTEXTEXTURE",
"D3DUSAGE_QUERY_WRAPANDMIP",
- "D3DUSAGE_WRITEONLY",
- "D3DUSAGE_SOFTWAREPROCESSING",
- "D3DUSAGE_DONOTCLIP",
- "D3DUSAGE_POINTS",
- "D3DUSAGE_RTPATCHES",
- "D3DUSAGE_NPATCHES",
+ "D3DUSAGE_NONSECURE",
"D3DUSAGE_TEXTAPI",
])
D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
(D3DFORMAT, "Format"),
(D3DRESOURCETYPE, "Type"),
- (DWORD, "Usage"),
+ (D3DUSAGE, "Usage"),
(D3DPOOL, "Pool"),
(UINT, "Size"),
(DWORD, "FVF"),
D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
(D3DFORMAT, "Format"),
(D3DRESOURCETYPE, "Type"),
- (DWORD, "Usage"),
+ (D3DUSAGE, "Usage"),
(D3DPOOL, "Pool"),
(UINT, "Size"),
])
D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
(D3DFORMAT, "Format"),
(D3DRESOURCETYPE, "Type"),
- (DWORD, "Usage"),
+ (D3DUSAGE, "Usage"),
(D3DPOOL, "Pool"),
(D3DMULTISAMPLE_TYPE, "MultiSampleType"),
(DWORD, "MultiSampleQuality"),
D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
(D3DFORMAT, "Format"),
(D3DRESOURCETYPE, "Type"),
- (DWORD, "Usage"),
+ (D3DUSAGE, "Usage"),
(D3DPOOL, "Pool"),
(UINT, "Width"),
(UINT, "Height"),
D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
(INT, "Pitch"),
- (OpaquePointer(Void), "pBits"),
+ (LinearPointer(Void, "_MappedSize"), "pBits"),
])
D3DBOX = Struct("D3DBOX", [
D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
(INT, "RowPitch"),
(INT, "SlicePitch"),
- (OpaquePointer(Void), "pBits"),
+ (LinearPointer(Void, "_MappedSize"), "pBits"),
])
D3DRANGE = Struct("D3DRANGE", [