DirectX Enumerated Types and Constants

 

Direct3D

 

D3DADAPTER_CONSTANT

 

Specifies the primary display adapter.

 

%D3DADAPTER_DEFAULT = 0

 

 

D3DBACKBUFFER_TYPE Enumerated Type

 

Defines constants that describe the type of back buffer.

 

%D3DBACKBUFFER_TYPE_MONO = 0
%D3DBACKBUFFER_TYPE_LEFT = 1
%D3DBACKBUFFER_TYPE_RIGHT = 2
%D3DBACKBUFFER_TYPE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DBASISTYPE Enumerated Type

 

Defines the basis type of a high-order patch surface.

 

%D3DBASIS_BEZIER = 0
%D3DBASIS_BSPLINE = 1
%D3DBASIS_CATMULL_ROM = 2 ' /* In D3D8 this used to be D3DBASIS_INTERPOLATE */
%D3DBASIS_FORCE_DWORD = &H7FFFFFFF

 

 

D3DBLEND Enumerated Type

 

Defines the supported blend mode.

 

%D3DBLEND_ZERO = 1
%D3DBLEND_ONE = 2

%D3DBLEND_SRCCOLOR = 3
%D3DBLEND_INVSRCCOLOR = 4
%D3DBLEND_SRCALPHA = 5
%D3DBLEND_INVSRCALPHA = 6
%D3DBLEND_DESTALPHA = 7
%D3DBLEND_INVDESTALPHA = 8

%D3DBLEND_DESTCOLOR = 9
%D3DBLEND_INVDESTCOLOR = 10
%D3DBLEND_SRCALPHASAT = 11
%D3DBLEND_BOTHSRCALPHA = 12
%D3DBLEND_BOTHINVSRCALPHA = 13
%D3DBLEND_BLENDFACTOR = 14

%D3DBLEND_INVBLENDFACTOR = 15

%D3DBLEND_FORCE_DWORD = &H7FFFFFFF

 

 

D3DBLENDOP Enumerated Type

 

Defines the supported blend operations.

 

%D3DBLENDOP_ADD = 1
%D3DBLENDOP_SUBTRACT = 2
%D3DBLENDOP_REVSUBTRACT = 3
%D3DBLENDOP_MIN = 4
%D3DBLENDOP_MAX = 5
%D3DBLENDOP_FORCE_DWORD = &H7FFFFFFF

 

 

D3DCAPS2

 

Driver capability flags.

 

%D3DCAPS2_FULLSCREENGAMMA = &H00020000&
%D3DCAPS2_CANCALIBRATEGAMMA = &H00100000&
%D3DCAPS2_RESERVED = &H02000000&
%D3DCAPS2_CANMANAGERESOURCE = &H10000000&
%D3DCAPS2_DYNAMICTEXTURES = &H20000000&
%D3DCAPS2_CANAUTOGENMIPMAP = &H40000000&

 

 

D3DCAPS3

 

Driver capability flags.

 

%D3DCAPS3_RESERVED = &H8000001f&
%D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD = &H00000020&
%D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION = &H00000080&
%D3DCAPS3_COPY_TO_VIDMEM = &H00000100& %D3DCAPS3_COPY_TO_SYSTEMMEM = &H00000200&

 

 

D3DCLEAR

 

These flags identify a surface to reset when calling IDirect3DDevice9::Clear.

 

%D3DCLEAR_TARGET = &H00000001&
%D3DCLEAR_ZBUFFER = &H00000002&
%D3DCLEAR_STENCIL = &H00000004&

 

 

D3DCMPFUNC Enumerated Type

 

Defines the supported compare functions.

 

%D3DCMP_NEVER = 1
%D3DCMP_LESS = 2
%D3DCMP_EQUAL = 3
%D3DCMP_LESSEQUAL = 4
%D3DCMP_GREATER = 5
%D3DCMP_NOTEQUAL = 6
%D3DCMP_GREATEREQUAL = 7
%D3DCMP_ALWAYS = 8
%D3DCMP_FORCE_DWORD = &H7FFFFFFF

 

 

D3DCREATE

 

A combination of one or more flags that control the device create behavior.

 

%D3DCREATE_FPU_PRESERVE = &H00000002&
%D3DCREATE_MULTITHREADED = &H00000004&
%D3DCREATE_PUREDEVICE = &H00000010&
%D3DCREATE_SOFTWARE_VERTEXPROCESSING = &H00000020&
%D3DCREATE_HARDWARE_VERTEXPROCESSING = &H00000040&
%D3DCREATE_MIXED_VERTEXPROCESSING = &H00000080&
%D3DCREATE_DISABLE_DRIVER_MANAGEMENT = &H00000100&
%D3DCREATE_ADAPTERGROUP_DEVICE = &H00000200&
%D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = &H00000400&
%D3DCREATE_NOWINDOWCHANGES = &H00000800&

 

 

D3DCUBEMAP_FACES Enumerated Type

 

Defines the faces of a cubemap.

 

%D3DCUBEMAP_FACE_POSITIVE_X = 0
%D3DCUBEMAP_FACE_NEGATIVE_X = 1
%D3DCUBEMAP_FACE_POSITIVE_Y = 2
%D3DCUBEMAP_FACE_NEGATIVE_Y = 3
%D3DCUBEMAP_FACE_POSITIVE_Z = 4
%D3DCUBEMAP_FACE_NEGATIVE_Z = 5
%D3DCUBEMAP_FACE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DCULL Enumerated Type

 

Defines the supported culling modes.

 

%D3DCULL_NONE = 1
%D3DCULL_CW = 2
%D3DCULL_CCW = 3
%D3DCULL_FORCE_DWORD = &H7FFFFFFF

 

 

D3DCURSORCAPS

 

Driver cursor capability flags.

 

%D3DCURSORCAPS_COLOR = &H00000001&
%D3DCURSORCAPS_LOWRES = &H00000002&
 

 

D3DDEBUGMONITORTOKENS Enumerated Type

 

Defines the debug monitor tokens.

 

%D3DDMT_ENABLE = 0
%D3DDMT_DISABLE = 1
%D3DDMT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DDECLMETHOD Enumerated Type

 

Defines the vertex declaration method which is a predefined operation performed by the tessellator (or any procedural geometry routine on the vertex data during tessellation).

 

%D3DDECLMETHOD_DEFAULT = 0
%D3DDECLMETHOD_PARTIALU = 1
%D3DDECLMETHOD_PARTIALV = 2
%D3DDECLMETHOD_CROSSUV = 3
%D3DDECLMETHOD_UV = 4
%D3DDECLMETHOD_LOOKUP = 4
%D3DDECLMETHOD_LOOKUPPRESAMPLED = 6

 

 

D3DDECLTYPE Enumerated Type

 

Defines a vertex declaration data type.

 

%D3DDECLTYPE_FLOAT1 = 0

%D3DDECLTYPE_FLOAT2 = 1

%D3DDECLTYPE_FLOAT3 = 2

%D3DDECLTYPE_FLOAT4 = 3

%D3DDECLTYPE_D3DCOLOR = 4

%D3DDECLTYPE_UBYTE4 = 5

%D3DDECLTYPE_SHORT2 = 6

%D3DDECLTYPE_SHORT4 = 7

%D3DDECLTYPE_UBYTE4N = 8

%D3DDECLTYPE_SHORT2N = 9

%D3DDECLTYPE_SHORT4N = 10

%D3DDECLTYPE_USHORT2N = 11

%D3DDECLTYPE_USHORT4N = 12

%D3DDECLTYPE_UDEC3 = 13

%D3DDECLTYPE_DEC3N = 14

%D3DDECLTYPE_FLOAT16_2 = 15

%D3DDECLTYPE_FLOAT16_4 = 16

%D3DDECLTYPE_UNUSED = 17

 

 

D3DDECLUSAGE Enumerated Type

 

Identifies the intended use of vertex data.

 

%D3DDECLUSAGE_POSITION = 0
%D3DDECLUSAGE_BLENDWEIGHT = 1
%D3DDECLUSAGE_BLENDINDICES = 2
%D3DDECLUSAGE_NORMAL = 3
%D3DDECLUSAGE_PSIZE = 4
%D3DDECLUSAGE_TEXCOORD = 5
%D3DDECLUSAGE_TANGENT = 6
%D3DDECLUSAGE_BINORMAL = 7
%D3DDECLUSAGE_TESSFACTOR = 8
%D3DDECLUSAGE_POSITIONT = 9
%D3DDECLUSAGE_COLOR = 10
%D3DDECLUSAGE_FOG = 11
%D3DDECLUSAGE_DEPTH = 12
%D3DDECLUSAGE_SAMPLE = 13

 

 

D3DDEGREETYPE Enumerated Type

 

Identifies the intended use of vertex data.

 

%D3DDEGREE_LINEAR = 1
%D3DDEGREE_QUADRATIC = 2
%D3DDEGREE_CUBIC = 3
%D3DDEGREE_QUINTIC = 5
%D3DDEGREE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DDEVCAPS2

 

D3DDEVCAPS2 driver capability flags.

 

%D3DDEVCAPS2_STREAMOFFSET = &H00000001&

%D3DDEVCAPS2_DMAPNPATCH = &H00000002&

%D3DDEVCAPS2_ADAPTIVETESSRTPATCH = &H00000004&
%D3DDEVCAPS2_ADAPTIVETESSNPATCH = &H00000008&
%D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES = &H00000010&
%D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH = &H00000020&
%D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET = &H00000040&

 

 

D3DDEVTYPE Enumerated Type

 

Defines device types.

 

%D3DDEVTYPE_HAL = 1
%D3DDEVTYPE_REF = 2
%D3DDEVTYPE_SW = 3
%D3DDEVTYPE_NULLREF = 4
%D3DDEVTYPE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DDTCAPS

 

Constants describing the vertex data types supported by a device.

 

%D3DDTCAPS_UBYTE4 = &H00000001&
%D3DDTCAPS_UBYTE4N = &H00000002&
%D3DDTCAPS_SHORT2N = &H00000004&
%D3DDTCAPS_SHORT4N = &H00000008&
%D3DDTCAPS_USHORT2N = &H00000010&
%D3DDTCAPS_USHORT4N = &H00000020&
%D3DDTCAPS_UDEC3 = &H00000040&
%D3DDTCAPS_DEC3N = &H00000080&
%D3DDTCAPS_FLOAT16_2 = &H00000100&
%D3DDTCAPS_FLOAT16_4 = &H00000200&

 

 

D3DENUM

 

Driver capability flag.

 

%D3DENUM_WHQL_LEVEL = &H00000002&

 

 

D3DERR Enumerated Type

 

Errors are represented by negative values and cannot be combined. The following is a list of the values that can be returned by Microsoft Direct3D methods. See the individual method descriptions for lists of the values that each can return. These lists are not necessarily comprehensive.

 

