home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / LordLucifer / win32asm / files / TasmD3DRMdemo.ZIP / tdx61inc.ZIP / td3drmdef.inc < prev    next >
Encoding:
Text File  |  1999-08-10  |  16.6 KB  |  418 lines

  1. ; td3dcaps.inc  (c) Minde  06/08/99 montana@is.lt
  2. ; Content:  TASM Direct3DRM include file ver. 1.2 
  3. ; converted from d3drmdef.h, DX ver. 6.1
  4. ;
  5. ;  Feel free to use or distribute the package, part or whole, for any
  6. ; non-commercial use preferably crediting me.
  7. ;  Also feel free to contact me at the above address if you experience any
  8. ; problems or notice any omissions.
  9.  
  10. D3DRMVECTOR4D struct   
  11. d3drmvector4d_x           D3DVALUE ? ;
  12. d3drmvector4d_y           D3DVALUE ? ;
  13. d3drmvector4d_z           D3DVALUE ? ;
  14. d3drmvector4d_w           D3DVALUE ? ;
  15. D3DRMVECTOR4D ends
  16.  
  17. D3DRMMATRIX4D   D3DVALUE 16 dup (?)
  18.  
  19. D3DRMQUATERNION struct
  20. d3drmquaternion_s           D3DVALUE  ? ;
  21. d3drmquaternion_v           D3DVECTOR ? ;
  22. D3DRMQUATERNION ends
  23.  
  24. D3DRMRAY struct
  25. d3drmray_dvDir       D3DVECTOR ? ;
  26. d3drmray_dvPos       D3DVECTOR ? ;
  27. D3DRMRAY ends
  28.  
  29. D3DRMBOX struct
  30. d3drmbox_min         D3DVECTOR ? ;
  31. d3drmbox_max         D3DVECTOR ? ;
  32. D3DRMBOX ends
  33.  
  34.  
  35. D3DRMLIGHTTYPE enum D3DRMLIGHT_AMBIENT, D3DRMLIGHT_POINT, D3DRMLIGHT_SPOT, \
  36.     D3DRMLIGHT_DIRECTIONAL, D3DRMLIGHT_PARALLELPOINT
  37.  
  38. D3DRMSHADEMODE enum D3DRMSHADE_FLAT = 0, D3DRMSHADE_GOURAUD = 1, \
  39.     D3DRMSHADE_PHONG = 2, D3DRMSHADE_MASK = 7, D3DRMSHADE_MAX = 8
  40.  
  41. D3DRMLIGHTMODE enum D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX, \
  42.     D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX, \
  43.     D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX, \
  44.     D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX
  45.  
  46. D3DRMFILLMODE enum D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX, \
  47.     D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX, \
  48.     D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX, \
  49.     D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX, \
  50.     D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX
  51.  
  52. D3DRMRENDER_WIREFRAME   = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_WIREFRAME
  53. D3DRMRENDER_UNLITFLAT   = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_SOLID
  54. D3DRMRENDER_FLAT        = D3DRMSHADE_FLAT + D3DRMLIGHT_ON + D3DRMFILL_SOLID
  55. D3DRMRENDER_GOURAUD     = D3DRMSHADE_GOURAUD + D3DRMLIGHT_ON + D3DRMFILL_SOLID
  56. D3DRMRENDER_PHONG       = D3DRMSHADE_PHONG + D3DRMLIGHT_ON + D3DRMFILL_SOLID
  57.  
  58. D3DRMRENDERMODE_BLENDEDTRANSPARENCY   =  1;
  59. D3DRMRENDERMODE_SORTEDTRANSPARENCY    =  2;
  60. D3DRMRENDERMODE_LIGHTINMODELSPACE     =  8;
  61. D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR = 16;
  62.  
  63. D3DRMTEXTUREQUALITY enum D3DRMTEXTURE_NEAREST, \ ; choose nearest texel
  64.     D3DRMTEXTURE_LINEAR,        \ ; interpolate 4 texels
  65.     D3DRMTEXTURE_MIPNEAREST,    \ ; nearest texel in nearest mipmap
  66.     D3DRMTEXTURE_MIPLINEAR,     \ ; interpolate 2 texels from 2 mipmaps
  67.     D3DRMTEXTURE_LINEARMIPNEAREST,  \ ; interpolate 4 texels in nearest mipmap
  68.     D3DRMTEXTURE_LINEARMIPLINEAR      ; interpolate 8 texels from 2 mipmaps
  69.  
  70. ; Texture flags
  71. D3DRMTEXTURE_FORCERESIDENT          = 000000001h ; texture should be kept in video memory
  72. D3DRMTEXTURE_STATIC                 = 000000002h ; texture will not change
  73. D3DRMTEXTURE_DOWNSAMPLEPOINT        = 000000004h ; point filtering should be used when downsampling
  74. D3DRMTEXTURE_DOWNSAMPLEBILINEAR     = 000000008h ; bilinear filtering should be used when downsampling
  75. D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH  = 000000010h ; reduce bit depth when downsampling
  76. D3DRMTEXTURE_DOWNSAMPLENONE         = 000000020h ; texture should never be downsampled
  77. D3DRMTEXTURE_CHANGEDPIXELS          = 000000040h ; pixels have changed
  78. D3DRMTEXTURE_CHANGEDPALETTE         = 000000080h ; palette has changed
  79. D3DRMTEXTURE_INVALIDATEONLY         = 000000100h ; dirty regions are invalid
  80.  
  81. ; Shadow flags
  82. D3DRMSHADOW_TRUEALPHA               = 000000001h ; shadow should render without artifacts when true alpha is on
  83.  
  84. D3DRMCOMBINETYPE enum D3DRMCOMBINE_REPLACE, D3DRMCOMBINE_BEFORE, \
  85.     D3DRMCOMBINE_AFTER
  86.  
  87. D3DRMCOLORMODEL typedef D3DCOLORMODEL
  88.  
  89. D3DRMPALETTEFLAGS enum D3DRMPALETTE_FREE,\ ; renderer may use this entry freely
  90.     D3DRMPALETTE_READONLY,       \ ; fixed but may be used by renderer
  91.     D3DRMPALETTE_RESERVED          ; may not be used by renderer
  92.  
  93.  
  94. D3DRMPALETTEENTRY struct
  95. d3drmpaletteentry_red                 db ? ; 0 .. 255
  96. d3drmpaletteentry_green               db ? ; 0 .. 255
  97. d3drmpaletteentry_blue                db ? ; 0 .. 255
  98. d3drmpaletteentry_flags               db ? ; one of D3DRMPALETTEFLAGS
  99. D3DRMPALETTEENTRY ends
  100.  
  101. D3DRMIMAGE struct
  102. d3drmimage_width           dw ? 
  103. d3drmimage_height          dw ? ; width and height in pixels
  104. d3drmimage_aspectx         dw ? 
  105. d3drmimage_aspecty         dw ? ; aspect ratio for non-square pixels
  106. d3drmimage_depth           dw ? ; bits per pixel
  107. d3drmimage_rgb             dw ? ; if false, pixels are indices into a palette otherwise, pixels encode RGB values.
  108. d3drmimage_bytes_per_line  dw ? ; number of bytes of memory for a scanline. This must be a multiple of 4.
  109. d3drmimage_buffer1         dd ? ; memory to render into (first buffer).
  110. d3drmimage_buffer2         dd ? ; second rendering buffer for double buffering, set to NULL for single buffering.
  111. d3drmimage_red_mask        dd ? ;
  112. d3drmimage_green_mask      dd ? ;
  113. d3drmimage_blue_mask       dd ? ;
  114. d3drmimage_alpha_mask      dd ? ; if rgb is true, these are masks for the red, green and blue parts of a pixel.  Otherwise, these are masks for the significant bits of the red, green and blue elements in the palette.  For instance, most SVGA displays use 64 intensities of red, green and blue, so the masks should all be set to 0xfc.
  115. d3drmimage_palette_size    dw ? ; number of entries in palette
  116. d3drmimage_palette         dd ? ;ptr D3DRMPALETTEENTRY ; description of the palette (only if rgb is false).  Must be (1<<depth) elements.
  117. D3DRMIMAGE ends
  118.  
  119. D3DRMWRAPTYPE enum D3DRMWRAP_FLAT, D3DRMWRAP_CYLINDER, \
  120.     D3DRMWRAP_SPHERE, D3DRMWRAP_CHROME, D3DRMWRAP_SHEET, D3DRMWRAP_BOX
  121.  
  122. D3DRMWIREFRAME_CULL           =  1 ; cull backfaces
  123. D3DRMWIREFRAME_HIDDENLINE     =  2 ; lines are obscured by closer objects
  124.  
  125. D3DRMPROJECTIONTYPE enum D3DRMPROJECT_PERSPECTIVE, D3DRMPROJECT_ORTHOGRAPHIC, \
  126.     D3DRMPROJECT_RIGHTHANDPERSPECTIVE, \ ; Only valid pre-DX6
  127.     D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC   ; Only valid pre-DX6
  128.  
  129. D3DRMOPTIONS_LEFTHANDED  = 00000001 ; Default
  130. D3DRMOPTIONS_RIGHTHANDED = 00000002 ;
  131.  
  132. D3DRMXOFFORMAT enum D3DRMXOF_BINARY, D3DRMXOF_COMPRESSED, D3DRMXOF_TEXT
  133.  
  134. D3DRMSAVEOPTIONS typedef DWORD
  135. D3DRMXOFSAVE_NORMALS            = 1
  136. D3DRMXOFSAVE_TEXTURECOORDINATES = 2
  137. D3DRMXOFSAVE_MATERIALS          = 4
  138. D3DRMXOFSAVE_TEXTURENAMES       = 8
  139. D3DRMXOFSAVE_ALL                = 15
  140. D3DRMXOFSAVE_TEMPLATES          = 16
  141. D3DRMXOFSAVE_TEXTURETOPOLOGY    = 32
  142.  
  143. D3DRMCOLORSOURCE enum D3DRMCOLOR_FROMFACE, D3DRMCOLOR_FROMVERTEX
  144.  
  145. D3DRMFRAMECONSTRAINT enum D3DRMCONSTRAIN_Z, \ ; use only X and Y rotations
  146.     D3DRMCONSTRAIN_Y, \ ; use only X and Z rotations
  147.     D3DRMCONSTRAIN_X    ; use only Y and Z rotations
  148.  
  149. D3DRMMATERIALMODE enum D3DRMMATERIAL_FROMMESH,  D3DRMMATERIAL_FROMPARENT, \
  150.     D3DRMMATERIAL_FROMFRAME
  151.  
  152. D3DRMFOGMODE enum D3DRMFOG_LINEAR, \ ; linear between start and end
  153.     D3DRMFOG_EXPONENTIAL,      \ ; density * exp(-distance)
  154.     D3DRMFOG_EXPONENTIALSQUARED  ; density * exp(-distance*distance)
  155.  
  156. D3DRMZBUFFERMODE enum D3DRMZBUFFER_FROMPARENT, \ ; default
  157.     D3DRMZBUFFER_ENABLE,    \ ; enable zbuffering
  158.     D3DRMZBUFFER_DISABLE      ; disable zbuffering
  159.  
  160. D3DRMSORTMODE enum D3DRMSORT_FROMPARENT, \ ; default
  161.     D3DRMSORT_NONE,     \ ; don't sort child frames
  162.     D3DRMSORT_FRONTTOBACK,  \ ; sort child frames front-to-back
  163.     D3DRMSORT_BACKTOFRONT     ; sort child frames back-to-front
  164.  
  165. D3DRMMATERIALOVERRIDE struct
  166. d3drmmaterialoverride_dwSize          DD ? ; Size of this structure *)
  167. d3drmmaterialoverride_dwFlags         DD ? ; Indicate which fields are valid *)
  168. d3drmmaterialoverride_dcDiffuse       D3DCOLORVALUE ? ; RGBA
  169. d3drmmaterialoverride_dcAmbient       D3DCOLORVALUE ? ; RGBA
  170. d3drmmaterialoverride_dcEmissive      D3DCOLORVALUE ? ; RGBA
  171. d3drmmaterialoverride_dcSpecular      D3DCOLORVALUE ? ; RGBA
  172. d3drmmaterialoverride_dvPower         D3DVALUE ? ;
  173. d3drmmaterialoverride_lpD3DRMTex      DD ? ;
  174. D3DRMMATERIALOVERRIDE ends
  175.  
  176.  
  177. D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY     = 000000001h;
  178. D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY       = 000000002h;
  179. D3DRMMATERIALOVERRIDE_DIFFUSE               = 000000003h;
  180. D3DRMMATERIALOVERRIDE_AMBIENT               = 000000004h;
  181. D3DRMMATERIALOVERRIDE_EMISSIVE              = 000000008h;
  182. D3DRMMATERIALOVERRIDE_SPECULAR              = 000000010h;
  183. D3DRMMATERIALOVERRIDE_POWER                 = 000000020h;
  184. D3DRMMATERIALOVERRIDE_TEXTURE               = 000000040h;
  185. D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY = 000000080h;
  186. D3DRMMATERIALOVERRIDE_ALL                   = 0000000FFh;
  187.  
  188. D3DRMFPTF_ALPHA                             = 000000001h;
  189. D3DRMFPTF_NOALPHA                           = 000000002h;
  190. D3DRMFPTF_PALETTIZED                        = 000000004h;
  191. D3DRMFPTF_NOTPALETTIZED                     = 000000008h;
  192.  
  193. D3DRMSTATECHANGE_UPDATEONLY                 = 000000001h;
  194. D3DRMSTATECHANGE_VOLATILE                   = 000000002h;
  195. D3DRMSTATECHANGE_NONVOLATILE                = 000000004h;
  196. D3DRMSTATECHANGE_RENDER                     = 000000020h;
  197. D3DRMSTATECHANGE_LIGHT                      = 000000040h;
  198.  
  199. D3DRMDEVICE_NOZBUFFER           = 00000001h;
  200.  
  201. D3DRMCLIENTDATA_NONE            = 00000001h;
  202. D3DRMCLIENTDATA_LOCALFREE       = 00000002h;
  203. D3DRMCLIENTDATA_IUNKNOWN        = 00000004h;
  204.  
  205. D3DRMCALLBACK_PREORDER      = 0;
  206. D3DRMCALLBACK_POSTORDER     = 1;
  207.  
  208. D3DRMRAYPICK_ONLYBOUNDINGBOXES          = 001h;
  209. D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES    = 002h;
  210. D3DRMRAYPICK_INTERPOLATEUV              = 004h;
  211. D3DRMRAYPICK_INTERPOLATECOLOR           = 008h;
  212. D3DRMRAYPICK_INTERPOLATENORMAL          = 010h;
  213.  
  214. D3DRMADDFACES_VERTICESONLY             = 1;
  215.  
  216. D3DRMGENERATENORMALS_PRECOMPACT         = 1;
  217. D3DRMGENERATENORMALS_USECREASEANGLE     = 2;
  218.  
  219. D3DRMMESHBUILDER_DIRECTPARENT          = 1;
  220. D3DRMMESHBUILDER_ROOTMESH              = 2;
  221.  
  222. D3DRMMESHBUILDER_RENDERENABLE   = 00000001h;
  223. D3DRMMESHBUILDER_PICKENABLE     = 00000002h;
  224.  
  225. D3DRMMESHBUILDERAGE_GEOMETRY    = 00000001h;
  226. D3DRMMESHBUILDERAGE_MATERIALS   = 00000002h;
  227. D3DRMMESHBUILDERAGE_TEXTURES    = 00000004h;
  228.  
  229. D3DRMFVF_TYPE                   = 00000001h;
  230. D3DRMFVF_NORMAL                 = 00000002h;
  231. D3DRMFVF_COLOR                  = 00000004h;
  232. D3DRMFVF_TEXTURECOORDS          = 00000008h;
  233. D3DRMVERTEX_STRIP               = 00000001h;
  234. D3DRMVERTEX_FAN                 = 00000002h;
  235. D3DRMVERTEX_LIST                = 00000004h;
  236.  
  237. D3DRMCLEAR_TARGET               = 00000001h;
  238. D3DRMCLEAR_ZBUFFER              = 00000002h;
  239. D3DRMCLEAR_DIRTYRECTS           = 00000004h;
  240. D3DRMCLEAR_ALL                  = (D3DRMCLEAR_TARGET or D3DRMCLEAR_ZBUFFER or \
  241.     D3DRMCLEAR_DIRTYRECTS)
  242.  
  243. D3DRMFOGMETHOD_VERTEX          = 00000001h;
  244. D3DRMFOGMETHOD_TABLE           = 00000002h;
  245. D3DRMFOGMETHOD_ANY             = 00000004h;
  246.  
  247. D3DRMFRAME_RENDERENABLE        = 00000001h;
  248. D3DRMFRAME_PICKENABLE          = 00000002h;
  249.  
  250.  
  251.  
  252. D3DRMANIMATIONOPTIONS typedef DWORD
  253. D3DRMANIMATION_OPEN             = 001h
  254. D3DRMANIMATION_CLOSED           = 002h
  255. D3DRMANIMATION_LINEARPOSITION   = 004h
  256. D3DRMANIMATION_SPLINEPOSITION   = 008h
  257. D3DRMANIMATION_SCALEANDROTATION = 000000010h
  258. D3DRMANIMATION_POSITION         = 000000020h
  259.  
  260. D3DRMINTERPOLATIONOPTIONS typedef DWORD
  261. D3DRMINTERPOLATION_OPEN         = 001h;
  262. D3DRMINTERPOLATION_CLOSED       = 002h;
  263. D3DRMINTERPOLATION_NEAREST      = 0100h;
  264. D3DRMINTERPOLATION_LINEAR       = 004h;
  265. D3DRMINTERPOLATION_SPLINE       = 008h;
  266. D3DRMINTERPOLATION_VERTEXCOLOR  = 040h;
  267. D3DRMINTERPOLATION_SLERPNORMALS = 080h;
  268.  
  269. D3DRMLOADOPTIONS typedef DWORD
  270. D3DRMLOAD_FROMFILE              = 000h
  271. D3DRMLOAD_FROMRESOURCE          = 001h
  272. D3DRMLOAD_FROMMEMORY            = 002h
  273. D3DRMLOAD_FROMSTREAM            = 004h
  274. D3DRMLOAD_BYNAME                = 010h
  275. D3DRMLOAD_BYPOSITION            = 020h
  276. D3DRMLOAD_BYGUID                = 040h
  277. D3DRMLOAD_FIRST                 = 080h
  278. D3DRMLOAD_INSTANCEBYREFERENCE   = 0100h
  279. D3DRMLOAD_INSTANCEBYCOPYING     = 0200h
  280. D3DRMLOAD_ASYNCHRONOUS          = 0400h
  281.  
  282. D3DRMLOADRESOURCE struct
  283. d3drmloadresource_hModule         dd ? ;
  284. d3drmloadresource_lpName          dd ? ;
  285. d3drmloadresource_lpType          dd ? ;
  286. D3DRMLOADRESOURCE ends
  287.  
  288. D3DRMLOADMEMORY struct
  289. d3drmloadmemory_lpMemory        dd ? ;
  290. d3drmloadmemory_dSize           dd ? ;
  291. D3DRMLOADMEMORY ends
  292.  
  293. D3DRMPMESHSTATUS_VALID              = 001h;
  294. D3DRMPMESHSTATUS_INTERRUPTED        = 002h;
  295. D3DRMPMESHSTATUS_BASEMESHCOMPLETE   = 004h;
  296. D3DRMPMESHSTATUS_COMPLETE           = 008h;
  297. D3DRMPMESHSTATUS_RENDERABLE         = 010h;
  298.  
  299. D3DRMPMESHEVENT_BASEMESH            = 001h;
  300. D3DRMPMESHEVENT_COMPLETE            = 002h;
  301.  
  302. D3DRMPMESHLOADSTATUS struct
  303. d3drmpmeshloadstatus_dwSize              DD ? ; Size of this structure
  304. d3drmpmeshloadstatus_dwPMeshSize         DD ? ; Total Size (bytes)
  305. d3drmpmeshloadstatus_dwBaseMeshSize      DD ? ; Total Size of the Base Mesh
  306. d3drmpmeshloadstatus_dwBytesLoaded       DD ? ; Total bytes loaded
  307. d3drmpmeshloadstatus_dwVerticesLoaded    DD ? ; Number of vertices loaded
  308. d3drmpmeshloadstatus_dwFacesLoaded       DD ? ; Number of faces loaded
  309. d3drmpmeshloadstatus_dwLoadResult        DD ? ; Result of the load operation
  310. d3drmpmeshloadstatus_dwFlags             DD ? ;
  311. D3DRMPMESHLOADSTATUS ends
  312.  
  313. D3DRMUSERVISUALREASON enum D3DRMUSERVISUAL_CANSEE, D3DRMUSERVISUAL_RENDER
  314.  
  315. D3DRMANIMATIONKEY struct
  316. d3drmanimationkey_dwSize          DD ?
  317. d3drmanimationkey_dwKeyType       DD ?
  318. d3drmanimationkey_dvTime          D3DVALUE ?
  319. d3drmanimationkey_dwID            DD ?
  320.     union
  321. d3drmanimationkey_dqRotateKey     D3DRMQUATERNION ?
  322. d3drmanimationkey_dvScaleKey      D3DVECTOR ?
  323. d3drmanimationkey_dvPositionKey   D3DVECTOR ? 
  324.     ends
  325. D3DRMANIMATIONKEY ends
  326.  
  327.  
  328. D3DRMANIMATION_ROTATEKEY        = 01h;
  329. D3DRMANIMATION_SCALEKEY         = 02h;
  330. D3DRMANIMATION_POSITIONKEY      = 03h;
  331.  
  332. D3DRMMAPPING        typedef DWORD
  333. D3DRMMAPPINGFLAG    typedef DWORD
  334. D3DRMMAP_WRAPU      D3DRMMAPPINGFLAG 1
  335. D3DRMMAP_WRAPV      D3DRMMAPPINGFLAG 2
  336. D3DRMMAP_PERSPCORRECT   D3DRMMAPPINGFLAG 4
  337.  
  338.  
  339. D3DRMVERTEX struct
  340. d3drmvertex_position    D3DVECTOR ? ;
  341. d3drmvertex_normal      D3DVECTOR ? ;
  342. d3drmvertex_tu          D3DVALUE  ? ;
  343. d3drmvertex_tv          D3DVALUE  ? ;
  344. d3drmvertex_color       D3DCOLOR  ? ;
  345. D3DRMVERTEX ends
  346.  
  347.  
  348. D3DRMGROUPINDEX typedef DWORD ; group indexes begin a 0
  349. D3DRMGROUP_ALLGROUPS    D3DRMGROUPINDEX -1
  350.  
  351. ; Create a color from three components in the range 0-1 inclusive.
  352. D3DRMCreateColorRGB     PROCDESC STDCALL :D3DVALUE, :D3DVALUE, :D3DVALUE
  353. D3DRMCreateColorRGBA    PROCDESC STDCALL :D3DVALUE, :D3DVALUE, :D3DVALUE, :D3DVALUE
  354.  
  355. ; Get the red component of a color.
  356. D3DRMColorGetRed    PROCDESC STDCALL :D3DCOLOR
  357.  
  358. ; Get the green component of a color.
  359. D3DRMColorGetGreen  PROCDESC STDCALL :D3DCOLOR
  360.  
  361. ; Get the blue component of a color.
  362. D3DRMColorGetBlue   PROCDESC STDCALL :D3DCOLOR
  363.  
  364. ; Get the alpha component of a color.
  365. D3DRMColorGetAlpha  PROCDESC STDCALL :D3DCOLOR
  366.  
  367. ; Add two vectors.  Returns its first argument.
  368. D3DRMVectorAdd      PROCDESC STDCALL :DWORD, :DWORD, :DWORD
  369.  
  370. ; Subtract two vectors.  Returns its first argument.
  371. D3DRMVectorSubtract PROCDESC STDCALL :DWORD, :DWORD, :DWORD
  372.  
  373. ; Reflect a ray about a given normal.  Returns its first argument.
  374. D3DRMVectorReflect  PROCDESC STDCALL :DWORD, :DWORD, :DWORD
  375.  
  376. ; Calculate the vector cross product.  Returns its first argument.
  377. D3DRMVectorCrossProduct PROCDESC STDCALL :DWORD, :DWORD, :DWORD
  378.  
  379. ; Return the vector dot product.
  380. D3DRMVectorDotProduct   PROCDESC STDCALL :DWORD, :DWORD
  381.  
  382. ; Scale a vector so that its modulus is 1.  Returns its argument or
  383. ; NULL if there was an error (e.g. a zero vector was passed).
  384. D3DRMVectorNormalize    PROCDESC STDCALL :DWORD
  385.  
  386. D3DRMVectorNormalise equ D3DRMVectorNormalize
  387.  
  388. ; Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)).
  389. D3DRMVectorModulus  PROCDESC STDCALL :DWORD
  390.  
  391. ; Set the rotation part of a matrix to be a rotation of theta radians
  392. ; around the given axis.
  393. D3DRMVectorRotate   PROCDESC STDCALL :DWORD, :DWORD, :DWORD, :D3DVALUE
  394.  
  395. ; Scale a vector uniformly in all three axes
  396. D3DRMVectorScale    PROCDESC STDCALL :DWORD, :DWORD, :D3DVALUE
  397.  
  398. ; Return a random unit vector
  399. D3DRMVectorRandom   PROCDESC STDCALL :DWORD
  400.  
  401. ; Returns a unit quaternion that represents a rotation of theta radians
  402. ; around the given axis.
  403. D3DRMQuaternionFromRotation PROCDESC STDCALL :DWORD, :DWORD, :D3DVALUE
  404.  
  405. ; Calculate the product of two quaternions
  406. D3DRMQuaternionMultiply PROCDESC STDCALL :DWORD, :DWORD, :DWORD
  407.  
  408. ; Interpolate between two quaternions
  409. D3DRMQuaternionSlerp    PROCDESC STDCALL :DWORD, :DWORD, :DWORD, :D3DVALUE
  410.  
  411. ; Calculate the matrix for the rotation that a unit quaternion represents
  412. D3DRMMatrixFromQuaternion   PROCDESC STDCALL :DWORD, :DWORD
  413.  
  414. ; Calculate the quaternion that corresponds to a rotation matrix
  415. D3DRMQuaternionFromMatrix   PROCDESC STDCALL :DWORD, :DWORD
  416.  
  417. ;end of file
  418.