----------------------------------------
-- File : d3d9types.ads --
-- Translator:Dongfeng.Gu,2018/10/12 --
-- Mail: 515639@qq.com --
-- Progress:100% --
----------------------------------------
with Interfaces.C;
with win32; use win32;
with win32.winnt; use win32.winnt;
with win32.windef; use win32.windef;
with win32.rpcdce; use win32.rpcdce;
with win32.Objbase; use win32.Objbase;
with Ada.Unchecked_Conversion;
package d3d9types is
use type Interfaces.C.unsigned_long;
function Shift_Left(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
function Lsh(A:dword;B:Natural) return dword is (Shift_Left(A,B));
function Shift_Right(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
function Rsh(A:dword;B:Natural) return dword is (Shift_Right(A,B));
type UINT64 is mod 2**64;
-- d3d9types begin
DIRECT3D_VERSION : constant := 16#0900#;
subtype D3DCOLOR is DWORD;
--
-- Macro functions
--
function D3DCOLOR_ARGB(a,r,g,b:uchar) return D3DCOLOR is (Lsh(D3DCOLOR(a),24) or Lsh(D3DCOLOR(r),16) or Lsh(D3DCOLOR(g),8) or D3DCOLOR(a));
function D3DCOLOR_ARGB(a,r,g,b:D3DCOLOR) return D3DCOLOR is (Lsh(a and 16#ff#,24) or Lsh(r and 16#ff#,16) or Lsh(g and 16#ff#,8) or (b and 16#ff#));
function D3DCOLOR_RGBA(r,g,b,a:D3DCOLOR) return D3DCOLOR is (D3DCOLOR_ARGB(a,r,g,b));
function D3DCOLOR_XRGB(r,g,b:D3DCOLOR) return D3DCOLOR is (D3DCOLOR_ARGB(16#ff#,r,g,b));
function D3DCOLOR_XYUV(y,u,v:D3DCOLOR) return D3DCOLOR is (D3DCOLOR_ARGB(16#ff#,y,u,v));
function D3DCOLOR_AYUV(a,y,u,v:D3DCOLOR) return D3DCOLOR is (D3DCOLOR_ARGB(a,y,u,v));
-- #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))
function D3DCOLOR_COLORVALUE(r,g,b,a:float) return D3DCOLOR is (D3DCOLOR_RGBA(DWORD(r*255.0),DWORD(g*255.0),DWORD(b*255.0),DWORD(a*255.0)));
-- This defined in d3d9math.h D3DXVECTOR2
type tagD3DVECTOR2 is record
x,y:float;
end record;
subtype D3DVECTOR2 is tagD3DVECTOR2;
type tagD3DVECTOR3 is record
x:float;
y:float;
z:float;
end record;
subtype D3DVECTOR is tagD3DVECTOR3;
subtype D3DVECTOR3 is tagD3DVECTOR3;
type tagD3DXVECTOR4 is record
x,y,z,w:float;
end record;
subtype D3DXVECTOR4 is tagD3DXVECTOR4;
type tagD3DCOLORVALUE is record
r:float;
g:float;
b:float;
a:float;
end record;
subtype D3DCOLORVALUE is tagD3DCOLORVALUE;
type tagD3DRECT is record
x1:LONG;
y1:LONG;
x2:LONG;
y2:LONG;
end record;
subtype D3DRECT is tagD3DRECT;
type float_Array_4_4 is array(natural range<>,natural range<>) of float;
type tagD3DMATRIX(B:Boolean:=True) is record
case B is
when True=>
m11:float;
m12:float;
m13:float;
m14:float;
m21:float;
m22:float;
m23:float;
m24:float;
m31:float;
m32:float;
m33:float;
m34:float;
m41:float;
m42:float;
m43:float;
m44:float;
when False=>
m:float_Array_4_4(0..3,0..3);
end case;
end record;
subtype D3DMATRIX is tagD3DMATRIX;
type LPD3DMATRIX is access all D3DMATRIX;
type tagD3DVIEWPORT9 is record
X:DWORD;
Y:DWORD;
Width:DWORD;
Height:DWORD;
MinZ:float;
MaxZ:float;
end record;
subtype D3DVIEWPORT9 is tagD3DVIEWPORT9;
D3DMAXUSERCLIPPLANES : constant := 32;
D3DCLIPPLANE0 : constant := (1);
D3DCLIPPLANE1 : constant := (2);
D3DCLIPPLANE2 : constant := (4);
D3DCLIPPLANE3 : constant := (8);
D3DCLIPPLANE4 : constant := (16);
D3DCLIPPLANE5 : constant := (32);
D3DCS_LEFT : constant := 16#00000001#;
D3DCS_RIGHT : constant := 16#00000002#;
D3DCS_TOP : constant := 16#00000004#;
D3DCS_BOTTOM : constant := 16#00000008#;
D3DCS_FRONT : constant := 16#00000010#;
D3DCS_BACK : constant := 16#00000020#;
D3DCS_PLANE0 : constant := 16#00000040#;
D3DCS_PLANE1 : constant := 16#00000080#;
D3DCS_PLANE2 : constant := 16#00000100#;
D3DCS_PLANE3 : constant := 16#00000200#;
D3DCS_PLANE4 : constant := 16#00000400#;
D3DCS_PLANE5 : constant := 16#00000800#;
use type Interfaces.C.unsigned_long;
D3DCS_ALL : constant dword:= (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);
type tagD3DCLIPSTATUS9 is record
ClipUnion:DWORD;
ClipIntersection:DWORD;
end record;
subtype D3DCLIPSTATUS9 is tagD3DCLIPSTATUS9;
type tagD3DMATERIAL9 is record
Diffuse:D3DCOLORVALUE;
Ambient:D3DCOLORVALUE;
Specular:D3DCOLORVALUE;
Emissive:D3DCOLORVALUE;
Power:float;
end record;
subtype D3DMATERIAL9 is tagD3DMATERIAL9;
type tagD3DLIGHTTYPE is (D3DLIGHT_POINT,
D3DLIGHT_SPOT,
D3DLIGHT_DIRECTIONAL,
D3DLIGHT_FORCE_DWORD);
for tagD3DLIGHTTYPE use (D3DLIGHT_POINT=>1,
D3DLIGHT_SPOT=>2,
D3DLIGHT_DIRECTIONAL=>3,
D3DLIGHT_FORCE_DWORD=>16#7fffffff#);
subtype D3DLIGHTTYPE is tagD3DLIGHTTYPE;
type tagD3DLIGHT9 is record
Typ:D3DLIGHTTYPE;
Diffuse:D3DCOLORVALUE;
Specular:D3DCOLORVALUE;
Ambient:D3DCOLORVALUE;
Position:D3DVECTOR;
Direction:D3DVECTOR;
Rang:float;
Falloff:float;
Attenuation0:float;
Attenuation1:float;
Attenuation2:float;
Theta:float;
Phi:float;
end record;
subtype D3DLIGHT9 is tagD3DLIGHT9;
D3DCLEAR_TARGET : constant := 16#00000001#; -- /* Clear target surface */
D3DCLEAR_ZBUFFER : constant := 16#00000002#; -- /* Clear target z buffer */
D3DCLEAR_STENCIL : constant := 16#00000004#; -- /* Clear stencil planes */
type tagD3DSHADEMODE is (D3DSHADE_FLAT,
D3DSHADE_GOURAUD,
D3DSHADE_PHONG,
D3DSHADE_FORCE_DWORD);
for tagD3DSHADEMODE use (D3DSHADE_FLAT=>1,
D3DSHADE_GOURAUD=>2,
D3DSHADE_PHONG=>3,
D3DSHADE_FORCE_DWORD=>16#7fffffff#);
subtype D3DSHADEMODE is tagD3DSHADEMODE;
type tagD3DFILLMODE is (D3DFILL_POINT,
D3DFILL_WIREFRAME,
D3DFILL_SOLID,
D3DFILL_FORCE_DWORD);
for tagD3DFILLMODE use (D3DFILL_POINT=>1,
D3DFILL_WIREFRAME=>2,
D3DFILL_SOLID=>3,
D3DFILL_FORCE_DWORD=>16#7fffffff#);
subtype D3DFILLMODE is tagD3DFILLMODE;
type tagD3DBLEND is (D3DBLEND_ZERO,
D3DBLEND_ONE,
D3DBLEND_SRCCOLOR,
D3DBLEND_INVSRCCOLOR,
D3DBLEND_SRCALPHA,
D3DBLEND_INVSRCALPHA,
D3DBLEND_DESTALPHA,
D3DBLEND_INVDESTALPHA,
D3DBLEND_DESTCOLOR,
D3DBLEND_INVDESTCOLOR,
D3DBLEND_SRCALPHASAT,
D3DBLEND_BOTHSRCALPHA,
D3DBLEND_BOTHINVSRCALPHA,
D3DBLEND_BLENDFACTOR,
D3DBLEND_INVBLENDFACTOR,
D3DBLEND_SRCCOLOR2,
D3DBLEND_INVSRCCOLOR2,
D3DBLEND_FORCE_DWORD);
for tagD3DBLEND use (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_SRCCOLOR2=>16,
D3DBLEND_INVSRCCOLOR2=>17,
D3DBLEND_FORCE_DWORD=>16#7fffffff#);
subtype D3DBLEND is tagD3DBLEND;
type tagD3DBLENDOP is (D3DBLENDOP_ADD,
D3DBLENDOP_SUBTRACT,
D3DBLENDOP_REVSUBTRACT,
D3DBLENDOP_MIN,
D3DBLENDOP_MAX,
D3DBLENDOP_FORCE_DWORD);
for tagD3DBLENDOP use (D3DBLENDOP_ADD=>1,
D3DBLENDOP_SUBTRACT=>2,
D3DBLENDOP_REVSUBTRACT=>3,
D3DBLENDOP_MIN=>4,
D3DBLENDOP_MAX=>5,
D3DBLENDOP_FORCE_DWORD=>16#7fffffff#);
subtype D3DBLENDOP is tagD3DBLENDOP;
type tagD3DTEXTUREADDRESS is (D3DTADDRESS_WRAP,
D3DTADDRESS_MIRROR,
D3DTADDRESS_CLAMP,
D3DTADDRESS_BORDER,
D3DTADDRESS_MIRRORONCE,
D3DTADDRESS_FORCE_DWORD);
for tagD3DTEXTUREADDRESS use (D3DTADDRESS_WRAP=>1,
D3DTADDRESS_MIRROR=>2,
D3DTADDRESS_CLAMP=>3,
D3DTADDRESS_BORDER=>4,
D3DTADDRESS_MIRRORONCE=>5,
D3DTADDRESS_FORCE_DWORD=>16#7fffffff#);
subtype D3DTEXTUREADDRESS is tagD3DTEXTUREADDRESS;
type tagD3DCULL is (D3DCULL_NONE,
D3DCULL_CW,
D3DCULL_CCW,
D3DCULL_FORCE_DWORD);
for tagD3DCULL use (D3DCULL_NONE=>1,
D3DCULL_CW=>2,
D3DCULL_CCW=>3,
D3DCULL_FORCE_DWORD=>16#7fffffff#);
subtype D3DCULL is tagD3DCULL;
type tagD3DCMPFUNC is (D3DCMP_NEVER,
D3DCMP_LESS,
D3DCMP_EQUAL,
D3DCMP_LESSEQUAL,
D3DCMP_GREATER,
D3DCMP_NOTEQUAL,
D3DCMP_GREATEREQUAL,
D3DCMP_ALWAYS,
D3DCMP_FORCE_DWORD);
for tagD3DCMPFUNC use (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=>16#7fffffff#);
subtype D3DCMPFUNC is tagD3DCMPFUNC;
type tagD3DSTENCILOP is (D3DSTENCILOP_KEEP,
D3DSTENCILOP_ZERO,
D3DSTENCILOP_REPLACE,
D3DSTENCILOP_INCRSAT,
D3DSTENCILOP_DECRSAT,
D3DSTENCILOP_INVERT,
D3DSTENCILOP_INCR,
D3DSTENCILOP_DECR,
D3DSTENCILOP_FORCE_DWORD);
for tagD3DSTENCILOP use (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=>16#7fffffff#);
subtype D3DSTENCILOP is tagD3DSTENCILOP;
type tagD3DFOGMODE is (D3DFOG_NONE,
D3DFOG_EXP,
D3DFOG_EXP2,
D3DFOG_LINEAR,
D3DFOG_FORCE_DWORD);
for tagD3DFOGMODE use (D3DFOG_NONE=>0,
D3DFOG_EXP=>1,
D3DFOG_EXP2=>2,
D3DFOG_LINEAR=>3,
D3DFOG_FORCE_DWORD=>16#7fffffff#);
subtype D3DFOGMODE is tagD3DFOGMODE;
type tagD3DZBUFFERTYPE is (D3DZB_FALSE,
D3DZB_TRUE,
D3DZB_USEW,
D3DZB_FORCE_DWORD);
for tagD3DZBUFFERTYPE use (D3DZB_FALSE=>0,
D3DZB_TRUE=>1,
D3DZB_USEW=>2,
D3DZB_FORCE_DWORD=>16#7fffffff#);
subtype D3DZBUFFERTYPE is tagD3DZBUFFERTYPE;
type tagD3DPRIMITIVETYPE is (D3DPT_POINTLIST,
D3DPT_LINELIST,
D3DPT_LINESTRIP,
D3DPT_TRIANGLELIST,
D3DPT_TRIANGLESTRIP,
D3DPT_TRIANGLEFAN,
D3DPT_FORCE_DWORD);
for tagD3DPRIMITIVETYPE use (D3DPT_POINTLIST=>1,
D3DPT_LINELIST=>2,
D3DPT_LINESTRIP=>3,
D3DPT_TRIANGLELIST=>4,
D3DPT_TRIANGLESTRIP=>5,
D3DPT_TRIANGLEFAN=>6,
D3DPT_FORCE_DWORD=>16#7fffffff#);
subtype D3DPRIMITIVETYPE is tagD3DPRIMITIVETYPE;
type tagD3DTRANSFORMSTATETYPE is (D3DTS_VIEW,
D3DTS_PROJECTION,
D3DTS_TEXTURE0,
D3DTS_TEXTURE1,
D3DTS_TEXTURE2,
D3DTS_TEXTURE3,
D3DTS_TEXTURE4,
D3DTS_TEXTURE5,
D3DTS_TEXTURE6,
D3DTS_TEXTURE7,
D3DTS_FORCE_DWORD);
for tagD3DTRANSFORMSTATETYPE use (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=>16#7fffffff#);
subtype D3DTRANSFORMSTATETYPE is tagD3DTRANSFORMSTATETYPE;
-- #define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
function D3DTS_WORLDMATRIX(index:dword) return dword is (index + 256);
D3DTS_WORLD : constant dword:= D3DTS_WORLDMATRIX(0);
D3DTS_WORLD1 : constant dword:= D3DTS_WORLDMATRIX(1);
D3DTS_WORLD2 : constant dword:= D3DTS_WORLDMATRIX(2);
D3DTS_WORLD3 : constant dword:= D3DTS_WORLDMATRIX(3);
type tagD3DRENDERSTATETYPE is (D3DRS_ZENABLE,
D3DRS_FILLMODE,
D3DRS_SHADEMODE,
D3DRS_ZWRITEENABLE,
D3DRS_ALPHATESTENABLE,
D3DRS_LASTPIXEL,
D3DRS_SRCBLEND,
D3DRS_DESTBLEND,
D3DRS_CULLMODE,
D3DRS_ZFUNC,
D3DRS_ALPHAREF,
D3DRS_ALPHAFUNC,
D3DRS_DITHERENABLE,
D3DRS_ALPHABLENDENABLE,
D3DRS_FOGENABLE,
D3DRS_SPECULARENABLE,
D3DRS_FOGCOLOR,
D3DRS_FOGTABLEMODE,
D3DRS_FOGSTART,
D3DRS_FOGEND,
D3DRS_FOGDENSITY,
D3DRS_RANGEFOGENABLE,
D3DRS_STENCILENABLE,
D3DRS_STENCILFAIL,
D3DRS_STENCILZFAIL,
D3DRS_STENCILPASS,
D3DRS_STENCILFUNC,
D3DRS_STENCILREF,
D3DRS_STENCILMASK,
D3DRS_STENCILWRITEMASK,
D3DRS_TEXTUREFACTOR,
D3DRS_WRAP0,
D3DRS_WRAP1,
D3DRS_WRAP2,
D3DRS_WRAP3,
D3DRS_WRAP4,
D3DRS_WRAP5,
D3DRS_WRAP6,
D3DRS_WRAP7,
D3DRS_CLIPPING,
D3DRS_LIGHTING,
D3DRS_AMBIENT,
D3DRS_FOGVERTEXMODE,
D3DRS_COLORVERTEX,
D3DRS_LOCALVIEWER,
D3DRS_NORMALIZENORMALS,
D3DRS_DIFFUSEMATERIALSOURCE,
D3DRS_SPECULARMATERIALSOURCE,
D3DRS_AMBIENTMATERIALSOURCE,
D3DRS_EMISSIVEMATERIALSOURCE,
D3DRS_VERTEXBLEND,
D3DRS_CLIPPLANEENABLE,
D3DRS_POINTSIZE,
D3DRS_POINTSIZE_MIN,
D3DRS_POINTSPRITEENABLE,
D3DRS_POINTSCALEENABLE,
D3DRS_POINTSCALE_A,
D3DRS_POINTSCALE_B,
D3DRS_POINTSCALE_C,
D3DRS_MULTISAMPLEANTIALIAS,
D3DRS_MULTISAMPLEMASK,
D3DRS_PATCHEDGESTYLE,
D3DRS_DEBUGMONITORTOKEN,
D3DRS_POINTSIZE_MAX,
D3DRS_INDEXEDVERTEXBLENDENABLE,
D3DRS_COLORWRITEENABLE,
D3DRS_TWEENFACTOR,
D3DRS_BLENDOP,
D3DRS_POSITIONDEGREE,
D3DRS_NORMALDEGREE,
D3DRS_SCISSORTESTENABLE,
D3DRS_SLOPESCALEDEPTHBIAS,
D3DRS_ANTIALIASEDLINEENABLE,
D3DRS_MINTESSELLATIONLEVEL,
D3DRS_MAXTESSELLATIONLEVEL,
D3DRS_ADAPTIVETESS_X,
D3DRS_ADAPTIVETESS_Y,
D3DRS_ADAPTIVETESS_Z,
D3DRS_ADAPTIVETESS_W,
D3DRS_ENABLEADAPTIVETESSELLATION,
D3DRS_TWOSIDEDSTENCILMODE,
D3DRS_CCW_STENCILFAIL,
D3DRS_CCW_STENCILZFAIL,
D3DRS_CCW_STENCILPASS,
D3DRS_CCW_STENCILFUNC,
D3DRS_COLORWRITEENABLE1,
D3DRS_COLORWRITEENABLE2,
D3DRS_COLORWRITEENABLE3,
D3DRS_BLENDFACTOR,
D3DRS_SRGBWRITEENABLE,
D3DRS_DEPTHBIAS,
D3DRS_WRAP8,
D3DRS_WRAP9,
D3DRS_WRAP10,
D3DRS_WRAP11,
D3DRS_WRAP12,
D3DRS_WRAP13,
D3DRS_WRAP14,
D3DRS_WRAP15,
D3DRS_SEPARATEALPHABLENDENABLE,
D3DRS_SRCBLENDALPHA,
D3DRS_DESTBLENDALPHA,
D3DRS_BLENDOPALPHA,
D3DRS_FORCE_DWORD);
for tagD3DRENDERSTATETYPE use (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_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_POINTSPRITEENABLE=>156,
D3DRS_POINTSCALEENABLE=>157,
D3DRS_POINTSCALE_A=>158,
D3DRS_POINTSCALE_B=>159,
D3DRS_POINTSCALE_C=>160,
D3DRS_MULTISAMPLEANTIALIAS=>161,
D3DRS_MULTISAMPLEMASK=>162,
D3DRS_PATCHEDGESTYLE=>163,
D3DRS_DEBUGMONITORTOKEN=>165,
D3DRS_POINTSIZE_MAX=>166,
D3DRS_INDEXEDVERTEXBLENDENABLE=>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=>16#7fffffff#);
subtype D3DRENDERSTATETYPE is tagD3DRENDERSTATETYPE;
D3D_MAX_SIMULTANEOUS_RENDERTARGETS : constant := 4;
type tagD3DMATERIALCOLORSOURCE is (D3DMCS_MATERIAL,
D3DMCS_COLOR1,
D3DMCS_COLOR2,
D3DMCS_FORCE_DWORD);
for tagD3DMATERIALCOLORSOURCE use (D3DMCS_MATERIAL=>0,
D3DMCS_COLOR1=>1,
D3DMCS_COLOR2=>2,
D3DMCS_FORCE_DWORD=>16#7fffffff#);
subtype D3DMATERIALCOLORSOURCE is tagD3DMATERIALCOLORSOURCE;
D3DRENDERSTATE_WRAPBIAS : constant := 128;
D3DWRAP_U : constant := 16#00000001#;
D3DWRAP_V : constant := 16#00000002#;
D3DWRAP_W : constant := 16#00000004#;
D3DWRAPCOORD_0 : constant := 16#00000001#; -- same as D3DWRAP_U;
D3DWRAPCOORD_1 : constant := 16#00000002#; -- same as D3DWRAP_V;
D3DWRAPCOORD_2 : constant := 16#00000004#; -- same as D3DWRAP_W;
D3DWRAPCOORD_3 : constant := 16#00000008#;
D3DCOLORWRITEENABLE_RED : constant := (1);
D3DCOLORWRITEENABLE_GREEN : constant := (2);
D3DCOLORWRITEENABLE_BLUE : constant := (4);
D3DCOLORWRITEENABLE_ALPHA : constant := (8);
type tagD3DTEXTURESTAGESTATETYPE is (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,
D3DTSS_FORCE_DWORD);
for tagD3DTEXTURESTAGESTATETYPE use (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=>16#7fffffff#);
subtype D3DTEXTURESTAGESTATETYPE is tagD3DTEXTURESTAGESTATETYPE;
type tagD3DSAMPLERSTATETYPE is (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,
D3DSAMP_FORCE_DWORD);
for tagD3DSAMPLERSTATETYPE use (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=>16#7fffffff#);
subtype D3DSAMPLERSTATETYPE is tagD3DSAMPLERSTATETYPE;
D3DDMAPSAMPLER : constant := 256;
D3DVERTEXTEXTURESAMPLER0 : constant := (D3DDMAPSAMPLER+1);
D3DVERTEXTEXTURESAMPLER1 : constant := (D3DDMAPSAMPLER+2);
D3DVERTEXTEXTURESAMPLER2 : constant := (D3DDMAPSAMPLER+3);
D3DVERTEXTEXTURESAMPLER3 : constant := (D3DDMAPSAMPLER+4);
D3DTSS_TCI_PASSTHRU : constant := 16#00000000#;
D3DTSS_TCI_CAMERASPACENORMAL : constant := 16#00010000#;
D3DTSS_TCI_CAMERASPACEPOSITION : constant := 16#00020000#;
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR : constant := 16#00030000#;
D3DTSS_TCI_SPHEREMAP : constant := 16#00040000#;
type tagD3DTEXTUREOP is (D3DTOP_DISABLE,
D3DTOP_SELECTARG1,
D3DTOP_SELECTARG2,
D3DTOP_MODULATE,
D3DTOP_MODULATE2X,
D3DTOP_MODULATE4X,
D3DTOP_ADD,
D3DTOP_ADDSIGNED,
D3DTOP_ADDSIGNED2X,
D3DTOP_SUBTRACT,
D3DTOP_ADDSMOOTH,
D3DTOP_BLENDDIFFUSEALPHA,
D3DTOP_BLENDTEXTUREALPHA,
D3DTOP_BLENDFACTORALPHA,
D3DTOP_BLENDTEXTUREALPHAPM,
D3DTOP_BLENDCURRENTALPHA,
D3DTOP_PREMODULATE,
D3DTOP_MODULATEALPHA_ADDCOLOR,
D3DTOP_MODULATECOLOR_ADDALPHA,
D3DTOP_MODULATEINVALPHA_ADDCOLOR,
D3DTOP_MODULATEINVCOLOR_ADDALPHA,
D3DTOP_BUMPENVMAP,
D3DTOP_BUMPENVMAPLUMINANCE,
D3DTOP_DOTPRODUCT3,
D3DTOP_MULTIPLYADD,
D3DTOP_LERP,
D3DTOP_FORCE_DWORD);
for tagD3DTEXTUREOP use (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=>16#7fffffff#);
subtype D3DTEXTUREOP is tagD3DTEXTUREOP;
D3DTA_SELECTMASK : constant := 16#0000000f#; -- mask for arg selector
D3DTA_DIFFUSE : constant := 16#00000000#; -- select diffuse color (read only);
D3DTA_CURRENT : constant := 16#00000001#; -- select stage destination register (read/write);
D3DTA_TEXTURE : constant := 16#00000002#; -- select texture color (read only);
D3DTA_TFACTOR : constant := 16#00000003#; -- select D3DRS_TEXTUREFACTOR (read only);
D3DTA_SPECULAR : constant := 16#00000004#; -- select specular color (read only);
D3DTA_TEMP : constant := 16#00000005#; -- select temporary register color (read/write);
D3DTA_CONSTANT : constant := 16#00000006#; -- select texture stage constant;
D3DTA_COMPLEMENT : constant := 16#00000010#; -- take 1.0 - x (read modifier);
D3DTA_ALPHAREPLICATE : constant := 16#00000020#; -- replicate alpha to color components (read modifier);
type tagD3DTEXTUREFILTERTYPE is (D3DTEXF_NONE,
D3DTEXF_POINT,
D3DTEXF_LINEAR,
D3DTEXF_ANISOTROPIC,
D3DTEXF_PYRAMIDALQUAD,
D3DTEXF_GAUSSIANQUAD,
D3DTEXF_CONVOLUTIONMONO,
D3DTEXF_FORCE_DWORD);
for tagD3DTEXTUREFILTERTYPE use (D3DTEXF_NONE=>0,
D3DTEXF_POINT=>1,
D3DTEXF_LINEAR=>2,
D3DTEXF_ANISOTROPIC=>3,
D3DTEXF_PYRAMIDALQUAD=>6,
D3DTEXF_GAUSSIANQUAD=>7,
D3DTEXF_CONVOLUTIONMONO=>8,
D3DTEXF_FORCE_DWORD=>16#7fffffff#);
subtype D3DTEXTUREFILTERTYPE is tagD3DTEXTUREFILTERTYPE;
D3DPV_DONOTCOPYDATA : constant := (1);
D3DFVF_RESERVED0 : constant := 16#001#;
D3DFVF_POSITION_MASK : constant := 16#400E#;
D3DFVF_XYZ : constant := 16#002#;
D3DFVF_XYZRHW : constant := 16#004#;
D3DFVF_XYZB1 : constant := 16#006#;
D3DFVF_XYZB2 : constant := 16#008#;
D3DFVF_XYZB3 : constant := 16#00a#;
D3DFVF_XYZB4 : constant := 16#00c#;
D3DFVF_XYZB5 : constant := 16#00e#;
D3DFVF_XYZW : constant := 16#4002#;
D3DFVF_NORMAL : constant := 16#010#;
D3DFVF_PSIZE : constant := 16#020#;
D3DFVF_DIFFUSE : constant := 16#040#;
D3DFVF_SPECULAR : constant := 16#080#;
D3DFVF_TEXCOUNT_MASK : constant := 16#f00#;
D3DFVF_TEXCOUNT_SHIFT : constant := 8;
D3DFVF_TEX0 : constant := 16#000#;
D3DFVF_TEX1 : constant := 16#100#;
D3DFVF_TEX2 : constant := 16#200#;
D3DFVF_TEX3 : constant := 16#300#;
D3DFVF_TEX4 : constant := 16#400#;
D3DFVF_TEX5 : constant := 16#500#;
D3DFVF_TEX6 : constant := 16#600#;
D3DFVF_TEX7 : constant := 16#700#;
D3DFVF_TEX8 : constant := 16#800#;
D3DFVF_LASTBETA_UBYTE4 : constant := 16#1000#;
D3DFVF_LASTBETAtagD3DCOLOR : constant := 16#8000#;
D3DFVF_RESERVED2 : constant := 16#6000#; -- 2 reserved bits;
type tagD3DDECLUSAGE is (D3DDECLUSAGE_POSITION,
D3DDECLUSAGE_BLENDWEIGHT,
D3DDECLUSAGE_BLENDINDICES,
D3DDECLUSAGE_NORMAL,
D3DDECLUSAGE_PSIZE,
D3DDECLUSAGE_TEXCOORD,
D3DDECLUSAGE_TANGENT,
D3DDECLUSAGE_BINORMAL,
D3DDECLUSAGE_TESSFACTOR,
D3DDECLUSAGE_POSITIONT,
D3DDECLUSAGE_COLOR,
D3DDECLUSAGE_FOG,
D3DDECLUSAGE_DEPTH,
D3DDECLUSAGE_SAMPLE);
for tagD3DDECLUSAGE use (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);
subtype D3DDECLUSAGE is tagD3DDECLUSAGE;
-- MAXD3DDECLUSAGE : constant := D3DDECLUSAGE_SAMPLE;
MAXD3DDECLUSAGEINDEX : constant := 15;
MAXD3DDECLLENGTH : constant := 64; -- does not include "end" marker vertex element;
type tagD3DDECLMETHOD is (D3DDECLMETHOD_DEFAULT,
D3DDECLMETHOD_PARTIALU,
D3DDECLMETHOD_PARTIALV,
D3DDECLMETHOD_CROSSUV,
D3DDECLMETHOD_UV,
D3DDECLMETHOD_LOOKUP,
D3DDECLMETHOD_LOOKUPPRESAMPLED);
for tagD3DDECLMETHOD use (D3DDECLMETHOD_DEFAULT=>0,
D3DDECLMETHOD_PARTIALU=>1,
D3DDECLMETHOD_PARTIALV=>2,
D3DDECLMETHOD_CROSSUV=>3,
D3DDECLMETHOD_UV=>4,
D3DDECLMETHOD_LOOKUP=>5,
D3DDECLMETHOD_LOOKUPPRESAMPLED=>6);
subtype D3DDECLMETHOD is tagD3DDECLMETHOD;
-- MAXD3DDECLMETHOD : constant := D3DDECLMETHOD_LOOKUPPRESAMPLED;
type tagD3DDECLTYPE is (D3DDECLTYPE_FLOAT1,
D3DDECLTYPE_FLOAT2,
D3DDECLTYPE_FLOAT3,
D3DDECLTYPE_FLOAT4,
D3DDECLTYPEtagD3DCOLOR,
D3DDECLTYPE_UBYTE4,
D3DDECLTYPE_SHORT2,
D3DDECLTYPE_SHORT4,
D3DDECLTYPE_UBYTE4N,
D3DDECLTYPE_SHORT2N,
D3DDECLTYPE_SHORT4N,
D3DDECLTYPE_USHORT2N,
D3DDECLTYPE_USHORT4N,
D3DDECLTYPE_UDEC3,
D3DDECLTYPE_DEC3N,
D3DDECLTYPE_FLOAT16_2,
D3DDECLTYPE_FLOAT16_4,
D3DDECLTYPE_UNUSED);
for tagD3DDECLTYPE use (D3DDECLTYPE_FLOAT1=>0,
D3DDECLTYPE_FLOAT2=>1,
D3DDECLTYPE_FLOAT3=>2,
D3DDECLTYPE_FLOAT4=>3,
D3DDECLTYPEtagD3DCOLOR=>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);
subtype D3DDECLTYPE is tagD3DDECLTYPE;
-- MAXD3DDECLTYPE : constant := D3DDECLTYPE_UNUSED;
type tagD3DVERTEXELEMENT9 is record
Stream:WORD;
Offset:WORD;
Typ:BYTE;
Method:BYTE;
Usage:BYTE;
UsageIndex:BYTE;
end record;
subtype D3DVERTEXELEMENT9 is tagD3DVERTEXELEMENT9;
type LPD3DVERTEXELEMENT9 is access all tagD3DVERTEXELEMENT9;
-- #define D3DDECL_END() {16#FF,0,D3DDECLTYPE_UNUSED,0,0,0}
D3DDP_MAXTEXCOORD : constant := 8;
D3DSTREAMSOURCE_INDEXEDDATA : constant := (16#4000_0000#);
D3DSTREAMSOURCE_INSTANCEDATA : constant := (16#8000_0000#);
D3DSI_OPCODE_MASK : constant := 16#0000FFFF#;
D3DSI_INSTLENGTH_MASK : constant := 16#0F000000#;
D3DSI_INSTLENGTH_SHIFT : constant := 24;
type tagD3DSHADER_INSTRUCTION_OPCODE_TYPE is (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,
D3DSIO_FORCE_DWORD);
for tagD3DSHADER_INSTRUCTION_OPCODE_TYPE use (D3DSIO_NOP=>0,
D3DSIO_MOV=>1,
D3DSIO_ADD=>2,
D3DSIO_SUB=>3,
D3DSIO_MAD=>4,
D3DSIO_MUL=>5,
D3DSIO_RCP=>6,
D3DSIO_RSQ=>7,
D3DSIO_DP3=>8,
D3DSIO_DP4=>9,
D3DSIO_MIN=>10,
D3DSIO_MAX=>11,
D3DSIO_SLT=>12,
D3DSIO_SGE=>13,
D3DSIO_EXP=>14,
D3DSIO_LOG=>15,
D3DSIO_LIT=>16,
D3DSIO_DST=>17,
D3DSIO_LRP=>18,
D3DSIO_FRC=>19,
D3DSIO_M4x4=>20,
D3DSIO_M4x3=>21,
D3DSIO_M3x4=>22,
D3DSIO_M3x3=>23,
D3DSIO_M3x2=>24,
D3DSIO_CALL=>25,
D3DSIO_CALLNZ=>26,
D3DSIO_LOOP=>27,
D3DSIO_RET=>28,
D3DSIO_ENDLOOP=>29,
D3DSIO_LABEL=>30,
D3DSIO_DCL=>31,
D3DSIO_POW=>32,
D3DSIO_CRS=>33,
D3DSIO_SGN=>34,
D3DSIO_ABS=>35,
D3DSIO_NRM=>36,
D3DSIO_SINCOS=>37,
D3DSIO_REP=>38,
D3DSIO_ENDREP=>39,
D3DSIO_IF=>40,
D3DSIO_IFC=>41,
D3DSIO_ELSE=>42,
D3DSIO_ENDIF=>43,
D3DSIO_BREAK=>44,
D3DSIO_BREAKC=>45,
D3DSIO_MOVA=>46,
D3DSIO_DEFB=>47,
D3DSIO_DEFI=>48,
D3DSIO_TEXCOORD=>64,
D3DSIO_TEXKILL=>65,
D3DSIO_TEX=>66,
D3DSIO_TEXBEM=>67,
D3DSIO_TEXBEML=>68,
D3DSIO_TEXREG2AR=>69,
D3DSIO_TEXREG2GB=>70,
D3DSIO_TEXM3x2PAD=>71,
D3DSIO_TEXM3x2TEX=>72,
D3DSIO_TEXM3x3PAD=>73,
D3DSIO_TEXM3x3TEX=>74,
D3DSIO_RESERVED0=>75,
D3DSIO_TEXM3x3SPEC=>76,
D3DSIO_TEXM3x3VSPEC=>77,
D3DSIO_EXPP=>78,
D3DSIO_LOGP=>79,
D3DSIO_CND=>80,
D3DSIO_DEF=>81,
D3DSIO_TEXREG2RGB=>82,
D3DSIO_TEXDP3TEX=>83,
D3DSIO_TEXM3x2DEPTH=>84,
D3DSIO_TEXDP3=>85,
D3DSIO_TEXM3x3=>86,
D3DSIO_TEXDEPTH=>87,
D3DSIO_CMP=>88,
D3DSIO_BEM=>89,
D3DSIO_DP2ADD=>90,
D3DSIO_DSX=>91,
D3DSIO_DSY=>92,
D3DSIO_TEXLDD=>93,
D3DSIO_SETP=>94,
D3DSIO_TEXLDL=>95,
D3DSIO_BREAKP=>96,
D3DSIO_PHASE=>16#FFFD#,
D3DSIO_COMMENT=>16#FFFE#,
D3DSIO_END=>16#FFFF#,
D3DSIO_FORCE_DWORD=>16#7fffffff#);
subtype D3DSHADER_INSTRUCTION_OPCODE_TYPE is tagD3DSHADER_INSTRUCTION_OPCODE_TYPE;
-- D3DSINCOSCONST1 : constant := -1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f;
-- D3DSINCOSCONST2 : constant := -0.020833334f, -0.12500000f, 1.0f, 0.50000000f;
D3DSI_COISSUE : constant := 16#40000000#;
D3DSP_OPCODESPECIFICCONTROL_MASK : constant := 16#00ff0000#;
D3DSP_OPCODESPECIFICCONTROL_SHIFT : constant := 16;
D3DSI_TEXLD_PROJECT : constant := (16#1000_0#);
D3DSI_TEXLD_BIAS : constant := (16#2000_0#);
type tagD3DSHADER_COMPARISON is (D3DSPC_RESERVED0,
D3DSPC_GT,
D3DSPC_EQ,
D3DSPC_GE,
D3DSPC_LT,
D3DSPC_NE,
D3DSPC_LE,
D3DSPC_RESERVED1);
for tagD3DSHADER_COMPARISON use (D3DSPC_RESERVED0=>0,
D3DSPC_GT=>1,
D3DSPC_EQ=>2,
D3DSPC_GE=>3,
D3DSPC_LT=>4,
D3DSPC_NE=>5,
D3DSPC_LE=>6,
D3DSPC_RESERVED1=>7);
subtype D3DSHADER_COMPARISON is tagD3DSHADER_COMPARISON;
D3DSHADER_COMPARISON_SHIFT : constant := D3DSP_OPCODESPECIFICCONTROL_SHIFT;
D3DSHADER_COMPARISON_MASK : constant := (16#70000#);
D3DSHADER_INSTRUCTION_PREDICATED : constant := (16#1000_0000#);
D3DSP_DCL_USAGE_SHIFT : constant := 0;
D3DSP_DCL_USAGE_MASK : constant := 16#0000000f#;
D3DSP_DCL_USAGEINDEX_SHIFT : constant := 16;
D3DSP_DCL_USAGEINDEX_MASK : constant := 16#000f0000#;
D3DSP_TEXTURETYPE_SHIFT : constant := 27;
D3DSP_TEXTURETYPE_MASK : constant := 16#78000000#;
type tagD3DSAMPLER_TEXTURE_TYPE is (D3DSTT_UNKNOWN,
D3DSTT_2D,
D3DSTT_CUBE,
D3DSTT_VOLUME,
D3DSTT_FORCE_DWORD);
for tagD3DSAMPLER_TEXTURE_TYPE use (D3DSTT_UNKNOWN=>0,
D3DSTT_2D=>16#1000_0000#,
D3DSTT_CUBE=>16#1800_0000#,
D3DSTT_VOLUME=>16#2000_0000#,
D3DSTT_FORCE_DWORD=>16#7fffffff#);
subtype D3DSAMPLER_TEXTURE_TYPE is tagD3DSAMPLER_TEXTURE_TYPE;
D3DSP_REGNUM_MASK : constant := 16#000007FF#;
D3DSP_WRITEMASK_0 : constant := 16#00010000#; -- Component 0 (X;Red);
D3DSP_WRITEMASK_1 : constant := 16#00020000#; -- Component 1 (Y;Green);
D3DSP_WRITEMASK_2 : constant := 16#00040000#; -- Component 2 (Z;Blue);
D3DSP_WRITEMASK_3 : constant := 16#00080000#; -- Component 3 (W;Alpha);
D3DSP_WRITEMASK_ALL : constant := 16#000F0000#; -- All Components;
D3DSP_DSTMOD_SHIFT : constant := 20;
D3DSP_DSTMOD_MASK : constant := 16#00F00000#;
D3DSPDM_NONE : constant := (0); -- nop;
D3DSPDM_SATURATE : constant := (16#1000_00#); -- clamp to 0. to 1. range;
D3DSPDM_PARTIALPRECISION : constant := (16#2000_00#); -- Partial precision hint;
D3DSPDM_MSAMPCENTROID : constant := (16#4000_00#); -- Relevant to multisampling only:;
D3DSP_DSTSHIFT_SHIFT : constant := 24;
D3DSP_DSTSHIFT_MASK : constant := 16#0F000000#;
D3DSP_REGTYPE_SHIFT : constant := 28;
D3DSP_REGTYPE_SHIFT2 : constant := 8;
D3DSP_REGTYPE_MASK : constant := 16#70000000#;
D3DSP_REGTYPE_MASK2 : constant := 16#00001800#;
type tagD3DSHADER_PARAM_REGISTER_TYPE is (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,
D3DSPR_FORCE_DWORD);
for tagD3DSHADER_PARAM_REGISTER_TYPE use (D3DSPR_TEMP=>0,
D3DSPR_INPUT=>1,
D3DSPR_CONST=>2,
--D3DSPR_ADDR=>3,
D3DSPR_TEXTURE=>3,
D3DSPR_RASTOUT=>4,
D3DSPR_ATTROUT=>5,
--D3DSPR_TEXCRDOUT=>6,
D3DSPR_OUTPUT=>6,
D3DSPR_CONSTINT=>7,
D3DSPR_COLOROUT=>8,
D3DSPR_DEPTHOUT=>9,
D3DSPR_SAMPLER=>10,
D3DSPR_CONST2=>11,
D3DSPR_CONST3=>12,
D3DSPR_CONST4=>13,
D3DSPR_CONSTBOOL=>14,
D3DSPR_LOOP=>15,
D3DSPR_TEMPFLOAT16=>16,
D3DSPR_MISCTYPE=>17,
D3DSPR_LABEL=>18,
D3DSPR_PREDICATE=>19,
D3DSPR_FORCE_DWORD=>16#7fffffff#);
D3DSPR_ADDR:constant tagD3DSHADER_PARAM_REGISTER_TYPE:=D3DSPR_TEXTURE;
D3DSPR_TEXCRDOUT:constant tagD3DSHADER_PARAM_REGISTER_TYPE:=D3DSPR_OUTPUT;
subtype D3DSHADER_PARAM_REGISTER_TYPE is tagD3DSHADER_PARAM_REGISTER_TYPE;
type tagD3DSHADER_MISCTYPE_OFFSETS is (D3DSMO_POSITION,
D3DSMO_FACE);
for tagD3DSHADER_MISCTYPE_OFFSETS use (D3DSMO_POSITION=>0,
D3DSMO_FACE=>1);
subtype D3DSHADER_MISCTYPE_OFFSETS is tagD3DSHADER_MISCTYPE_OFFSETS;
type tagD3DVS_RASTOUT_OFFSETS is (D3DSRO_POSITION,
D3DSRO_FOG,
D3DSRO_POINT_SIZE,
D3DSRO_FORCE_DWORD);
for tagD3DVS_RASTOUT_OFFSETS use (D3DSRO_POSITION=>0,
D3DSRO_FOG=>0+ 1,
D3DSRO_POINT_SIZE=>0+ 1+ 1,
D3DSRO_FORCE_DWORD=>16#7fffffff#);
subtype D3DVS_RASTOUT_OFFSETS is tagD3DVS_RASTOUT_OFFSETS;
D3DVS_ADDRESSMODE_SHIFT : constant := 13;
D3DVS_ADDRESSMODE_MASK : constant := (16#2000#);
type tagD3DVS_ADDRESSMODE_TYPE is (D3DVS_ADDRMODE_ABSOLUTE,
D3DVS_ADDRMODE_RELATIVE,
D3DVS_ADDRMODE_FORCE_DWORD);
for tagD3DVS_ADDRESSMODE_TYPE use (D3DVS_ADDRMODE_ABSOLUTE=>(0),
D3DVS_ADDRMODE_RELATIVE=>(16#2000#),
D3DVS_ADDRMODE_FORCE_DWORD=>16#7fffffff#);
subtype D3DVS_ADDRESSMODE_TYPE is tagD3DVS_ADDRESSMODE_TYPE;
D3DSHADER_ADDRESSMODE_SHIFT : constant := 13;
D3DSHADER_ADDRESSMODE_MASK : constant := (16#2000#);
type tagD3DSHADER_ADDRESSMODE_TYPE is (D3DSHADER_ADDRMODE_ABSOLUTE,
D3DSHADER_ADDRMODE_RELATIVE,
D3DSHADER_ADDRMODE_FORCE_DWORD);
for tagD3DSHADER_ADDRESSMODE_TYPE use (D3DSHADER_ADDRMODE_ABSOLUTE=>(0),
D3DSHADER_ADDRMODE_RELATIVE=>(16#2000#),
D3DSHADER_ADDRMODE_FORCE_DWORD=>16#7fffffff#);
subtype D3DSHADER_ADDRESSMODE_TYPE is tagD3DSHADER_ADDRESSMODE_TYPE;
D3DVS_SWIZZLE_SHIFT : constant := 16;
D3DVS_SWIZZLE_MASK : constant := 16#00FF0000#;
D3DVS_X_X : constant dword:= Lsh(0 , D3DVS_SWIZZLE_SHIFT);
D3DVS_X_Y : constant dword:= Lsh(1 , D3DVS_SWIZZLE_SHIFT);
D3DVS_X_Z : constant dword:= Lsh(2 , D3DVS_SWIZZLE_SHIFT);
D3DVS_X_W : constant dword:= Lsh(3 , D3DVS_SWIZZLE_SHIFT);
D3DVS_Y_X : constant dword:= Lsh(0 , 18);
D3DVS_Y_Y : constant dword:= Lsh(1 , 18);
D3DVS_Y_Z : constant dword:= Lsh(2 , 18);
D3DVS_Y_W : constant dword:= Lsh(3 , 18);
D3DVS_Z_X : constant dword:= Lsh(0 , 20);
D3DVS_Z_Y : constant dword:= Lsh(1 , 20);
D3DVS_Z_Z : constant dword:= Lsh(2 , 20);
D3DVS_Z_W : constant dword:= Lsh(3 , 20);
D3DVS_W_X : constant dword:= Lsh(0 , 22);
D3DVS_W_Y : constant dword:= Lsh(1 , 22);
D3DVS_W_Z : constant dword:= Lsh(2 , 22);
D3DVS_W_W : constant dword:= Lsh(3 , 22);
D3DVS_NOSWIZZLE : constant dword:= (D3DVS_X_X or D3DVS_Y_Y or D3DVS_Z_Z or D3DVS_W_W);
D3DSP_SWIZZLE_SHIFT : constant := 16;
D3DSP_SWIZZLE_MASK : constant := 16#00FF0000#;
D3DSP_SRCMOD_SHIFT : constant := 24;
D3DSP_SRCMOD_MASK : constant := 16#0F000000#;
type tagD3DSHADER_PARAM_SRCMOD_TYPE is (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,
D3DSPSM_FORCE_DWORD);
for tagD3DSHADER_PARAM_SRCMOD_TYPE use (D3DSPSM_NONE=>0,
D3DSPSM_NEG=>16#1000_000#,
D3DSPSM_BIAS=>16#2000_000#,
D3DSPSM_BIASNEG=>16#3000_000#,
D3DSPSM_SIGN=>16#4000_000#,
D3DSPSM_SIGNNEG=>16#5000_000#,
D3DSPSM_COMP=>16#6000_000#,
D3DSPSM_X2=>16#7000_000#,
D3DSPSM_X2NEG=>16#8000_000#,
D3DSPSM_DZ=>16#9000_000#,
D3DSPSM_DW=>16#A000_000#,
D3DSPSM_ABS=>16#B000_000#,
D3DSPSM_ABSNEG=>16#C000_000#,
D3DSPSM_NOT=>16#D000_000#,
D3DSPSM_FORCE_DWORD=>16#7fffffff#);
subtype D3DSHADER_PARAM_SRCMOD_TYPE is tagD3DSHADER_PARAM_SRCMOD_TYPE;
-- #define D3DPS_VERSION(_Major,_Minor) (16#FFFF0000# or ((_Major)<<8) or (_Minor))
function D3DPS_VERSION(Major,Minor:DWORD) return DWORD is (16#FFFF0000# or Lsh(Major,8) or Minor);
-- #define D3DVS_VERSION(_Major,_Minor) (16#FFFE0000or((_Major),8)or(_Minor))
function D3DVS_VERSION(Major,Minor:DWORD) return DWORD is (16#FFFE0000# or Lsh(Major,8) or Minor);
-- #define D3DSHADER_VERSION_MAJOR(_Version) (((_Version)>>8)&16#ff#)
function D3DSHADER_VERSION_MAJOR(Version:DWORD) return DWORD is (Rsh(Version,8) and 16#ff#);
-- #define D3DSHADER_VERSION_MINOR(_Version) (((_Version)>>0)&16#ff#)
function D3DSHADER_VERSION_MINOR(Version:DWORD) return DWORD is (Rsh(Version,0) and 16#ff#);
D3DSI_COMMENTSIZE_SHIFT : constant := 16;
D3DSI_COMMENTSIZE_MASK : constant := 16#7FFF0000#;
-- #define D3DSHADER_COMMENT(_DWordSize) ((((_DWordSize)<<D3DSI_COMMENTSIZE_SHIFT)&D3DSI_COMMENTSIZE_MASK)orD3DSIO_COMMENT)
function D3DSHADER_COMMENT(DWordSize:DWORD) return DWORD is ((Lsh(DWordSize,D3DSI_COMMENTSIZE_SHIFT) and D3DSI_COMMENTSIZE_MASK) or 16#FFFE#);
-- #define D3DPS_END() 16#0000FFFF#
function D3DPS_END return dword is (16#0000FFFF#);
-- #define D3DVS_END() 16#0000FFFF#
function D3DVS_END return dword is (16#0000FFFF#);
type tagD3DBASISTYPE is (D3DBASIS_BEZIER,
D3DBASIS_BSPLINE,
D3DBASIS_CATMULL_ROM,
D3DBASIS_FORCE_DWORD);
for tagD3DBASISTYPE use (D3DBASIS_BEZIER=>0,
D3DBASIS_BSPLINE=>1,
D3DBASIS_CATMULL_ROM=>2,
D3DBASIS_FORCE_DWORD=>16#7fffffff#);
subtype D3DBASISTYPE is tagD3DBASISTYPE;
type tagD3DDEGREETYPE is (D3DDEGREE_LINEAR,
D3DDEGREE_QUADRATIC,
D3DDEGREE_CUBIC,
D3DDEGREE_QUINTIC,
D3DDEGREE_FORCE_DWORD);
for tagD3DDEGREETYPE use (D3DDEGREE_LINEAR=>1,
D3DDEGREE_QUADRATIC=>2,
D3DDEGREE_CUBIC=>3,
D3DDEGREE_QUINTIC=>5,
D3DDEGREE_FORCE_DWORD=>16#7fffffff#);
subtype D3DDEGREETYPE is tagD3DDEGREETYPE;
type tagD3DPATCHEDGESTYLE is (D3DPATCHEDGE_DISCRETE,
D3DPATCHEDGE_CONTINUOUS,
D3DPATCHEDGE_FORCE_DWORD);
for tagD3DPATCHEDGESTYLE use (D3DPATCHEDGE_DISCRETE=>0,
D3DPATCHEDGE_CONTINUOUS=>1,
D3DPATCHEDGE_FORCE_DWORD=>16#7fffffff#);
subtype D3DPATCHEDGESTYLE is tagD3DPATCHEDGESTYLE;
type tagD3DSTATEBLOCKTYPE is (D3DSBT_ALL,
D3DSBT_PIXELSTATE,
D3DSBT_VERTEXSTATE,
D3DSBT_FORCE_DWORD);
for tagD3DSTATEBLOCKTYPE use (D3DSBT_ALL=>1,
D3DSBT_PIXELSTATE=>2,
D3DSBT_VERTEXSTATE=>3,
D3DSBT_FORCE_DWORD=>16#7fffffff#);
subtype D3DSTATEBLOCKTYPE is tagD3DSTATEBLOCKTYPE;
type tagD3DVERTEXBLENDFLAGS is (D3DVBF_DISABLE,
D3DVBF_1WEIGHTS,
D3DVBF_2WEIGHTS,
D3DVBF_3WEIGHTS,
D3DVBF_TWEENING,
D3DVBF_0WEIGHTS,
D3DVBF_FORCE_DWORD);
for tagD3DVERTEXBLENDFLAGS use (D3DVBF_DISABLE=>0,
D3DVBF_1WEIGHTS=>1,
D3DVBF_2WEIGHTS=>2,
D3DVBF_3WEIGHTS=>3,
D3DVBF_TWEENING=>255,
D3DVBF_0WEIGHTS=>256,
D3DVBF_FORCE_DWORD=>16#7fffffff#);
subtype D3DVERTEXBLENDFLAGS is tagD3DVERTEXBLENDFLAGS;
type tagD3DTEXTURETRANSFORMFLAGS is (D3DTTFF_DISABLE,
D3DTTFF_COUNT1,
D3DTTFF_COUNT2,
D3DTTFF_COUNT3,
D3DTTFF_COUNT4,
D3DTTFF_PROJECTED,
D3DTTFF_FORCE_DWORD);
for tagD3DTEXTURETRANSFORMFLAGS use (D3DTTFF_DISABLE=>0,
D3DTTFF_COUNT1=>1,
D3DTTFF_COUNT2=>2,
D3DTTFF_COUNT3=>3,
D3DTTFF_COUNT4=>4,
D3DTTFF_PROJECTED=>256,
D3DTTFF_FORCE_DWORD=>16#7fffffff#);
subtype D3DTEXTURETRANSFORMFLAGS is tagD3DTEXTURETRANSFORMFLAGS;
D3DFVF_TEXTUREFORMAT2 : constant := 0; -- Two floating point values;
D3DFVF_TEXTUREFORMAT1 : constant := 3; -- One floating point value;
D3DFVF_TEXTUREFORMAT3 : constant := 1; -- Three floating point values;
D3DFVF_TEXTUREFORMAT4 : constant := 2; -- Four floating point values;
-- #define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
function D3DFVF_TEXCOORDSIZE3(CoordIndex:DWORD) return DWORD is (Lsh(D3DFVF_TEXTUREFORMAT3,integer(CoordIndex*2+16)));
-- #define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
function D3DFVF_TEXCOORDSIZE2(CoordIndex:DWORD) return DWORD is (D3DFVF_TEXTUREFORMAT2);
-- #define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
function D3DFVF_TEXCOORDSIZE4(CoordIndex:DWORD) return DWORD is (Lsh(D3DFVF_TEXTUREFORMAT4 , integer(CoordIndex*2 + 16)));
-- #define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
function D3DFVF_TEXCOORDSIZE1(CoordIndex:DWORD) return DWORD is (Lsh(D3DFVF_TEXTUREFORMAT1 , integer(CoordIndex*2 + 16)));
type tagD3DDEVTYPE is (D3DDEVTYPE_HAL,
D3DDEVTYPE_REF,
D3DDEVTYPE_SW,
D3DDEVTYPE_NULLREF,
D3DDEVTYPE_FORCE_DWORD);
for tagD3DDEVTYPE use (D3DDEVTYPE_HAL=>1,
D3DDEVTYPE_REF=>2,
D3DDEVTYPE_SW=>3,
D3DDEVTYPE_NULLREF=>4,
D3DDEVTYPE_FORCE_DWORD=>16#7fffffff#);
subtype D3DDEVTYPE is tagD3DDEVTYPE;
type tagD3DMULTISAMPLE_TYPE is (D3DMULTISAMPLE_NONE,
D3DMULTISAMPLE_NONMASKABLE,
D3DMULTISAMPLE_2_SAMPLES,
D3DMULTISAMPLE_3_SAMPLES,
D3DMULTISAMPLE_4_SAMPLES,
D3DMULTISAMPLE_5_SAMPLES,
D3DMULTISAMPLE_6_SAMPLES,
D3DMULTISAMPLE_7_SAMPLES,
D3DMULTISAMPLE_8_SAMPLES,
D3DMULTISAMPLE_9_SAMPLES,
D3DMULTISAMPLE_10_SAMPLES,
D3DMULTISAMPLE_11_SAMPLES,
D3DMULTISAMPLE_12_SAMPLES,
D3DMULTISAMPLE_13_SAMPLES,
D3DMULTISAMPLE_14_SAMPLES,
D3DMULTISAMPLE_15_SAMPLES,
D3DMULTISAMPLE_16_SAMPLES,
D3DMULTISAMPLE_FORCE_DWORD);
for tagD3DMULTISAMPLE_TYPE use (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=>16#7fffffff#);
subtype D3DMULTISAMPLE_TYPE is tagD3DMULTISAMPLE_TYPE;
-- #define MAKEFOURCC(ch0, ch1, ch2, ch3) ((DWORD)(BYTE)(ch0) or ((DWORD)(BYTE)(ch1) << 8) or ((DWORD)(BYTE)(ch2) << 16) or ((DWORD)(BYTE)(ch3) << 24 ))
function AsDWORD is new Ada.Unchecked_Conversion(char,DWORD);pragma Warnings(off,AsDWORD);
function MAKEFOURCC(ch0,ch1,ch2,ch3:char) return dword is (AsDWORD(ch0) or Lsh(AsDWORD(ch1),8) or Lsh(AsDWORD(ch2),16) or Lsh(AsDWORD(ch3),24));
-- type FOURCC(B:Boolean:=True) is record
-- case B is
-- when True=>
-- ch0,ch1,ch2,ch3:char;
-- when False=>
-- dw:dword;
-- end case;
-- end record with Unchecked_Union;
--
-- UYVY:constant FOURCC:=(True,'U', 'Y', 'V', 'Y');
-- RGBG:constant FOURCC:=(True,'R', 'G', 'B', 'G');
-- YUY2:constant FOURCC:=(True,'Y', 'U', 'Y', '2');
-- GRGB:constant FOURCC:=(True,'G', 'R', 'G', 'B');
-- DXT1:constant FOURCC:=(True,'D', 'X', 'T', '1');
-- DXT2:constant FOURCC:=(True,'D', 'X', 'T', '2');
-- DXT3:constant FOURCC:=(True,'D', 'X', 'T', '3');
-- DXT4:constant FOURCC:=(True,'D', 'X', 'T', '4');
-- DXT5:constant FOURCC:=(True,'D', 'X', 'T', '5');
type tagD3DFORMAT is (D3DFMT_UNKNOWN,
D3DFMT_R8G8B8,
D3DFMT_A8R8G8B8,
D3DFMT_X8R8G8B8,
D3DFMT_R5G6B5,
D3DFMT_X1R5G5B5,
D3DFMT_A1R5G5B5,
D3DFMT_A4R4G4B4,
D3DFMT_R3G3B2,
D3DFMT_A8,
D3DFMT_A8R3G3B2,
D3DFMT_X4R4G4B4,
D3DFMT_A2B10G10R10,
D3DFMT_A8B8G8R8,
D3DFMT_X8B8G8R8,
D3DFMT_G16R16,
D3DFMT_A2R10G10B10,
D3DFMT_A16B16G16R16,
D3DFMT_A8P8,
D3DFMT_P8,
D3DFMT_L8,
D3DFMT_A8L8,
D3DFMT_A4L4,
D3DFMT_V8U8,
D3DFMT_L6V5U5,
D3DFMT_X8L8V8U8,
D3DFMT_Q8W8V8U8,
D3DFMT_V16U16,
D3DFMT_A2W10V10U10,
D3DFMT_D16_LOCKABLE,
D3DFMT_D32,
D3DFMT_D15S1,
D3DFMT_D24S8,
D3DFMT_D24X8,
D3DFMT_D24X4S4,
D3DFMT_D16,
D3DFMT_L16,
D3DFMT_D32F_LOCKABLE,
D3DFMT_D24FS8,
D3DFMT_D32_LOCKABLE,
D3DFMT_S8_LOCKABLE,
D3DFMT_VERTEXDATA,
D3DFMT_INDEX16,
D3DFMT_INDEX32,
D3DFMT_Q16W16V16U16,
D3DFMT_R16F,
D3DFMT_G16R16F,
D3DFMT_A16B16G16R16F,
D3DFMT_R32F,
D3DFMT_G32R32F,
D3DFMT_A32B32G32R32F,
D3DFMT_CxV8U8,
D3DFMT_A1,
D3DFMT_A2B10G10R10_XR_BIAS,
D3DFMT_BINARYBUFFER,
D3DFMT_MULTI2_ARGB8,
D3DFMT_DXT1,
D3DFMT_DXT2,
D3DFMT_YUY2,
D3DFMT_DXT3,
D3DFMT_DXT4,
D3DFMT_DXT5,
D3DFMT_G8R8_G8B8,
D3DFMT_R8G8_B8G8,
D3DFMT_UYVY,
D3DFMT_FORCE_DWORD);
for tagD3DFORMAT use (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_D16_LOCKABLE=>70,
D3DFMT_D32=>71,
D3DFMT_D15S1=>73,
D3DFMT_D24S8=>75,
D3DFMT_D24X8=>77,
D3DFMT_D24X4S4=>79,
D3DFMT_D16=>80,
D3DFMT_L16=>81,
D3DFMT_D32F_LOCKABLE=>82,
D3DFMT_D24FS8=>83,
D3DFMT_D32_LOCKABLE=>84,
D3DFMT_S8_LOCKABLE=>85,
D3DFMT_VERTEXDATA=>100,
D3DFMT_INDEX16=>101,
D3DFMT_INDEX32=>102,
D3DFMT_Q16W16V16U16=>110,
D3DFMT_R16F=>111,
D3DFMT_G16R16F=>112,
D3DFMT_A16B16G16R16F=>113,
D3DFMT_R32F=>114,
D3DFMT_G32R32F=>115,
D3DFMT_A32B32G32R32F=>116,
D3DFMT_CxV8U8=>117,
D3DFMT_A1=>118,
D3DFMT_A2B10G10R10_XR_BIAS=>119,
D3DFMT_BINARYBUFFER=>199,
D3DFMT_MULTI2_ARGB8=>16#3154_454D#,
D3DFMT_DXT1 =>16#3154_5844#,
D3DFMT_DXT2 =>16#3254_5844#,
D3DFMT_YUY2 =>16#3259_5559#,
D3DFMT_DXT3 =>16#3354_5844#,
D3DFMT_DXT4 =>16#3454_5844#,
D3DFMT_DXT5 =>16#3554_5844#,
D3DFMT_G8R8_G8B8 =>16#4247_5247#,
D3DFMT_R8G8_B8G8 =>16#4742_4752#,
D3DFMT_UYVY =>16#5956_5955#,
D3DFMT_FORCE_DWORD=>16#7fffffff#);
subtype D3DFORMAT is tagD3DFORMAT;
type tagD3DDISPLAYMODE is record
Width:UINT;
Height:UINT;
RefreshRate:UINT;
Format:D3DFORMAT;
end record;
subtype D3DDISPLAYMODE is tagD3DDISPLAYMODE;
type tagD3DDEVICE_CREATION_PARAMETERS is record
AdapterOrdinal:UINT;
DeviceType:D3DDEVTYPE;
hFocusWindow:win32.windef.HWND;
BehaviorFlags:DWORD;
end record;
subtype D3DDEVICE_CREATION_PARAMETERS is tagD3DDEVICE_CREATION_PARAMETERS;
type tagD3DSWAPEFFECT is (D3DSWAPEFFECT_DISCARD,
D3DSWAPEFFECT_FLIP,
D3DSWAPEFFECT_COPY,
D3DSWAPEFFECT_OVERLAY,
D3DSWAPEFFECT_FLIPEX,
D3DSWAPEFFECT_FORCE_DWORD);
for tagD3DSWAPEFFECT use (D3DSWAPEFFECT_DISCARD=>1,
D3DSWAPEFFECT_FLIP=>2,
D3DSWAPEFFECT_COPY=>3,
D3DSWAPEFFECT_OVERLAY=>4,
D3DSWAPEFFECT_FLIPEX=>5,
D3DSWAPEFFECT_FORCE_DWORD=>16#7fffffff#);
subtype D3DSWAPEFFECT is tagD3DSWAPEFFECT;
type tagD3DPOOL is (D3DPOOL_DEFAULT,
D3DPOOL_MANAGED,
D3DPOOL_SYSTEMMEM,
D3DPOOL_SCRATCH,
D3DPOOL_FORCE_DWORD);
for tagD3DPOOL use (D3DPOOL_DEFAULT=>0,
D3DPOOL_MANAGED=>1,
D3DPOOL_SYSTEMMEM=>2,
D3DPOOL_SCRATCH=>3,
D3DPOOL_FORCE_DWORD=>16#7fffffff#);
subtype D3DPOOL is tagD3DPOOL;
D3DPRESENT_RATE_DEFAULT : constant := 16#00000000#;
type tagD3DPRESENT_PARAMETERS is record
BackBufferWidth:UINT;
BackBufferHeight:UINT;
BackBufferFormat:D3DFORMAT;
BackBufferCount:UINT;
MultiSampleType:D3DMULTISAMPLE_TYPE;
MultiSampleQuality:DWORD;
SwapEffect:D3DSWAPEFFECT;
hDeviceWindow:HWND;
Windowed:BOOL;
EnableAutoDepthStencil:BOOL;
AutoDepthStencilFormat:D3DFORMAT;
Flags:DWORD;
FullScreen_RefreshRateInHz:UINT;
PresentationInterval:UINT;
end record;
subtype D3DPRESENT_PARAMETERS is tagD3DPRESENT_PARAMETERS;
D3DPRESENTFLAG_LOCKABLE_BACKBUFFER : constant := 16#00000001#;
D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL : constant := 16#00000002#;
D3DPRESENTFLAG_DEVICECLIP : constant := 16#00000004#;
D3DPRESENTFLAG_VIDEO : constant := 16#00000010#;
D3DPRESENTFLAG_NOAUTOROTATE : constant := 16#00000020#;
D3DPRESENTFLAG_UNPRUNEDMODE : constant := 16#00000040#;
D3DPRESENTFLAG_OVERLAY_LIMITEDRGB : constant := 16#00000080#;
D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 : constant := 16#00000100#;
D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC : constant := 16#00000200#;
D3DPRESENTFLAG_RESTRICTED_CONTENT : constant := 16#00000400#;
D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER : constant := 16#00000800#;
type tagD3DGAMMARAMP is record
red :WORD_Array(0..255);
green:WORD_Array(0..255);
blue :WORD_Array(0..255);
end record;
subtype D3DGAMMARAMP is tagD3DGAMMARAMP;
type tagD3DBACKBUFFER_TYPE is (D3DBACKBUFFER_TYPE_MONO,
D3DBACKBUFFER_TYPE_LEFT,
D3DBACKBUFFER_TYPE_RIGHT,
D3DBACKBUFFER_TYPE_FORCE_DWORD);
for tagD3DBACKBUFFER_TYPE use (D3DBACKBUFFER_TYPE_MONO=>0,
D3DBACKBUFFER_TYPE_LEFT=>1,
D3DBACKBUFFER_TYPE_RIGHT=>2,
D3DBACKBUFFER_TYPE_FORCE_DWORD=>16#7fffffff#);
subtype D3DBACKBUFFER_TYPE is tagD3DBACKBUFFER_TYPE;
type tagD3DRESOURCETYPE is (D3DRTYPE_SURFACE,
D3DRTYPE_VOLUME,
D3DRTYPE_TEXTURE,
D3DRTYPE_VOLUMETEXTURE,
D3DRTYPE_CUBETEXTURE,
D3DRTYPE_VERTEXBUFFER,
D3DRTYPE_INDEXBUFFER,
D3DRTYPE_FORCE_DWORD);
for tagD3DRESOURCETYPE use (D3DRTYPE_SURFACE=>1,
D3DRTYPE_VOLUME=>2,
D3DRTYPE_TEXTURE=>3,
D3DRTYPE_VOLUMETEXTURE=>4,
D3DRTYPE_CUBETEXTURE=>5,
D3DRTYPE_VERTEXBUFFER=>6,
D3DRTYPE_INDEXBUFFER=>7,
D3DRTYPE_FORCE_DWORD=>16#7fffffff#);
subtype D3DRESOURCETYPE is tagD3DRESOURCETYPE;
D3DUSAGE_RENDERTARGET : constant := (16#00000001#);
D3DUSAGE_DEPTHSTENCIL : constant := (16#00000002#);
D3DUSAGE_DYNAMIC : constant := (16#00000200#);
D3DUSAGE_NONSECURE : constant := (16#00800000#);
D3DUSAGE_AUTOGENMIPMAP : constant := (16#00000400#);
D3DUSAGE_DMAP : constant := (16#00004000#);
D3DUSAGE_QUERY_LEGACYBUMPMAP : constant := (16#00008000#);
D3DUSAGE_QUERY_SRGBREAD : constant := (16#00010000#);
D3DUSAGE_QUERY_FILTER : constant := (16#00020000#);
D3DUSAGE_QUERY_SRGBWRITE : constant := (16#00040000#);
D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING : constant := (16#00080000#);
D3DUSAGE_QUERY_VERTEXTEXTURE : constant := (16#00100000#);
D3DUSAGE_QUERY_WRAPANDMIP : constant := (16#00200000#);
D3DUSAGE_WRITEONLY : constant := (16#00000008#);
D3DUSAGE_SOFTWAREPROCESSING : constant := (16#00000010#);
D3DUSAGE_DONOTCLIP : constant := (16#00000020#);
D3DUSAGE_POINTS : constant := (16#00000040#);
D3DUSAGE_RTPATCHES : constant := (16#00000080#);
D3DUSAGE_NPATCHES : constant := (16#00000100#);
D3DUSAGE_TEXTAPI : constant := (16#10000000#);
D3DUSAGE_RESTRICTED_CONTENT : constant := (16#00000800#);
D3DUSAGE_RESTRICT_SHARED_RESOURCE : constant := (16#00002000#);
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER : constant := (16#00001000#) ;
type tagD3DCUBEMAP_FACES is (D3DCUBEMAP_FACE_POSITIVE_X,
D3DCUBEMAP_FACE_NEGATIVE_X,
D3DCUBEMAP_FACE_POSITIVE_Y,
D3DCUBEMAP_FACE_NEGATIVE_Y,
D3DCUBEMAP_FACE_POSITIVE_Z,
D3DCUBEMAP_FACE_NEGATIVE_Z,
D3DCUBEMAP_FACE_FORCE_DWORD);
for tagD3DCUBEMAP_FACES use (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=>16#7fffffff#);
subtype D3DCUBEMAP_FACES is tagD3DCUBEMAP_FACES;
D3DLOCK_READONLY : constant := 16#00000010#;
D3DLOCK_DISCARD : constant := 16#00002000#;
D3DLOCK_NOOVERWRITE : constant := 16#00001000#;
D3DLOCK_NOSYSLOCK : constant := 16#00000800#;
D3DLOCK_DONOTWAIT : constant := 16#00004000#;
D3DLOCK_NO_DIRTY_UPDATE : constant := 16#00008000#;
type tagD3DVERTEXBUFFER_DESC is record
Format:D3DFORMAT;
Typ:D3DRESOURCETYPE;
Usage:DWORD;
Pool:D3DPOOL;
Size:UINT;
FVF:DWORD;
end record;
subtype D3DVERTEXBUFFER_DESC is tagD3DVERTEXBUFFER_DESC;
type tagD3DINDEXBUFFER_DESC is record
Format:D3DFORMAT;
Typ:D3DRESOURCETYPE;
Usage:DWORD;
Pool:D3DPOOL;
Size:UINT;
end record;
subtype D3DINDEXBUFFER_DESC is tagD3DINDEXBUFFER_DESC;
type tagD3DSURFACE_DESC is record
Format:D3DFORMAT;
Typ:D3DRESOURCETYPE;
Usage:DWORD;
Pool:D3DPOOL;
MultiSampleType:D3DMULTISAMPLE_TYPE;
MultiSampleQuality:DWORD;
Width:UINT;
Height:UINT;
end record;
subtype D3DSURFACE_DESC is tagD3DSURFACE_DESC;
type tagD3DVOLUME_DESC is record
Format:D3DFORMAT;
Typ:D3DRESOURCETYPE;
Usage:DWORD;
Pool:D3DPOOL;
Width:UINT;
Height:UINT;
Depth:UINT;
end record;
subtype D3DVOLUME_DESC is tagD3DVOLUME_DESC;
type tagD3DLOCKED_RECT is record
Pitch:INT;
pBits:LPvoid;
end record;
subtype D3DLOCKED_RECT is tagD3DLOCKED_RECT;
type tagD3DBOX is record
Left:UINT;
Top:UINT;
Right:UINT;
Bottom:UINT;
Front:UINT;
Back:UINT;
end record;
subtype D3DBOX is tagD3DBOX;
type tagD3DLOCKED_BOX is record
RowPitch:INT;
SlicePitch:INT;
pBits:LPvoid;
end record;
subtype D3DLOCKED_BOX is tagD3DLOCKED_BOX;
type tagD3DRANGE is record
Offset:UINT;
Size:UINT;
end record;
subtype D3DRANGE is tagD3DRANGE;
type tagD3DRECTPATCH_INFO is record
StartVertexOffsetWidth:UINT;
StartVertexOffsetHeight:UINT;
Width:UINT;
Height:UINT;
Stride:UINT;
Basis:D3DBASISTYPE;
Degree:D3DDEGREETYPE;
end record;
subtype D3DRECTPATCH_INFO is tagD3DRECTPATCH_INFO;
type tagD3DTRIPATCH_INFO is record
StartVertexOffset:UINT;
NumVertices:UINT;
Basis:D3DBASISTYPE;
Degree:D3DDEGREETYPE;
end record;
subtype D3DTRIPATCH_INFO is tagD3DTRIPATCH_INFO;
MAX_DEVICE_IDENTIFIER_STRING : constant := 512;
type tagD3DADAPTER_IDENTIFIER9 is record
Driver:char_Array(0..MAX_DEVICE_IDENTIFIER_STRING-1);
Description:char_Array(0..MAX_DEVICE_IDENTIFIER_STRING-1);
DeviceName:char_Array(0..32-1);
DriverVersion:LARGE_INTEGER;
DriverVersionLowPart:DWORD;
DriverVersionHighPart:DWORD;
VendorId:DWORD;
DeviceId:DWORD;
SubSysId:DWORD;
Revision:DWORD;
DeviceIdentifier:GUID;
WHQLLevel:DWORD;
end record;
subtype D3DADAPTER_IDENTIFIER9 is tagD3DADAPTER_IDENTIFIER9;
type tagD3DRASTER_STATUS is record
InVBlank:BOOL;
ScanLine:UINT;
end record;
subtype D3DRASTER_STATUS is tagD3DRASTER_STATUS;
type tagD3DDEBUGMONITORTOKENS is (D3DDMT_ENABLE,
D3DDMT_DISABLE,
D3DDMT_FORCE_DWORD);
for tagD3DDEBUGMONITORTOKENS use (D3DDMT_ENABLE=>0,
D3DDMT_DISABLE=>1,
D3DDMT_FORCE_DWORD=>16#7fffffff#);
subtype D3DDEBUGMONITORTOKENS is tagD3DDEBUGMONITORTOKENS;
type tagD3DQUERYTYPE is (D3DQUERYTYPE_VCACHE,
D3DQUERYTYPE_RESOURCEMANAGER,
D3DQUERYTYPE_VERTEXSTATS,
D3DQUERYTYPE_EVENT,
D3DQUERYTYPE_OCCLUSION,
D3DQUERYTYPE_TIMESTAMP,
D3DQUERYTYPE_TIMESTAMPDISJOINT,
D3DQUERYTYPE_TIMESTAMPFREQ,
D3DQUERYTYPE_PIPELINETIMINGS,
D3DQUERYTYPE_INTERFACETIMINGS,
D3DQUERYTYPE_VERTEXTIMINGS,
D3DQUERYTYPE_PIXELTIMINGS,
D3DQUERYTYPE_BANDWIDTHTIMINGS,
D3DQUERYTYPE_CACHEUTILIZATION,
D3DQUERYTYPE_MEMORYPRESSURE);
for tagD3DQUERYTYPE use (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,
D3DQUERYTYPE_MEMORYPRESSURE=>19);
subtype D3DQUERYTYPE is tagD3DQUERYTYPE;
D3DISSUE_END : constant := (1); -- Tells the runtime to issue the end of a query, changing it's state to "non-signaled".;
D3DISSUE_BEGIN : constant := (2); -- Tells the runtime to issue the beginng of a query.;
D3DGETDATA_FLUSH : constant := (1); -- Tells the runtime to flush if the query is outstanding.;
type tagD3DRESOURCESTATS is record
bThrashing:BOOL;
ApproxBytesDownloaded:DWORD;
NumEvicts:DWORD;
NumVidCreates:DWORD;
LastPri:DWORD;
NumUsed:DWORD;
NumUsedInVidMem:DWORD;
WorkingSet:DWORD;
WorkingSetBytes:DWORD;
TotalManaged:DWORD;
TotalBytes:DWORD;
end record;
subtype D3DRESOURCESTATS is tagD3DRESOURCESTATS;
type D3DRESOURCESTATS_Array is array(Natural range<>) of D3DRESOURCESTATS;
D3DRTYPECOUNT : constant := (8);
type tagD3DDEVINFO_RESOURCEMANAGER is record
-- #ifndef WOW64_ENUM_WORKAROUND
stats:D3DRESOURCESTATS_Array(0..D3DRTYPECOUNT-1);
-- #else
-- stats:D3DRESOURCESTATS_Array(0..7);
end record;
subtype D3DDEVINFO_RESOURCEMANAGER is tagD3DDEVINFO_RESOURCEMANAGER;
type LPD3DDEVINFO_RESOURCEMANAGER is access all tagD3DDEVINFO_RESOURCEMANAGER;
type tagD3DDEVINFOtagD3DVERTEXSTATS is record
NumRenderedTriangles:DWORD;
NumExtraClippingTriangles:DWORD;
end record;
subtype D3DDEVINFOtagD3DVERTEXSTATS is tagD3DDEVINFOtagD3DVERTEXSTATS;
type LPD3DDEVINFOtagD3DVERTEXSTATS is access all tagD3DDEVINFOtagD3DVERTEXSTATS;
type tagD3DDEVINFO_VCACHE is record
Pattern:DWORD;
OptMethod:DWORD;
CacheSize:DWORD;
MagicNumber:DWORD;
end record;
subtype D3DDEVINFO_VCACHE is tagD3DDEVINFO_VCACHE;
type LPD3DDEVINFO_VCACHE is access all tagD3DDEVINFO_VCACHE;
type tagD3DDEVINFOtagD3D9PIPELINETIMINGS is record
VertexProcessingTimePercent:FLOAT;
PixelProcessingTimePercent:FLOAT;
OtherGPUProcessingTimePercent:FLOAT;
GPUIdleTimePercent:FLOAT;
end record;
subtype D3DDEVINFOtagD3D9PIPELINETIMINGS is tagD3DDEVINFOtagD3D9PIPELINETIMINGS;
type tagD3DDEVINFOtagD3D9INTERFACETIMINGS is record
WaitingForGPUToUseApplicationResourceTimePercent:FLOAT;
WaitingForGPUToAcceptMoreCommandsTimePercent:FLOAT;
WaitingForGPUToStayWithinLatencyTimePercent:FLOAT;
WaitingForGPUExclusiveResourceTimePercent:FLOAT;
WaitingForGPUOtherTimePercent:FLOAT;
end record;
subtype D3DDEVINFOtagD3D9INTERFACETIMINGS is tagD3DDEVINFOtagD3D9INTERFACETIMINGS;
type tagD3DDEVINFOtagD3D9STAGETIMINGS is record
MemoryProcessingPercent:FLOAT;
ComputationProcessingPercent:FLOAT;
end record;
subtype D3DDEVINFOtagD3D9STAGETIMINGS is tagD3DDEVINFOtagD3D9STAGETIMINGS;
type tagD3DDEVINFOtagD3D9BANDWIDTHTIMINGS is record
MaxBandwidthUtilized:FLOAT;
FrontEndUploadMemoryUtilizedPercent:FLOAT;
VertexRateUtilizedPercent:FLOAT;
TriangleSetupRateUtilizedPercent:FLOAT;
FillRateUtilizedPercent:FLOAT;
end record;
subtype D3DDEVINFOtagD3D9BANDWIDTHTIMINGS is tagD3DDEVINFOtagD3D9BANDWIDTHTIMINGS;
type tagD3DDEVINFOtagD3D9CACHEUTILIZATION is record
TextureCacheHitRate:FLOAT;
PostTransformVertexCacheHitRate:FLOAT;
end record;
subtype D3DDEVINFOtagD3D9CACHEUTILIZATION is tagD3DDEVINFOtagD3D9CACHEUTILIZATION;
type tagD3DMEMORYPRESSURE is record
BytesEvictedFromProcess:UINT64;
SizeOfInefficientAllocation:UINT64;
LevelOfEfficiency:DWORD;
end record;
subtype D3DMEMORYPRESSURE is tagD3DMEMORYPRESSURE;
type tagD3DCOMPOSERECTSOP is (D3DCOMPOSERECTS_COPY,
D3DCOMPOSERECTS_OR,
D3DCOMPOSERECTS_AND,
D3DCOMPOSERECTS_NEG,
D3DCOMPOSERECTS_FORCE_DWORD);
for tagD3DCOMPOSERECTSOP use (D3DCOMPOSERECTS_COPY=>1,
D3DCOMPOSERECTS_OR=>2,
D3DCOMPOSERECTS_AND=>3,
D3DCOMPOSERECTS_NEG=>4,
D3DCOMPOSERECTS_FORCE_DWORD=>16#7fffffff#);
subtype D3DCOMPOSERECTSOP is tagD3DCOMPOSERECTSOP;
type tagD3DCOMPOSERECTDESC is record
X:USHORT;
Y:USHORT;
Width:USHORT;
Height:USHORT;
end record;
subtype D3DCOMPOSERECTDESC is tagD3DCOMPOSERECTDESC;
type tagD3DCOMPOSERECTDESTINATION is record
SrcRectIndex:USHORT;
Reserved:USHORT;
X:SHORT;
Y:SHORT;
end record;
subtype D3DCOMPOSERECTDESTINATION is tagD3DCOMPOSERECTDESTINATION;
D3DCOMPOSERECTS_MAXNUMRECTS : constant := 16#FFFF#;
D3DCONVOLUTIONMONO_MAXWIDTH : constant := 7;
D3DCONVOLUTIONMONO_MAXHEIGHT : constant := D3DCONVOLUTIONMONO_MAXWIDTH;
D3DFMT_A1_SURFACE_MAXWIDTH : constant := 8192;
D3DFMT_A1_SURFACE_MAXHEIGHT : constant := 2048;
type tagD3DPRESENTSTATS is record
PresentCount:UINT;
PresentRefreshCount:UINT;
SyncRefreshCount:UINT;
SyncQPCTime:LARGE_INTEGER;
SyncGPUTime:LARGE_INTEGER;
end record;
subtype D3DPRESENTSTATS is tagD3DPRESENTSTATS;
type D3DSCANLINEORDERING is (D3DSCANLINEORDERING_UNKNOWN,
D3DSCANLINEORDERING_PROGRESSIVE,
D3DSCANLINEORDERING_INTERLACED);
for D3DSCANLINEORDERING use (D3DSCANLINEORDERING_UNKNOWN=>0,
D3DSCANLINEORDERING_PROGRESSIVE=>1,
D3DSCANLINEORDERING_INTERLACED=>2);
type tagD3DDISPLAYMODEEX is record
Size:UINT;
Width:UINT;
Height:UINT;
RefreshRate:UINT;
Format:D3DFORMAT;
ScanLineOrdering:D3DSCANLINEORDERING;
end record;
subtype D3DDISPLAYMODEEX is tagD3DDISPLAYMODEEX;
type tagD3DDISPLAYMODEFILTER is record
Size:UINT;
Format:D3DFORMAT;
ScanLineOrdering:D3DSCANLINEORDERING;
end record;
subtype D3DDISPLAYMODEFILTER is tagD3DDISPLAYMODEFILTER;
type D3DDISPLAYROTATION is (D3DDISPLAYROTATION_IDENTITY,
D3DDISPLAYROTATION_90,
D3DDISPLAYROTATION_180,
D3DDISPLAYROTATION_270);
for D3DDISPLAYROTATION use (D3DDISPLAYROTATION_IDENTITY=>1,
D3DDISPLAYROTATION_90=>2,
D3DDISPLAYROTATION_180=>3,
D3DDISPLAYROTATION_270=>4 );
D3D9_RESOURCE_PRIORITY_MINIMUM : constant := 16#28000000#;
D3D9_RESOURCE_PRIORITY_LOW : constant := 16#50000000#;
D3D9_RESOURCE_PRIORITY_NORMAL : constant := 16#78000000#;
D3D9_RESOURCE_PRIORITY_HIGH : constant := 16#a0000000#;
D3D9_RESOURCE_PRIORITY_MAXIMUM : constant := 16#c8000000#;
D3D_OMAC_SIZE : constant := 16;
type tagD3D_OMAC is record
Omac:BYTE_Array(0..D3D_OMAC_SIZE-1);
end record;
subtype D3D_OMAC is tagD3D_OMAC;
type tagD3DAUTHENTICATEDCHANNELTYPE is (D3DAUTHENTICATEDCHANNELtagD3D9,
D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE,
D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE);
for tagD3DAUTHENTICATEDCHANNELTYPE use (D3DAUTHENTICATEDCHANNELtagD3D9=>1,
D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE=>2,
D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE=>3);
subtype D3DAUTHENTICATEDCHANNELTYPE is tagD3DAUTHENTICATEDCHANNELTYPE;
type tagD3DAUTHENTICATEDCHANNEL_QUERY_INPUT is record
QueryType:GUID;
hChannel:HANDLE;
SequenceNumber:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERY_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT is record
omac:D3D_OMAC;
QueryType:GUID;
hChannel:HANDLE;
SequenceNumber:UINT;
ReturnCode:win32.Objbase.HRESULT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
D3DAUTHENTICATEDQUERY_PROTECTION:constant win32.rpcdce.GUID:=(16#a84eb584#,16#c495#,16#48aa#,(16#b9#,16#4d#,16#8b#,16#d2#,16#d6#,16#fb#,16#ce#,16#5#));
type BIT01 is mod 2**01;
type BIT30 is mod 2**30;
pragma implicit_Packing;
type tagD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS(B:Boolean:=True) is record
case B is
when True=>
ProtectionEnabled:BIT01;
OverlayOrFullscreenRequired:BIT01;
Reserved:BIT30;
when False=>
Value:UINT;
end case;
end record with unchecked_union;
for tagD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS use record
at mod 2;
ProtectionEnabled at 0 range 0..0;
OverlayOrFullscreenRequired at 0 range 1..1;
Reserved at 0 range 2..31;
Value at 0 range 0..31;
end record;
for tagD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS'size use 32;
subtype D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS is tagD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS;
type tagD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
ProtectionFlags:D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT;
D3DAUTHENTICATEDQUERY_CHANNELTYPE:constant win32.rpcdce.GUID:=(16#bc1b18a5#,16#b1fb#,16#42ab#,(16#bd#,16#94#,16#b5#,16#82#,16#8b#,16#4b#,16#f7#,16#be#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
ChannelType:D3DAUTHENTICATEDCHANNELTYPE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT;
D3DAUTHENTICATEDQUERY_DEVICEHANDLE:constant win32.rpcdce.GUID:=(16#ec1c539d#,16#8cff#,16#4e2a#,(16#bc#,16#c4#,16#f5#,16#69#,16#2f#,16#99#,16#f4#,16#80#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
DeviceHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT;
D3DAUTHENTICATEDQUERY_CRYPTOSESSION:constant win32.rpcdce.GUID:=(16#2634499e#,16#d018#,16#4d74#,(16#ac#,16#17#,16#7f#,16#72#,16#40#,16#59#,16#52#,16#8d#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT is record
Input:D3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
DXVA2DecodeHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
DXVA2DecodeHandle:HANDLE;
CryptoSessionHandle:HANDLE;
DeviceHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT;
D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESSCOUNT:constant win32.rpcdce.GUID:=(16#db207b3#,16#9450#,16#46a6#,(16#82#,16#de#,16#1b#,16#96#,16#d4#,16#4f#,16#9c#,16#f2#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
NumRestrictedSharedResourceProcesses:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT;
D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESS:constant win32.rpcdce.GUID:=(16#649bbadb#,16#f0f4#,16#4639#,(16#a1#,16#5b#,16#24#,16#39#,16#3f#,16#c3#,16#ab#,16#ac#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT is record
Input:D3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
ProcessIndex:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE is (PROCESSIDTYPE_UNKNOWN,
PROCESSIDTYPE_DWM,
PROCESSIDTYPE_HANDLE);
for tagD3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE use (PROCESSIDTYPE_UNKNOWN=>0,
PROCESSIDTYPE_DWM=>1,
PROCESSIDTYPE_HANDLE=>2);
subtype D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE is tagD3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE;
type tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
ProcessIndex:UINT;
ProcessIdentifer:D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE;
ProcessHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT;
D3DAUTHENTICATEDQUERY_UNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT:constant win32.rpcdce.GUID:=(16#12f0bd6#,16#e662#,16#4474#,(16#be#,16#fd#,16#aa#,16#53#,16#e5#,16#14#,16#3c#,16#6d#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
NumUnrestrictedProtectedSharedResources:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT;
D3DAUTHENTICATEDQUERY_OUTPUTIDCOUNT:constant win32.rpcdce.GUID:=(16#2c042b5e#,16#8c07#,16#46d5#,(16#aa#,16#be#,16#8f#,16#75#,16#cb#,16#ad#,16#4c#,16#31#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT is record
Input:D3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
DeviceHandle:HANDLE;
CryptoSessionHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
DeviceHandle:HANDLE;
CryptoSessionHandle:HANDLE;
NumOutputIDs:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT;
D3DAUTHENTICATEDQUERY_OUTPUTID:constant win32.rpcdce.GUID:=(16#839ddca3#,16#9b4e#,16#41e4#,(16#b0#,16#53#,16#89#,16#2b#,16#d2#,16#a1#,16#1e#,16#e7#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT is record
Input:D3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
DeviceHandle:HANDLE;
CryptoSessionHandle:HANDLE;
OutputIDIndex:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
DeviceHandle:HANDLE;
CryptoSessionHandle:HANDLE;
OutputIDIndex:UINT;
OutputID:UINT64;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT;
D3DAUTHENTICATEDQUERY_ACCESSIBILITYATTRIBUTES:constant win32.rpcdce.GUID:=(16#6214d9d2#,16#432c#,16#4abb#,(16#9f#,16#ce#,16#21#,16#6e#,16#ea#,16#26#,16#9e#,16#3b#));
type tagD3DBUSTYPE is (D3DBUSTYPE_OTHER,
D3DBUSTYPE_PCI,
D3DBUSTYPE_PCIX,
D3DBUSTYPE_PCIEXPRESS,
D3DBUSTYPE_AGP,
D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET,
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP,
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET,
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR,
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE,
D3DBUSIMPL_MODIFIER_NON_STANDARD);
for tagD3DBUSTYPE use (D3DBUSTYPE_OTHER=>16#00000000#,
D3DBUSTYPE_PCI=>16#00000001#,
D3DBUSTYPE_PCIX=>16#00000002#,
D3DBUSTYPE_PCIEXPRESS=>16#00000003#,
D3DBUSTYPE_AGP=>16#00000004#,
D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET=>16#00010000#,
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP=>16#00020000#,
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET=>16#00030000#,
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR=>16#00040000#,
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE=>16#00050000#,
D3DBUSIMPL_MODIFIER_NON_STANDARD=>16#80000000#);
subtype D3DBUSTYPE is tagD3DBUSTYPE;
type tagD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
BusType:D3DBUSTYPE;
bAccessibleInContiguousBlocks:BOOL;
bAccessibleInNonContiguousBlocks:BOOL;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT;
D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUIDCOUNT:constant win32.rpcdce.GUID:=(16#b30f7066#,16#203c#,16#4b07#,(16#93#,16#fc#,16#ce#,16#aa#,16#fd#,16#61#,16#24#,16#1e#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
NumEncryptionGuids:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT;
D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUID:constant win32.rpcdce.GUID:=(16#f83a5958#,16#e986#,16#4bda#,(16#be#,16#b0#,16#41#,16#1f#,16#6a#,16#7a#,16#1#,16#b7#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT is record
Input:D3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
EncryptionGuidIndex:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
EncryptionGuidIndex:UINT;
EncryptionGuid:GUID;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT;
D3DAUTHENTICATEDQUERY_CURRENTENCRYPTIONWHENACCESSIBLE:constant win32.rpcdce.GUID:=(16#ec1791c7#,16#dad3#,16#4f15#,(16#9e#,16#c3#,16#fa#,16#a9#,16#3d#,16#60#,16#d4#,16#f0#));
type tagD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT is record
Output:D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
EncryptionGuid:GUID;
end record;
subtype D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT;
type tagD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT is record
omac:D3D_OMAC;
ConfigureType:GUID;
hChannel:HANDLE;
SequenceNumber:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT is tagD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
type tagD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT is record
omac:D3D_OMAC;
ConfigureType:GUID;
hChannel:HANDLE;
SequenceNumber:UINT;
ReturnCode:HRESULT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT is tagD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT;
D3DAUTHENTICATEDCONFIGURE_INITIALIZE:constant win32.rpcdce.GUID:=(16#6114bdb#,16#3523#,16#470a#,(16#8d#,16#ca#,16#fb#,16#c2#,16#84#,16#51#,16#54#,16#f0#));
type tagD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE is record
Parameters:D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
StartSequenceQuery:UINT;
StartSequenceConfigure:UINT;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE is tagD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE;
D3DAUTHENTICATEDCONFIGURE_PROTECTION:constant win32.rpcdce.GUID:=(16#50455658#,16#3f47#,16#4362#,(16#bf#,16#99#,16#bf#,16#df#,16#cd#,16#e9#,16#ed#,16#29#));
type tagD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION is record
Parameters:D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
Protections:D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION is tagD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION;
D3DAUTHENTICATEDCONFIGURE_CRYPTOSESSION:constant win32.rpcdce.GUID:=(16#6346cc54#,16#2cfc#,16#4ad4#,(16#82#,16#24#,16#d1#,16#58#,16#37#,16#de#,16#77#,16#0#));
type tagD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION is record
Parameters:D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
DXVA2DecodeHandle:HANDLE;
CryptoSessionHandle:HANDLE;
DeviceHandle:HANDLE;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION is tagD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION;
D3DAUTHENTICATEDCONFIGURE_SHAREDRESOURCE:constant win32.rpcdce.GUID:=(16#772d047#,16#1b40#,16#48e8#,(16#9c#,16#a6#,16#b5#,16#f5#,16#10#,16#de#,16#9f#,16#1#));
type tagD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE is record
Parameters:D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
ProcessIdentiferType:D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE;
ProcessHandle:HANDLE;
AllowAccess:BOOL;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE is tagD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE;
D3DAUTHENTICATEDCONFIGURE_ENCRYPTIONWHENACCESSIBLE:constant win32.rpcdce.GUID:=(16#41fff286#,16#6ae0#,16#4d43#,(16#9d#,16#55#,16#a4#,16#6e#,16#9e#,16#fd#,16#15#,16#8a#));
type tagD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION is record
Parameters:D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
EncryptionGuid:GUID;
end record;
subtype D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION is tagD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION;
type tagD3DENCRYPTED_BLOCK_INFO is record
NumEncryptedBytesAtBeginning:UINT;
NumBytesInSkipPattern:UINT;
NumBytesInEncryptPattern:UINT;
end record;
subtype D3DENCRYPTED_BLOCK_INFO is tagD3DENCRYPTED_BLOCK_INFO;
type tagD3DAES_CTR_IV is record
IV:UINT64;
Count:UINT64;
end record;
subtype D3DAES_CTR_IV is tagD3DAES_CTR_IV;
end d3d9types;