'/*
' * DirectDraw error codes
' */
'#define _FACD3D 0x876
'#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
'#define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )


%MAKE_D3DHRESULT = &H88760000
%MAKE_D3DSTATUS = &H08760000

'/*
' * Direct3D Errors
' */

%D3D_OK = %S_OK

'#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072) ' &H818
'#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073) ' &H819
'#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074) ' &H81A
'#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075) ' &H81B
'#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076) ' &H81C
'#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077) ' &H81D
'#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078) ' &H81E
'#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079) ' &H81F
'#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081) ' &H821
'#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082) ' &H822
'#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086) ' &H826
'#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087) ' &H827


%D3DERR_WRONGTEXTUREFORMAT = &H88760818
%D3DERR_UNSUPPORTEDCOLOROPERATION = &H88760819
%D3DERR_UNSUPPORTEDCOLORARG = &H8876081A
%D3DERR_UNSUPPORTEDALPHAOPERATION = &H8876081B
%D3DERR_UNSUPPORTEDALPHAARG = &H8876081Cx
%D3DERR_TOOMANYOPERATIONS = &H8876081D
%D3DERR_CONFLICTINGTEXTUREFILTER = &H8876081E
%D3DERR_UNSUPPORTEDFACTORVALUE = &H8876081F
%D3DERR_CONFLICTINGRENDERSTATE = &H88760821
%D3DERR_UNSUPPORTEDTEXTUREFILTER = &H88760822
%D3DERR_CONFLICTINGTEXTUREPALETTE = &H88760826
%D3DERR_DRIVERINTERNALERROR = &H88760827

'#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150) ' &H866
'#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151) ' &H867
'#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152) ' &H868
'#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153) ' &H869
'#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154) ' &H86A
'#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380) ' &H17C
'#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155) ' &H86B
'#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156) ' &H86C
'#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157) ' &H86D
'#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540) ' &H21C
'#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159) ' &H86F


%D3DERR_NOTFOUND = &H88760866
%D3DERR_MOREDATA = &H88760867
%D3DERR_DEVICELOST = &H88760868
%D3DERR_DEVICENOTRESET = &H88760869
%D3DERR_NOTAVAILABLE = &H8876086A
%D3DERR_OUTOFVIDEOMEMORY = &H8876017C
%D3DERR_INVALIDDEVICE = &H8876086B
%D3DERR_INVALIDCALL = &H8876086C
%D3DERR_DRIVERINVALIDCALL = &H8876086D
%D3DOK_NOAUTOGEN = &H0876086F
 

 

D3DFILLMODE Enumerated Type

 

Defines constants describing the fill mode.

 

%D3DFILL_POINT = 1
%D3DFILL_WIREFRAME = 2
%D3DFILL_SOLID = 3
%D3DFILL_FORCE_DWORD = &H7FFFFFFF

 

 

D3DFOGMODE Enumerated Type

 

Defines constants that describe the fog mode.

 

%D3DFOG_NONE = 0
%D3DFOG_EXP = 1
%D3DFOG_EXP2 = 2
%D3DFOG_LINEAR = 3
%D3DFOG_FORCE_DWORD = &H7FFFFFFF

 

 

D3DFORMAT Enumerated Type

 

Defines the various types of surface formats.

 

%D3DFMT_UNKNOWN = 0

%D3DFMT_R8G8B8 = 20
%D3DFMT_A8R8G8B8 = 21
%D3DFMT_X8R8G8B8 = 22
%D3DFMT_R5G6B5 = 23
%D3DFMT_X1R5G5B5 = 24
%D3DFMT_A1R5G5B5 = 25
%D3DFMT_A4R4G4B4 = 26
%D3DFMT_R3G3B2 = 27
%D3DFMT_A8 = 28
%D3DFMT_A8R3G3B2 = 29
%D3DFMT_X4R4G4B4 = 30
%D3DFMT_A2B10G10R10 = 31
%D3DFMT_A8B8G8R8 = 32
%D3DFMT_X8B8G8R8 = 33
%D3DFMT_G16R16 = 34
%D3DFMT_A2R10G10B10 = 35
%D3DFMT_A16B16G16R16 = 36

%D3DFMT_A8P8 = 40
%D3DFMT_P8 = 41

%D3DFMT_L8 = 50
%D3DFMT_A8L8 = 51
%D3DFMT_A4L4 = 52

%D3DFMT_V8U8 = 60
%D3DFMT_L6V5U5 = 61
%D3DFMT_X8L8V8U8 = 62
%D3DFMT_Q8W8V8U8 = 63
%D3DFMT_V16U16 = 64
%D3DFMT_A2W10V10U10 = 67

'D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
'D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
'D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
'D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
'D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
'D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
'D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
'D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
'D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),


%D3DFMT_UYVY = &H59565955
%D3DFMT_R8G8_B8G8 = &H47424752
%D3DFMT_YUY2 = &H32595559
%D3DFMT_G8R8_G8B8 = &H42475247
%D3DFMT_DXT1 = &H31545844
%D3DFMT_DXT2 = &H32545844
%D3DFMT_DXT3 = &H33545844
%D3DFMT_DXT4 = &H34545844
%D3DFMT_DXT5 = &H35545844


%D3DFMT_D16_LOCKABLE = 70
%D3DFMT_D32 = 71
%D3DFMT_D15S1 = 73
%D3DFMT_D24S8 = 75
%D3DFMT_D24X8 = 77
%D3DFMT_D24X4S4 = 79
%D3DFMT_D16 = 80

%D3DFMT_D32F_LOCKABLE = 82
%D3DFMT_D24FS8 = 83


%D3DFMT_L16 = 81

%D3DFMT_VERTEXDATA = 100
%D3DFMT_INDEX16 = 101
%D3DFMT_INDEX32 = 102

%D3DFMT_Q16W16V16U16 = 110

'%D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'),
%D3DFMT_MULTI2_ARGB8 = &H3154454D

' // Floating point surface formats

' // s10e5 formats (16-bits per channel)

%D3DFMT_R16F = 111
%D3DFMT_G16R16F = 112
%D3DFMT_A16B16G16R16F = 113

' // IEEE s23e8 formats (32-bits per channel)
%D3DFMT_R32F = 114
%D3DFMT_G32R32F = 115
%D3DFMT_A32B32G32R32F = 116

%D3DFMT_CxV8U8 = 117

%D3DFMT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DFVF

 

Flexible Vertex Format Constants, or flexible vertex format (FVF) codes, are used to describe the contents of vertices interleaved in a single data stream that will be processed by the fixed-function pipeline.

 

%D3DFVF_RESERVED0 = &H001
%D3DFVF_POSITION_MASK = &H400E
%D3DFVF_XYZ = &H002
%D3DFVF_XYZRHW = &H004
%D3DFVF_XYZB1 = &H006
%D3DFVF_XYZB2 = &H008
%D3DFVF_XYZB3 = &H00A
%D3DFVF_XYZB4 = &H00C
%D3DFVF_XYZB5 = &H00E
%D3DFVF_XYZW = &H4002

%D3DFVF_NORMAL = &H010
%D3DFVF_PSIZE = &H020
%D3DFVF_DIFFUSE = &H040
%D3DFVF_SPECULAR = &H080

%D3DFVF_TEXCOUNT_MASK = &HF00
%D3DFVF_TEXCOUNT_SHIFT = 8
%D3DFVF_TEX0 = &H000
%D3DFVF_TEX1 = &H100
%D3DFVF_TEX2 = &H200
%D3DFVF_TEX3 = &H300
%D3DFVF_TEX4 = &H400
%D3DFVF_TEX5 = &H500
%D3DFVF_TEX6 = &H600
%D3DFVF_TEX7 = &H700
%D3DFVF_TEX8 = &H800

%D3DFVF_LASTBETA_UBYTE4 = &H1000
%D3DFVF_LASTBETA_D3DCOLOR = &H8000

%D3DFVF_RESERVED2 = &H6000

 

 

D3DLIGHTTYPE Enumerated Type

 

Defines the light type.

 

%D3DLIGHT_POINT = 1
%D3DLIGHT_SPOT = 2
%D3DLIGHT_DIRECTIONAL = 3
%D3DLIGHT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DLOCK

 

A combination of zero or more locking options that describe the type of lock to perform.

 

%D3DLOCK_READONLY = &H00000010&
%D3DLOCK_DISCARD = &H00002000&
%D3DLOCK_NOOVERWRITE = &H00001000&
%D3DLOCK_NOSYSLOCK = &H00000800&
%D3DLOCK_DONOTWAIT = &H00004000&
%D3DLOCK_NO_DIRTY_UPDATE = &H00008000&

 

 

D3DMATERIALCOLORSOURCE Enumerated Type

 

Defines the location at which a color or color component must be accessed for lighting calculations.

 

%D3DMCS_MATERIAL = 0
%D3DMCS_COLOR1 = 1

%D3DMCS_COLOR2 = 2
%D3DMCS_FORCE_DWORD = &H7FFFFFFF

 

 

D3DMULTISAMPLE_TYPE Enumerated Type

 

Defines levels of full-scene multisampling that the device can apply.

 

%D3DMULTISAMPLE_NONE = 0
%D3DMULTISAMPLE_NONMASKABLE = 1
%D3DMULTISAMPLE_2_SAMPLES = 2
%D3DMULTISAMPLE_3_SAMPLES = 3
%D3DMULTISAMPLE_4_SAMPLES = 4
%D3DMULTISAMPLE_5_SAMPLES = 5
%D3DMULTISAMPLE_6_SAMPLES = 6
%D3DMULTISAMPLE_7_SAMPLES = 7
%D3DMULTISAMPLE_8_SAMPLES = 8
%D3DMULTISAMPLE_9_SAMPLES = 9
%D3DMULTISAMPLE_10_SAMPLES = 10
%D3DMULTISAMPLE_11_SAMPLES = 11
%D3DMULTISAMPLE_12_SAMPLES = 12
%D3DMULTISAMPLE_13_SAMPLES = 13
%D3DMULTISAMPLE_14_SAMPLES = 14
%D3DMULTISAMPLE_15_SAMPLES = 15
%D3DMULTISAMPLE_16_SAMPLES = 16
%D3DMULTISAMPLE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DPATCHEDGESTYLE Enumerated Type

 

Defines whether the current tessellation mode is discrete or continuous.

 

%D3DPATCHEDGE_DISCRETE = 0
%D3DPATCHEDGE_CONTINUOUS = 1
%D3DPATCHEDGE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DPMISCCAPS

 

Miscellaneous driver primitive capability flags.

 

