]> git.cworth.org Git - apitrace/commitdiff
More tweaks/cleanups to D3D9 spec.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Thu, 27 Oct 2011 23:15:09 +0000 (00:15 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Thu, 27 Oct 2011 23:18:58 +0000 (00:18 +0100)
d3d9trace.py
specs/d3d9.py
specs/d3d9types.py

index 5b83c03837bccb07cf8fa3927f7a516af22f94c2..e6bf0001b6b70db15784135f5d33301fe3fb54cd 100644 (file)
@@ -46,6 +46,17 @@ if __name__ == '__main__':
     print '#include "d3d9imports.hpp"'
     print '#include "d3dshader.hpp"'
     print
+    print '''
+static inline size_t
+_declCount(const D3DVERTEXELEMENT9 *pVertexElements) {
+    size_t count = 0;
+    if (pVertexElements) {
+        while (pVertexElements[count++].Stream != 0xff)
+            ;
+    }
+    return count;
+}
+'''
     tracer = D3D9Tracer('d3d9.dll')
     tracer.trace_api(d3d9)
 
index ad20ef1cc87ef46656dbf419909c2d9d5e421bc6..fb662f7f2f9feadf42848aab6e9232bb96bc879e 100644 (file)
@@ -254,7 +254,7 @@ IDirect3DDevice9.methods += [
     Method(HRESULT, "DrawPrimitiveUP", [(D3DPRIMITIVETYPE, "PrimitiveType"), (UINT, "PrimitiveCount"), (OpaquePointer(Const(Void)), "pVertexStreamZeroData"), (UINT, "VertexStreamZeroStride")]),
     Method(HRESULT, "DrawIndexedPrimitiveUP", [(D3DPRIMITIVETYPE, "PrimitiveType"), (UINT, "MinVertexIndex"), (UINT, "NumVertices"), (UINT, "PrimitiveCount"), (OpaquePointer(Const(Void)), "pIndexData"), (D3DFORMAT, "IndexDataFormat"), (OpaquePointer(Const(Void)), "pVertexStreamZeroData"), (UINT, "VertexStreamZeroStride")]),
     Method(HRESULT, "ProcessVertices", [(UINT, "SrcStartIndex"), (UINT, "DestIndex"), (UINT, "VertexCount"), (PDIRECT3DVERTEXBUFFER9, "pDestBuffer"), (PDIRECT3DVERTEXDECLARATION9, "pVertexDecl"), (D3DPV, "Flags")]),
-    Method(HRESULT, "CreateVertexDeclaration", [(ConstPointer(D3DVERTEXELEMENT9), "pVertexElements"), Out(Pointer(PDIRECT3DVERTEXDECLARATION9), "ppDecl")]),
+    Method(HRESULT, "CreateVertexDeclaration", [(Array(Const(D3DVERTEXELEMENT9), "_declCount(pVertexElements)"), "pVertexElements"), Out(Pointer(PDIRECT3DVERTEXDECLARATION9), "ppDecl")]),
     Method(HRESULT, "SetVertexDeclaration", [(PDIRECT3DVERTEXDECLARATION9, "pDecl")]),
     Method(HRESULT, "GetVertexDeclaration", [Out(Pointer(PDIRECT3DVERTEXDECLARATION9), "ppDecl")]),
     Method(HRESULT, "SetFVF", [(D3DFVF, "FVF")]),
index b99fa90fa5ed9cdda6f7a7f2c0c5ec927d8b7c4c..cc9ac650b60578630f9cf3d6bf6cc45699961fa4 100644 (file)
@@ -1,5 +1,6 @@
 ##########################################################################
 #
+# Copyright 2011 Jose Fonseca
 # Copyright 2008-2009 VMware, Inc.
 # All Rights Reserved.
 #
@@ -408,7 +409,7 @@ D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
 ])
 
 D3DTSS_TCI = Flags(DWORD, [
-    #"D3DTSS_TCI_PASSTHRU", 0
+    #"D3DTSS_TCI_PASSTHRU", 0
     "D3DTSS_TCI_CAMERASPACENORMAL",
     "D3DTSS_TCI_CAMERASPACEPOSITION",
     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
@@ -571,7 +572,7 @@ D3DFVF = Flags(DWORD, [
     #"D3DFVF_TEXCOORDSIZE4(3)",
 ])
 
-D3DDECLUSAGE = Enum("D3DDECLUSAGE", [
+D3DDECLUSAGE = FakeEnum(BYTE, [
     "D3DDECLUSAGE_POSITION",
     "D3DDECLUSAGE_BLENDWEIGHT",
     "D3DDECLUSAGE_BLENDINDICES",
@@ -588,7 +589,7 @@ D3DDECLUSAGE = Enum("D3DDECLUSAGE", [
     "D3DDECLUSAGE_SAMPLE",
 ])
 
-D3DDECLMETHOD = Enum("D3DDECLMETHOD", [
+D3DDECLMETHOD = FakeEnum(BYTE, [
     "D3DDECLMETHOD_DEFAULT",
     "D3DDECLMETHOD_PARTIALU",
     "D3DDECLMETHOD_PARTIALV",
@@ -598,7 +599,7 @@ D3DDECLMETHOD = Enum("D3DDECLMETHOD", [
     "D3DDECLMETHOD_LOOKUPPRESAMPLED",
 ])
 
-D3DDECLTYPE = Enum("D3DDECLTYPE", [
+D3DDECLTYPE = FakeEnum(BYTE, [
     "D3DDECLTYPE_FLOAT1",
     "D3DDECLTYPE_FLOAT2",
     "D3DDECLTYPE_FLOAT3",
@@ -622,222 +623,17 @@ D3DDECLTYPE = Enum("D3DDECLTYPE", [
 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",