[1] | 1 | ' d3dx9shader.sbp
|
---|
| 2 |
|
---|
| 3 |
|
---|
| 4 | #ifndef _INC_D3DX9SHADER
|
---|
| 5 | #define _INC_D3DX9SHADER
|
---|
| 6 |
|
---|
| 7 |
|
---|
| 8 | TypeDef D3DXHANDLE = BytePtr
|
---|
| 9 |
|
---|
| 10 |
|
---|
| 11 | Type D3DXMACRO
|
---|
| 12 | Name As BytePtr
|
---|
| 13 | Definition As BytePtr
|
---|
| 14 | End Type
|
---|
| 15 |
|
---|
| 16 | Type D3DXSEMANTIC
|
---|
| 17 | Usage As DWord
|
---|
| 18 | UsageIndex As DWord
|
---|
| 19 | End Type
|
---|
| 20 |
|
---|
| 21 | Type D3DXFRAGMENT_DESC
|
---|
| 22 | Name As BytePtr
|
---|
| 23 | Target As DWord
|
---|
| 24 | End Type
|
---|
| 25 |
|
---|
| 26 | Const Enum D3DXREGISTER_SET
|
---|
| 27 | D3DXRS_BOOL = 0
|
---|
| 28 | D3DXRS_INT4 = 1
|
---|
| 29 | D3DXRS_FLOAT4 = 2
|
---|
| 30 | D3DXRS_SAMPLER = 3
|
---|
| 31 | D3DXRS_FORCE_DWORD = &H7FFFFFFF
|
---|
| 32 | End Enum
|
---|
| 33 |
|
---|
| 34 | Const Enum D3DXPARAMETER_CLASS
|
---|
| 35 | D3DXPC_SCALAR = 0
|
---|
| 36 | D3DXPC_VECTOR = 1
|
---|
| 37 | D3DXPC_MATRIX_ROWS = 2
|
---|
| 38 | D3DXPC_MATRIX_COLUMNS = 3
|
---|
| 39 | D3DXPC_OBJECT = 4
|
---|
| 40 | D3DXPC_STRUCT = 5
|
---|
| 41 | D3DXPC_FORCE_DWORD = &H7FFFFFFF
|
---|
| 42 | End Enum
|
---|
| 43 |
|
---|
| 44 | Const Enum D3DXPARAMETER_TYPE
|
---|
| 45 | D3DXPT_VOID = 0
|
---|
| 46 | D3DXPT_BOOL = 1
|
---|
| 47 | D3DXPT_INT = 2
|
---|
| 48 | D3DXPT_FLOAT = 3
|
---|
| 49 | D3DXPT_STRING = 4
|
---|
| 50 | D3DXPT_TEXTURE = 5
|
---|
| 51 | D3DXPT_TEXTURE1D = 6
|
---|
| 52 | D3DXPT_TEXTURE2D = 7
|
---|
| 53 | D3DXPT_TEXTURE3D = 8
|
---|
| 54 | D3DXPT_TEXTURECUBE = 9
|
---|
| 55 | D3DXPT_SAMPLER = 10
|
---|
| 56 | D3DXPT_SAMPLER1D = 11
|
---|
| 57 | D3DXPT_SAMPLER2D = 12
|
---|
| 58 | D3DXPT_SAMPLER3D = 13
|
---|
| 59 | D3DXPT_SAMPLERCUBE = 14
|
---|
| 60 | D3DXPT_PIXELSHADER = 15
|
---|
| 61 | D3DXPT_VERTEXSHADER = 16
|
---|
| 62 | D3DXPT_PIXELFRAGMENT = 17
|
---|
| 63 | D3DXPT_VERTEXFRAGMENT = 18
|
---|
| 64 | D3DXPT_FORCE_DWORD = &H7FFFFFFF
|
---|
| 65 | End Enum
|
---|
| 66 |
|
---|
| 67 | Type D3DXCONSTANTTABLE_DESC
|
---|
| 68 | Creator As BytePtr
|
---|
| 69 | Version As DWord
|
---|
| 70 | Constants As DWord
|
---|
| 71 | End Type
|
---|
| 72 |
|
---|
| 73 | Type D3DXCONSTANT_DESC
|
---|
| 74 | Name As BytePtr
|
---|
| 75 | RegisterSet As D3DXREGISTER_SET
|
---|
| 76 | RegisterIndex As DWord
|
---|
| 77 | RegisterCount As DWord
|
---|
| 78 | Class_ As D3DXPARAMETER_CLASS
|
---|
| 79 | Type_ As D3DXPARAMETER_TYPE
|
---|
| 80 | Rows As DWord
|
---|
| 81 | Columns As DWord
|
---|
| 82 | Elements As DWord
|
---|
| 83 | StructMembers As DWord
|
---|
| 84 | Bytes As DWord
|
---|
| 85 | DefaultValue As VoidPtr
|
---|
| 86 | End Type
|
---|
| 87 |
|
---|
| 88 |
|
---|
| 89 | Class ID3DXConstantTable
|
---|
| 90 | Inherits IUnknown
|
---|
| 91 | Public
|
---|
| 92 | 'Buffer
|
---|
| 93 | Abstract Function GetBufferPointer() As VoidPtr
|
---|
| 94 | Abstract Function GetBufferSize() As DWord
|
---|
| 95 |
|
---|
| 96 | 'Descs
|
---|
| 97 | Abstract Function GetDesc(pDesc As *D3DXCONSTANTTABLE_DESC) As DWord
|
---|
| 98 | Abstract Function GetConstantDesc(hConstant As D3DXHANDLE, pConstantDesc As *D3DXCONSTANT_DESC, pCount As DWordPtr) As DWord
|
---|
| 99 | Abstract Function GetSamplerIndex(hConstant As D3DXHANDLE) As DWord
|
---|
| 100 |
|
---|
| 101 | 'Handle operations
|
---|
| 102 | Abstract Function GetConstant(hConstant As D3DXHANDLE, Index As DWord) As D3DXHANDLE
|
---|
| 103 | Abstract Function GetConstantByName(hConstant As D3DXHANDLE, pName As BytePtr) As D3DXHANDLE
|
---|
| 104 | Abstract Function GetConstantElement(hConstant As D3DXHANDLE, Index As DWord) As D3DXHANDLE
|
---|
| 105 |
|
---|
| 106 | 'Set Constants
|
---|
| 107 | Abstract Function SetDefaults(pDevice As LPDIRECT3DDEVICE9) As DWord
|
---|
| 108 | Abstract Function SetValue(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pData As VoidPtr, Bytes As DWord) As DWord
|
---|
| 109 | Abstract Function SetBool(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, b As Long) As DWord
|
---|
| 110 | Abstract Function SetBoolArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pb As *Long, Count As DWord) As DWord
|
---|
| 111 | Abstract Function SetInt(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, n As Long) As DWord
|
---|
| 112 | Abstract Function SetIntArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pn As *Long, Count As DWord) As DWord
|
---|
| 113 | Abstract Function SetFloat(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, f As Single) As DWord
|
---|
| 114 | Abstract Function SetFloatArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pf As SinglePtr, Count As DWord) As DWord
|
---|
| 115 | Abstract Function SetVector(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pVector As *D3DXVECTOR4) As DWord
|
---|
| 116 | Abstract Function SetVectorArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pVector As *D3DXVECTOR4, Count As DWord) As DWord
|
---|
| 117 | Abstract Function SetMatrix(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX) As DWord
|
---|
| 118 | Abstract Function SetMatrixArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX, Count As DWord) As DWord
|
---|
| 119 | Abstract Function SetMatrixPointerArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, ppMatrix As **D3DXMATRIX, Count As DWord) As DWord
|
---|
| 120 | Abstract Function SetMatrixTranspose(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX) As DWord
|
---|
| 121 | Abstract Function SetMatrixTransposeArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX, Count As DWord) As DWord
|
---|
| 122 | Abstract Function SetMatrixTransposePointerArray(pDevice As LPDIRECT3DDEVICE9, hConstant As D3DXHANDLE, ppMatrix As **D3DXMATRIX, Count As DWord) As DWord
|
---|
| 123 | End Class
|
---|
| 124 | TypeDef LPD3DXCONSTANTTABLE = *ID3DXConstantTable
|
---|
| 125 |
|
---|
| 126 |
|
---|
| 127 | Class ID3DXTextureShader
|
---|
| 128 | Inherits IUnknown
|
---|
| 129 | Public
|
---|
| 130 | 'Gets
|
---|
| 131 | Abstract Function GetFunction(ppFunction As *LPD3DXBUFFER) As DWord
|
---|
| 132 | Abstract Function GetConstantBuffer(ppConstantBuffer As *LPD3DXBUFFER) As DWord
|
---|
| 133 |
|
---|
| 134 | 'Descs
|
---|
| 135 | Abstract Function GetDesc(pDesc As *D3DXCONSTANTTABLE_DESC) As DWord
|
---|
| 136 | Abstract Function GetConstantDesc(hConstant As D3DXHANDLE, pConstantDesc As *D3DXCONSTANT_DESC, pCount As DWordPtr) As DWord
|
---|
| 137 |
|
---|
| 138 | 'Handle operations
|
---|
| 139 | Abstract Function GetConstant(hConstant As D3DXHANDLE, Index As DWord) As D3DXHANDLE
|
---|
| 140 | Abstract Function GetConstantByName(hConstant As D3DXHANDLE, pName As BytePtr) As D3DXHANDLE
|
---|
| 141 | Abstract Function GetConstantElement(hConstant As D3DXHANDLE, Index As DWord) As D3DXHANDLE
|
---|
| 142 |
|
---|
| 143 | 'Set Constants
|
---|
| 144 | Abstract Function SetDefaults() As DWord
|
---|
| 145 | Abstract Function SetValue(hConstant As D3DXHANDLE, pData As VoidPtr, Bytes As DWord) As DWord
|
---|
| 146 | Abstract Function SetBool(hConstant As D3DXHANDLE, b As Long) As DWord
|
---|
| 147 | Abstract Function SetBoolArray(hConstant As D3DXHANDLE, pb As *Long, Count As DWord) As DWord
|
---|
| 148 | Abstract Function SetInt(hConstant As D3DXHANDLE, n As Long) As DWord
|
---|
| 149 | Abstract Function SetIntArray(hConstant As D3DXHANDLE, pn As *Long, Count As DWord) As DWord
|
---|
| 150 | Abstract Function SetFloat(hConstant As D3DXHANDLE, f As Single) As DWord
|
---|
| 151 | Abstract Function SetFloatArray(hConstant As D3DXHANDLE, pf As SinglePtr, Count As DWord) As DWord
|
---|
| 152 | Abstract Function SetVector(hConstant As D3DXHANDLE, pVector As *D3DXVECTOR4) As DWord
|
---|
| 153 | Abstract Function SetVectorArray(hConstant As D3DXHANDLE, pVector As *D3DXVECTOR4, Count As DWord) As DWord
|
---|
| 154 | Abstract Function SetMatrix(hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX) As DWord
|
---|
| 155 | Abstract Function SetMatrixArray(hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX, Count As DWord) As DWord
|
---|
| 156 | Abstract Function SetMatrixPointerArray(hConstant As D3DXHANDLE, ppMatrix As **D3DXMATRIX, Count As DWord) As DWord
|
---|
| 157 | Abstract Function SetMatrixTranspose(hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX) As DWord
|
---|
| 158 | Abstract Function SetMatrixTransposeArray(hConstant As D3DXHANDLE, pMatrix As *D3DXMATRIX, Count As DWord) As DWord
|
---|
| 159 | Abstract Function SetMatrixTransposePointerArray(hConstant As D3DXHANDLE, ppMatrix As **D3DXMATRIX, Count As DWord) As DWord
|
---|
| 160 | End Class
|
---|
| 161 | TypeDef LPD3DXTEXTURESHADER = *ID3DXTextureShader
|
---|
| 162 |
|
---|
| 163 |
|
---|
| 164 | Class ID3DXFragmentLinker
|
---|
| 165 | Inherits IUnknown
|
---|
| 166 | Public
|
---|
| 167 | 'fragment access and information retrieval functions
|
---|
| 168 | Abstract Function GetDevice(ppDevice As *LPDIRECT3DDEVICE9) As DWord
|
---|
| 169 | Abstract Function GetNumberOfFragments() As DWord
|
---|
| 170 |
|
---|
| 171 | Abstract Function GetFragmentHandleByIndex(Index As DWord) As D3DXHANDLE
|
---|
| 172 | Abstract Function GetFragmentHandleByName(Name As BytePtr) As D3DXHANDLE
|
---|
| 173 | Abstract Function GetFragmentDesc(Name As D3DXHANDLE, FragDesc As *D3DXFRAGMENT_DESC) As DWord
|
---|
| 174 |
|
---|
| 175 | 'add the fragments in the buffer to the linker
|
---|
| 176 | Abstract Function AddFragments(Fragments As DWordPtr) As DWord
|
---|
| 177 |
|
---|
| 178 | 'Create a buffer containing the fragments. Suitable for saving to disk
|
---|
| 179 | Abstract Function GetAllFragments(ppBuffer As *LPD3DXBUFFER) As DWord
|
---|
| 180 | Abstract Function GetFragment(Name As D3DXHANDLE, ppBuffer As *LPD3DXBUFFER) As DWord
|
---|
| 181 |
|
---|
| 182 | Abstract Function LinkShader(pProfile As BytePtr, Flags As DWord, rgFragmentHandles As *D3DXHANDLE, cFragments As DWord, ppBuffer As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 183 | Abstract Function LinkVertexShader(pProfile As BytePtr, Flags As DWord, rgFragmentHandles As *D3DXHANDLE, cFragments As DWord, pVShader As *LPDIRECT3DVERTEXSHADER9, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 184 | Abstract Function LinkPixelShader(pProfile As BytePtr, Flags As DWord, rgFragmentHandles As *D3DXHANDLE, cFragments As DWord, pPShader As *LPDIRECT3DPIXELSHADER9, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 185 |
|
---|
| 186 | Abstract Function ClearCache() As DWord
|
---|
| 187 | End Class
|
---|
| 188 | TypeDef LPD3DXFRAGMENTLINKER = *ID3DXFragmentLinker
|
---|
| 189 |
|
---|
| 190 |
|
---|
| 191 | Const Enum D3DXINCLUDE_TYPE
|
---|
| 192 | D3DXINC_LOCAL = 0
|
---|
| 193 | D3DXINC_SYSTEM = 1
|
---|
| 194 |
|
---|
| 195 | D3DXINC_FORCE_DWORD = &H7FFFFFFF
|
---|
| 196 | End Enum
|
---|
| 197 |
|
---|
| 198 | Class ID3DXInclude
|
---|
| 199 | Abstract Function Open(IncludeType As D3DXINCLUDE_TYPE, pFileName As BytePtr, pParentData As VoidPtr, ppData As DWordPtr, pBytes As DWordPtr) As DWord
|
---|
| 200 | Abstract Function Close(pData As VoidPtr) As DWord
|
---|
| 201 | End Class
|
---|
| 202 | TypeDef LPD3DXINCLUDE = *ID3DXInclude
|
---|
| 203 |
|
---|
| 204 |
|
---|
| 205 | '--------------------
|
---|
| 206 | ' D3DXAssembleShader
|
---|
| 207 | '--------------------
|
---|
| 208 | Declare Function D3DXAssembleShaderFromFile Lib "dx9abm" Alias "D3DXAssembleShaderFromFile_abm" (pSrcFile As BytePtr, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 209 | Declare Function D3DXAssembleShaderFromResource Lib "dx9abm" Alias "D3DXAssembleShaderFromResource_abm" (hSrcModule As HINSTANCE, pSrcResource As BytePtr, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 210 | Declare Function D3DXAssembleShader Lib "dx9abm" Alias "D3DXAssembleShader_abm" (pSrcData As BytePtr, SrcDataLen As DWord, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER) As DWord
|
---|
| 211 |
|
---|
| 212 |
|
---|
| 213 | '-------------------
|
---|
| 214 | ' D3DXCompileShader
|
---|
| 215 | '-------------------
|
---|
| 216 | Declare Function D3DXCompileShaderFromFile Lib "dx9abm" Alias "D3DXCompileShaderFromFile_abm" (pSrcFile As BytePtr, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, pFunctionName As BytePtr, pProfile As BytePtr, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER, ppConstantTable As *LPD3DXCONSTANTTABLE) As DWord
|
---|
| 217 | Declare Function D3DXCompileShaderFromResource Lib "dx9abm" Alias "D3DXCompileShaderFromResource_abm" (hSrcModule As HINSTANCE, pSrcResource As BytePtr, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, pFunctionName As BytePtr, pProfile As BytePtr, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER, ppConstantTable As *LPD3DXCONSTANTTABLE) As DWord
|
---|
| 218 | Declare Function D3DXCompileShader Lib "dx9abm" Alias "D3DXCompileShader_abm" (pSrcData As BytePtr, SrcDataLen As DWord, pDefines As *D3DXMACRO, pInclude As LPD3DXINCLUDE, pFunctionName As BytePtr, pProfile As BytePtr, Flags As DWord, ppShader As *LPD3DXBUFFER, ppErrorMsgs As *LPD3DXBUFFER, ppConstantTable As *LPD3DXCONSTANTTABLE) As DWord
|
---|
| 219 |
|
---|
| 220 |
|
---|
| 221 | #endif '_INC_D3DX9SHADER
|
---|