%D3DPMISCCAPS_MASKZ = &H00000002&
%D3DPMISCCAPS_CULLNONE = &H00000010&
%D3DPMISCCAPS_CULLCW = &H00000020&
%D3DPMISCCAPS_CULLCCW = &H00000040&
%D3DPMISCCAPS_COLORWRITEENABLE = &H00000080&
%D3DPMISCCAPS_CLIPPLANESCALEDPOINTS = &H00000100&

%D3DPMISCCAPS_CLIPTLVERTS = &H00000200&
%D3DPMISCCAPS_TSSARGTEMP = &H00000400&
%D3DPMISCCAPS_BLENDOP = &H00000800&
%D3DPMISCCAPS_NULLREFERENCE = &H00001000&
%D3DPMISCCAPS_INDEPENDENTWRITEMASKS = &H00004000&
%D3DPMISCCAPS_PERSTAGECONSTANT = &H00008000&
%D3DPMISCCAPS_FOGANDSPECULARALPHA = &H00010000&
%D3DPMISCCAPS_SEPARATEALPHABLEND = &H00020000&
%D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS = &H00040000&
%D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING = &H00080000&
%D3DPMISCCAPS_FOGVERTEXCLAMPED = &H00100000&

 

 

D3DPOOL Enumerated Type

 

Defines the memory class that holds a resource's buffers.

 

%D3DPOOL_DEFAULT = 0
%D3DPOOL_MANAGED = 1
%D3DPOOL_SYSTEMMEM = 2
%D3DPOOL_SCRATCH = 3
%D3DPOOL_FORCE_DWORD = &H7FFFFFFF

 

 

D3DPRESENT

 

Describes the relationship between the adapter refresh rate and the rate at which IDirect3DDevice9::Present or IDirect3DSwapChain9::Present operations are completed. These values also seršve as flag values for the PresentationIntervals field of D3DCAPS9.

 

%D3DPRESENT_INTERVAL_DEFAULT = &H00000000&
%D3DPRESENT_INTERVAL_ONE = &H00000001&
%D3DPRESENT_INTERVAL_TWO = &H00000002&
%D3DPRESENT_INTERVAL_THREE = &H00000004&
%D3DPRESENT_INTERVAL_FOUR = &H00000008&
%D3DPRESENT_INTERVAL_IMMEDIATE = &H80000000&

 

 

D3DPRESENTFLAG

 

Constants used by D3DPRESENT_PARAMETERS.

 

%D3DPRESENTFLAG_LOCKABLE_BACKBUFFER = &H00000001
%D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL = &H00000002
%D3DPRESENTFLAG_DEVICECLIP = &H00000004
%D3DPRESENTFLAG_VIDEO = &H00000010

 

 

D3DPRIMITIVETYPE Enumerated Type

 

Defines the memory class that holds a resource's buffers.

 

%D3DPT_POINTLIST = 1
%D3DPT_LINELIST = 2
%D3DPT_LINESTRIP = 3
%D3DPT_TRIANGLELIST = 4
%D3DPT_TRIANGLESTRIP = 5
%D3DPT_TRIANGLEFAN = 6
%D3DPT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DPS20CAPS

 

Pixel shader capability flags.

 

%D3DPS20CAPS_ARBITRARYSWIZZLE = 1
%D3DPS20CAPS_GRADIENTINSTRUCTIONS = 2
%D3DPS20CAPS_PREDICATION = 4
%D3DPS20CAPS_NODEPENDENTREADLIMIT = 8
%D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT = 16

%D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24
%D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0
%D3DPS20_MAX_NUMTEMPS = 32
%D3DPS20_MIN_NUMTEMPS = 12
%D3DPS20_MAX_STATICFLOWCONTROLDEPTH = 4
%D3DPS20_MIN_STATICFLOWCONTROLDEPTH = 0
%D3DPS20_MAX_NUMINSTRUCTIONSLOTS = 512
%D3DPS20_MIN_NUMINSTRUCTIONSLOTS = 96

 

 

D3DPTFILTERCAPS

 

Texture filtering constants.

 

%D3DPTFILTERCAPS_MINFPOINT = &H00000100&
%D3DPTFILTERCAPS_MINFLINEAR = &H00000200&
%D3DPTFILTERCAPS_MINFANISOTROPIC = &H00000400&
%D3DPTFILTERCAPS_MINFPYRAMIDALQUAD = &H00000800&
%D3DPTFILTERCAPS_MINFGAUSSIANQUAD = &H00001000&
%D3DPTFILTERCAPS_MIPFPOINT = &H00010000&
%D3DPTFILTERCAPS_MIPFLINEAR = &H00020000&
%D3DPTFILTERCAPS_MAGFPOINT = &H01000000&
%D3DPTFILTERCAPS_MAGFLINEAR = &H02000000&
%D3DPTFILTERCAPS_MAGFANISOTROPIC = &H04000000&
%D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD = &H08000000&
%D3DPTFILTERCAPS_MAGFGAUSSIANQUAD = &H10000000&

 

 

D3DQUERYTYPE Enumerated Type

 

Identifies the query type.

 

%D3DQUERYTYPE_VCACHE = 4
%D3DQUERYTYPE_RESOURCEMANAGER = 5
%D3DQUERYTYPE_VERTEXSTATS = 6
%D3DQUERYTYPE_EVENT = 8
%D3DQUERYTYPE_OCCLUSION = 9
%D3DQUERYTYPE_TIMESTAMP = 10
%D3DQUERYTYPE_TIMESTAMPDISJOINT = 11
%D3DQUERYTYPE_TIMESTAMPFREQ = 12

%D3DQUERYTYPE_PIPELINETIMINGS = 13
%D3DQUERYTYPE_INTERFACETIMINGS = 14
%D3DQUERYTYPE_VERTEXTIMINGS = 15
%D3DQUERYTYPE_PIXELTIMINGS = 16
%D3DQUERYTYPE_BANDWIDTHTIMINGS = 17
%D3DQUERYTYPE_CACHEUTILIZATION = 18

 

 

D3DRENDERSTATETYPE Enumerated Type

 

Render states define set-up states for all kinds of vertex and pixel processing. Some render states set-up vertex processing, and some set-up pixel processing. Render states can be saved and restored using stateblocks.

 

%D3DRS_ZENABLE = 7
%D3DRS_FILLMODE = 8
%D3DRS_SHADEMODE = 9
%D3DRS_ZWRITEENABLE = 14
%D3DRS_ALPHATESTENABLE = 15
%D3DRS_LASTPIXEL = 16
%D3DRS_SRCBLEND = 19
%D3DRS_DESTBLEND = 20
%D3DRS_CULLMODE = 22
%D3DRS_ZFUNC = 23
%D3DRS_ALPHAREF = 24
%D3DRS_ALPHAFUNC = 25
%D3DRS_DITHERENABLE = 26
%D3DRS_ALPHABLENDENABLE = 27
%D3DRS_FOGENABLE = 28
%D3DRS_SPECULARENABLE = 29

%D3DRS_ZVISIBLE = 30
%D3DRS_FOGCOLOR = 34
%D3DRS_FOGTABLEMODE = 35
%D3DRS_FOGSTART = 36
%D3DRS_FOGEND = 37

%D3DRS_FOGDENSITY = 38
%D3DRS_RANGEFOGENABLE = 48
%D3DRS_STENCILENABLE = 52
%D3DRS_STENCILFAIL = 53
%D3DRS_STENCILZFAIL = 54
%D3DRS_STENCILPASS = 55
%D3DRS_STENCILFUNC = 56
%D3DRS_STENCILREF = 57
%D3DRS_STENCILMASK = 58
%D3DRS_STENCILWRITEMASK = 59
%D3DRS_TEXTUREFACTOR = 60
%D3DRS_WRAP0 = 128
%D3DRS_WRAP1 = 129
%D3DRS_WRAP2 = 130
%D3DRS_WRAP3 = 131
%D3DRS_WRAP4 = 132
%D3DRS_WRAP5 = 133
%D3DRS_WRAP6 = 134
%D3DRS_WRAP7 = 135
%D3DRS_CLIPPING = 136
%D3DRS_LIGHTING = 137
%D3DRS_AMBIENT = 139
%D3DRS_FOGVERTEXMODE = 140
%D3DRS_COLORVERTEX = 141
%D3DRS_LOCALVIEWER = 142
%D3DRS_NORMALIZENORMALS = 143
%D3DRS_DIFFUSEMATERIALSOURCE = 145
%D3DRS_SPECULARMATERIALSOURCE = 146
%D3DRS_AMBIENTMATERIALSOURCE = 147
%D3DRS_EMISSIVEMATERIALSOURCE = 148
%D3DRS_VERTEXBLEND = 151
%D3DRS_CLIPPLANEENABLE = 152
%D3DRS_POINTSIZE = 154
%D3DRS_POINTSIZE_MIN = 155
%D3DRS_POINTSPRITE_ENABLE = 156
%D3DRS_POINTSCALE_ENABLE = 157
%D3DRS_POINTSCALE_A = 158
%D3DRS_POINTSCALE_B = 159
%D3DRS_POINTSCALE_C = 160
%D3DRS_MULTISAMPLE_ANTIALIAS = 161
%D3DRS_MULTISAMPLE_MASK = 162
%D3DRS_PATCHEDGESTYLE = 163
%D3DRS_DEBUGMONITORTOKEN = 165
%D3DRS_POINT_SIZE_MAX = 166
%D3DRS_INDEXVERTEXBLENDENABLE = 167
%D3DRS_COLORWRITEENABLE = 168
%D3DRS_TWEENFACTOR = 170
%D3DRS_BLENDOP = 171
%D3DRS_POSITIONDEGREE = 172

%D3DRS_NORMALDEGREE = 173
%D3DRS_SCISSORTESTENABLE = 174
%D3DRS_SLOPESCALEDEPTHBIAS = 175
%D3DRS_ANTIALIASEDLINEENABLE = 176
%D3DRS_MINTESSELLATIONLEVEL = 178
%D3DRS_MAXTESSELLATIONLEVEL = 179
%D3DRS_ADAPTIVETESS_X = 180
%D3DRS_ADAPTIVETESS_Y = 181
%D3DRS_ADAPTIVETESS_Z = 182
%D3DRS_ADAPTIVETESS_W = 183
%D3DRS_ENABLEADAPTIVETESSELLATION = 184
%D3DRS_TWOSIDEDSTENCILMODE = 185
%D3DRS_CCW_STENCILFAIL = 186
%D3DRS_CCW_STENCILZFAIL = 187
%D3DRS_CCW_STENCILPASS = 188
%D3DRS_CCW_STENCILFUNC = 189
%D3DRS_COLORWRITEENABLE1 = 190
%D3DRS_COLORWRITEENABLE2 = 191
%D3DRS_COLORWRITEENABLE3 = 192
%D3DRS_BLENDFACTOR = 193
%D3DRS_SRGBWRITEENABLE = 194
%D3DRS_DEPTHBIAS = 195
%D3DRS_WRAP8 = 198
%D3DRS_WRAP9 = 199
%D3DRS_WRAP10 = 200
%D3DRS_WRAP11 = 201
%D3DRS_WRAP12 = 202
%D3DRS_WRAP13 = 203
%D3DRS_WRAP14 = 204
%D3DRS_WRAP15 = 205
%D3DRS_SEPARATEALPHABLENDENABLE = 206
%D3DRS_SRCBLENDALPHA = 207
%D3DRS_DESTBLENDALPHA = 208
%D3DRS_BLENDOPALPHA = 209
%D3DRS_FORCE_DWORD = &H7FFFFFFF

