From ba21134a24723a006a73e3218a24b6a02685d35d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 14 Oct 2011 10:04:12 +0100 Subject: [PATCH] More polymorphic types in D3D9. --- specs/d3d9.py | 8 ++-- specs/d3d9types.py | 110 ++++++++++++++++++++++++--------------------- 2 files changed, 63 insertions(+), 55 deletions(-) diff --git a/specs/d3d9.py b/specs/d3d9.py index cc39808..ad20ef1 100644 --- a/specs/d3d9.py +++ b/specs/d3d9.py @@ -234,10 +234,10 @@ IDirect3DDevice9.methods += [ Method(HRESULT, "GetClipStatus", [Out(Pointer(D3DCLIPSTATUS9), "pClipStatus")]), Method(HRESULT, "GetTexture", [(DWORD, "Stage"), Out(Pointer(PDIRECT3DBASETEXTURE9), "ppTexture")]), Method(HRESULT, "SetTexture", [(DWORD, "Stage"), (PDIRECT3DBASETEXTURE9, "pTexture")]), - Method(HRESULT, "GetTextureStageState", [(DWORD, "Stage"), (D3DTEXTURESTAGESTATETYPE, "Type"), Out(Pointer(DWORD), "pValue")]), - Method(HRESULT, "SetTextureStageState", [(DWORD, "Stage"), (D3DTEXTURESTAGESTATETYPE, "Type"), (DWORD, "Value")]), - Method(HRESULT, "GetSamplerState", [(DWORD, "Sampler"), (D3DSAMPLERSTATETYPE, "Type"), Out(Pointer(DWORD), "pValue")]), - Method(HRESULT, "SetSamplerState", [(DWORD, "Sampler"), (D3DSAMPLERSTATETYPE, "Type"), (DWORD, "Value")]), + Method(HRESULT, "GetTextureStageState", [(DWORD, "Stage"), (D3DTEXTURESTAGESTATETYPE, "Type"), Out(Pointer(D3DTEXTURESTAGESTATEVALUE), "pValue")]), + Method(HRESULT, "SetTextureStageState", [(DWORD, "Stage"), (D3DTEXTURESTAGESTATETYPE, "Type"), (D3DTEXTURESTAGESTATEVALUE, "Value")]), + Method(HRESULT, "GetSamplerState", [(DWORD, "Sampler"), (D3DSAMPLERSTATETYPE, "Type"), Out(Pointer(D3DSAMPLERSTATEVALUE), "pValue")]), + Method(HRESULT, "SetSamplerState", [(DWORD, "Sampler"), (D3DSAMPLERSTATETYPE, "Type"), (D3DSAMPLERSTATEVALUE, "Value")]), Method(HRESULT, "ValidateDevice", [Out(Pointer(DWORD), "pNumPasses")]), Method(HRESULT, "SetPaletteEntries", [(UINT, "PaletteNumber"), (ConstPointer(PALETTEENTRY), "pEntries")]), Method(HRESULT, "GetPaletteEntries", [(UINT, "PaletteNumber"), Out(Pointer(PALETTEENTRY), "pEntries")]), diff --git a/specs/d3d9types.py b/specs/d3d9types.py index 6dc250c..ca9340c 100644 --- a/specs/d3d9types.py +++ b/specs/d3d9types.py @@ -403,50 +403,12 @@ D3DRENDERSTATEVALUE = Polymorphic(DWORD, "State", [ # XXX: D3DRENDERSTATE_WRAPBIAS + n ]) -D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", - [expr for expr, types in D3DRENDERSTATEVALUE.switch_types] -) - -D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [ - "D3DTSS_COLOROP", - "D3DTSS_COLORARG1", - "D3DTSS_COLORARG2", - "D3DTSS_ALPHAOP", - "D3DTSS_ALPHAARG1", - "D3DTSS_ALPHAARG2", - "D3DTSS_BUMPENVMAT00", - "D3DTSS_BUMPENVMAT01", - "D3DTSS_BUMPENVMAT10", - "D3DTSS_BUMPENVMAT11", - "D3DTSS_TEXCOORDINDEX", - "D3DTSS_BUMPENVLSCALE", - "D3DTSS_BUMPENVLOFFSET", - "D3DTSS_TEXTURETRANSFORMFLAGS", - "D3DTSS_COLORARG0", - "D3DTSS_ALPHAARG0", - "D3DTSS_RESULTARG", - "D3DTSS_CONSTANT", +D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [ + expr for expr, types in D3DRENDERSTATEVALUE.switch_types ]) -D3DSAMPLERSTATETYPE = Enum("D3DSAMPLERSTATETYPE", [ - - "D3DSAMP_ADDRESSU", - "D3DSAMP_ADDRESSV", - "D3DSAMP_ADDRESSW", - "D3DSAMP_BORDERCOLOR", - "D3DSAMP_MAGFILTER", - "D3DSAMP_MINFILTER", - "D3DSAMP_MIPFILTER", - "D3DSAMP_MIPMAPLODBIAS", - "D3DSAMP_MAXMIPLEVEL", - "D3DSAMP_MAXANISOTROPY", - "D3DSAMP_SRGBTEXTURE", - "D3DSAMP_ELEMENTINDEX", - "D3DSAMP_DMAPOFFSET", -]) - -D3DTSS = Flags(DWORD, [ - "D3DTSS_TCI_PASSTHRU", +D3DTSS_TCI = Flags(DWORD, [ + #"D3DTSS_TCI_PASSTHRU", 0 "D3DTSS_TCI_CAMERASPACENORMAL", "D3DTSS_TCI_CAMERASPACEPOSITION", "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR", @@ -495,6 +457,41 @@ D3DTA = Flags(DWORD, [ "D3DTA_ALPHAREPLICATE", ]) +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 +]) + D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [ "D3DTEXF_NONE", "D3DTEXF_POINT", @@ -505,6 +502,26 @@ D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [ "D3DTEXF_CONVOLUTIONMONO", ]) +D3DSAMPLERSTATEVALUE = Polymorphic(DWORD, "Type", [ + ("D3DSAMP_ADDRESSU", D3DTEXTUREADDRESS), + ("D3DSAMP_ADDRESSV", D3DTEXTUREADDRESS), + ("D3DSAMP_ADDRESSW", D3DTEXTUREADDRESS), + ("D3DSAMP_BORDERCOLOR", D3DCOLOR), + ("D3DSAMP_MAGFILTER", D3DTEXTUREFILTERTYPE), + ("D3DSAMP_MINFILTER", D3DTEXTUREFILTERTYPE), + ("D3DSAMP_MIPFILTER", D3DTEXTUREFILTERTYPE), + ("D3DSAMP_MIPMAPLODBIAS", FLOAT_AS_DWORD), + ("D3DSAMP_MAXMIPLEVEL", DWORD), + ("D3DSAMP_MAXANISOTROPY", DWORD), + ("D3DSAMP_SRGBTEXTURE", BOOL), + ("D3DSAMP_ELEMENTINDEX", DWORD), + ("D3DSAMP_DMAPOFFSET", DWORD), +]) + +D3DSAMPLERSTATETYPE = Enum("D3DSAMPLERSTATETYPE", [ + expr for expr, types in D3DSAMPLERSTATEVALUE.switch_types +]) + D3DPV = Flags(DWORD, [ "D3DPV_DONOTCOPYDATA", ]) @@ -835,15 +852,6 @@ D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [ "D3DSBT_VERTEXSTATE", ]) -D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [ - "D3DTTFF_DISABLE", - "D3DTTFF_COUNT1", - "D3DTTFF_COUNT2", - "D3DTTFF_COUNT3", - "D3DTTFF_COUNT4", - "D3DTTFF_PROJECTED", -]) - D3DDEVTYPE = Enum("D3DDEVTYPE", [ "D3DDEVTYPE_HAL", "D3DDEVTYPE_REF", -- 2.43.0