' // Maximum number of simultaneous render targets D3D supports
%D3D_MAX_SIMULTANEOUS_RENDERTARGETS = 4

 

 

D3DRESOURCETYPE Enumerated Type

 

Defines resource types.

 

%D3DRTYPE_SURFACE = 1
%D3DRTYPE_VOLUME = 2
%D3DRTYPE_TEXTURE = 3
%D3DRTYPE_VOLUMETEXTURE = 4
%D3DRTYPE_CUBETEXTURE = 5
%D3DRTYPE_VERTEXBUFFER = 6
%D3DRTYPE_INDEXBUFFER = 7
%D3DRTYPE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSAMPLER_TEXTURE_TYPE Enumerated Type

 

Defines resource types.

 

%D3DSTT_UNKNOWN = &H0
%D3DSTT_2D = &H10000000
%D3DSTT_CUBE = &H18000000
%D3DSTT_VOLUME = &H20000000
%D3DSTT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSAMPLERSTATETYPE Enumerated Type

 

Sampler states define texture sampling operations such as texture addressing and texture filtering. Some sampler states set-up vertex processing, and some set-up pixel processing. Sampler states can be saved and restored using stateblocks.

 

%D3DSAMP_ADDRESSU = 1
%D3DSAMP_ADDRESSV = 2
%D3DSAMP_ADDRESSW = 3
%D3DSAMP_BORDERCOLOR = 4
%D3DSAMP_MAGFILTER = 5
%D3DSAMP_MINFILTER = 6
%D3DSAMP_MIPFILTER = 7
%D3DSAMP_MIPMAPLODBIAS = 8
%D3DSAMP_MAXMIPLEVEL = 9
%D3DSAMP_MAXANISOTROPY = 10
%D3DSAMP_SRGBTEXTURE = 11
%D3DSAMP_ELEMENTINDEX = 12
%D3DSAMP_DMAPOFFSET = 13
%D3DSAMP_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSHADEMODE Enumerated Type

 

Defines constants that describe the supported shading modes.

 

%D3DSHADE_FLAT = 1
%D3DSHADE_GOURAUD = 2
%D3DSHADE_PHONG = 3
%D3DSHADE_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSHADER_COMPARISON Enumerated Type

 

%D3DSPC_RESERVED0 = 0 ' // 0 0 0
%D3DSPC_GT = 1 ' // 0 0 1
%D3DSPC_EQ = 2 ' // 0 1 0
%D3DSPC_GE = 3 ' // 0 1 1
%D3DSPC_LT = 4 ' // 1 0 0
%D3DSPC_NE = 5 ' // 1 0 1
%D3DSPC_LE = 6 ' // 1 1 0
%D3DSPC_RESERVED1 = 7 ' // 1 1 1

'// Comparison is part of instruction opcode token:
'#define D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT
'#define D3DSHADER_COMPARISON_MASK (0x7<<D3DSHADER_COMPARISON_SHIFT)

%D3DSHADER_COMPARISON_SHIFT = %D3DSP_OPCODESPECIFICCONTROL_SHIFT
%D3DSHADER_COMPARISON_MASK = &H70000

 

 

D3DSHADER_PARAM_REGISTER_TYPE Enumerated Type

 

%%D3DSPR_TEMP = 0 ' // Temporary Register File
%D3DSPR_INPUT = 1 ' // Input Register File
%D3DSPR_CONST = 2 ' // Constant Register File
%D3DSPR_ADDR = 3 ' // Address Register (VS)
%D3DSPR_TEXTURE = 3 ' // Texture Register File (PS)
%D3DSPR_RASTOUT = 4 ' // Rasterizer Register File
%D3DSPR_ATTROUT = 5 ' // Attribute Output Register File
%D3DSPR_TEXCRDOUT = 6 ' // Texture Coordinate Output Register File
%D3DSPR_OUTPUT = 6 ' // Output register file for VS3.0+
%D3DSPR_CONSTINT = 7 ' // Constant Integer Vector Register File
%D3DSPR_COLOROUT = 8 ' // Color Output Register File
%D3DSPR_DEPTHOUT = 9 ' // Depth Output Register File
%D3DSPR_SAMPLER = 10 ' // Sampler State Register File
%D3DSPR_CONST2 = 11 ' // Constant Register File 2048 - 4095
%D3DSPR_CONST3 = 12 ' // Constant Register File 4096 - 6143
%D3DSPR_CONST4 = 13 ' // Constant Register File 6144 - 8191
%D3DSPR_CONSTBOOL = 14 ' // Constant Boolean register file
%D3DSPR_LOOP = 15 ' // Loop counter register file
%D3DSPR_TEMPFLOAT16 = 16 ' // 16-bit float temp register file
%D3DSPR_MISCTYPE = 17 ' // Miscellaneous (single) registers.
%D3DSPR_LABEL = 18 ' // Label
%D3DSPR_PREDICATE = 19 ' // Predicate register
%D3DSPR_FORCE_DWORD = &H7FFFFFFF ' // force 32-bit size enum

 

 

D3DSTATEBLOCKTYPE Enumerated Type

 

Predefined sets of pipeline state used by state blocks.

 

%D3DSBT_ALL = 1

%D3DSBT_PIXELSTATE = 2

%D3DSBT_VERTEXSTATE = 3
%D3DSBT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSTENCILCAPS

 

Driver stencil capability flags.

 

%D3DSTENCILCAPS_KEEP = &H00000001&
%D3DSTENCILCAPS_ZERO = &H00000002&
%D3DSTENCILCAPS_REPLACE = &H00000004&
%D3DSTENCILCAPS_INCRSAT = &H00000008&
%D3DSTENCILCAPS_DECRSAT = &H00000010&
%D3DSTENCILCAPS_INVERT = &H00000020&
%D3DSTENCILCAPS_INCR = &H00000040&
%D3DSTENCILCAPS_DECR = &H00000080&
%D3DSTENCILCAPS_TWOSIDED = &H00000100&

 

 

D3DSTENCILOP Enumerated Type

 

Defines stencil-buffer operations.

 

%D3DSTENCILOP_KEEP = 1
%D3DSTENCILOP_ZERO = 2
%D3DSTENCILOP_REPLACE = 3
%D3DSTENCILOP_INCRSAT = 4
%D3DSTENCILOP_DECRSAT = 5
%D3DSTENCILOP_INVERT = 6
%D3DSTENCILOP_INCR = 7
%D3DSTENCILOP_DECR = 8
%D3DSTENCILOP_FORCE_DWORD = &H7FFFFFFF

 

 

D3DSWAPEFFECT Enumerated Type

 

Defines swap effects.

 

%D3DSWAPEFFECT_DISCARD = 1
%D3DSWAPEFFECT_FLIP = 2
%D3DSWAPEFFECT_COPY = 3
%D3DSWAPEFFECT_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTA

 

Texture argument constants.

 

%D3DTA_SELECTMASK = &H0000000F
%D3DTA_DIFFUSE = &H00000000
%D3DTA_CURRENT = &H00000001
%D3DTA_TEXTURE = &H00000002
%D3DTA_TFACTOR = &H00000003
%D3DTA_SPECULAR = &H00000004
%D3DTA_TEMP = &H00000005
%D3DTA_CONSTANT = &H00000006
%D3DTA_COMPLEMENT = &H00000010
%D3DTA_ALPHAREPLICATE = &H00000020

 

 

D3DTEXTUREADDRESS Enumerated Type

 

Defines swap effects.

 

%D3DTADDRESS_WRAP = 1
%D3DTADDRESS_MIRROR = 2
%D3DTADDRESS_CLAMP = 3
%D3DTADDRESS_BORDER = 4
%D3DTADDRESS_MIRRORONCE = 5
%D3DTADDRESS_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTEXTUREFILTERTYPE Enumerated Type

 

Defines swap effects.

 

%D3DTEXF_NONE = 0

%D3DTEXF_POINT = 1
%D3DTEXF_LINEAR = 2
%D3DTEXF_ANISOTROPIC = 3
%D3DTEXF_PYRAMIDALQUAD = 6
%D3DTEXF_GAUSSIANQUAD = 7
%D3DTEXF_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTEXTUREOP Enumerated Type

 

Defines per-stage texture-blending operations.

 

%D3DTOP_DISABLE = 1
%D3DTOP_SELECTARG1 = 2
%D3DTOP_SELECTARG2 = 3
%D3DTOP_MODULATE = 4
%D3DTOP_MODULATE2X = 5
%D3DTOP_MODULATE4X = 6
%D3DTOP_ADD = 7
%D3DTOP_ADDSIGNED = 8
%D3DTOP_ADDSIGNED2X = 9
%D3DTOP_SUBTRACT = 10
%D3DTOP_ADDSMOOTH = 11
%D3DTOP_BLENDDIFFUSEALPHA = 12

%D3DTOP_BLENDTEXTUREALPHA = 13
%D3DTOP_BLENDFACTORALPHA = 14
%D3DTOP_BLENDTEXTUREALPHAPM = 15
%D3DTOP_BLENDCURRENTALPHA = 16
%D3DTOP_PREMODULATE = 17
%D3DTOP_MODULATEALPHA_ADDCOLOR = 18
%D3DTOP_MODULATECOLOR_ADDALPHA = 19
%D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20
%D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21
%D3DTOP_BUMPENVMAP = 22
%D3DTOP_BUMPENVMAPLUMINANCE = 23
%D3DTOP_DOTPRODUCT3 = 24
%D3DTOP_MULTIPLYADD = 25
%D3DTOP_LERP = 26
%D3DTOP_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTEXTURESTAGESTATETYPE Enumerated Type

 

Defines swap effects.

 

%D3DTSS_COLOROP = 1

%D3DTSS_COLORARG1 = 2
%D3DTSS_COLORARG2 = 3
%D3DTSS_ALPHAOP = 4
%D3DTSS_ALPHAARG1 = 5
%D3DTSS_ALPHAARG2 = 6
%D3DTSS_BUMPENVMAT00 = 7
%D3DTSS_BUMPENVMAT01 = 8
%D3DTSS_BUMPENVMAT10 = 9
%D3DTSS_BUMPENVMAT11 = 10

%D3DTSS_TEXCOORDINDEX = 11
%D3DTSS_BUMPENVLSCALE = 22
%D3DTSS_BUMPENVLOFFSET = 23
%D3DTSS_TEXTURETRANSFORMFLAGS = 24
%D3DTSS_COLORARG0 = 26
%D3DTSS_ALPHAARG0 = 27
%D3DTSS_RESULTARG = 28
%D3DTSS_CONSTANT = 32
%D3DTSS_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTEXTURETRANSFORMFLAGS Enumerated Type

 

Defines swap effects.

 

%D3DTTFF_DISABLE = 0

%D3DTTFF_COUNT1 = 1

%D3DTTFF_COUNT2 = 2

%D3DTTFF_COUNT3 = 3

%D3DTTFF_COUNT4 = 4

%D3DTTFF_PROJECTED = 256

%D3DTTFF_FORCE_DWORD = &H7FFFFFFF

 

 

D3DTRANSFORMSTATETYPE Enumerated Type

 

Defines constants that describe transformation state values.

 

%D3DTS_VIEW = 2
%D3DTS_PROJECTION = 3
%D3DTS_TEXTURE0 = 16
%D3DTS_TEXTURE1 = 17
%D3DTS_TEXTURE2 = 18
%D3DTS_TEXTURE3 = 19
%D3DTS_TEXTURE4 = 20
%D3DTS_TEXTURE5 = 21
%D3DTS_TEXTURE6 = 22
%D3DTS_TEXTURE7 = 23
%D3DTS_FORCE_DWORD = &H7FFFFFFF

 

'#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
'#define D3DTS_WORLD D3DTS_WORLDMATRIX(0)
'#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
'#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
'#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)


%D3DTS_WORLD = 256
%D3DTS_WORLD1 = 257
%D3DTS_WORLD2 = 258
%D3DTS_WORLD3 = 259

 

 

D3DTSS_TCI

 

Driver texture coordinate capability flags.

 

%D3DTSS_TCI_PASSTHRU = &H00000000
%D3DTSS_TCI_CAMERASPACENORMAL = &H00010000
%D3DTSS_TCI_CAMERASPACEPOSITION = &H00020000
%D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = &H00030000
%D3DTSS_TCI_SPHEREMAP = &H00040000

 

 

D3DUSAGE

 

Usage options that identify how resources are to be used.

 

%D3DUSAGE_RENDERTARGET = &H00000001&
%D3DUSAGE_DEPTHSTENCIL = &H00000002&
%D3DUSAGE_DYNAMIC = &H00000200&
%D3DUSAGE_AUTOGENMIPMAP = &H00000400&
%D3DUSAGE_DMAP = &H00004000&
%D3DUSAGE_QUERY_LEGACYBUMPMAP = &H00008000&
%D3DUSAGE_QUERY_SRGBREAD = &H00010000&
%D3DUSAGE_QUERY_FILTER = &H00020000&
%D3DUSAGE_QUERY_SRGBWRITE = &H00040000&
%D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING = &H00080000&
%D3DUSAGE_QUERY_VERTEXTEXTURE = &H00100000&
%D3DUSAGE_QUERY_WRAPANDMIP = &H00200000&
%D3DUSAGE_WRITEONLY = &H00000008&
%D3DUSAGE_SOFTWAREPROCESSING = &H00000010&
%D3DUSAGE_DONOTCLIP = &H00000020&
%D3DUSAGE_POINTS = &H00000040&
%D3DUSAGE_RTPATCHES = &H00000080&
%D3DUSAGE_NPATCHES = &H00000100&

 

 

D3DUSAGE_QUERY

 

These options identify query resource types.

 

%D3DUSAGE_QUERY_LEGACYBUMPMAP = &H00008000&
%D3DUSAGE_QUERY_SRGBREAD = &H00010000&
%D3DUSAGE_QUERY_FILTER = &H00020000&
%D3DUSAGE_QUERY_SRGBWRITE = &H00040000&
%D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING = &H00080000&
%D3DUSAGE_QUERY_VERTEXTEXTURE = &H00100000&
%D3DUSAGE_QUERY_WRAPANDMIP = &H00200000&

 

 

D3DVERTEXBLENDFLAGS Enumerated Type

 

Defines flags used to control the number or matrices that the system applies when performing multimatrix vertex blending.

 

%D3DVBF_DISABLE = 0
%D3DVBF_1WEIGHTS = 1
%D3DVBF_2WEIGHTS = 2
%D3DVBF_3WEIGHTS = 3
%D3DVBF_TWEENING = 255

%D3DVBF_0WEIGHTS = 256
%D3DVBF_FORCE_DWORD = &H7FFFFFFF

 

 

D3DVERTEXTEXTURESAMPLER

 

Vertex texture sampler constants.

 

%D3DDMAPSAMPLER = 256
%D3DVERTEXTEXTURESAMPLER0 = %D3DDMAPSAMPLER + 1
%D3DVERTEXTEXTURESAMPLER1 = %D3DDMAPSAMPLER + 2
%D3DVERTEXTEXTURESAMPLER2 = %D3DDMAPSAMPLER + 3
%D3DVERTEXTEXTURESAMPLER3 = %D3DDMAPSAMPLER + 4

 

 

D3DVS20CAPS

 

Vertex shader capability constants.

 

%D3DVS20CAPS_PREDICATION = 1
%D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24
%D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0
%D3DVS20_MAX_NUMTEMPS = 32
%D3DVS20_MIN_NUMTEMPS = 12
%D3DVS20_MAX_STATICFLOWCONTROLDEPTH = 4
%D3DVS20_MIN_STATICFLOWCONTROLDEPTH = 1

 

 

D3DVTXPCAPS

 

A combination of one or more flags that control the device create behavior.

 

%D3DVTXPCAPS_TEXGEN = &H00000001&
%D3DVTXPCAPS_MATERIALSOURCE7 = &H00000002&
%D3DVTXPCAPS_DIRECTIONALLIGHTS = &H00000008&
%D3DVTXPCAPS_POSITIONALLIGHTS = &H00000010&
%D3DVTXPCAPS_LOCALVIEWER = &H00000020&
%D3DVTXPCAPS_TWEENING = &H00000040&
%D3DVTXPCAPS_TEXGEN_SPHEREMAP = &H00000100&
%D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER = &H00000200&

 

 

D3DZBUFFERTYPE Enumerated Type

 

Defines constants that describe depth-buffer formats.

 

%D3DZB_FALSE = 0
%D3DZB_TRUE = 1
%D3DZB_USEW = 2
%D3DZB_FORCE_DWORD = &H7FFFFFFF

 

 

Other Direct3D Constants

 

Process Vertices Constant

 

The following constant is used in the IDirect3DDevice9::ProcessVertices method.

 

%D3DPV_DONOTCOPYDATA = 1

 

SetStreamSourceFreq Constants

 

Either of these constants is designed to be logically combined with the StreamNumber parameter in IDirect3DDevice9::SetStreamSourceFreq to draw one or more instances of the same geometry.

 

%D3DSTREAMSOURCE_INDEXEDDATA = &H40000000
%D3DSTREAMSOURCE_INSTANCEDATA = &H80000000

 

Internal Use Constants

 

The following table lists Microsoft Direct3D constants that are used internally.

 

%D3D_MAX_SIMULTANEOUS_RENDERTARGETS = 4
%D3DDP_MAXTEXCOORD = 8
%D3DPRESENT_BACK_BUFFERS_MAX = 3&
%D3DPRESENT_RATE_DEFAULT = &H00000000
%D3DRTYPECOUNT = %D3DRTYPE_INDEXBUFFER + 1
%MAXD3DDECLLENGTH = 64

%MAXD3DDECLMETHOD = %D3DDECLMETHOD_LOOKUPPRESAMPLED
%MAXD3DDECLTYPE = %D3DDECLTYPE_UNUSED
%MAXD3DDECLUSAGE = %D3DDECLUSAGE_SAMPLE
%MAXD3DDECLUSAGEINDEX = 15
%D3D_SDK_VERSION = 32
%D3D9b_SDK_VERSION = 31

 

 

 

%DIRECT3D_VERSION = &H0900

' // D3DCOLOR is equivalent to D3DFMT_A8R8G8B8
MACRO D3DCOLOR = DWORD

'// maps unsigned 8 bits/channel to D3DCOLOR
'#define D3DCOLOR_ARGB(a,r,g,b) \
' ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
'#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
'#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b)

'#define D3DCOLOR_XYUV(y,u,v) D3DCOLOR_ARGB(0xff,y,u,v)
'#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)

'// maps floating point channels (0.f to 1.f range) to D3DCOLOR
'#define D3DCOLOR_COLORVALUE(r,g,b,a) \
' D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))


'/*
' * Values for clip fields.
' */


' // Max number of user clipping planes, supported in D3D.
%D3DMAXUSERCLIPPLANES = 32

'// These bits could be ORed together to use with D3DRS_CLIPPLANEENABLE
'//
'#define D3DCLIPPLANE0 (1 << 0)
'#define D3DCLIPPLANE1 (1 << 1)
'#define D3DCLIPPLANE2 (1 << 2)
'#define D3DCLIPPLANE3 (1 << 3)
'#define D3DCLIPPLANE4 (1 << 4)
'#define D3DCLIPPLANE5 (1 << 5)


%D3DCLIPPLANE0 = 1
%D3DCLIPPLANE1 = 2
%D3DCLIPPLANE2 = 4
%D3DCLIPPLANE3 = 8
%D3DCLIPPLANE4 = 16
%D3DCLIPPLANE5 = 32

'// The following bits are used in the ClipUnion and ClipIntersection
'// members of the D3DCLIPSTATUS9
'//


%D3DCS_LEFT = &H00000001&
%D3DCS_RIGHT = &H00000002&
%D3DCS_TOP = &H00000004&
%D3DCS_BOTTOM = &H00000008&
%D3DCS_FRONT = &H00000010&
%D3DCS_BACK = &H00000020&
%D3DCS_PLANE0 = &H00000040&
%D3DCS_PLANE1 = &H00000080&
%D3DCS_PLANE2 = &H00000100&
%D3DCS_PLANE3 = &H00000200&
%D3DCS_PLANE4 = &H00000400&
%D3DCS_PLANE5 = &H00000800&

%D3DCS_ALL = %D3DCS_LEFT OR %D3DCS_RIGHT OR %D3DCS_TOP OR %D3DCS_BOTTOM OR _
%D3DCS_FRONT OR %D3DCS_BACK OR %D3DCS_PLANE0 OR %D3DCS_PLANE1 OR _
%D3DCS_PLANE2 OR %D3DCS_PLANE3 OR %D3DCS_PLANE4 OR %D3DCS_PLANE5


' // Bias to apply to the texture coordinate set to apply a wrap to.
%D3DRENDERSTATE_WRAPBIAS = 128???

' /* Flags to construct the WRAP render states */
%D3DWRAP_U = &H00000001&
%D3DWRAP_V = &H00000002&
%D3DWRAP_W = &H00000004&

' /* Flags to construct the WRAP render states for 1D thru 4D texture coordinates */
%D3DWRAPCOORD_0 = &H00000001& ' // same as D3DWRAP_U
%D3DWRAPCOORD_1 = &H00000002& ' // same as D3DWRAP_V
%D3DWRAPCOORD_2 = &H00000004& ' // same as D3DWRAP_W
%D3DWRAPCOORD_3 = &H00000008&

' /* Flags to construct D3DRS_COLORWRITEENABLE */
%D3DCOLORWRITEENABLE_RED = 1 ' (1L<<0)
%D3DCOLORWRITEENABLE_GREEN = 2 ' (1L<<1)
%D3DCOLORWRITEENABLE_BLUE = 4 ' (1L<<2)
%D3DCOLORWRITEENABLE_ALPHA = 8 ' (1L<<3)

'// This is used to initialize the last vertex element in a vertex declaration
'// array
'//
'#define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}


'// The internal format of Pixel Shader (PS) & Vertex Shader (VS)
'// Instruction Tokens is defined in the Direct3D Device Driver Kit

'//
'// Instruction Token Bit Definitions
'//
%D3DSI_OPCODE_MASK = &H0000FFFF

%D3DSI_INSTLENGTH_MASK = &H0F000000
%D3DSI_INSTLENGTH_SHIFT = 24

'// Use these constants with D3DSIO_SINCOS macro as SRC2, SRC3
'#define D3DSINCOSCONST1 -1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f
'#define D3DSINCOSCONST2 -0.020833334f, -0.12500000f, 1.0f, 0.50000000f

'// Co-Issue Instruction Modifier - if set then this instruction is to be
'// issued in parallel with the previous instruction(s) for which this bit
'// is not set.
%D3DSI_COISSUE = &H40000000
 

'// Opcode specific controls

%D3DSP_OPCODESPECIFICCONTROL_MASK = &H00ff0000
%D3DSP_OPCODESPECIFICCONTROL_SHIFT = 16

'// ps_2_0 texld controls
'#define D3DSI_TEXLD_PROJECT (0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT)
'#define D3DSI_TEXLD_BIAS (0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT)
%D3DSI_TEXLD_PROJECT = &H10000
%D3DSI_TEXLD_BIAS = &H20000

'// Predication flags on instruction token
'#define D3DSHADER_INSTRUCTION_PREDICATED (0x1 << 28)
%D3DSHADER_INSTRUCTION_PREDICATED = &H10000000

'// DCL Info Token Controls

'// For dcl info tokens requiring a semantic (usage + index)
%D3DSP_DCL_USAGE_SHIFT = 0
%D3DSP_DCL_USAGE_MASK = &H0000000f

%D3DSP_DCL_USAGEINDEX_SHIFT = 16
%D3DSP_DCL_USAGEINDEX_MASK = &H000f0000

'// DCL pixel shader sampler info token.
%D3DSP_TEXTURETYPE_SHIFT = 27
%D3DSP_TEXTURETYPE_MASK = &H78000000

'// Parameter Token Bit Definitions
%D3DSP_REGNUM_MASK = &H000007FF

'// destination parameter write mask
%D3DSP_WRITEMASK_0 = &H00010000 ' // Component 0 (X;Red)
%D3DSP_WRITEMASK_1 = &H00020000 ' // Component 1 (Y;Green)
%D3DSP_WRITEMASK_2 = &H00040000 ' // Component 2 (Z;Blue)
%D3DSP_WRITEMASK_3 = &H00080000 ' // Component 3 (W;Alpha)
%D3DSP_WRITEMASK_ALL = &H000F0000 ' // All Components

'// destination parameter modifiers
%D3DSP_DSTMOD_SHIFT = 20
%D3DSP_DSTMOD_MASK = &H00F00000

'// Bit masks for destination parameter modifiers
'#define D3DSPDM_NONE (0<<D3DSP_DSTMOD_SHIFT) // nop
'#define D3DSPDM_SATURATE (1<<D3DSP_DSTMOD_SHIFT) // clamp to 0. to 1. range
'#define D3DSPDM_PARTIALPRECISION (2<<D3DSP_DSTMOD_SHIFT) // Partial precision hint
'#define D3DSPDM_MSAMPCENTROID (4<<D3DSP_DSTMOD_SHIFT) // Relevant to multisampling only:
' // When the pixel center is not covered, sample
' // attribute or compute gradients/LOD
' // using multisample "centroid" location.
' // "Centroid" is some location within the covered
' // region of the pixel.

%D3DSPDM_NONE = &H0 ' // nop
%D3DSPDM_SATURATE = &H100000 ' // clamp to 0. to 1. range
%D3DSPDM_PARTIALPRECISION = &H200000 ' // Partial precision hint
%D3DSPDM_MSAMPCENTROID = &H400000 ' // Relevant to multisampling only:

'// destination parameter
%D3DSP_DSTSHIFT_SHIFT = 24
%D3DSP_DSTSHIFT_MASK = &H0F000000

'// destination/source parameter register type
%D3DSP_REGTYPE_SHIFT = 28
%D3DSP_REGTYPE_SHIFT2 = 8
%D3DSP_REGTYPE_MASK = &H70000000
%D3DSP_REGTYPE_MASK2 = &H00001800

' D3DSHADER_MISCTYPE_OFFSETS enumeration
'// The miscellaneous register file (D3DSPR_MISCTYPES)
'// contains register types for which there is only ever one
'// register (i.e. the register # is not needed).
'// Rather than use up additional register types for such
'// registers, they are defined
'// as particular offsets into the misc. register file:
%D3DSMO_POSITION = 0 ' // Input position x,y,z,rhw (PS)
%D3DSMO_FACE = 1 ' // Floating point primitive area (PS)

'// Register offsets in the Rasterizer Register File
'//
' D3DVS_RASTOUT_OFFSETS enumeration
%D3DSRO_POSITION = 0
%D3DSRO_FOG = 1
%D3DSRO_POINT_SIZE = 2
%D3DSRO_FORCE_DWORD = &H7FFFFFFF ' // force 32-bit size enum

'// Source operand addressing modes

%D3DVS_ADDRESSMODE_SHIFT = 13
'#define D3DVS_ADDRESSMODE_MASK (1 << D3DVS_ADDRESSMODE_SHIFT)
%D3DVS_ADDRESSMODE_MASK = &H2000

' D3DVS_ADDRESSMODE_TYPE enumeration
' D3DVS_ADDRMODE_ABSOLUTE = (0 << D3DVS_ADDRESSMODE_SHIFT),
' D3DVS_ADDRMODE_RELATIVE = (1 << D3DVS_ADDRESSMODE_SHIFT),
' D3DVS_ADDRMODE_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum

%D3DVS_ADDRMODE_ABSOLUTE = &H0
%D3DVS_ADDRMODE_RELATIVE = &H2000
%D3DVS_ADDRMODE_FORCE_DWORD = &H7FFFFFFF ' // force 32-bit size enum

%D3DSHADER_ADDRESSMODE_SHIFT = 13
'#define D3DSHADER_ADDRESSMODE_MASK (1 << D3DSHADER_ADDRESSMODE_SHIFT)
%D3DSHADER_ADDRESSMODE_MASK = &H2000

' D3DSHADER_ADDRESSMODE_TYPE enumeration
' D3DSHADER_ADDRMODE_ABSOLUTE = (0 << D3DSHADER_ADDRESSMODE_SHIFT),
' D3DSHADER_ADDRMODE_RELATIVE = (1 << D3DSHADER_ADDRESSMODE_SHIFT),
' D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum

%D3DSHADER_ADDRMODE_ABSOLUTE = &H0
%D3DSHADER_ADDRMODE_RELATIVE = &H2000
%D3DSHADER_ADDRMODE_FORCE_DWORD = &H7FFFFFFF ' // force 32-bit size enum

'// Source operand swizzle definitions
'//
%D3DVS_SWIZZLE_SHIFT = 16
%D3DVS_SWIZZLE_MASK = &H00FF0000

'// The following bits define where to take component X from:

'#define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT)
'#define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT)
'#define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT)
'#define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT)

%D3DVS_X_X = &H0
%D3DVS_X_Y = &H10000
%D3DVS_X_Z = &H20000
%D3DVS_X_W = &H30000

'// The following bits define where to take component Y from:

'#define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2))
'#define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2))
'#define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2))
'#define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2))

%D3DVS_Y_X = &H0
%D3DVS_Y_Y = &H40000
%D3DVS_Y_Z = &H80000
%D3DVS_Y_W = &HC0000

'// The following bits define where to take component Z from:

'#define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4))
'#define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4))
'#define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4))
'#define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4))

%D3DVS_Z_X = &H0
%D3DVS_Z_Y = &H100000
%D3DVS_Z_Z = &H200000
%D3DVS_Z_W = &H300000

'// The following bits define where to take component W from:

'#define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6))
'#define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6))
'#define D3DVS_W_Z (2 << (D3DVS_SWIZZLE_SHIFT + 6))
'#define D3DVS_W_W (3 << (D3DVS_SWIZZLE_SHIFT + 6))

%D3DVS_W_X = &H0
%D3DVS_W_Y = &H400000
%D3DVS_W_Z = &H800000
%D3DVS_W_W = &HC00000

'// Value when there is no swizzle (X is taken from X, Y is taken from Y,
'// Z is taken from Z, W is taken from W
'//
'#define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
%D3DVS_NOSWIZZLE = %D3DVS_X_X OR %D3DVS_Y_Y OR %D3DVS_Z_Z OR %D3DVS_W_W

'// source parameter swizzle
%D3DSP_SWIZZLE_SHIFT = 16
%D3DSP_SWIZZLE_MASK = &H00FF0000

'#define D3DSP_NOSWIZZLE \
' ( (0 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
' (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
' (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
' (3 << (D3DSP_SWIZZLE_SHIFT + 6)) )

%D3DSP_NOSWIZZLE = &H0 OR &H40000 OR &H200000 OR &HC00000

'// pixel-shader swizzle ops
'#define D3DSP_REPLICATERED \
' ( (0 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
' (0 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
' (0 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
' (0 << (D3DSP_SWIZZLE_SHIFT + 6)) )

%D3DSP_REPLICATERED = &H0

'#define D3DSP_REPLICATEGREEN \
' ( (1 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
' (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
' (1 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
' (1 << (D3DSP_SWIZZLE_SHIFT + 6)) )

%D3DSP_REPLICATEGREEN = &H10000 OR &H40000 OR &H100000 OR &H400000

'#define D3DSP_REPLICATEBLUE \
' ( (2 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
' (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
' (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
' (2 << (D3DSP_SWIZZLE_SHIFT + 6)) )

%D3DSP_REPLICATEBLUE = &H20000 OR &H80000 OR &H200000 OR &H800000

'#define D3DSP_REPLICATEALPHA \
' ( (3 << (D3DSP_SWIZZLE_SHIFT + 0)) | \
' (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | \
' (3 << (D3DSP_SWIZZLE_SHIFT + 4)) | \
' (3 << (D3DSP_SWIZZLE_SHIFT + 6)) )

%D3DSP_REPLICATEALPHA = &H30000 OR &HC0000 OR &H300000 OR &HC00000

'// source parameter modifiers
%D3DSP_SRCMOD_SHIFT = 24
%D3DSP_SRCMOD_MASK = &H0F000000

' D3DSHADER_PARAM_SRCMOD_TYPE enumeration
 

' D3DSPSM_NONE = 0<<D3DSP_SRCMOD_SHIFT, // nop
' D3DSPSM_NEG = 1<<D3DSP_SRCMOD_SHIFT, // negate
' D3DSPSM_BIAS = 2<<D3DSP_SRCMOD_SHIFT, // bias
' D3DSPSM_BIASNEG = 3<<D3DSP_SRCMOD_SHIFT, // bias and negate
' D3DSPSM_SIGN = 4<<D3DSP_SRCMOD_SHIFT, // sign
' D3DSPSM_SIGNNEG = 5<<D3DSP_SRCMOD_SHIFT, // sign and negate
' D3DSPSM_COMP = 6<<D3DSP_SRCMOD_SHIFT, // complement
' D3DSPSM_X2 = 7<<D3DSP_SRCMOD_SHIFT, // *2
' D3DSPSM_X2NEG = 8<<D3DSP_SRCMOD_SHIFT, // *2 and negate
' D3DSPSM_DZ = 9<<D3DSP_SRCMOD_SHIFT, // divide through by z component
' D3DSPSM_DW = 10<<D3DSP_SRCMOD_SHIFT, // divide through by w component
' D3DSPSM_ABS = 11<<D3DSP_SRCMOD_SHIFT, // abs()
' D3DSPSM_ABSNEG = 12<<D3DSP_SRCMOD_SHIFT, // -abs()
' D3DSPSM_NOT = 13<<D3DSP_SRCMOD_SHIFT, // for predicate register: "!p0"
' D3DSPSM_FORCE_DWORD = 0x7fffffff, // force 32-bit size enum

%D3DSPSM_NONE = &H0 ' // nop
%D3DSPSM_NEG = &H1000000 ' // negate
%D3DSPSM_BIAS = &H2000000 ' // bias
%D3DSPSM_BIASNEG = &H3000000 ' // bias and negate
%D3DSPSM_SIGN = &H4000000 ' // sign
%D3DSPSM_SIGNNEG = &H5000000 ' // sign and negate
%D3DSPSM_COMP = &H6000000 ' // complement
%D3DSPSM_X2 = &H7000000 ' // *2
%D3DSPSM_X2NEG = &H8000000 ' // *2 and negate
%D3DSPSM_DZ = &H9000000 ' // divide through by z component
%D3DSPSM_DW = &HA000000 ' // divide through by w component
%D3DSPSM_ABS = &HB000000 ' // abs()
%D3DSPSM_ABSNEG = &HC000000 ' // -abs()
%D3DSPSM_NOT = &HD000000 ' // for predicate register: "!p0"
%D3DSPSM_FORCE_DWORD = &H7FFFFFFF ' // force 32-bit size enum

'// pixel shader version token
'#define D3DPS_VERSION(_Major,_Minor) (0xFFFF0000|((_Major)<<8)|(_Minor))

'// vertex shader version token
'#define D3DVS_VERSION(_Major,_Minor) (0xFFFE0000|((_Major)<<8)|(_Minor))

'// extract major/minor from version cap
'#define D3DSHADER_VERSION_MAJOR(_Version) (((_Version)>>8)&0xFF)
'#define D3DSHADER_VERSION_MINOR(_Version) (((_Version)>>0)&0xFF)

'// destination/source parameter register type
%D3DSI_COMMENTSIZE_SHIFT = 16
%D3DSI_COMMENTSIZE_MASK = &H7FFF0000
'#define D3DSHADER_COMMENT(_DWordSize) \
' ((((_DWordSize)<<D3DSI_COMMENTSIZE_SHIFT)&D3DSI_COMMENTSIZE_MASK)|D3DSIO_COMMENT)

'// pixel/vertex shader end token
'#define D3DPS_END() 0x0000FFFF
'#define D3DVS_END() 0x0000FFFF

'// Macros to set texture coordinate format bits in the FVF id

%D3DFVF_TEXTUREFORMAT2 = 0 ' // Two floating point values
%D3DFVF_TEXTUREFORMAT1 = 3 ' // One floating point value
%D3DFVF_TEXTUREFORMAT3 = 1 ' // Three floating point values
%D3DFVF_TEXTUREFORMAT4 = 2 ' // Four floating point values

'#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
'#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
'#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
'#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))

%D3DFVF_TEXCOORDSIZE1_0 = &H30000
%D3DFVF_TEXCOORDSIZE1_1 = &HC0000
%D3DFVF_TEXCOORDSIZE1_2 = &H300000
%D3DFVF_TEXCOORDSIZE1_3 = &HC00000

%D3DFVF_TEXCOORDSIZE2_0 = &H0
%D3DFVF_TEXCOORDSIZE2_1 = &H0
%D3DFVF_TEXCOORDSIZE2_2 = &H0
%D3DFVF_TEXCOORDSIZE2_3 = &H0

%D3DFVF_TEXCOORDSIZE3_0 = &H10000
%D3DFVF_TEXCOORDSIZE3_1 = &H40000
%D3DFVF_TEXCOORDSIZE3_2 = &H100000
%D3DFVF_TEXCOORDSIZE3_3 = &H400000

%D3DFVF_TEXCOORDSIZE4_0 = &H20000
%D3DFVF_TEXCOORDSIZE4_1 = &H80000
%D3DFVF_TEXCOORDSIZE4_2 = &H200000
%D3DFVF_TEXCOORDSIZE4_3 = &H800000

'/* Formats
' * Most of these names have the following convention:
' * A = Alpha
' * R = Red
' * G = Green
' * B = Blue
' * X = Unused Bits
' * P = Palette
' * L = Luminance
' * U = dU coordinate for BumpMap
' * V = dV coordinate for BumpMap
' * S = Stencil
' * D = Depth (e.g. Z or W buffer)
' * C = Computed from other channels (typically on certain read operations)
' *
' * Further, the order of the pieces are from MSB first; hence
' * D3DFMT_A8L8 indicates that the high byte of this two byte
' * format is alpha.
' *
' * D3DFMT_D16_LOCKABLE indicates:
' * - An integer 16-bit value.
' * - An app-lockable surface.
' *
' * D3DFMT_D32F_LOCKABLE indicates:
' * - An IEEE 754 floating-point value.
' * - An app-lockable surface.
' *
' * All Depth/Stencil formats except D3DFMT_D16_LOCKABLE and D3DFMT_D32F_LOCKABLE indicate:
' * - no particular bit ordering per pixel, and
' * - are not app lockable, and
' * - the driver is allowed to consume more than the indicated
' * number of bits per Depth channel (but not Stencil channel).
' */
'#ifndef MAKEFOURCC
' #define MAKEFOURCC(ch0, ch1, ch2, ch3) \
' ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
' ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
'#endif /* defined(MAKEFOURCC) */

FUNCTION MAKEFOURCC (BYVAL st0 AS STRING, BYVAL st1 AS STRING, BYVAL st2 AS STRING, BYVAL st3 AS STRING) AS DWORD
  LOCAL ch0 AS DWORD, ch1 AS DWORD, ch2 AS DWORD, ch3 AS DWORD
  ch0 = ASC(st0)
  ch1 = ASC(st1)
  ch2 = ASC(st2)
  ch3 = ASC(st3)
  SHIFT LEFT ch1, 8
  SHIFT LEFT ch2, 16
  SHIFT LEFT ch3, 24
  FUNCTION = ch0 OR ch1 OR ch2 OR ch3
END FUNCTION

'/* Adapter Identifier */

%MAX_DEVICE_IDENTIFIER_STRING = 512

'// Flags field for Issue
%D3DISSUE_END = 1 ' (1 << 0) // Tells the runtime to issue the end of a query, changing it's state to "non-signaled".
%D3DISSUE_BEGIN = 2 ' (1 << 1) // Tells the runtime to issue the beginng of a query.


'// Flags field for GetData
%D3DGETDATA_FLUSH = 1 ' (1 << 0) // Tells the runtime to flush if the query is outstanding.

%D3DMIN30SHADERINSTRUCTIONS = 512
%D3DMAX30SHADERINSTRUCTIONS = 32768

'//
'// BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS
'//

'//
'// Caps
'//
%D3DCAPS_READ_SCANLINE = &H00020000&

'//
'// DevCaps
'//
%D3DDEVCAPS_EXECUTESYSTEMMEMORY = &H00000010& ' /* Device can use execute buffers from system memory */
%D3DDEVCAPS_EXECUTEVIDEOMEMORY = &H00000020& ' /* Device can use execute buffers from video memory */
%D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = &H00000040& ' /* Device can use TL buffers from system memory */
%D3DDEVCAPS_TLVERTEXVIDEOMEMORY = &H00000080& ' /* Device can use TL buffers from video memory */
%D3DDEVCAPS_TEXTURESYSTEMMEMORY = &H00000100& ' /* Device can texture from system memory */
%D3DDEVCAPS_TEXTUREVIDEOMEMORY = &H00000200& ' /* Device can texture from device memory */
%D3DDEVCAPS_DRAWPRIMTLVERTEX = &H00000400& ' /* Device can draw TLVERTEX primitives */
%D3DDEVCAPS_CANRENDERAFTERFLIP = &H00000800& ' /* Device can render without waiting for flip to complete */
%D3DDEVCAPS_TEXTURENONLOCALVIDMEM = &H00001000& ' /* Device can texture from nonlocal video memory */
%D3DDEVCAPS_DRAWPRIMITIVES2 = &H00002000& ' /* Device can support DrawPrimitives2 */
%D3DDEVCAPS_SEPARATETEXTUREMEMORIES = &H00004000& ' /* Device is texturing from separate memory pools */
%D3DDEVCAPS_DRAWPRIMITIVES2EX = &H00008000& ' /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
%D3DDEVCAPS_HWTRANSFORMANDLIGHT = &H00010000& ' /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
%D3DDEVCAPS_CANBLTSYSTONONLOCAL = &H00020000& ' /* Device supports a Tex Blt from system memory to non-local vidmem */
%D3DDEVCAPS_HWRASTERIZATION = &H00080000& ' /* Device has HW acceleration for rasterization */
%D3DDEVCAPS_PUREDEVICE = &H00100000& ' /* Device supports D3DCREATE_PUREDEVICE */
%D3DDEVCAPS_QUINTICRTPATCHES = &H00200000& ' /* Device supports quintic Beziers and BSplines */
%D3DDEVCAPS_RTPATCHES = &H00400000& ' /* Device supports Rect and Tri patches */
%D3DDEVCAPS_RTPATCHHANDLEZERO = &H00800000& ' /* Indicates that RT Patches may be drawn efficiently using handle 0 */
%D3DDEVCAPS_NPATCHES = &H01000000& ' /* Device supports N-Patches */

'//
'// LineCaps
'//
%D3DLINECAPS_TEXTURE = &H00000001&
%D3DLINECAPS_ZTEST = &H00000002&
%D3DLINECAPS_BLEND = &H00000004&
%D3DLINECAPS_ALPHACMP = &H00000008&
%D3DLINECAPS_FOG = &H00000010&
%D3DLINECAPS_ANTIALIAS = &H00000020&

'//
'// RasterCaps
'//
%D3DPRASTERCAPS_DITHER = &H00000001&
%D3DPRASTERCAPS_ZTEST = &H00000010&
%D3DPRASTERCAPS_FOGVERTEX = &H00000080&
%D3DPRASTERCAPS_FOGTABLE = &H00000100&
%D3DPRASTERCAPS_MIPMAPLODBIAS = &H00002000&
%D3DPRASTERCAPS_ZBUFFERLESSHSR = &H00008000&
%D3DPRASTERCAPS_FOGRANGE = &H00010000&
%D3DPRASTERCAPS_ANISOTROPY = &H00020000&
%D3DPRASTERCAPS_WBUFFER = &H00040000&
%D3DPRASTERCAPS_WFOG = &H00100000&
%D3DPRASTERCAPS_ZFOG = &H00200000&
%D3DPRASTERCAPS_COLORPERSPECTIVE = &H00400000& ' /* Device iterates colors perspective correct */
%D3DPRASTERCAPS_SCISSORTEST = &H01000000&
%D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS = &H02000000&
%D3DPRASTERCAPS_DEPTHBIAS = &H04000000&
%D3DPRASTERCAPS_MULTISAMPLE_TOGGLE = &H08000000&

'//
'// ZCmpCaps, AlphaCmpCaps
'//

%D3DPCMPCAPS_NEVER = &H00000001&
%D3DPCMPCAPS_LESS = &H00000002&
%D3DPCMPCAPS_EQUAL = &H00000004&
%D3DPCMPCAPS_LESSEQUAL = &H00000008&
%D3DPCMPCAPS_GREATER = &H00000010&
%D3DPCMPCAPS_NOTEQUAL = &H00000020&
%D3DPCMPCAPS_GREATEREQUAL = &H00000040&
%D3DPCMPCAPS_ALWAYS = &H00000080&

'//
'// SourceBlendCaps, DestBlendCaps
'//

%D3DPBLENDCAPS_ZERO = &H00000001&
%D3DPBLENDCAPS_ONE = &H00000002&
%D3DPBLENDCAPS_SRCCOLOR = &H00000004&
%D3DPBLENDCAPS_INVSRCCOLOR = &H00000008&
%D3DPBLENDCAPS_SRCALPHA = &H00000010&
%D3DPBLENDCAPS_INVSRCALPHA = &H00000020&
%D3DPBLENDCAPS_DESTALPHA = &H00000040&
%D3DPBLENDCAPS_INVDESTALPHA = &H00000080&
%D3DPBLENDCAPS_DESTCOLOR = &H00000100&
%D3DPBLENDCAPS_INVDESTCOLOR = &H00000200&
%D3DPBLENDCAPS_SRCALPHASAT = &H00000400&
%D3DPBLENDCAPS_BOTHSRCALPHA = &H00000800&
%D3DPBLENDCAPS_BOTHINVSRCALPHA = &H00001000&
%D3DPBLENDCAPS_BLENDFACTOR = &H00002000& ' /* Supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR */

'//
'// ShadeCaps
'//

%D3DPSHADECAPS_COLORGOURAUDRGB = &H00000008&
%D3DPSHADECAPS_SPECULARGOURAUDRGB = &H00000200&
%D3DPSHADECAPS_ALPHAGOURAUDBLEND = &H00004000&
%D3DPSHADECAPS_FOGGOURAUD = &H00080000&

'//
'// TextureCaps
'//

%D3DPTEXTURECAPS_PERSPECTIVE = &H00000001& ' /* Perspective-correct texturing is supported */
%D3DPTEXTURECAPS_POW2 = &H00000002& ' /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */
%D3DPTEXTURECAPS_ALPHA = &H00000004& ' /* Alpha in texture pixels is supported */
%D3DPTEXTURECAPS_SQUAREONLY = &H00000020& ' /* Only square textures are supported */
%D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = &H00000040& ' /* Texture indices are not scaled by the texture size prior to interpolation */
%D3DPTEXTURECAPS_ALPHAPALETTE = &H00000080& ' /* Device can draw alpha from texture palettes */
'// Device can use non-POW2 textures if:
'// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
'// 2) D3DRS_WRAP(N) is zero for this texture's coordinates
'// 3) mip mapping is not enabled (use magnification filter only)
%D3DPTEXTURECAPS_NONPOW2CONDITIONAL = &H00000100&
%D3DPTEXTURECAPS_PROJECTED = &H00000400& ' /* Device can do D3DTTFF_PROJECTED */
%D3DPTEXTURECAPS_CUBEMAP = &H00000800& ' /* Device can do cubemap textures */
%D3DPTEXTURECAPS_VOLUMEMAP = &H00002000& ' /* Device can do volume textures */
%D3DPTEXTURECAPS_MIPMAP = &H00004000& ' /* Device can do mipmapped textures */
%D3DPTEXTURECAPS_MIPVOLUMEMAP = &H00008000& ' /* Device can do mipmapped volume textures */
%D3DPTEXTURECAPS_MIPCUBEMAP = &H00010000& ' /* Device can do mipmapped cube maps */
%D3DPTEXTURECAPS_CUBEMAP_POW2 = &H00020000& ' /* Device requires that cubemaps be power-of-2 dimension */
%D3DPTEXTURECAPS_VOLUMEMAP_POW2 = &H00040000& ' /* Device requires that volume maps be power-of-2 dimension */
%D3DPTEXTURECAPS_NOPROJECTEDBUMPENV = &H00200000& ' /* Device does not support projected bump env lookup operation
' in programmable and fixed function pixel shaders */

'//
'// TextureAddressCaps
'//

%D3DPTADDRESSCAPS_WRAP = &H00000001&
%D3DPTADDRESSCAPS_MIRROR = &H00000002&
%D3DPTADDRESSCAPS_CLAMP = &H00000004&
%D3DPTADDRESSCAPS_BORDER = &H00000008&
%D3DPTADDRESSCAPS_INDEPENDENTUV = &H00000010&
%D3DPTADDRESSCAPS_MIRRORONCE = &H00000020&

'//
'// TextureOpCaps
'//

%D3DTEXOPCAPS_DISABLE = &H00000001&
%D3DTEXOPCAPS_SELECTARG1 = &H00000002&
%D3DTEXOPCAPS_SELECTARG2 = &H00000004&
%D3DTEXOPCAPS_MODULATE = &H00000008&
%D3DTEXOPCAPS_MODULATE2X = &H00000010&
%D3DTEXOPCAPS_MODULATE4X = &H00000020&
%D3DTEXOPCAPS_ADD = &H00000040&
%D3DTEXOPCAPS_ADDSIGNED = &H00000080&
%D3DTEXOPCAPS_ADDSIGNED2X = &H00000100&
%D3DTEXOPCAPS_SUBTRACT = &H00000200&
%D3DTEXOPCAPS_ADDSMOOTH = &H00000400&
%D3DTEXOPCAPS_BLENDDIFFUSEALPHA = &H00000800&
%D3DTEXOPCAPS_BLENDTEXTUREALPHA = &H00001000&
%D3DTEXOPCAPS_BLENDFACTORALPHA = &H00002000&
%D3DTEXOPCAPS_BLENDTEXTUREALPHAPM = &H00004000&
%D3DTEXOPCAPS_BLENDCURRENTALPHA = &H00008000&
%D3DTEXOPCAPS_PREMODULATE = &H00010000&
%D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = &H00020000&
%D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = &H00040000&
%D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = &H00080000&
%D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = &H00100000&
%D3DTEXOPCAPS_BUMPENVMAP = &H00200000&
%D3DTEXOPCAPS_BUMPENVMAPLUMINANCE = &H00400000&
%D3DTEXOPCAPS_DOTPRODUCT3 = &H00800000&
%D3DTEXOPCAPS_MULTIPLYADD = &H01000000&
%D3DTEXOPCAPS_LERP = &H02000000&

'//
'// FVFCaps
'//

%D3DFVFCAPS_TEXCOORDCOUNTMASK = &H0000FFFF& ' /* mask for texture coordinate count field */
%D3DFVFCAPS_DONOTSTRIPELEMENTS = &H00080000& ' /* Device prefers that vertex elements not be stripped */
%D3DFVFCAPS_PSIZE = &H00100000& ' /* Device can receive point size */


' * Flags for SetPrivateData method on all D3D9 interfaces
' *
' * The passed pointer is an IUnknown ptr. The SizeOfData argument to SetPrivateData
' * must be set to sizeof(IUnknown*). Direct3D will call AddRef through this
' * pointer and Release when the private data is destroyed. The data will be
' * destroyed when another SetPrivateData with the same GUID is set, when
' * FreePrivateData is called, or when the D3D9 object is freed.
 

%D3DSPD_IUNKNOWN = &H00000001&

' * Flags for IDirect3DDevice9::SetGammaRamp

%D3DSGR_NO_CALIBRATION = &H00000000&
%D3DSGR_CALIBRATE = &H00000001&

' * Flags for IDirect3DDevice9::SetCursorPosition

%D3DCURSOR_IMMEDIATE_UPDATE = &H00000001&

' * Flags for IDirect3DSwapChain9::Present

%D3DPRESENT_DONOTWAIT = &H00000001&
%D3DPRESENT_LINEAR_CONTENT = &H00000002&
 

 

D3DX

 

D3DXCALLBACK_SEARCH_FLAGS Enumerated Type

 

Flags used to obtain callback information.

 

%D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION = &H01

%D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION = &H02

%D3DXCALLBACK_SEARCH_FORCE_DWORD = &H7FFFFFFF