Rev 4 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | daniel-mar | 1 | (*==========================================================================; |
2 | * |
||
3 | * Copyright (C) 1994-1999 Microsoft Corporation. All Rights Reserved. |
||
4 | * |
||
5 | * DirectX header version 98.11.20 |
||
6 | * |
||
7 | * Present by Hiroyuki Hori. |
||
8 | * |
||
9 | * E-Mail: hori@ingjapan.ne.jp |
||
10 | * Homepage: http://www.ingjapan.ne.jp/hori/index.html |
||
11 | * Homepage: http://www.ingjapan.ne.jp/hori/index-e.html |
||
12 | * |
||
13 | * Present unit: |
||
14 | * DirectX.pas DirectX 7 (DirectX 7 SDK) |
||
15 | * DShow.pas DirectShow (DirectX Media SDK 5.1) |
||
16 | * DAnim.pas DirectAnimation (DirectX Media SDK 5.1) |
||
17 | * |
||
18 | *-------------------------------------------------------------------------- |
||
19 | * |
||
20 | * DirectMusic header version 1.0 |
||
21 | * |
||
22 | * Present by Kazuya Yamane |
||
23 | * |
||
24 | * e-mail : kazuya-y@infosakyu.ne.jp |
||
25 | * URL : http://www.infosakyu.ne.jp/~kazuya-y/index.html |
||
26 | * |
||
27 | ***************************************************************************) |
||
28 | |||
29 | unit DirectX; |
||
30 | |||
31 | interface |
||
32 | |||
33 | {$Z4} |
||
34 | {$A+} |
||
35 | {$WEAKPACKAGEUNIT} |
||
36 | |||
37 | {$IFNDEF DirectX3} |
||
38 | {$IFNDEF DirectX5} |
||
39 | {$IFNDEF DirectX6} |
||
40 | {$IFNDEF DirectX7} |
||
41 | {$DEFINE DirectX7} |
||
42 | {$ENDIF} |
||
43 | {$ENDIF} |
||
44 | {$ENDIF} |
||
45 | {$ENDIF} |
||
46 | |||
47 | {$IFDEF DirectX3} |
||
48 | {$UNDEF DirectX5} |
||
49 | {$UNDEF DirectX6} |
||
50 | {$UNDEF DirectX7} |
||
51 | {$DEFINE SupportDirectX3} |
||
52 | {$ENDIF} |
||
53 | |||
54 | {$IFDEF DirectX5} |
||
55 | {$UNDEF DirectX3} |
||
56 | {$UNDEF DirectX6} |
||
57 | {$UNDEF DirectX7} |
||
58 | {$DEFINE SupportDirectX3} |
||
59 | {$DEFINE SupportDirectX5} |
||
60 | {$ENDIF} |
||
61 | |||
62 | {$IFDEF DirectX6} |
||
63 | {$UNDEF DirectX3} |
||
64 | {$UNDEF DirectX5} |
||
65 | {$UNDEF DirectX7} |
||
66 | {$DEFINE SupportDirectX3} |
||
67 | {$DEFINE SupportDirectX5} |
||
68 | {$DEFINE SupportDirectX6} |
||
69 | {$ENDIF} |
||
70 | |||
71 | {$IFDEF DirectX7} |
||
72 | {$UNDEF DirectX3} |
||
73 | {$UNDEF DirectX5} |
||
74 | {$UNDEF DirectX6} |
||
75 | {$DEFINE SupportDirectX3} |
||
76 | {$DEFINE SupportDirectX5} |
||
77 | {$DEFINE SupportDirectX6} |
||
78 | {$DEFINE SupportDirectX7} |
||
79 | {$ENDIF} |
||
80 | |||
81 | uses Windows, MMSystem, ActiveX; |
||
82 | |||
83 | const |
||
84 | {$IFDEF DirectX3} |
||
85 | DirectXUnitVersion = 3; |
||
86 | {$ENDIF}{$IFDEF DirectX5} |
||
87 | DirectXUnitVersion = 5; |
||
88 | {$ENDIF}{$IFDEF DirectX6} |
||
89 | DirectXUnitVersion = 6; |
||
90 | {$ENDIF}{$IFDEF DirectX7} |
||
91 | DirectXUnitVersion = 7; |
||
92 | {$ENDIF} |
||
93 | |||
94 | (*==========================================================================; |
||
95 | * |
||
96 | * Copyright (C) Microsoft Corporation. All Rights Reserved. |
||
97 | * |
||
98 | * File: ddraw.h |
||
99 | * Content: DirectDraw include file |
||
100 | * |
||
101 | ***************************************************************************) |
||
102 | |||
103 | { FOURCC codes for DX compressed-texture pixel formats } |
||
104 | |||
105 | const |
||
106 | FOURCC_DXT1 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('1') shl 24; |
||
107 | FOURCC_DXT2 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('2') shl 24; |
||
108 | FOURCC_DXT3 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('3') shl 24; |
||
109 | FOURCC_DXT4 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('4') shl 24; |
||
110 | FOURCC_DXT5 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('5') shl 24; |
||
111 | |||
112 | { GUIDS used by DirectDraw objects } |
||
113 | |||
114 | const |
||
115 | CLSID_DirectDraw: TGUID = '{D7B70EE0-4340-11CF-B063-0020AFC2CD35}'; |
||
116 | CLSID_DirectDraw7: TGUID = '{3C305196-50DB-11D3-9CFE-00C04FD930C5}'; |
||
117 | CLSID_DirectDrawClipper: TGUID = '{593817A0-7DB3-11CF-A2DE-00AA00B93356}'; |
||
118 | IID_IDirectDraw: TGUID = '{6C14DB80-A733-11CE-A521-0020AF0BE560}'; |
||
119 | IID_IDirectDraw2: TGUID = '{B3A6F3E0-2B43-11CF-A2DE-00AA00B93356}'; |
||
120 | IID_IDirectDraw4: TGUID = '{9C59509A-39BD-11D1-8C4A-00C04FD930C5}'; |
||
121 | IID_IDirectDraw7: TGUID = '{15E65EC0-3B9C-11D2-B92F-00609797EA5B}'; |
||
122 | IID_IDirectDrawSurface: TGUID = '{6C14DB81-A733-11CE-A521-0020AF0BE560}'; |
||
123 | IID_IDirectDrawSurface2: TGUID = '{57805885-6EEC-11CF-9441-A82303C10E27}'; |
||
124 | IID_IDirectDrawSurface3: TGUID = '{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}'; |
||
125 | IID_IDirectDrawSurface4: TGUID = '{0B2B8630-AD35-11D0-8EA6-00609797EA5B}'; |
||
126 | IID_IDirectDrawSurface7: TGUID = '{06675A80-3B9B-11D2-B92F-00609797EA5B}'; |
||
127 | IID_IDirectDrawPalette: TGUID = '{6C14DB84-A733-11CE-A521-0020AF0BE560}'; |
||
128 | IID_IDirectDrawClipper: TGUID = '{6C14DB85-A733-11CE-A521-0020AF0BE560}'; |
||
129 | IID_IDirectDrawColorControl: TGUID = '{4B9F0EE0-0D7E-11D0-9B06-00A0C903A3B8}'; |
||
130 | IID_IDirectDrawGammaControl: TGUID = '{69C11C3E-B46B-11D1-AD7A-00C04FC29B4E}'; |
||
131 | |||
132 | const |
||
133 | DD_ROP_SPACE = 256 div 32; // space required to store ROP array |
||
134 | |||
135 | MAX_DDDEVICEID_STRING = 512; |
||
136 | |||
137 | { DirectDraw Structures } |
||
138 | |||
139 | type |
||
140 | IDirectDraw = interface; |
||
141 | IDirectDraw2 = interface; |
||
142 | IDirectDraw4 = interface; |
||
143 | IDirectDraw7 = interface; |
||
144 | IDirectDrawSurface = interface; |
||
145 | IDirectDrawSurface2 = interface; |
||
146 | IDirectDrawSurface3 = interface; |
||
147 | IDirectDrawSurface4 = interface; |
||
148 | IDirectDrawSurface7 = interface; |
||
149 | IDirectDrawPalette = interface; |
||
150 | IDirectDrawClipper = interface; |
||
151 | IDirectDrawColorControl = interface; |
||
152 | IDirectDrawGammaControl = interface; |
||
153 | |||
154 | { TDDARGB structure } |
||
155 | |||
156 | PDDARGB = ^TDDARGB; |
||
157 | TDDARGB = record |
||
158 | Blue: Byte; |
||
159 | Green: Byte; |
||
160 | Red: Byte; |
||
161 | Alpha: Byte; |
||
162 | end; |
||
163 | |||
164 | DDARGB = TDDARGB; |
||
165 | LPDDARGB = PDDARGB; |
||
166 | |||
167 | { TDDRGBA structure } |
||
168 | |||
169 | PDDRGBA = ^TDDRGBA; |
||
170 | TDDRGBA = record |
||
171 | Red: Byte; |
||
172 | Green: Byte; |
||
173 | Blue: Byte; |
||
174 | Alpha: Byte; |
||
175 | end; |
||
176 | |||
177 | DDRGBA = TDDRGBA; |
||
178 | LPDDRGBA = PDDRGBA; |
||
179 | |||
180 | { TDDColorKey structure } |
||
181 | |||
182 | PDDColorKey = ^TDDColorKey; |
||
183 | TDDColorKey = record |
||
184 | dwColorSpaceLowValue: DWORD; // low boundary of color space that is to |
||
185 | // be treated as Color Key, inclusive |
||
186 | dwColorSpaceHighValue: DWORD; // high boundary of color space that is |
||
187 | // to be treated as Color Key, inclusive |
||
188 | end; |
||
189 | |||
190 | DDCOLORKEY = TDDColorKey; |
||
191 | LPDDCOLORKEY = PDDColorKey; |
||
192 | |||
193 | { TDDBltFX structure } |
||
194 | |||
195 | PDDBltFX = ^TDDBltFX; |
||
196 | TDDBltFX = record |
||
197 | dwSize: DWORD; // size of structure |
||
198 | dwDDFX: DWORD; // FX operations |
||
199 | dwROP: DWORD; // Win32 raster operations |
||
200 | dwDDROP: DWORD; // Raster operations new for DirectDraw |
||
201 | dwRotationAngle: DWORD; // Rotation angle for blt |
||
202 | dwZBufferOpCode: DWORD; // ZBuffer compares |
||
203 | dwZBufferLow: DWORD; // Low limit of Z buffer |
||
204 | dwZBufferHigh: DWORD; // High limit of Z buffer |
||
205 | dwZBufferBaseDest: DWORD; // Destination base value |
||
206 | dwZDestConstBitDepth: DWORD; // Bit depth used to specify Z constant for destination |
||
207 | case Integer of |
||
208 | 0: ( |
||
209 | dwZDestConst: DWORD; // Constant to use as Z buffer for dest |
||
210 | dwZSrcConstBitDepth: DWORD; // Bit depth used to specify Z constant for source |
||
211 | dwZSrcConst: DWORD; // Constant to use as Z buffer for src |
||
212 | dwAlphaEdgeBlendBitDepth: DWORD; // Bit depth used to specify constant for alpha edge blend |
||
213 | dwAlphaEdgeBlend: DWORD; // Alpha for edge blending |
||
214 | dwReserved: DWORD; |
||
215 | dwAlphaDestConstBitDepth: DWORD; // Bit depth used to specify alpha constant for destination |
||
216 | dwAlphaDestConst: DWORD; // Constant to use as Alpha Channel |
||
217 | dwAlphaSrcConstBitDepth: DWORD; // Bit depth used to specify alpha constant for source |
||
218 | dwAlphaSrcConst: DWORD; // Constant to use as Alpha Channel |
||
219 | dwFillColor: DWORD; // color in RGB or Palettized |
||
220 | ddckDestColorkey: TDDColorKey; // DestColorkey override |
||
221 | ddckSrcColorkey: TDDColorKey; // SrcColorkey override |
||
222 | ); |
||
223 | 1: ( |
||
224 | lpDDSZBufferDest: Pointer{IDirectDrawSurface}; // Surface to use as Z buffer for dest |
||
225 | _union1b: DWORD; |
||
226 | lpDDSZBufferSrc: Pointer{IDirectDrawSurface}; // Surface to use as Z buffer for src |
||
227 | _union1d: DWORD; |
||
228 | _union1e: DWORD; |
||
229 | _union1f: DWORD; |
||
230 | _union1g: DWORD; |
||
231 | lpDDSAlphaDest: Pointer{IDirectDrawSurface}; // Surface to use as Alpha Channel |
||
232 | _union1i: DWORD; |
||
233 | lpDDSAlphaSrc: Pointer{IDirectDrawSurface}; // Surface to use as Alpha Channel |
||
234 | dwFillDepth: DWORD; // depth value for z-buffer |
||
235 | ); |
||
236 | 2: ( |
||
237 | _union2a: DWORD; |
||
238 | _union2b: DWORD; |
||
239 | _union2c: DWORD; |
||
240 | _union2d: DWORD; |
||
241 | _union2e: DWORD; |
||
242 | _union2f: DWORD; |
||
243 | _union2g: DWORD; |
||
244 | _union2h: DWORD; |
||
245 | _union2i: DWORD; |
||
246 | _union2j: DWORD; |
||
247 | lpDDSPattern: Pointer{IDirectDrawSurface}; // Surface to use as pattern |
||
248 | ); |
||
249 | end; |
||
250 | |||
251 | DDBLTFX = TDDBltFX; |
||
252 | LPDDBLTFX = PDDBltFX; |
||
253 | |||
254 | { TDDSCaps structure } |
||
255 | |||
256 | PDDSCaps = ^TDDSCaps; |
||
257 | TDDSCaps = record |
||
258 | dwCaps: DWORD; // capabilities of surface wanted |
||
259 | end; |
||
260 | |||
261 | DDSCAPS = TDDSCaps; |
||
262 | LPDDSCAPS = PDDSCaps; |
||
263 | { TDDOSCaps structure } |
||
264 | |||
265 | PDDOSCaps = ^TDDOSCaps; |
||
266 | TDDOSCaps = record |
||
267 | dwCaps: DWORD; // capabilities of surface wanted |
||
268 | end; |
||
269 | |||
270 | DDOSCAPS = TDDOSCaps; |
||
271 | LPDDOSCAPS = PDDOSCaps; |
||
272 | |||
273 | |||
274 | { TDDSCapsEx structure } |
||
275 | |||
276 | PDDSCapsEx = ^TDDSCapsEx; |
||
277 | TDDSCapsEx = record |
||
278 | dwCaps2: DWORD; |
||
279 | dwCaps3: DWORD; |
||
280 | dwCaps4: DWORD; |
||
281 | end; |
||
282 | |||
283 | DDSCAPSEX = TDDSCapsEx; |
||
284 | LPDDSCAPSEX = PDDSCapsEx; |
||
285 | |||
286 | { TDDSCaps2 structure } |
||
287 | |||
288 | PDDSCaps2 = ^TDDSCaps2; |
||
289 | TDDSCaps2 = record |
||
290 | dwCaps: DWORD; // capabilities of surface wanted |
||
291 | dwCaps2: DWORD; |
||
292 | dwCaps3: DWORD; |
||
293 | dwCaps4: DWORD; |
||
294 | end; |
||
295 | |||
296 | DDSCAPS2 = TDDSCaps2; |
||
297 | LPDDSCAPS2 = PDDSCaps2; |
||
298 | |||
299 | { TDDCaps structure } |
||
300 | |||
301 | PDDCaps_DX1 = ^TDDCaps_DX1; |
||
302 | TDDCaps_DX1 = record |
||
303 | dwSize: DWORD; // size of the DDDRIVERCAPS structure |
||
304 | dwCaps: DWORD; // driver specific capabilities |
||
305 | dwCaps2: DWORD; // more driver specific capabilites |
||
306 | dwCKeyCaps: DWORD; // color key capabilities of the surface |
||
307 | dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
||
308 | dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
||
309 | dwPalCaps: DWORD; // palette capabilities |
||
310 | dwSVCaps: DWORD; // stereo vision capabilities |
||
311 | dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
||
312 | dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
313 | dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
314 | dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
||
315 | dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
316 | dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
317 | dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
||
318 | dwVidMemTotal: DWORD; // total amount of video memory |
||
319 | dwVidMemFree: DWORD; // amount of free video memory |
||
320 | dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
||
321 | dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
||
322 | dwNumFourCCCodes: DWORD; // number of four cc codes |
||
323 | dwAlignBoundarySrc: DWORD; // source rectangle alignment |
||
324 | dwAlignSizeSrc: DWORD; // source rectangle byte size |
||
325 | dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
||
326 | dwAlignSizeDest: DWORD; // dest rectangle byte size |
||
327 | dwAlignStrideAlign: DWORD; // stride alignment |
||
328 | dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
||
329 | ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
||
330 | dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
331 | dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
332 | dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
333 | dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
334 | dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
335 | dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
336 | dwReserved1: DWORD; // reserved |
||
337 | dwReserved2: DWORD; // reserved |
||
338 | dwReserved3: DWORD; // reserved |
||
339 | end; |
||
340 | |||
341 | PDDCaps_DX3 = ^TDDCaps_DX3; |
||
342 | TDDCaps_DX3 = record |
||
343 | dwSize: DWORD; // size of the DDDRIVERCAPS structure |
||
344 | dwCaps: DWORD; // driver specific capabilities |
||
345 | dwCaps2: DWORD; // more driver specific capabilites |
||
346 | dwCKeyCaps: DWORD; // color key capabilities of the surface |
||
347 | dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
||
348 | dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
||
349 | dwPalCaps: DWORD; // palette capabilities |
||
350 | dwSVCaps: DWORD; // stereo vision capabilities |
||
351 | dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
||
352 | dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
353 | dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
354 | dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
||
355 | dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
356 | dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
357 | dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
||
358 | dwVidMemTotal: DWORD; // total amount of video memory |
||
359 | dwVidMemFree: DWORD; // amount of free video memory |
||
360 | dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
||
361 | dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
||
362 | dwNumFourCCCodes: DWORD; // number of four cc codes |
||
363 | dwAlignBoundarySrc: DWORD; // source rectangle alignment |
||
364 | dwAlignSizeSrc: DWORD; // source rectangle byte size |
||
365 | dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
||
366 | dwAlignSizeDest: DWORD; // dest rectangle byte size |
||
367 | dwAlignStrideAlign: DWORD; // stride alignment |
||
368 | dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
||
369 | ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
||
370 | dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
371 | dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
372 | dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
373 | dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
374 | dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
375 | dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
376 | dwReserved1: DWORD; // reserved |
||
377 | dwReserved2: DWORD; // reserved |
||
378 | dwReserved3: DWORD; // reserved |
||
379 | dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
||
380 | dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
||
381 | dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
||
382 | dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
||
383 | dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
||
384 | dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
||
385 | dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
||
386 | dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
||
387 | dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
||
388 | dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
||
389 | dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
||
390 | dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
||
391 | dwReserved4: DWORD; // reserved |
||
392 | dwReserved5: DWORD; // reserved |
||
393 | dwReserved6: DWORD; // reserved |
||
394 | end; |
||
395 | |||
396 | PDDCaps_DX5 = ^TDDCaps_DX5; |
||
397 | TDDCaps_DX5 = record |
||
398 | dwSize: DWORD; // size of the DDDRIVERCAPS structure |
||
399 | dwCaps: DWORD; // driver specific capabilities |
||
400 | dwCaps2: DWORD; // more driver specific capabilites |
||
401 | dwCKeyCaps: DWORD; // color key capabilities of the surface |
||
402 | dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
||
403 | dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
||
404 | dwPalCaps: DWORD; // palette capabilities |
||
405 | dwSVCaps: DWORD; // stereo vision capabilities |
||
406 | dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
||
407 | dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
408 | dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
409 | dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
||
410 | dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
411 | dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
412 | dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
||
413 | dwVidMemTotal: DWORD; // total amount of video memory |
||
414 | dwVidMemFree: DWORD; // amount of free video memory |
||
415 | dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
||
416 | dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
||
417 | dwNumFourCCCodes: DWORD; // number of four cc codes |
||
418 | dwAlignBoundarySrc: DWORD; // source rectangle alignment |
||
419 | dwAlignSizeSrc: DWORD; // source rectangle byte size |
||
420 | dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
||
421 | dwAlignSizeDest: DWORD; // dest rectangle byte size |
||
422 | dwAlignStrideAlign: DWORD; // stride alignment |
||
423 | dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
||
424 | ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
||
425 | dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
426 | dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
427 | dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
428 | dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
429 | dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
430 | dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
431 | dwReserved1: DWORD; // reserved |
||
432 | dwReserved2: DWORD; // reserved |
||
433 | dwReserved3: DWORD; // reserved |
||
434 | dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
||
435 | dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
||
436 | dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
||
437 | dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
||
438 | dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
||
439 | dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
||
440 | dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
||
441 | dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
||
442 | dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
||
443 | dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
||
444 | dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
||
445 | dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
||
446 | { Members added for DX5 } |
||
447 | dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
||
448 | dwCurrVideoPorts: DWORD; // current number of video ports used |
||
449 | dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
||
450 | dwNLVBCaps: DWORD; // driver specific capabilities for non-local->local vidmem blts |
||
451 | dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
||
452 | dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
||
453 | dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
||
454 | dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
||
455 | end; |
||
456 | |||
457 | PDDCaps_DX6 = ^TDDCaps_DX6; |
||
458 | TDDCaps_DX6 = record |
||
459 | dwSize: DWORD; // size of the DDDRIVERCAPS structure |
||
460 | dwCaps: DWORD; // driver specific capabilities |
||
461 | dwCaps2: DWORD; // more driver specific capabilites |
||
462 | dwCKeyCaps: DWORD; // color key capabilities of the surface |
||
463 | dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
||
464 | dwFXAlphaCaps: DWORD; // alpha caps |
||
465 | dwPalCaps: DWORD; // palette capabilities |
||
466 | dwSVCaps: DWORD; // stereo vision capabilities |
||
467 | dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
||
468 | dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
469 | dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
470 | dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
||
471 | dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
472 | dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
473 | dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
||
474 | dwVidMemTotal: DWORD; // total amount of video memory |
||
475 | dwVidMemFree: DWORD; // amount of free video memory |
||
476 | dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
||
477 | dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
||
478 | dwNumFourCCCodes: DWORD; // number of four cc codes |
||
479 | dwAlignBoundarySrc: DWORD; // source rectangle alignment |
||
480 | dwAlignSizeSrc: DWORD; // source rectangle byte size |
||
481 | dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
||
482 | dwAlignSizeDest: DWORD; // dest rectangle byte size |
||
483 | dwAlignStrideAlign: DWORD; // stride alignment |
||
484 | dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
||
485 | ddsOldCaps: TDDSCaps; // Was TDDSCaps ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
||
486 | dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
487 | dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
488 | dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
489 | dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
490 | dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
491 | dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
492 | dwReserved1: DWORD; // reserved |
||
493 | dwReserved2: DWORD; // reserved |
||
494 | dwReserved3: DWORD; // reserved |
||
495 | dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
||
496 | dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
||
497 | dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
||
498 | dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
||
499 | dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
||
500 | dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
||
501 | dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
||
502 | dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
||
503 | dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
||
504 | dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
||
505 | dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
||
506 | dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
||
507 | { Members added for DX5 } |
||
508 | dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
||
509 | dwCurrVideoPorts: DWORD; // current number of video ports used |
||
510 | dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
||
511 | dwNLVBCaps: DWORD; // driver specific capabilities for non-local->local vidmem blts |
||
512 | dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
||
513 | dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
||
514 | dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
||
515 | dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
||
516 | { Members added for DX6 } |
||
517 | ddsCaps: TDDSCaps2; // Surface Caps |
||
518 | end; |
||
519 | |||
520 | PDDCaps_DX7 = ^TDDCaps_DX7; |
||
521 | TDDCaps_DX7 = record |
||
522 | dwSize: DWORD; // size of the DDDRIVERCAPS structure |
||
523 | dwCaps: DWORD; // driver specific capabilities |
||
524 | dwCaps2: DWORD; // more driver specific capabilites |
||
525 | dwCKeyCaps: DWORD; // color key capabilities of the surface |
||
526 | dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
||
527 | dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
||
528 | dwPalCaps: DWORD; // palette capabilities |
||
529 | dwSVCaps: DWORD; // stereo vision capabilities |
||
530 | dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
||
531 | dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
532 | dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
533 | dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
||
534 | dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
||
535 | dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
||
536 | dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
||
537 | dwVidMemTotal: DWORD; // total amount of video memory |
||
538 | dwVidMemFree: DWORD; // amount of free video memory |
||
539 | dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
||
540 | dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
||
541 | dwNumFourCCCodes: DWORD; // number of four cc codes |
||
542 | dwAlignBoundarySrc: DWORD; // source rectangle alignment |
||
543 | dwAlignSizeSrc: DWORD; // source rectangle byte size |
||
544 | dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
||
545 | dwAlignSizeDest: DWORD; // dest rectangle byte size |
||
546 | dwAlignStrideAlign: DWORD; // stride alignment |
||
547 | dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
||
548 | ddsOldCaps: TDDSCaps; // Was TDDSCaps ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
||
549 | dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
550 | dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
551 | dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
552 | dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
553 | dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
554 | dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
555 | dwReserved1: DWORD; // reserved |
||
556 | dwReserved2: DWORD; // reserved |
||
557 | dwReserved3: DWORD; // reserved |
||
558 | dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
||
559 | dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
||
560 | dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
||
561 | dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
||
562 | dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
||
563 | dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
||
564 | dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
||
565 | dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
||
566 | dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
||
567 | dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
||
568 | dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
||
569 | dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
||
570 | { Members added for DX5 } |
||
571 | dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
||
572 | dwCurrVideoPorts: DWORD; // current number of video ports used |
||
573 | dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
||
574 | dwNLVBCaps: DWORD; // driver specific capabilities for non-local->local vidmem blts |
||
575 | dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
||
576 | dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
||
577 | dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
||
578 | dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
||
579 | { Members added for DX6 } |
||
580 | ddsCaps: TDDSCaps2; // Surface Caps |
||
581 | end; |
||
582 | |||
583 | {$IFDEF DirectX1} |
||
584 | TDDCaps = TDDCaps_DX1; |
||
585 | PDDCaps = PDDCaps_DX1; |
||
586 | {$ENDIF}{$IFDEF DirectX3} |
||
587 | TDDCaps = TDDCaps_DX3; |
||
588 | PDDCaps = PDDCaps_DX3; |
||
589 | {$ENDIF}{$IFDEF DirectX5} |
||
590 | TDDCaps = TDDCaps_DX5; |
||
591 | PDDCaps = PDDCaps_DX5; |
||
592 | {$ENDIF}{$IFDEF DirectX6} |
||
593 | TDDCaps = TDDCaps_DX6; |
||
594 | PDDCaps = PDDCaps_DX6; |
||
595 | {$ENDIF}{$IFDEF DirectX7} |
||
596 | TDDCaps = TDDCaps_DX7; |
||
597 | PDDCaps = PDDCaps_DX7; |
||
598 | {$ENDIF} |
||
599 | |||
600 | DDCAPS = TDDCaps; |
||
601 | LPDDCAPS = PDDCaps; |
||
602 | |||
603 | { TDDPixelFormat structure } |
||
604 | |||
605 | PDDPixelFormat = ^TDDPixelFormat; |
||
606 | TDDPixelFormat = record |
||
607 | dwSize: DWORD; // size of structure |
||
608 | dwFlags: DWORD; // pixel format flags |
||
609 | dwFourCC: DWORD; // (FOURCC code) |
||
610 | case Integer of |
||
611 | 0: ( |
||
612 | dwRGBBitCount: DWORD; // how many bits per pixel |
||
613 | dwRBitMask: DWORD; // mask for red bit |
||
614 | dwGBitMask: DWORD; // mask for green bits |
||
615 | dwBBitMask: DWORD; // mask for blue bits |
||
616 | dwRGBAlphaBitMask: DWORD; // mask for alpha channel |
||
617 | ); |
||
618 | 1: ( |
||
619 | _union1a: DWORD; |
||
620 | _union1b: DWORD; |
||
621 | _union1c: DWORD; |
||
622 | _union1d: DWORD; |
||
623 | dwRGBZBitMask: DWORD; // mask for Z channel |
||
624 | ); |
||
625 | 2: ( |
||
626 | dwYUVBitCount: DWORD; // how many bits per pixel |
||
627 | dwYBitMask: DWORD; // mask for Y bits |
||
628 | dwUBitMask: DWORD; // mask for U bits |
||
629 | dwVBitMask: DWORD; // mask for V bits |
||
630 | dwYUVAlphaBitMask: DWORD; // mask for alpha channel |
||
631 | ); |
||
632 | 3: ( |
||
633 | _union3a: DWORD; |
||
634 | _union3b: DWORD; |
||
635 | _union3c: DWORD; |
||
636 | _union3d: DWORD; |
||
637 | dwYUVZBitMask: DWORD; // mask for Z channel |
||
638 | ); |
||
639 | 4: ( |
||
640 | dwZBufferBitDepth: DWORD; // how many bits for z buffers |
||
641 | dwStencilBitDepth: DWORD; // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits) |
||
642 | dwZBitMask: DWORD; // mask for Z bits |
||
643 | dwStencilBitMask: DWORD; // mask for stencil bits |
||
644 | ); |
||
645 | 5: ( |
||
646 | dwAlphaBitDepth: DWORD; // how many bits for alpha channels |
||
647 | ); |
||
648 | 6: ( |
||
649 | dwLuminanceBitCount: DWORD; // how many bits per pixel |
||
650 | dwLuminanceBitMask: DWORD; // mask for luminance bits |
||
651 | _union6c: DWORD; |
||
652 | _union6d: DWORD; |
||
653 | dwLuminanceAlphaBitMask: DWORD; |
||
654 | ); |
||
655 | 7: ( |
||
656 | dwBumpBitCount: DWORD; // how many bits per "buxel", total |
||
657 | dwBumpDuBitMask: DWORD; // mask for bump map U delta bits |
||
658 | dwBumpDvBitMask: DWORD; // mask for bump map V delta bits |
||
659 | dwBumpLuminanceBitMask: DWORD; // mask for luminance in bump map |
||
660 | ); |
||
661 | end; |
||
662 | |||
663 | DDPIXELFORMAT = TDDPixelFormat; |
||
664 | LPDDPIXELFORMAT = PDDPixelFormat; |
||
665 | |||
666 | { DDOVERLAYFX structure } |
||
667 | |||
668 | PDDOverlayFx = ^TDDOverlayFx; |
||
669 | TDDOverlayFx = record |
||
670 | dwSize: DWORD; // size of structure |
||
671 | dwAlphaEdgeBlendBitDepth: DWORD; // Bit depth used to specify constant for alpha edge blend |
||
672 | dwAlphaEdgeBlend: DWORD; // Constant to use as alpha for edge blend |
||
673 | dwReserved: DWORD; |
||
674 | dwAlphaDestConstBitDepth: DWORD; // Bit depth used to specify alpha constant for destination |
||
675 | case Integer of |
||
676 | 0: ( |
||
677 | dwAlphaDestConst: DWORD; // Constant to use as alpha channel for dest |
||
678 | dwAlphaSrcConstBitDepth: DWORD; // Bit depth used to specify alpha constant for source |
||
679 | dwAlphaSrcConst: DWORD; // Constant to use as alpha channel for src |
||
680 | dckDestColorkey: TDDColorKey; // DestColorkey override |
||
681 | dckSrcColorkey: TDDColorKey; // DestColorkey override |
||
682 | dwDDFX: DWORD; // Overlay FX |
||
683 | dwFlags: DWORD; // flags |
||
684 | ); |
||
685 | 1: ( |
||
686 | lpDDSAlphaDest: Pointer{IDirectDrawSurface}; // Surface to use as alpha channel for dest |
||
687 | _union1b: DWORD; |
||
688 | lpDDSAlphaSrc: Pointer{IDirectDrawSurface}; // Surface to use as alpha channel for src |
||
689 | ); |
||
690 | end; |
||
691 | |||
692 | DDOVERLAYFX = TDDOverlayFx; |
||
693 | LPDDOVERLAYFX = PDDOverlayFx; |
||
694 | |||
695 | { TDDBltBatch structure } |
||
696 | |||
697 | PDDBltBatch = ^TDDBltBatch; |
||
698 | TDDBltBatch = record |
||
699 | lprDest: PRect; |
||
700 | lpDDSSrc: IDirectDrawSurface; |
||
701 | lprSrc: PRect; |
||
702 | dwFlags: DWORD; |
||
703 | lpDDBltFx: PDDBltFX; |
||
704 | end; |
||
705 | |||
706 | DDBLTBATCH = TDDBltBatch; |
||
707 | LPDDBLTBATCH = PDDBltBatch; |
||
708 | |||
709 | { TDDSurfaceDesc structure } |
||
710 | |||
711 | PDDSurfaceDesc = ^TDDSurfaceDesc; |
||
712 | TDDSurfaceDesc = record |
||
713 | dwSize: DWORD; // size of the TDDSurfaceDesc structure |
||
714 | dwFlags: DWORD; // determines what fields are valid |
||
715 | dwHeight: DWORD; // height of surface to be created |
||
716 | dwWidth: DWORD; // width of input surface |
||
717 | case Integer of |
||
718 | 0: ( |
||
719 | lPitch: Longint; |
||
720 | dwBackBufferCount: DWORD; // number of back buffers requested |
||
721 | case Integer of |
||
722 | 0: ( |
||
723 | dwMipMapCount: DWORD; // number of mip-map levels requested |
||
724 | dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
||
725 | dwReserved: DWORD; // reserved |
||
726 | lpSurface: Pointer; // pointer to the associated surface memory |
||
727 | ddckCKDestOverlay: TDDColorKey;// color key for destination overlay use |
||
728 | ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
||
729 | ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
||
730 | ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
||
731 | ddpfPixelFormat: TDDPixelFormat;// pixel format description of the surface |
||
732 | ddsCaps: TDDSCaps; // direct draw surface capabilities |
||
733 | ); |
||
734 | 1: ( |
||
735 | dwZBufferBitDepth: DWORD; // depth of Z buffer requested |
||
736 | ); |
||
737 | 2: ( |
||
738 | dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
||
739 | ); |
||
740 | ); |
||
741 | 1: ( |
||
742 | dwLinearSize: DWORD |
||
743 | ); |
||
744 | end; |
||
745 | |||
746 | DDSURFACEDESC = TDDSurfaceDesc; |
||
747 | LPDDSURFACEDESC = PDDSurfaceDesc; |
||
748 | |||
749 | { TDDSurfaceDesc2 structure } |
||
750 | |||
751 | PDDSurfaceDesc2 = ^TDDSurfaceDesc2; |
||
752 | TDDSurfaceDesc2 = record |
||
753 | dwSize: DWORD; // size of the TDDSurfaceDesc2 structure |
||
754 | dwFlags: DWORD; // determines what fields are valid |
||
755 | dwHeight: DWORD; // height of surface to be created |
||
756 | dwWidth: DWORD; // width of input surface |
||
757 | case Integer of |
||
758 | 0: ( |
||
759 | lPitch: Longint; |
||
760 | dwBackBufferCount: DWORD; // number of back buffers requested |
||
761 | case Integer of |
||
762 | 0: ( |
||
763 | dwMipMapCount: DWORD; // number of mip-map levels requested |
||
764 | dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
||
765 | dwReserved: DWORD; // reserved |
||
766 | lpSurface: Pointer; // pointer to the associated surface memory |
||
767 | ddckCKDestOverlay: TDDColorKey;// color key for destination overlay use |
||
768 | ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
||
769 | ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
||
770 | ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
||
771 | ddpfPixelFormat: TDDPixelFormat;// pixel format description of the surface |
||
772 | ddsCaps: TDDSCaps2; // direct draw surface capabilities |
||
773 | dwTextureStage: DWORD; // stage in multitexture cascade |
||
774 | ); |
||
775 | 1: ( |
||
776 | dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
||
777 | ); |
||
778 | ); |
||
779 | 1: ( |
||
780 | dwLinearSize: DWORD |
||
781 | ); |
||
782 | end; |
||
783 | |||
784 | DDSURFACEDESC2 = TDDSurfaceDesc2; |
||
785 | LPDDSURFACEDESC2 = PDDSurfaceDesc2; |
||
786 | |||
787 | { TDDOptSurfaceDesc structure } |
||
788 | |||
789 | PDDOptSurfaceDesc = ^TDDOptSurfaceDesc; |
||
790 | TDDOptSurfaceDesc = record |
||
791 | dwSize: DWORD; // size of the DDOPTSURFACEDESC structure |
||
792 | dwFlags: DWORD; // determines what fields are valid |
||
793 | ddSCaps: TDDSCaps2; // Common caps like: Memory type |
||
794 | ddOSCaps: TDDOSCaps; // Common caps like: Memory type |
||
795 | guid: TGUID; // Compression technique GUID |
||
796 | dwCompressionRatio: DWORD; // Compression ratio |
||
797 | end; |
||
798 | |||
799 | DDOPTSURFACEDESC = TDDOptSurfaceDesc; |
||
800 | LPDDOPTSURFACEDESC = PDDOptSurfaceDesc; |
||
801 | |||
802 | { TDDColorControl structure } |
||
803 | |||
804 | PDDColorControl = ^TDDColorControl; |
||
805 | TDDColorControl = record |
||
806 | dwSize: DWORD; |
||
807 | dwFlags: DWORD; |
||
808 | lBrightness: Longint; |
||
809 | lContrast: Longint; |
||
810 | lHue: Longint; |
||
811 | lSaturation: Longint; |
||
812 | lSharpness: Longint; |
||
813 | lGamma: Longint; |
||
814 | lColorEnable: Longint; |
||
815 | dwReserved1: DWORD; |
||
816 | end; |
||
817 | |||
818 | DDCOLORCONTROL = TDDColorControl; |
||
819 | LPDDCOLORCONTROL = PDDCOLORCONTROL; |
||
820 | |||
821 | { TDDGammaRamp structure } |
||
822 | |||
823 | PDDGammaRamp = ^TDDGammaRamp; |
||
824 | TDDGammaRamp = record |
||
825 | Red: array[0..255] of Word; |
||
826 | Green: array[0..255] of Word; |
||
827 | Blue: array[0..255] of Word; |
||
828 | end; |
||
829 | |||
830 | DDGAMMARAMP = TDDGammaRamp; |
||
831 | LPDDGAMMARAMP = PDDGammaRamp; |
||
832 | |||
833 | { TDDDeviceIdentifier structure } |
||
834 | |||
835 | PDDDeviceIdentifier = ^TDDDeviceIdentifier; |
||
836 | TDDDeviceIdentifier = record |
||
837 | // |
||
838 | // These elements are for presentation to the user only. They should not be used to identify particular |
||
839 | // drivers, since this is unreliable and many different strings may be associated with the same |
||
840 | // device, and the same driver from different vendors. |
||
841 | // |
||
842 | szDriver: array[0..MAX_DDDEVICEID_STRING-1] of Char; |
||
843 | szDescription: array[0..MAX_DDDEVICEID_STRING-1] of Char; |
||
844 | |||
845 | // |
||
846 | // This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons |
||
847 | // on the whole 64 bits. Caution should be exercised if you use this element to identify problematic |
||
848 | // drivers. It is recommended that guidDeviceIdentifier is used for this purpose. |
||
849 | // |
||
850 | // This version has the form: |
||
851 | // wProduct = HIWORD(liDriverVersion.HighPart) |
||
852 | // wVersion = LOWORD(liDriverVersion.HighPart) |
||
853 | // wSubVersion = HIWORD(liDriverVersion.LowPart) |
||
854 | // wBuild = LOWORD(liDriverVersion.LowPart) |
||
855 | // |
||
856 | liDriverVersion: TLargeInteger; // Defined for applications and other 32 bit components |
||
857 | |||
858 | // |
||
859 | // These elements can be used to identify particular chipsets. Use with extreme caution. |
||
860 | // dwVendorId Identifies the manufacturer. May be zero if unknown. |
||
861 | // dwDeviceId Identifies the type of chipset. May be zero if unknown. |
||
862 | // dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. |
||
863 | // dwRevision Identifies the revision level of the chipset. May be zero if unknown. |
||
864 | // |
||
865 | dwVendorId: DWORD; |
||
866 | dwDeviceId: DWORD; |
||
867 | dwSubSysId: DWORD; |
||
868 | dwRevision: DWORD; |
||
869 | |||
870 | // |
||
871 | // This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the |
||
872 | // driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to |
||
873 | // reprofile the graphics subsystem. |
||
874 | // This element can also be used to identify particular problematic drivers. |
||
875 | // |
||
876 | guidDeviceIdentifier: TGUID; |
||
877 | end; |
||
878 | |||
879 | DDDEVICEIDENTIFIER = TDDDeviceIdentifier; |
||
880 | LPDDDEVICEIDENTIFIER = PDDDeviceIdentifier; |
||
881 | |||
882 | { TDDDeviceIdentifier2 structure } |
||
883 | |||
884 | PDDDeviceIdentifier2 = ^TDDDeviceIdentifier2; |
||
885 | TDDDeviceIdentifier2 = record |
||
886 | // |
||
887 | // These elements are for presentation to the user only. They should not be used to identify particular |
||
888 | // drivers, since this is unreliable and many different strings may be associated with the same |
||
889 | // device, and the same driver from different vendors. |
||
890 | // |
||
891 | szDriver: array[0..MAX_DDDEVICEID_STRING-1] of Char; |
||
892 | szDescription: array[0..MAX_DDDEVICEID_STRING-1] of Char; |
||
893 | |||
894 | // |
||
895 | // This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons |
||
896 | // on the whole 64 bits. Caution should be exercised if you use this element to identify problematic |
||
897 | // drivers. It is recommended that guidDeviceIdentifier is used for this purpose. |
||
898 | // |
||
899 | // This version has the form: |
||
900 | // wProduct = HIWORD(liDriverVersion.HighPart) |
||
901 | // wVersion = LOWORD(liDriverVersion.HighPart) |
||
902 | // wSubVersion = HIWORD(liDriverVersion.LowPart) |
||
903 | // wBuild = LOWORD(liDriverVersion.LowPart) |
||
904 | // |
||
905 | liDriverVersion: TLargeInteger; // Defined for applications and other 32 bit components |
||
906 | |||
907 | // |
||
908 | // These elements can be used to identify particular chipsets. Use with extreme caution. |
||
909 | // dwVendorId Identifies the manufacturer. May be zero if unknown. |
||
910 | // dwDeviceId Identifies the type of chipset. May be zero if unknown. |
||
911 | // dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. |
||
912 | // dwRevision Identifies the revision level of the chipset. May be zero if unknown. |
||
913 | // |
||
914 | dwVendorId: DWORD; |
||
915 | dwDeviceId: DWORD; |
||
916 | dwSubSysId: DWORD; |
||
917 | dwRevision: DWORD; |
||
918 | |||
919 | // |
||
920 | // This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the |
||
921 | // driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to |
||
922 | // reprofile the graphics subsystem. |
||
923 | // This element can also be used to identify particular problematic drivers. |
||
924 | // |
||
925 | guidDeviceIdentifier: TGUID; |
||
926 | |||
927 | // |
||
928 | // This element is used to determine the Windows Hardware Quality Lab (WHQL) |
||
929 | // certification level for this driver/device pair. |
||
930 | // |
||
931 | dwWHQLLevel: DWORD; |
||
932 | end; |
||
933 | |||
934 | DDDEVICEIDENTIFIER2 = TDDDeviceIdentifier2; |
||
935 | LPDDDEVICEIDENTIFIER2 = PDDDeviceIdentifier2; |
||
936 | |||
937 | { Callbacks } |
||
938 | |||
939 | TClipperCallback = function(lpDDClipper: IDirectDrawClipper; hWnd: HWND; |
||
940 | Code: DWORD; lpContext: Pointer): HResult; stdcall; |
||
941 | LPCLIPPERCALLBACK = TClipperCallback; |
||
942 | |||
943 | TSurfacesStreamingCallback = function(Arg: DWORD): HResult; stdcall; |
||
944 | LPSURFACESTREAMINGCALLBACK =TSurfacesStreamingCallback; |
||
945 | |||
946 | TDDEnumModesCallback = function(const lpDDSurfaceDesc: TDDSurfaceDesc; |
||
947 | lpContext: Pointer): HResult; stdcall; |
||
948 | LPDDENUMMODESCALLBACK = TDDEnumModesCallback; |
||
949 | |||
950 | TDDEnumModesCallback2 = function(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
||
951 | lpContext: Pointer): HResult; stdcall; |
||
952 | LPDDENUMMODESCALLBACK2 = TDDEnumModesCallback2; |
||
953 | |||
954 | TDDEnumSurfacesCallback = function(lpDDSurface: IDirectDrawSurface; |
||
955 | const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer): HResult; stdcall; |
||
956 | LPDDENUMSURFACESCALLBACK = TDDEnumSurfacesCallback; |
||
957 | |||
958 | TDDEnumSurfacesCallback2 = function(lpDDSurface: IDirectDrawSurface4; |
||
959 | const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer): HResult; stdcall; |
||
960 | LPDDENUMSURFACESCALLBACK2 = TDDEnumSurfacesCallback2; |
||
961 | |||
962 | TDDEnumSurfacesCallback7 = function(lpDDSurface: IDirectDrawSurface7; |
||
963 | const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer): HResult; stdcall; |
||
964 | LPDDENUMSURFACESCALLBACK7 = TDDEnumSurfacesCallback7; |
||
965 | |||
966 | { IDirectDraw Interface } |
||
967 | |||
968 | IDirectDraw = interface(IUnknown) |
||
969 | ['{6C14DB80-A733-11CE-A521-0020AF0BE560}'] |
||
970 | // IDirectDraw methods |
||
971 | function Compact: HResult; stdcall; |
||
972 | function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
||
973 | pUnkOuter: IUnknown): HResult; stdcall; |
||
974 | function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
||
975 | out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
||
976 | function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc; |
||
977 | out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall; |
||
978 | function DuplicateSurface(lpDDSurface: IDirectDrawSurface; |
||
979 | out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
980 | function EnumDisplayModes(dwFlags: DWORD; |
||
981 | const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer; |
||
982 | lpEnumModesCallback: TDDEnumModesCallback): HResult; stdcall; |
||
983 | function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc; |
||
984 | lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
985 | function FlipToGDISurface: HResult; stdcall; |
||
986 | function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
||
987 | function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
988 | function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
||
989 | function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall; |
||
990 | function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
||
991 | function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
||
992 | function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
||
993 | function Initialize(lpGUID: PGUID): HResult; stdcall; |
||
994 | function RestoreDisplayMode: HResult; stdcall; |
||
995 | function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
996 | function SetDisplayMode(dwWidth, dwHeight, dwBpp: DWORD): HResult; stdcall; |
||
997 | function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
998 | end; |
||
999 | |||
1000 | { IDirectDraw2 Interface } |
||
1001 | |||
1002 | IDirectDraw2 = interface(IUnknown) |
||
1003 | ['{B3A6F3E0-2B43-11CF-A2DE-00AA00B93356}'] |
||
1004 | // IDirectDraw methods |
||
1005 | function Compact: HResult; stdcall; |
||
1006 | function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
||
1007 | pUnkOuter: IUnknown): HResult; stdcall; |
||
1008 | function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
||
1009 | out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
||
1010 | function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc; |
||
1011 | out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall; |
||
1012 | function DuplicateSurface(lpDDSurface: IDirectDrawSurface; |
||
1013 | out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
1014 | function EnumDisplayModes(dwFlags: DWORD; |
||
1015 | const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer; |
||
1016 | lpEnumModesCallback: TDDEnumModesCallback): HResult; stdcall; |
||
1017 | function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc; |
||
1018 | lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1019 | function FlipToGDISurface: HResult; stdcall; |
||
1020 | function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
||
1021 | function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1022 | function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
||
1023 | function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall; |
||
1024 | function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
||
1025 | function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
||
1026 | function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
||
1027 | function Initialize(lpGUID: PGUID): HResult; stdcall; |
||
1028 | function RestoreDisplayMode: HResult; stdcall; |
||
1029 | function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
1030 | function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
||
1031 | dwFlags: DWORD): HResult; stdcall; |
||
1032 | function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1033 | // IDirectDraw2 methods |
||
1034 | function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
||
1035 | var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
||
1036 | end; |
||
1037 | |||
1038 | { IDirectDraw4 Interface } |
||
1039 | |||
1040 | IDirectDraw4 = interface(IUnknown) |
||
1041 | ['{9C59509A-39BD-11D1-8C4A-00C04FD930C5}'] |
||
1042 | // IDirectDraw methods |
||
1043 | function Compact: HResult; stdcall; |
||
1044 | function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
||
1045 | pUnkOuter: IUnknown): HResult; stdcall; |
||
1046 | function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
||
1047 | out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
||
1048 | function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
||
1049 | out lplpDDSurface: IDirectDrawSurface4; pUnkOuter: IUnknown): HResult; stdcall; |
||
1050 | function DuplicateSurface(lpDDSurface: IDirectDrawSurface4; |
||
1051 | out lplpDupDDSurface: IDirectDrawSurface4): HResult; stdcall; |
||
1052 | function EnumDisplayModes(dwFlags: DWORD; |
||
1053 | const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer; |
||
1054 | lpEnumModesCallback: TDDEnumModesCallback2): HResult; stdcall; |
||
1055 | function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc2; |
||
1056 | lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback2): HResult; stdcall; |
||
1057 | function FlipToGDISurface: HResult; stdcall; |
||
1058 | function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
||
1059 | function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1060 | function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
||
1061 | function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface2): HResult; stdcall; |
||
1062 | function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
||
1063 | function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
||
1064 | function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
||
1065 | function Initialize(lpGUID: PGUID): HResult; stdcall; |
||
1066 | function RestoreDisplayMode: HResult; stdcall; |
||
1067 | function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
1068 | function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
||
1069 | dwFlags: DWORD): HResult; stdcall; |
||
1070 | function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1071 | // IDirectDraw2 methods |
||
1072 | function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
||
1073 | var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
||
1074 | // IDirectDraw4 methods |
||
1075 | function GetSurfaceFromDC(hdc: HDC; lpDDS: IDirectDrawSurface4): HResult; stdcall; |
||
1076 | function RestoreAllSurfaces: HResult; stdcall; |
||
1077 | function TestCooperativeLevel: HResult; stdcall; |
||
1078 | function GetDeviceIdentifier(var lpdddi: TDDDeviceIdentifier; dwFlags: DWORD): HResult; stdcall; |
||
1079 | end; |
||
1080 | |||
1081 | { IDirectDraw7 Interface } |
||
1082 | |||
1083 | IDirectDraw7 = interface(IUnknown) |
||
1084 | ['{15E65EC0-3B9C-11D2-B92F-00609797EA5B}'] |
||
1085 | // IDirectDraw methods |
||
1086 | function Compact: HResult; stdcall; |
||
1087 | function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
||
1088 | pUnkOuter: IUnknown): HResult; stdcall; |
||
1089 | function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
||
1090 | out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
||
1091 | function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
||
1092 | out lplpDDSurface: IDirectDrawSurface7; pUnkOuter: IUnknown): HResult; stdcall; |
||
1093 | function DuplicateSurface(lpDDSurface: IDirectDrawSurface7; |
||
1094 | out lplpDupDDSurface: IDirectDrawSurface7): HResult; stdcall; |
||
1095 | function EnumDisplayModes(dwFlags: DWORD; |
||
1096 | const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer; |
||
1097 | lpEnumModesCallback: TDDEnumModesCallback2): HResult; stdcall; |
||
1098 | function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc2; |
||
1099 | lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback7): HResult; stdcall; |
||
1100 | function FlipToGDISurface: HResult; stdcall; |
||
1101 | function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
||
1102 | function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1103 | function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
||
1104 | function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface7): HResult; stdcall; |
||
1105 | function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
||
1106 | function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
||
1107 | function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
||
1108 | function Initialize(lpGUID: PGUID): HResult; stdcall; |
||
1109 | function RestoreDisplayMode: HResult; stdcall; |
||
1110 | function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
1111 | function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
||
1112 | dwFlags: DWORD): HResult; stdcall; |
||
1113 | function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1114 | // IDirectDraw2 methods |
||
1115 | function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
||
1116 | var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
||
1117 | // IDirectDraw4 methods |
||
1118 | function GetSurfaceFromDC(hdc: HDC; lpDDS: IDirectDrawSurface4): HResult; stdcall; |
||
1119 | function RestoreAllSurfaces: HResult; stdcall; |
||
1120 | function TestCooperativeLevel: HResult; stdcall; |
||
1121 | function GetDeviceIdentifier(var lpdddi: TDDDeviceIdentifier; dwFlags: DWORD): HResult; stdcall; |
||
1122 | // IDirectDraw7 methods |
||
1123 | function StartModeTest(var lpModesToTest: TSize; dwNumEntries: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
1124 | function EvaluateMode(dwFlags: DWORD; var pSecondsUntilTimeout: DWORD): HResult; stdcall; |
||
1125 | end; |
||
1126 | |||
1127 | { IDirectDrawPalette Interface } |
||
1128 | |||
1129 | IDirectDrawPalette = interface(IUnknown) |
||
1130 | ['{6C14DB84-A733-11CE-A521-0020AF0BE560}'] |
||
1131 | // IDirectDrawPalette methods |
||
1132 | function GetCaps(varlpdwCaps: DWORD): HResult; stdcall; |
||
1133 | function GetEntries(dwFlags: DWORD; dwBase: DWORD; dwNumEntries: DWORD; |
||
1134 | lpEntries: PPaletteEntry): HResult; stdcall; |
||
1135 | function Initialize(lpDD: IDirectDraw; dwFlags: DWORD; |
||
1136 | lpDDColorTable: PPaletteEntry): HResult; stdcall; |
||
1137 | function SetEntries(dwFlags: DWORD; dwStartingEntry: DWORD; |
||
1138 | dwCount: DWORD; lpEntries: PPaletteEntry): HResult; stdcall; |
||
1139 | end; |
||
1140 | |||
1141 | { IDirectDrawClipper Interface } |
||
1142 | |||
1143 | IDirectDrawClipper = interface(IUnknown) |
||
1144 | ['{6C14DB85-A733-11CE-A521-0020AF0BE560}'] |
||
1145 | // IDirectDrawClipper methods |
||
1146 | function GetClipList(const lpRect: TRect; lpClipList: PRgnData; |
||
1147 | var lpdwSize: DWORD): HResult; stdcall; |
||
1148 | function GetHWnd(var lphWnd: HWND): HResult; stdcall; |
||
1149 | function Initialize(lpDD: IDirectDraw; dwFlags: DWORD): HResult; stdcall; |
||
1150 | function IsClipListChanged(var lpbChanged: BOOL): HResult; stdcall; |
||
1151 | function SetClipList(lpClipList: PRgnData; dwFlags: DWORD): HResult; stdcall; |
||
1152 | function SetHWnd(dwFlags: DWORD; hWnd: HWND): HResult; stdcall; |
||
1153 | end; |
||
1154 | |||
1155 | { IDirectDrawSurface Interface } |
||
1156 | |||
1157 | IDirectDrawSurface = interface(IUnknown) |
||
1158 | ['{6C14DB81-A733-11CE-A521-0020AF0BE560}'] |
||
1159 | // IDirectDrawSurface methods |
||
1160 | function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
||
1161 | function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
||
1162 | function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface; |
||
1163 | const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
||
1164 | function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
||
1165 | dwFlags: DWORD): HResult; stdcall; |
||
1166 | function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface; |
||
1167 | const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
||
1168 | function DeleteAttachedSurface(dwFlags: DWORD; |
||
1169 | lpDDSAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
||
1170 | function EnumAttachedSurfaces(lpContext: Pointer; |
||
1171 | lpEnumSurfacesCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1172 | function EnumOverlayZOrders(dwFlags: DWORD; lpContext: Pointer; |
||
1173 | lpfnCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1174 | function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface; |
||
1175 | dwFlags: DWORD): HResult; stdcall; |
||
1176 | function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
||
1177 | out lplpDDAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
||
1178 | function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
||
1179 | function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
||
1180 | function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1181 | function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1182 | function GetDC(var lphDC: HDC): HResult; stdcall; |
||
1183 | function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
||
1184 | function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
||
1185 | function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1186 | function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
||
1187 | function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1188 | function Initialize(lpDD: IDirectDraw; |
||
1189 | const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1190 | function IsLost: HResult; stdcall; |
||
1191 | function Lock(lpDestRect: PRect; var lpDDSurfaceDesc: TDDSurfaceDesc; |
||
1192 | dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1193 | function ReleaseDC(hDC: HDC): HResult; stdcall; |
||
1194 | function Restore: HResult; stdcall; |
||
1195 | function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1196 | function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1197 | function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
||
1198 | function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1199 | function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
||
1200 | function UpdateOverlay(const lpSrcRect: TRect; |
||
1201 | lpDDDestSurface: IDirectDrawSurface; const lpDestRect: TRect; |
||
1202 | dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
||
1203 | function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
||
1204 | function UpdateOverlayZOrder(dwFlags: DWORD; |
||
1205 | lpDDSReference: IDirectDrawSurface): HResult; stdcall; |
||
1206 | end; |
||
1207 | |||
1208 | { IDirectDrawSurface2 Interface } |
||
1209 | |||
1210 | IDirectDrawSurface2 = interface(IUnknown) |
||
1211 | ['{57805885-6EEC-11CF-9441-A82303C10E27}'] |
||
1212 | // IDirectDrawSurface methods |
||
1213 | function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
||
1214 | function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
||
1215 | function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface2; |
||
1216 | const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
||
1217 | function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
||
1218 | dwFlags: DWORD): HResult; stdcall; |
||
1219 | function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface2; |
||
1220 | const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
||
1221 | function DeleteAttachedSurface(dwFlags: DWORD; |
||
1222 | lpDDSAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
||
1223 | function EnumAttachedSurfaces(lpContext: Pointer; |
||
1224 | lpEnumSurfacesCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1225 | function EnumOverlayZOrders(dwFlags: DWORD; lpContext: Pointer; |
||
1226 | lpfnCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1227 | function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface2; |
||
1228 | dwFlags: DWORD): HResult; stdcall; |
||
1229 | function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
||
1230 | out lplpDDAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
||
1231 | function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
||
1232 | function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
||
1233 | function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1234 | function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1235 | function GetDC(var lphDC: HDC): HResult; stdcall; |
||
1236 | function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
||
1237 | function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
||
1238 | function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1239 | function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
||
1240 | function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1241 | function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1242 | function IsLost: HResult; stdcall; |
||
1243 | function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc; |
||
1244 | dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1245 | function ReleaseDC(hDC: HDC): HResult; stdcall; |
||
1246 | function Restore: HResult; stdcall; |
||
1247 | function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1248 | function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1249 | function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
||
1250 | function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1251 | function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
||
1252 | function UpdateOverlay(const lpSrcRect: TRect; |
||
1253 | lpDDDestSurface: IDirectDrawSurface2; const lpDestRect: TRect; |
||
1254 | dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
||
1255 | function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
||
1256 | function UpdateOverlayZOrder(dwFlags: DWORD; |
||
1257 | lpDDSReference: IDirectDrawSurface2): HResult; stdcall; |
||
1258 | // IDirectDrawSurface2 methods |
||
1259 | function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
||
1260 | function PageLock(dwFlags: DWORD): HResult; stdcall; |
||
1261 | function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
||
1262 | end; |
||
1263 | |||
1264 | { IDirectDrawSurface3 Interface } |
||
1265 | |||
1266 | IDirectDrawSurface3 = interface(IUnknown) |
||
1267 | ['{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}'] |
||
1268 | // IDirectDrawSurface methods |
||
1269 | function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
||
1270 | function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
||
1271 | function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface3; |
||
1272 | const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
||
1273 | function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
||
1274 | dwFlags: DWORD): HResult; stdcall; |
||
1275 | function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface3; |
||
1276 | const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
||
1277 | function DeleteAttachedSurface(dwFlags: DWORD; |
||
1278 | lpDDSAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
||
1279 | function EnumAttachedSurfaces(lpContext: Pointer; |
||
1280 | lpEnumSurfacesCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1281 | function EnumOverlayZOrders(dwFlags: DWORD; lpContext: Pointer; |
||
1282 | lpfnCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
||
1283 | function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface3; |
||
1284 | dwFlags: DWORD): HResult; stdcall; |
||
1285 | function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
||
1286 | out lplpDDAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
||
1287 | function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
||
1288 | function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
||
1289 | function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1290 | function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1291 | function GetDC(var lphDC: HDC): HResult; stdcall; |
||
1292 | function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
||
1293 | function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
||
1294 | function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1295 | function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
||
1296 | function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1297 | function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
||
1298 | function IsLost: HResult; stdcall; |
||
1299 | function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc; |
||
1300 | dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1301 | function ReleaseDC(hDC: HDC): HResult; stdcall; |
||
1302 | function Restore: HResult; stdcall; |
||
1303 | function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1304 | function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1305 | function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
||
1306 | function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1307 | function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
||
1308 | function UpdateOverlay(const lpSrcRect: TRect; |
||
1309 | lpDDDestSurface: IDirectDrawSurface3; const lpDestRect: TRect; |
||
1310 | dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
||
1311 | function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
||
1312 | function UpdateOverlayZOrder(dwFlags: DWORD; |
||
1313 | lpDDSReference: IDirectDrawSurface3): HResult; stdcall; |
||
1314 | // IDirectDrawSurface2 methods |
||
1315 | function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
||
1316 | function PageLock(dwFlags: DWORD): HResult; stdcall; |
||
1317 | function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
||
1318 | // IDirectDrawSurface3 methods |
||
1319 | function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc; dwFlags: DWORD): HResult; stdcall; |
||
1320 | end; |
||
1321 | |||
1322 | { IDirectDrawSurface4 Interface } |
||
1323 | |||
1324 | IDirectDrawSurface4 = interface(IUnknown) |
||
1325 | ['{0B2B8630-AD35-11D0-8EA6-00609797EA5B}'] |
||
1326 | // IDirectDrawSurface methods |
||
1327 | function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
||
1328 | function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
||
1329 | function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface4; |
||
1330 | const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
||
1331 | function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
||
1332 | dwFlags: DWORD): HResult; stdcall; |
||
1333 | function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface4; |
||
1334 | const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
||
1335 | function DeleteAttachedSurface(dwFlags: DWORD; |
||
1336 | lpDDSAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
||
1337 | function EnumAttachedSurfaces(lpContext: Pointer; |
||
1338 | lpEnumSurfacesCallback: TDDEnumSurfacesCallback2): HResult; stdcall; |
||
1339 | function EnumOverlayZOrders(dwFlags: DWORD; lpContext: Pointer; |
||
1340 | lpfnCallback: TDDEnumSurfacesCallback2): HResult; stdcall; |
||
1341 | function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface4; |
||
1342 | dwFlags: DWORD): HResult; stdcall; |
||
1343 | function GetAttachedSurface(var lpDDSCaps: TDDSCaps2; |
||
1344 | out lplpDDAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
||
1345 | function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
||
1346 | function GetCaps(var lpDDSCaps: TDDSCaps2): HResult; stdcall; |
||
1347 | function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1348 | function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1349 | function GetDC(var lphDC: HDC): HResult; stdcall; |
||
1350 | function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
||
1351 | function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
||
1352 | function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1353 | function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
||
1354 | function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1355 | function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1356 | function IsLost: HResult; stdcall; |
||
1357 | function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc2; |
||
1358 | dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1359 | function ReleaseDC(hDC: HDC): HResult; stdcall; |
||
1360 | function Restore: HResult; stdcall; |
||
1361 | function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1362 | function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1363 | function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
||
1364 | function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1365 | function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
||
1366 | function UpdateOverlay(const lpSrcRect: TRect; lpDDDestSurface: IDirectDrawSurface4; |
||
1367 | const lpDestRect: TRect; dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
||
1368 | function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
||
1369 | function UpdateOverlayZOrder(dwFlags: DWORD; lpDDSReference: IDirectDrawSurface4): HResult; stdcall; |
||
1370 | // IDirectDrawSurface2 methods |
||
1371 | function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
||
1372 | function PageLock(dwFlags: DWORD): HResult; stdcall; |
||
1373 | function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
||
1374 | // IDirectDrawSurface3 methods |
||
1375 | function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc2; dwFlags: DWORD): HResult; stdcall; |
||
1376 | // IDirectDrawSurface4 methods |
||
1377 | function SetPrivateData(const guidTag: TGUID; lpData: Pointer; |
||
1378 | cbSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
1379 | function GetPrivateData(const guidTag: TGUID; lpData: Pointer; |
||
1380 | var cbSize: DWORD): HResult; stdcall; |
||
1381 | function FreePrivateData(const guidTag: TGUID): HResult; stdcall; |
||
1382 | function GetUniquenessValue(var lpValue: DWORD): HResult; stdcall; |
||
1383 | function ChangeUniquenessValue: HResult; stdcall; |
||
1384 | end; |
||
1385 | |||
1386 | { IDirectDrawSurface7 Interface } |
||
1387 | |||
1388 | IDirectDrawSurface7 = interface(IUnknown) |
||
1389 | ['{06675A80-3B9B-11D2-B92F-00609797EA5B}'] |
||
1390 | // IDirectDrawSurface methods |
||
1391 | function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
||
1392 | function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
||
1393 | function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface7; |
||
1394 | const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
||
1395 | function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
||
1396 | dwFlags: DWORD): HResult; stdcall; |
||
1397 | function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface7; |
||
1398 | const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
||
1399 | function DeleteAttachedSurface(dwFlags: DWORD; |
||
1400 | lpDDSAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
||
1401 | function EnumAttachedSurfaces(lpContext: Pointer; |
||
1402 | lpEnumSurfacesCallback: TDDEnumSurfacesCallback7): HResult; stdcall; |
||
1403 | function EnumOverlayZOrders(dwFlags: DWORD; lpContext: Pointer; |
||
1404 | lpfnCallback: TDDEnumSurfacesCallback7): HResult; stdcall; |
||
1405 | function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface7; |
||
1406 | dwFlags: DWORD): HResult; stdcall; |
||
1407 | function GetAttachedSurface(var lpDDSCaps: TDDSCaps2; |
||
1408 | out lplpDDAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
||
1409 | function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
||
1410 | function GetCaps(var lpDDSCaps: TDDSCaps2): HResult; stdcall; |
||
1411 | function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1412 | function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1413 | function GetDC(var lphDC: HDC): HResult; stdcall; |
||
1414 | function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
||
1415 | function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
||
1416 | function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1417 | function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
||
1418 | function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1419 | function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
||
1420 | function IsLost: HResult; stdcall; |
||
1421 | function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc2; |
||
1422 | dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
||
1423 | function ReleaseDC(hDC: HDC): HResult; stdcall; |
||
1424 | function Restore: HResult; stdcall; |
||
1425 | function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
||
1426 | function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
||
1427 | function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
||
1428 | function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
||
1429 | function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
||
1430 | function UpdateOverlay(const lpSrcRect: TRect; lpDDDestSurface: IDirectDrawSurface7; |
||
1431 | const lpDestRect: TRect; dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
||
1432 | function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
||
1433 | function UpdateOverlayZOrder(dwFlags: DWORD; lpDDSReference: IDirectDrawSurface7): HResult; stdcall; |
||
1434 | // IDirectDrawSurface2 methods |
||
1435 | function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
||
1436 | function PageLock(dwFlags: DWORD): HResult; stdcall; |
||
1437 | function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
||
1438 | // IDirectDrawSurface3 methods |
||
1439 | function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc2; dwFlags: DWORD): HResult; stdcall; |
||
1440 | // IDirectDrawSurface4 methods |
||
1441 | function SetPrivateData(const guidTag: TGUID; lpData: Pointer; |
||
1442 | cbSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
1443 | function GetPrivateData(const guidTag: TGUID; lpData: Pointer; |
||
1444 | var cbSize: DWORD): HResult; stdcall; |
||
1445 | function FreePrivateData(const guidTag: TGUID): HResult; stdcall; |
||
1446 | function GetUniquenessValue(var lpValue: DWORD): HResult; stdcall; |
||
1447 | function ChangeUniquenessValue: HResult; stdcall; |
||
1448 | // Moved Texture7 methods here |
||
1449 | function SetPriority(dwPriority: DWORD): HResult; stdcall; |
||
1450 | function GetPriority(var lpdwPriority: DWORD): HResult; stdcall; |
||
1451 | function SetLOD(dwMaxLOD: DWORD): HResult; stdcall; |
||
1452 | function GetLOD(var lpdwMaxLOD: DWORD): HResult; stdcall; |
||
1453 | end; |
||
1454 | |||
1455 | { IDirectDrawColorControl Interface } |
||
1456 | |||
1457 | IDirectDrawColorControl = interface(IUnknown) |
||
1458 | ['{4B9F0EE0-0D7E-11D0-9B06-00A0C903A3B8}'] |
||
1459 | // IDirectDrawColorControl methods |
||
1460 | function GetColorControls(var lpColorControl: TDDColorControl): HResult; stdcall; |
||
1461 | function SetColorControls(const lpColorControl: TDDColorControl): HResult; stdcall; |
||
1462 | end; |
||
1463 | |||
1464 | { IDirectDrawGammaControl Interface } |
||
1465 | |||
1466 | IDirectDrawGammaControl = interface(IUnknown) |
||
1467 | ['{69C11C3E-B46B-11D1-AD7A-00C04FC29B4E}'] |
||
1468 | // IDirectDrawGammaControl methods |
||
1469 | function GetGammaRamp(dwFlags: DWORD; var lpRampData: TDDGammaRamp): HResult; stdcall; |
||
1470 | function SetGammaRamp(dwFlags: DWORD; const lpRampData: TDDGammaRamp): HResult; stdcall; |
||
1471 | end; |
||
1472 | |||
1473 | const |
||
1474 | { Flags for DirectDrawEnumerateEx } |
||
1475 | DDENUM_ATTACHEDSECONDARYDEVICES = $00000001; |
||
1476 | DDENUM_DETACHEDSECONDARYDEVICES = $00000002; |
||
1477 | DDENUM_NONDISPLAYDEVICES = $00000004; |
||
1478 | |||
1479 | { Flags for the IDirectDraw4.GetDeviceIdentifier method } |
||
1480 | DDGDI_GETHOSTIDENTIFIER = $00000001; |
||
1481 | |||
1482 | { ddsCaps field is valid. } |
||
1483 | DDSD_CAPS = $00000001; // default |
||
1484 | DDSD_HEIGHT = $00000002; |
||
1485 | DDSD_WIDTH = $00000004; |
||
1486 | DDSD_PITCH = $00000008; |
||
1487 | DDSD_BACKBUFFERCOUNT = $00000020; |
||
1488 | DDSD_ZBUFFERBITDEPTH = $00000040; |
||
1489 | DDSD_ALPHABITDEPTH = $00000080; |
||
1490 | DDSD_LPSURFACE = $00000800; |
||
1491 | DDSD_PIXELFORMAT = $00001000; |
||
1492 | DDSD_CKDESTOVERLAY = $00002000; |
||
1493 | DDSD_CKDESTBLT = $00004000; |
||
1494 | DDSD_CKSRCOVERLAY = $00008000; |
||
1495 | DDSD_CKSRCBLT = $00010000; |
||
1496 | DDSD_MIPMAPCOUNT = $00020000; |
||
1497 | DDSD_REFRESHRATE = $00040000; |
||
1498 | DDSD_LINEARSIZE = $00080000; |
||
1499 | DDSD_TEXTURESTAGE = $00100000; |
||
1500 | DDSD_FVF = $00200000; |
||
1501 | DDSD_SRCVBHANDLE = $00400000; |
||
1502 | DDSD_ALL = $007ff9ee; |
||
1503 | |||
1504 | { DirectDraw Driver Capability Flags } |
||
1505 | |||
1506 | DDCAPS_3D = $00000001; |
||
1507 | DDCAPS_ALIGNBOUNDARYDEST = $00000002; |
||
1508 | DDCAPS_ALIGNSIZEDEST = $00000004; |
||
1509 | DDCAPS_ALIGNBOUNDARYSRC = $00000008; |
||
1510 | DDCAPS_ALIGNSIZESRC = $00000010; |
||
1511 | DDCAPS_ALIGNSTRIDE = $00000020; |
||
1512 | DDCAPS_BLT = $00000040; |
||
1513 | DDCAPS_BLTQUEUE = $00000080; |
||
1514 | DDCAPS_BLTFOURCC = $00000100; |
||
1515 | DDCAPS_BLTSTRETCH = $00000200; |
||
1516 | DDCAPS_GDI = $00000400; |
||
1517 | DDCAPS_OVERLAY = $00000800; |
||
1518 | DDCAPS_OVERLAYCANTCLIP = $00001000; |
||
1519 | DDCAPS_OVERLAYFOURCC = $00002000; |
||
1520 | DDCAPS_OVERLAYSTRETCH = $00004000; |
||
1521 | DDCAPS_PALETTE = $00008000; |
||
1522 | DDCAPS_PALETTEVSYNC = $00010000; |
||
1523 | DDCAPS_READSCANLINE = $00020000; |
||
1524 | DDCAPS_STEREOVIEW = $00040000; |
||
1525 | DDCAPS_VBI = $00080000; |
||
1526 | DDCAPS_ZBLTS = $00100000; |
||
1527 | DDCAPS_ZOVERLAYS = $00200000; |
||
1528 | DDCAPS_COLORKEY = $00400000; |
||
1529 | DDCAPS_ALPHA = $00800000; |
||
1530 | DDCAPS_COLORKEYHWASSIST = $01000000; |
||
1531 | DDCAPS_NOHARDWARE = $02000000; |
||
1532 | DDCAPS_BLTCOLORFILL = $04000000; |
||
1533 | DDCAPS_BANKSWITCHED = $08000000; |
||
1534 | DDCAPS_BLTDEPTHFILL = $10000000; |
||
1535 | DDCAPS_CANCLIP = $20000000; |
||
1536 | DDCAPS_CANCLIPSTRETCHED = $40000000; |
||
1537 | DDCAPS_CANBLTSYSMEM = $80000000; |
||
1538 | |||
1539 | { More DirectDraw Driver Capability Flags (dwCaps2) } |
||
1540 | |||
1541 | DDCAPS2_CERTIFIED = $00000001; |
||
1542 | DDCAPS2_NO2DDURING3DSCENE = $00000002; |
||
1543 | DDCAPS2_VIDEOPORT = $00000004; |
||
1544 | DDCAPS2_AUTOFLIPOVERLAY = $00000008; |
||
1545 | DDCAPS2_CANBOBINTERLEAVED = $00000010; |
||
1546 | DDCAPS2_CANBOBNONINTERLEAVED = $00000020; |
||
1547 | DDCAPS2_COLORCONTROLOVERLAY = $00000040; |
||
1548 | DDCAPS2_COLORCONTROLPRIMARY = $00000080; |
||
1549 | DDCAPS2_CANDROPZ16BIT = $00000100; |
||
1550 | DDCAPS2_NONLOCALVIDMEM = $00000200; |
||
1551 | DDCAPS2_NONLOCALVIDMEMCAPS = $00000400; |
||
1552 | DDCAPS2_NOPAGELOCKREQUIRED = $00000800; |
||
1553 | DDCAPS2_WIDESURFACES = $00001000; |
||
1554 | DDCAPS2_CANFLIPODDEVEN = $00002000; |
||
1555 | DDCAPS2_CANBOBHARDWARE = $00004000; |
||
1556 | DDCAPS2_COPYFOURCC = $00008000; |
||
1557 | DDCAPS2_PRIMARYGAMMA = $00020000; |
||
1558 | DDCAPS2_CANRENDERWINDOWED = $00080000; |
||
1559 | DDCAPS2_CANCALIBRATEGAMMA = $00100000; |
||
1560 | DDCAPS2_FLIPINTERVAL = $00200000; |
||
1561 | DDCAPS2_FLIPNOVSYNC = $00400000; |
||
1562 | DDCAPS2_CANMANAGETEXTURE = $00800000; |
||
1563 | DDCAPS2_TEXMANINNONLOCALVIDMEM = $01000000; |
||
1564 | DDCAPS2_STEREO = $02000000; |
||
1565 | DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL = $04000000; |
||
1566 | |||
1567 | { DirectDrawSurface Capability Flags } |
||
1568 | |||
1569 | DDSCAPS_RESERVED1 = $00000001; { DDSCAPS_3D } |
||
1570 | DDSCAPS_ALPHA = $00000002; |
||
1571 | DDSCAPS_BACKBUFFER = $00000004; |
||
1572 | DDSCAPS_COMPLEX = $00000008; |
||
1573 | DDSCAPS_FLIP = $00000010; |
||
1574 | DDSCAPS_FRONTBUFFER = $00000020; |
||
1575 | DDSCAPS_OFFSCREENPLAIN = $00000040; |
||
1576 | DDSCAPS_OVERLAY = $00000080; |
||
1577 | DDSCAPS_PALETTE = $00000100; |
||
1578 | DDSCAPS_PRIMARYSURFACE = $00000200; |
||
1579 | DDSCAPS_RESERVED3 = $00000400; { DDSCAPS_PRIMARYSURFACELEFT } |
||
1580 | DDSCAPS_SYSTEMMEMORY = $00000800; |
||
1581 | DDSCAPS_TEXTURE = $00001000; |
||
1582 | DDSCAPS_3DDEVICE = $00002000; |
||
1583 | DDSCAPS_VIDEOMEMORY = $00004000; |
||
1584 | DDSCAPS_VISIBLE = $00008000; |
||
1585 | DDSCAPS_WRITEONLY = $00010000; |
||
1586 | DDSCAPS_ZBUFFER = $00020000; |
||
1587 | DDSCAPS_OWNDC = $00040000; |
||
1588 | DDSCAPS_LIVEVIDEO = $00080000; |
||
1589 | DDSCAPS_HWCODEC = $00100000; |
||
1590 | DDSCAPS_MODEX = $00200000; |
||
1591 | DDSCAPS_MIPMAP = $00400000; |
||
1592 | DDSCAPS_RESERVED2 = $00800000; |
||
1593 | DDSCAPS_ALLOCONLOAD = $04000000; |
||
1594 | DDSCAPS_VIDEOPORT = $08000000; |
||
1595 | DDSCAPS_LOCALVIDMEM = $10000000; |
||
1596 | DDSCAPS_NONLOCALVIDMEM = $20000000; |
||
1597 | DDSCAPS_STANDARDVGAMODE = $40000000; |
||
1598 | DDSCAPS_OPTIMIZED = $80000000; |
||
1599 | |||
1600 | { DirectDrawSurface Capability Flags 2 } |
||
1601 | |||
1602 | DDSCAPS2_HARDWAREDEINTERLACE = $00000002; |
||
1603 | DDSCAPS2_HINTDYNAMIC = $00000004; |
||
1604 | DDSCAPS2_HINTSTATIC = $00000008; |
||
1605 | DDSCAPS2_TEXTUREMANAGE = $00000010; |
||
1606 | DDSCAPS2_RESERVED1 = $00000020; |
||
1607 | DDSCAPS2_RESERVED2 = $00000040; |
||
1608 | DDSCAPS2_OPAQUE = $00000080; |
||
1609 | DDSCAPS2_HINTANTIALIASING = $00000100; |
||
1610 | DDSCAPS2_CUBEMAP = $00000200; |
||
1611 | DDSCAPS2_CUBEMAP_POSITIVEX = $00000400; |
||
1612 | DDSCAPS2_CUBEMAP_NEGATIVEX = $00000800; |
||
1613 | DDSCAPS2_CUBEMAP_POSITIVEY = $00001000; |
||
1614 | DDSCAPS2_CUBEMAP_NEGATIVEY = $00002000; |
||
1615 | DDSCAPS2_CUBEMAP_POSITIVEZ = $00004000; |
||
1616 | DDSCAPS2_CUBEMAP_NEGATIVEZ = $00008000; |
||
1617 | |||
1618 | DDSCAPS2_CUBEMAP_ALLFACES = |
||
1619 | DDSCAPS2_CUBEMAP_POSITIVEX or DDSCAPS2_CUBEMAP_NEGATIVEX or |
||
1620 | DDSCAPS2_CUBEMAP_POSITIVEY or DDSCAPS2_CUBEMAP_NEGATIVEY or |
||
1621 | DDSCAPS2_CUBEMAP_POSITIVEZ or DDSCAPS2_CUBEMAP_NEGATIVEZ; |
||
1622 | |||
1623 | DDSCAPS2_MIPMAPSUBLEVEL = $00010000; |
||
1624 | DDSCAPS2_D3DTEXTUREMANAGE = $00020000; |
||
1625 | DDSCAPS2_DONOTPERSIST = $00040000; |
||
1626 | DDSCAPS2_STEREOSURFACELEFT = $00080000; |
||
1627 | |||
1628 | { TDDOptSurfaceDesc flags } |
||
1629 | |||
1630 | DDOSD_GUID = $00000001; |
||
1631 | DDOSD_COMPRESSION_RATIO = $00000002; |
||
1632 | DDOSD_SCAPS = $00000004; |
||
1633 | DDOSD_OSCAPS = $00000008; |
||
1634 | DDOSD_ALL = $0000000F; |
||
1635 | |||
1636 | { ddOSCaps field is valid. } |
||
1637 | |||
1638 | DDOSDCAPS_OPTCOMPRESSED = $00000001; |
||
1639 | DDOSDCAPS_OPTREORDERED = $00000002; |
||
1640 | DDOSDCAPS_MONOLITHICMIPMAP = $00000004; |
||
1641 | DDOSDCAPS_VALIDSCAPS = $30004800; |
||
1642 | DDOSDCAPS_VALIDOSCAPS = $00000007; |
||
1643 | |||
1644 | { DirectDraw FX Alpha Capability Flags } |
||
1645 | |||
1646 | DDFXALPHACAPS_BLTALPHAEDGEBLEND = $00000001; |
||
1647 | DDFXALPHACAPS_BLTALPHAPIXELS = $00000002; |
||
1648 | DDFXALPHACAPS_BLTALPHAPIXELSNEG = $00000004; |
||
1649 | DDFXALPHACAPS_BLTALPHASURFACES = $00000008; |
||
1650 | DDFXALPHACAPS_BLTALPHASURFACESNEG = $00000010; |
||
1651 | DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND = $00000020; |
||
1652 | DDFXALPHACAPS_OVERLAYALPHAPIXELS = $00000040; |
||
1653 | DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG = $00000080; |
||
1654 | DDFXALPHACAPS_OVERLAYALPHASURFACES = $00000100; |
||
1655 | DDFXALPHACAPS_OVERLAYALPHASURFACESNEG = $00000200; |
||
1656 | |||
1657 | { DirectDraw FX Capability Flags } |
||
1658 | |||
1659 | DDFXCAPS_BLTARITHSTRETCHY = $00000020; |
||
1660 | DDFXCAPS_BLTARITHSTRETCHYN = $00000010; |
||
1661 | DDFXCAPS_BLTMIRRORLEFTRIGHT = $00000040; |
||
1662 | DDFXCAPS_BLTMIRRORUPDOWN = $00000080; |
||
1663 | DDFXCAPS_BLTROTATION = $00000100; |
||
1664 | DDFXCAPS_BLTROTATION90 = $00000200; |
||
1665 | DDFXCAPS_BLTSHRINKX = $00000400; |
||
1666 | DDFXCAPS_BLTSHRINKXN = $00000800; |
||
1667 | DDFXCAPS_BLTSHRINKY = $00001000; |
||
1668 | DDFXCAPS_BLTSHRINKYN = $00002000; |
||
1669 | DDFXCAPS_BLTSTRETCHX = $00004000; |
||
1670 | DDFXCAPS_BLTSTRETCHXN = $00008000; |
||
1671 | DDFXCAPS_BLTSTRETCHY = $00010000; |
||
1672 | DDFXCAPS_BLTSTRETCHYN = $00020000; |
||
1673 | DDFXCAPS_OVERLAYARITHSTRETCHY = $00040000; |
||
1674 | DDFXCAPS_OVERLAYARITHSTRETCHYN = $00000008; |
||
1675 | DDFXCAPS_OVERLAYSHRINKX = $00080000; |
||
1676 | DDFXCAPS_OVERLAYSHRINKXN = $00100000; |
||
1677 | DDFXCAPS_OVERLAYSHRINKY = $00200000; |
||
1678 | DDFXCAPS_OVERLAYSHRINKYN = $00400000; |
||
1679 | DDFXCAPS_OVERLAYSTRETCHX = $00800000; |
||
1680 | DDFXCAPS_OVERLAYSTRETCHXN = $01000000; |
||
1681 | DDFXCAPS_OVERLAYSTRETCHY = $02000000; |
||
1682 | DDFXCAPS_OVERLAYSTRETCHYN = $04000000; |
||
1683 | DDFXCAPS_OVERLAYMIRRORLEFTRIGHT = $08000000; |
||
1684 | DDFXCAPS_OVERLAYMIRRORUPDOWN = $10000000; |
||
1685 | DDFXCAPS_BLTALPHA = $00000001; |
||
1686 | DDFXCAPS_BLTTRANSFORM = $00000002; |
||
1687 | DDFXCAPS_BLTFILTER = DDFXCAPS_BLTARITHSTRETCHY; |
||
1688 | DDFXCAPS_OVERLAYALPHA = $00000004; |
||
1689 | DDFXCAPS_OVERLAYTRANSFORM = $20000000; |
||
1690 | DDFXCAPS_OVERLAYFILTER = DDFXCAPS_OVERLAYARITHSTRETCHY; |
||
1691 | |||
1692 | { DirectDraw Stereo View Capabilities } |
||
1693 | |||
1694 | DDSVCAPS_RESERVED1 = $00000001; |
||
1695 | DDSVCAPS_RESERVED2 = $00000002; |
||
1696 | DDSVCAPS_RESERVED3 = $00000004; |
||
1697 | DDSVCAPS_RESERVED4 = $00000008; |
||
1698 | DDSVCAPS_STEREOSEQUENTIAL = $00000010; |
||
1699 | |||
1700 | { DirectDrawPalette Capabilities } |
||
1701 | |||
1702 | DDPCAPS_4BIT = $00000001; |
||
1703 | DDPCAPS_8BITENTRIES = $00000002; |
||
1704 | DDPCAPS_8BIT = $00000004; |
||
1705 | DDPCAPS_INITIALIZE = $00000008; |
||
1706 | DDPCAPS_PRIMARYSURFACE = $00000010; |
||
1707 | DDPCAPS_PRIMARYSURFACELEFT = $00000020; |
||
1708 | DDPCAPS_ALLOW256 = $00000040; |
||
1709 | DDPCAPS_VSYNC = $00000080; |
||
1710 | DDPCAPS_1BIT = $00000100; |
||
1711 | DDPCAPS_2BIT = $00000200; |
||
1712 | DDPCAPS_ALPHA = $00000400; |
||
1713 | |||
1714 | { DirectDraw BitDepth Constants } |
||
1715 | |||
1716 | DDBD_1 = $00004000; |
||
1717 | DDBD_2 = $00002000; |
||
1718 | DDBD_4 = $00001000; |
||
1719 | DDBD_8 = $00000800; |
||
1720 | DDBD_16 = $00000400; |
||
1721 | DDBD_24 = $00000200; |
||
1722 | DDBD_32 = $00000100; |
||
1723 | |||
1724 | { DirectDraw Set/Get Color Key Flags } |
||
1725 | |||
1726 | DDCKEY_COLORSPACE = $00000001; |
||
1727 | DDCKEY_DESTBLT = $00000002; |
||
1728 | DDCKEY_DESTOVERLAY = $00000004; |
||
1729 | DDCKEY_SRCBLT = $00000008; |
||
1730 | DDCKEY_SRCOVERLAY = $00000010; |
||
1731 | |||
1732 | { DirectDraw Color Key Capability Flags } |
||
1733 | |||
1734 | DDCKEYCAPS_DESTBLT = $00000001; |
||
1735 | DDCKEYCAPS_DESTBLTCLRSPACE = $00000002; |
||
1736 | DDCKEYCAPS_DESTBLTCLRSPACEYUV = $00000004; |
||
1737 | DDCKEYCAPS_DESTBLTYUV = $00000008; |
||
1738 | DDCKEYCAPS_DESTOVERLAY = $00000010; |
||
1739 | DDCKEYCAPS_DESTOVERLAYCLRSPACE = $00000020; |
||
1740 | DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV = $00000040; |
||
1741 | DDCKEYCAPS_DESTOVERLAYONEACTIVE = $00000080; |
||
1742 | DDCKEYCAPS_DESTOVERLAYYUV = $00000100; |
||
1743 | DDCKEYCAPS_SRCBLT = $00000200; |
||
1744 | DDCKEYCAPS_SRCBLTCLRSPACE = $00000400; |
||
1745 | DDCKEYCAPS_SRCBLTCLRSPACEYUV = $00000800; |
||
1746 | DDCKEYCAPS_SRCBLTYUV = $00001000; |
||
1747 | DDCKEYCAPS_SRCOVERLAY = $00002000; |
||
1748 | DDCKEYCAPS_SRCOVERLAYCLRSPACE = $00004000; |
||
1749 | DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV = $00008000; |
||
1750 | DDCKEYCAPS_SRCOVERLAYONEACTIVE = $00010000; |
||
1751 | DDCKEYCAPS_SRCOVERLAYYUV = $00020000; |
||
1752 | DDCKEYCAPS_NOCOSTOVERLAY = $00040000; |
||
1753 | |||
1754 | { DirectDraw PixelFormat Flags } |
||
1755 | |||
1756 | DDPF_ALPHAPIXELS = $00000001; |
||
1757 | DDPF_ALPHA = $00000002; |
||
1758 | DDPF_FOURCC = $00000004; |
||
1759 | DDPF_PALETTEINDEXED4 = $00000008; |
||
1760 | DDPF_PALETTEINDEXEDTO8 = $00000010; |
||
1761 | DDPF_PALETTEINDEXED8 = $00000020; |
||
1762 | DDPF_RGB = $00000040; |
||
1763 | DDPF_COMPRESSED = $00000080; |
||
1764 | DDPF_RGBTOYUV = $00000100; |
||
1765 | DDPF_YUV = $00000200; |
||
1766 | DDPF_ZBUFFER = $00000400; |
||
1767 | DDPF_PALETTEINDEXED1 = $00000800; |
||
1768 | DDPF_PALETTEINDEXED2 = $00001000; |
||
1769 | DDPF_ZPIXELS = $00002000; |
||
1770 | DDPF_STENCILBUFFER = $00004000; |
||
1771 | DDPF_ALPHAPREMULT = $00008000; |
||
1772 | DDPF_LUMINANCE = $00020000; |
||
1773 | DDPF_BUMPLUMINANCE = $00040000; |
||
1774 | DDPF_BUMPDUDV = $00080000; |
||
1775 | |||
1776 | { DirectDraw SetDisplayMode Flags } |
||
1777 | |||
1778 | DDSDM_STANDARDVGAMODE = $00000001; |
||
1779 | |||
1780 | { DirectDraw EnumDisplayModes Flags } |
||
1781 | |||
1782 | DDEDM_REFRESHRATES = $00000001; |
||
1783 | DDEDM_STANDARDVGAMODES = $00000002; |
||
1784 | |||
1785 | { DirectDraw EnumSurfaces Flags } |
||
1786 | |||
1787 | DDENUMSURFACES_ALL = $00000001; |
||
1788 | DDENUMSURFACES_MATCH = $00000002; |
||
1789 | DDENUMSURFACES_NOMATCH = $00000004; |
||
1790 | DDENUMSURFACES_CANBECREATED = $00000008; |
||
1791 | DDENUMSURFACES_DOESEXIST = $00000010; |
||
1792 | |||
1793 | { DirectDraw SetCooperativeLevel Flags } |
||
1794 | |||
1795 | DDSCL_FULLSCREEN = $00000001; |
||
1796 | DDSCL_ALLOWREBOOT = $00000002; |
||
1797 | DDSCL_NOWINDOWCHANGES = $00000004; |
||
1798 | DDSCL_NORMAL = $00000008; |
||
1799 | DDSCL_EXCLUSIVE = $00000010; |
||
1800 | DDSCL_ALLOWMODEX = $00000040; |
||
1801 | DDSCL_SETFOCUSWINDOW = $00000080; |
||
1802 | DDSCL_SETDEVICEWINDOW = $00000100; |
||
1803 | DDSCL_CREATEDEVICEWINDOW = $00000200; |
||
1804 | DDSCL_MULTITHREADED = $00000400; |
||
1805 | DDSCL_FPUSETUP = $00000800; |
||
1806 | DDSCL_FPUPRESERVE = $00001000; |
||
1807 | |||
1808 | { DirectDraw Blt Flags } |
||
1809 | |||
1810 | DDBLT_ALPHADEST = $00000001; |
||
1811 | DDBLT_ALPHADESTCONSTOVERRIDE = $00000002; |
||
1812 | DDBLT_ALPHADESTNEG = $00000004; |
||
1813 | DDBLT_ALPHADESTSURFACEOVERRIDE = $00000008; |
||
1814 | DDBLT_ALPHAEDGEBLEND = $00000010; |
||
1815 | DDBLT_ALPHASRC = $00000020; |
||
1816 | DDBLT_ALPHASRCCONSTOVERRIDE = $00000040; |
||
1817 | DDBLT_ALPHASRCNEG = $00000080; |
||
1818 | DDBLT_ALPHASRCSURFACEOVERRIDE = $00000100; |
||
1819 | DDBLT_ASYNC = $00000200; |
||
1820 | DDBLT_COLORFILL = $00000400; |
||
1821 | DDBLT_DDFX = $00000800; |
||
1822 | DDBLT_DDROPS = $00001000; |
||
1823 | DDBLT_KEYDEST = $00002000; |
||
1824 | DDBLT_KEYDESTOVERRIDE = $00004000; |
||
1825 | DDBLT_KEYSRC = $00008000; |
||
1826 | DDBLT_KEYSRCOVERRIDE = $00010000; |
||
1827 | DDBLT_ROP = $00020000; |
||
1828 | DDBLT_ROTATIONANGLE = $00040000; |
||
1829 | DDBLT_ZBUFFER = $00080000; |
||
1830 | DDBLT_ZBUFFERDESTCONSTOVERRIDE = $00100000; |
||
1831 | DDBLT_ZBUFFERDESTOVERRIDE = $00200000; |
||
1832 | DDBLT_ZBUFFERSRCCONSTOVERRIDE = $00400000; |
||
1833 | DDBLT_ZBUFFERSRCOVERRIDE = $00800000; |
||
1834 | DDBLT_WAIT = $01000000; |
||
1835 | DDBLT_DEPTHFILL = $02000000; |
||
1836 | DDBLT_DONOTWAIT = $08000000; |
||
1837 | |||
1838 | { BltFast Flags } |
||
1839 | |||
1840 | DDBLTFAST_NOCOLORKEY = $00000000; |
||
1841 | DDBLTFAST_SRCCOLORKEY = $00000001; |
||
1842 | DDBLTFAST_DESTCOLORKEY = $00000002; |
||
1843 | DDBLTFAST_WAIT = $00000010; |
||
1844 | DDBLTFAST_DONOTWAIT = $00000020; |
||
1845 | |||
1846 | { Flip Flags } |
||
1847 | |||
1848 | DDFLIP_WAIT = $00000001; |
||
1849 | DDFLIP_EVEN = $00000002; |
||
1850 | DDFLIP_ODD = $00000004; |
||
1851 | DDFLIP_NOVSYNC = $00000008; |
||
1852 | DDFLIP_INTERVAL2 = $02000000; |
||
1853 | DDFLIP_INTERVAL3 = $03000000; |
||
1854 | DDFLIP_INTERVAL4 = $04000000; |
||
1855 | DDFLIP_STEREO = $00000010; |
||
1856 | DDFLIP_DONOTWAIT = $00000020; |
||
1857 | |||
1858 | { DirectDraw Surface Overlay Flags } |
||
1859 | |||
1860 | DDOVER_ALPHADEST = $00000001; |
||
1861 | DDOVER_ALPHADESTCONSTOVERRIDE = $00000002; |
||
1862 | DDOVER_ALPHADESTNEG = $00000004; |
||
1863 | DDOVER_ALPHADESTSURFACEOVERRIDE = $00000008; |
||
1864 | DDOVER_ALPHAEDGEBLEND = $00000010; |
||
1865 | DDOVER_ALPHASRC = $00000020; |
||
1866 | DDOVER_ALPHASRCCONSTOVERRIDE = $00000040; |
||
1867 | DDOVER_ALPHASRCNEG = $00000080; |
||
1868 | DDOVER_ALPHASRCSURFACEOVERRIDE = $00000100; |
||
1869 | DDOVER_HIDE = $00000200; |
||
1870 | DDOVER_KEYDEST = $00000400; |
||
1871 | DDOVER_KEYDESTOVERRIDE = $00000800; |
||
1872 | DDOVER_KEYSRC = $00001000; |
||
1873 | DDOVER_KEYSRCOVERRIDE = $00002000; |
||
1874 | DDOVER_SHOW = $00004000; |
||
1875 | DDOVER_ADDDIRTYRECT = $00008000; |
||
1876 | DDOVER_REFRESHDIRTYRECTS = $00010000; |
||
1877 | DDOVER_REFRESHALL = $00020000; |
||
1878 | DDOVER_DDFX = $00080000; |
||
1879 | DDOVER_AUTOFLIP = $00100000; |
||
1880 | DDOVER_BOB = $00200000; |
||
1881 | DDOVER_OVERRIDEBOBWEAVE = $00400000; |
||
1882 | DDOVER_INTERLEAVED = $00800000; |
||
1883 | DDOVER_BOBHARDWARE = $01000000; |
||
1884 | DDOVER_ARGBSCALEFACTORS = $02000000; |
||
1885 | DDOVER_DEGRADEARGBSCALING = $04000000; |
||
1886 | |||
1887 | { DirectDrawSurface Lock Flags } |
||
1888 | |||
1889 | DDLOCK_SURFACEMEMORYPTR = $00000000; // default |
||
1890 | DDLOCK_WAIT = $00000001; |
||
1891 | DDLOCK_EVENT = $00000002; |
||
1892 | DDLOCK_READONLY = $00000010; |
||
1893 | DDLOCK_WRITEONLY = $00000020; |
||
1894 | DDLOCK_NOSYSLOCK = $00000800; |
||
1895 | DDLOCK_NOOVERWRITE = $00001000; |
||
1896 | DDLOCK_DISCARDCONTENTS = $00002000; |
||
1897 | DDLOCK_OKTOSWAP = $00002000; |
||
1898 | DDLOCK_DONOTWAIT = $00004000; |
||
1899 | |||
1900 | { DirectDrawSurface Blt FX Flags } |
||
1901 | |||
1902 | DDBLTFX_ARITHSTRETCHY = $00000001; |
||
1903 | DDBLTFX_MIRRORLEFTRIGHT = $00000002; |
||
1904 | DDBLTFX_MIRRORUPDOWN = $00000004; |
||
1905 | DDBLTFX_NOTEARING = $00000008; |
||
1906 | DDBLTFX_ROTATE180 = $00000010; |
||
1907 | DDBLTFX_ROTATE270 = $00000020; |
||
1908 | DDBLTFX_ROTATE90 = $00000040; |
||
1909 | DDBLTFX_ZBUFFERRANGE = $00000080; |
||
1910 | DDBLTFX_ZBUFFERBASEDEST = $00000100; |
||
1911 | |||
1912 | { DirectDrawSurface Overlay FX Flags } |
||
1913 | |||
1914 | DDOVERFX_ARITHSTRETCHY = $00000001; |
||
1915 | DDOVERFX_MIRRORLEFTRIGHT = $00000002; |
||
1916 | DDOVERFX_MIRRORUPDOWN = $00000004; |
||
1917 | |||
1918 | { Flags for dwDDFX member of DDSPRITEFX structure } |
||
1919 | |||
1920 | DDSPRITEFX_AFFINETRANSFORM = $00000001; |
||
1921 | DDSPRITEFX_RGBASCALING = $00000002; |
||
1922 | DDSPRITEFX_DEGRADERGBASCALING = $00000004; |
||
1923 | DDSPRITEFX_BILINEARFILTER = $00000008; |
||
1924 | DDSPRITEFX_BLURFILTER = $00000010; |
||
1925 | DDSPRITEFX_FLATFILTER = $00000020; |
||
1926 | DDSPRITEFX_DEGRADEFILTER = $00000040; |
||
1927 | |||
1928 | { DirectDraw WaitForVerticalBlank Flags } |
||
1929 | |||
1930 | DDWAITVB_BLOCKBEGIN = $00000001; |
||
1931 | DDWAITVB_BLOCKBEGINEVENT = $00000002; |
||
1932 | DDWAITVB_BLOCKEND = $00000004; |
||
1933 | |||
1934 | { DirectDraw GetFlipStatus Flags } |
||
1935 | |||
1936 | DDGFS_CANFLIP = $00000001; |
||
1937 | DDGFS_ISFLIPDONE = $00000002; |
||
1938 | |||
1939 | { DirectDraw GetBltStatus Flags } |
||
1940 | |||
1941 | DDGBS_CANBLT = $00000001; |
||
1942 | DDGBS_ISBLTDONE = $00000002; |
||
1943 | |||
1944 | { DirectDraw EnumOverlayZOrder Flags } |
||
1945 | |||
1946 | DDENUMOVERLAYZ_BACKTOFRONT = $00000000; |
||
1947 | DDENUMOVERLAYZ_FRONTTOBACK = $00000001; |
||
1948 | |||
1949 | { DirectDraw UpdateOverlayZOrder Flags } |
||
1950 | |||
1951 | DDOVERZ_SENDTOFRONT = $00000000; |
||
1952 | DDOVERZ_SENDTOBACK = $00000001; |
||
1953 | DDOVERZ_MOVEFORWARD = $00000002; |
||
1954 | DDOVERZ_MOVEBACKWARD = $00000003; |
||
1955 | DDOVERZ_INSERTINFRONTOF = $00000004; |
||
1956 | DDOVERZ_INSERTINBACKOF = $00000005; |
||
1957 | |||
1958 | { DirectDrawSurface SetPrivateData Constants } |
||
1959 | |||
1960 | DDSPD_IUNKNOWNPOINTER = $00000001; |
||
1961 | DDSPD_VOLATILE = $00000002; |
||
1962 | |||
1963 | { TDDColorControl flags } |
||
1964 | |||
1965 | DDCOLOR_BRIGHTNESS = $00000001; |
||
1966 | DDCOLOR_CONTRAST = $00000002; |
||
1967 | DDCOLOR_HUE = $00000004; |
||
1968 | DDCOLOR_SATURATION = $00000008; |
||
1969 | DDCOLOR_SHARPNESS = $00000010; |
||
1970 | DDCOLOR_GAMMA = $00000020; |
||
1971 | DDCOLOR_COLORENABLE = $00000040; |
||
1972 | |||
1973 | { DirectDraw SetGammaRamp Flags } |
||
1974 | |||
1975 | DDSGR_CALIBRATE = $00000001; |
||
1976 | |||
1977 | { DirectDraw StartModeTest Flags } |
||
1978 | |||
1979 | DDSMT_ISTESTREQUIRED = $00000001; |
||
1980 | |||
1981 | { DirectDraw EvaluateMode Flags } |
||
1982 | |||
1983 | DDEM_MODEPASSED = $00000001; |
||
1984 | DDEM_MODEFAILED = $00000002; |
||
1985 | |||
1986 | { DirectDraw Return Codes } |
||
1987 | |||
1988 | DD_OK = HResult(0); |
||
1989 | DD_FALSE = HResult(S_FALSE); |
||
1990 | |||
1991 | { DirectDraw EnumCallback Return Values } |
||
1992 | |||
1993 | DDENUMRET_CANCEL = 0; |
||
1994 | DDENUMRET_OK = 1; |
||
1995 | |||
1996 | { DirectDraw Error Codes } |
||
1997 | |||
1998 | DDERR_ALREADYINITIALIZED = HResult($88760000 + 5); |
||
1999 | DDERR_CANNOTATTACHSURFACE = HResult($88760000 + 10); |
||
2000 | DDERR_CANNOTDETACHSURFACE = HResult($88760000 + 20); |
||
2001 | DDERR_CURRENTLYNOTAVAIL = HResult($88760000 + 40); |
||
2002 | DDERR_EXCEPTION = HResult($88760000 + 55); |
||
2003 | DDERR_GENERIC = HResult(E_FAIL); |
||
2004 | DDERR_HEIGHTALIGN = HResult($88760000 + 90); |
||
2005 | DDERR_INCOMPATIBLEPRIMARY = HResult($88760000 + 95); |
||
2006 | DDERR_INVALIDCAPS = HResult($88760000 + 100); |
||
2007 | DDERR_INVALIDCLIPLIST = HResult($88760000 + 110); |
||
2008 | DDERR_INVALIDMODE = HResult($88760000 + 120); |
||
2009 | DDERR_INVALIDOBJECT = HResult($88760000 + 130); |
||
2010 | DDERR_INVALIDPARAMS = HResult(E_INVALIDARG); |
||
2011 | DDERR_INVALIDPIXELFORMAT = HResult($88760000 + 145); |
||
2012 | DDERR_INVALIDRECT = HResult($88760000 + 150); |
||
2013 | DDERR_LOCKEDSURFACES = HResult($88760000 + 160); |
||
2014 | DDERR_NO3D = HResult($88760000 + 170); |
||
2015 | DDERR_NOALPHAHW = HResult($88760000 + 180); |
||
2016 | DDERR_NOSTEREOHARDWARE = HResult($88760000 + 181); |
||
2017 | DDERR_NOSURFACELEFT = HResult($88760000 + 182); |
||
2018 | DDERR_NOCLIPLIST = HResult($88760000 + 205); |
||
2019 | DDERR_NOCOLORCONVHW = HResult($88760000 + 210); |
||
2020 | DDERR_NOCOOPERATIVELEVELSET = HResult($88760000 + 212); |
||
2021 | DDERR_NOCOLORKEY = HResult($88760000 + 215); |
||
2022 | DDERR_NOCOLORKEYHW = HResult($88760000 + 220); |
||
2023 | DDERR_NODIRECTDRAWSUPPORT = HResult($88760000 + 222); |
||
2024 | DDERR_NOEXCLUSIVEMODE = HResult($88760000 + 225); |
||
2025 | DDERR_NOFLIPHW = HResult($88760000 + 230); |
||
2026 | DDERR_NOGDI = HResult($88760000 + 240); |
||
2027 | DDERR_NOMIRRORHW = HResult($88760000 + 250); |
||
2028 | DDERR_NOTFOUND = HResult($88760000 + 255); |
||
2029 | DDERR_NOOVERLAYHW = HResult($88760000 + 260); |
||
2030 | DDERR_OVERLAPPINGRECTS = HResult($88760000 + 270); |
||
2031 | DDERR_NORASTEROPHW = HResult($88760000 + 280); |
||
2032 | DDERR_NOROTATIONHW = HResult($88760000 + 290); |
||
2033 | DDERR_NOSTRETCHHW = HResult($88760000 + 310); |
||
2034 | DDERR_NOT4BITCOLOR = HResult($88760000 + 316); |
||
2035 | DDERR_NOT4BITCOLORINDEX = HResult($88760000 + 317); |
||
2036 | DDERR_NOT8BITCOLOR = HResult($88760000 + 320); |
||
2037 | DDERR_NOTEXTUREHW = HResult($88760000 + 330); |
||
2038 | DDERR_NOVSYNCHW = HResult($88760000 + 335); |
||
2039 | DDERR_NOZBUFFERHW = HResult($88760000 + 340); |
||
2040 | DDERR_NOZOVERLAYHW = HResult($88760000 + 350); |
||
2041 | DDERR_OUTOFCAPS = HResult($88760000 + 360); |
||
2042 | DDERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
||
2043 | DDERR_OUTOFVIDEOMEMORY = HResult($88760000 + 380); |
||
2044 | DDERR_OVERLAYCANTCLIP = HResult($88760000 + 382); |
||
2045 | DDERR_OVERLAYCOLORKEYONLYONEACTIVE = HResult($88760000 + 384); |
||
2046 | DDERR_PALETTEBUSY = HResult($88760000 + 387); |
||
2047 | DDERR_COLORKEYNOTSET = HResult($88760000 + 400); |
||
2048 | DDERR_SURFACEALREADYATTACHED = HResult($88760000 + 410); |
||
2049 | DDERR_SURFACEALREADYDEPENDENT = HResult($88760000 + 420); |
||
2050 | DDERR_SURFACEBUSY = HResult($88760000 + 430); |
||
2051 | DDERR_CANTLOCKSURFACE = HResult($88760000 + 435); |
||
2052 | DDERR_SURFACEISOBSCURED = HResult($88760000 + 440); |
||
2053 | DDERR_SURFACELOST = HResult($88760000 + 450); |
||
2054 | DDERR_SURFACENOTATTACHED = HResult($88760000 + 460); |
||
2055 | DDERR_TOOBIGHEIGHT = HResult($88760000 + 470); |
||
2056 | DDERR_TOOBIGSIZE = HResult($88760000 + 480); |
||
2057 | DDERR_TOOBIGWIDTH = HResult($88760000 + 490); |
||
2058 | DDERR_UNSUPPORTED = HResult(E_NOTIMPL); |
||
2059 | DDERR_UNSUPPORTEDFORMAT = HResult($88760000 + 510); |
||
2060 | DDERR_UNSUPPORTEDMASK = HResult($88760000 + 520); |
||
2061 | DDERR_INVALIDSTREAM = HResult($88760000 + 521); |
||
2062 | DDERR_VERTICALBLANKINPROGRESS = HResult($88760000 + 537); |
||
2063 | DDERR_WASSTILLDRAWING = HResult($88760000 + 540); |
||
2064 | DDERR_DDSCAPSCOMPLEXREQUIRED = HResult($88760000 + 542); |
||
2065 | DDERR_XALIGN = HResult($88760000 + 560); |
||
2066 | DDERR_INVALIDDIRECTDRAWGUID = HResult($88760000 + 561); |
||
2067 | DDERR_DIRECTDRAWALREADYCREATED = HResult($88760000 + 562); |
||
2068 | DDERR_NODIRECTDRAWHW = HResult($88760000 + 563); |
||
2069 | DDERR_PRIMARYSURFACEALREADYEXISTS = HResult($88760000 + 564); |
||
2070 | DDERR_NOEMULATION = HResult($88760000 + 565); |
||
2071 | DDERR_REGIONTOOSMALL = HResult($88760000 + 566); |
||
2072 | DDERR_CLIPPERISUSINGHWND = HResult($88760000 + 567); |
||
2073 | DDERR_NOCLIPPERATTACHED = HResult($88760000 + 568); |
||
2074 | DDERR_NOHWND = HResult($88760000 + 569); |
||
2075 | DDERR_HWNDSUBCLASSED = HResult($88760000 + 570); |
||
2076 | DDERR_HWNDALREADYSET = HResult($88760000 + 571); |
||
2077 | DDERR_NOPALETTEATTACHED = HResult($88760000 + 572); |
||
2078 | DDERR_NOPALETTEHW = HResult($88760000 + 573); |
||
2079 | DDERR_BLTFASTCANTCLIP = HResult($88760000 + 574); |
||
2080 | DDERR_NOBLTHW = HResult($88760000 + 575); |
||
2081 | DDERR_NODDROPSHW = HResult($88760000 + 576); |
||
2082 | DDERR_OVERLAYNOTVISIBLE = HResult($88760000 + 577); |
||
2083 | DDERR_NOOVERLAYDEST = HResult($88760000 + 578); |
||
2084 | DDERR_INVALIDPOSITION = HResult($88760000 + 579); |
||
2085 | DDERR_NOTAOVERLAYSURFACE = HResult($88760000 + 580); |
||
2086 | DDERR_EXCLUSIVEMODEALREADYSET = HResult($88760000 + 581); |
||
2087 | DDERR_NOTFLIPPABLE = HResult($88760000 + 582); |
||
2088 | DDERR_CANTDUPLICATE = HResult($88760000 + 583); |
||
2089 | DDERR_NOTLOCKED = HResult($88760000 + 584); |
||
2090 | DDERR_CANTCREATEDC = HResult($88760000 + 585); |
||
2091 | DDERR_NODC = HResult($88760000 + 586); |
||
2092 | DDERR_WRONGMODE = HResult($88760000 + 587); |
||
2093 | DDERR_IMPLICITLYCREATED = HResult($88760000 + 588); |
||
2094 | DDERR_NOTPALETTIZED = HResult($88760000 + 589); |
||
2095 | DDERR_UNSUPPORTEDMODE = HResult($88760000 + 590); |
||
2096 | DDERR_NOMIPMAPHW = HResult($88760000 + 591); |
||
2097 | DDERR_INVALIDSURFACETYPE = HResult($88760000 + 592); |
||
2098 | DDERR_NOOPTIMIZEHW = HResult($88760000 + 600); |
||
2099 | DDERR_NOTLOADED = HResult($88760000 + 601); |
||
2100 | DDERR_NOFOCUSWINDOW = HResult($88760000 + 602); |
||
2101 | DDERR_NOTONMIPMAPSUBLEVEL = HResult($88760000 + 603); |
||
2102 | DDERR_DCALREADYCREATED = HResult($88760000 + 620); |
||
2103 | DDERR_NONONLOCALVIDMEM = HResult($88760000 + 630); |
||
2104 | DDERR_CANTPAGELOCK = HResult($88760000 + 640); |
||
2105 | DDERR_CANTPAGEUNLOCK = HResult($88760000 + 660); |
||
2106 | DDERR_NOTPAGELOCKED = HResult($88760000 + 680); |
||
2107 | DDERR_MOREDATA = HResult($88760000 + 690); |
||
2108 | DDERR_EXPIRED = HResult($88760000 + 691); |
||
2109 | DDERR_TESTFINISHED = HResult($88760000 + 692); |
||
2110 | DDERR_NEWMODE = HResult($88760000 + 693); |
||
2111 | DDERR_D3DNOTINITIALIZED = HResult($88760000 + 694); |
||
2112 | DDERR_VIDEONOTACTIVE = HResult($88760000 + 695); |
||
2113 | DDERR_NOMONITORINFORMATION = HResult($88760000 + 696); |
||
2114 | DDERR_NODRIVERSUPPORT = HResult($88760000 + 697); |
||
2115 | DDERR_DEVICEDOESNTOWNSURFACE = HResult($88760000 + 699); |
||
2116 | DDERR_NOTINITIALIZED = HResult(CO_E_NOTINITIALIZED); |
||
2117 | |||
2118 | { API's } |
||
2119 | |||
2120 | function GET_WHQL_YEAR(dwWHQLLevel: DWORD): DWORD; |
||
2121 | function GET_WHQL_MONTH(dwWHQLLevel: DWORD): DWORD; |
||
2122 | function GET_WHQL_DAY(dwWHQLLevel: DWORD): DWORD; |
||
2123 | |||
2124 | type |
||
2125 | HMonitor = THandle; |
||
2126 | |||
2127 | TDDEnumCallbackA = function(lpGUID: PGUID; lpDriverDescription: LPSTR; |
||
2128 | lpDriverName: LPSTR; lpContext: Pointer): BOOL; stdcall; |
||
2129 | LPDDENUMCALLBACKA = TDDEnumCallbackA; |
||
2130 | |||
2131 | TDDEnumCallbackW = function(lpGUID: PGUID; lpDriverDescription: LPWSTR; |
||
2132 | lpDriverName: LPWSTR; lpContext: Pointer): BOOL; stdcall; |
||
2133 | LPDDENUMCALLBACKW = TDDEnumCallbackW; |
||
2134 | |||
2135 | TDDEnumCallback = TDDEnumCallbackA; |
||
2136 | LPDDENUMCALLBACK = TDDEnumCallback; |
||
2137 | |||
2138 | TDDEnumCallbackExA = function(lpGUID: PGUID; lpDriverDescription: LPSTR; |
||
2139 | lpDriverName: LPSTR; lpContext: Pointer; Monitor: HMonitor): BOOL; stdcall; |
||
2140 | LPDDENUMCALLBACKEXA = TDDEnumCallbackExA; |
||
2141 | |||
2142 | TDDEnumCallbackExW = function(lpGUID: PGUID; lpDriverDescription: LPWSTR; |
||
2143 | lpDriverName: LPWSTR; lpContext: Pointer; Monitor: HMonitor): BOOL; stdcall; |
||
2144 | LPDDENUMCALLBACKEXW = TDDEnumCallbackExW; |
||
2145 | |||
2146 | TDDEnumCallbackEx = TDDEnumCallbackExA; |
||
2147 | LPDDENUMCALLBACKEX = TDDEnumCallbackEx; |
||
2148 | |||
2149 | const |
||
2150 | REGSTR_KEY_DDHW_DESCRIPTION = 'Description'; |
||
2151 | REGSTR_KEY_DDHW_DRIVERNAME = 'DriverName'; |
||
2152 | REGSTR_PATH_DDHW = 'Hardware\DirectDrawDrivers'; |
||
2153 | |||
2154 | DDCREATE_HARDWAREONLY = $00000001; |
||
2155 | DDCREATE_EMULATIONONLY = $00000002; |
||
2156 | |||
2157 | function DirectDrawEnumerateA(lpCallback: TDDEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
2158 | function DirectDrawEnumerateW(lpCallback: TDDEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
||
2159 | function DirectDrawEnumerate(lpCallback: TDDEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
2160 | |||
2161 | function DirectDrawEnumerateExA(lpCallback: TDDEnumCallbackExA; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
2162 | function DirectDrawEnumerateExW(lpCallback: TDDEnumCallbackExW; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
2163 | function DirectDrawEnumerateEx(lpCallback: TDDEnumCallbackExA; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
2164 | |||
2165 | function DirectDrawCreate(lpGUID: PGUID; out lplpDD: IDirectDraw; |
||
2166 | pUnkOuter: IUnknown): HResult; stdcall; |
||
2167 | function DirectDrawCreateEx(lpGUID: PGUID; out lplpDD; const iid: TGUID; |
||
2168 | pUnkOuter: IUnknown): HResult; stdcall; |
||
2169 | function DirectDrawCreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
||
2170 | pUnkOuter: IUnknown): HResult; stdcall; |
||
2171 | |||
2172 | (*==========================================================================; |
||
2173 | * |
||
2174 | * Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
||
2175 | * |
||
2176 | * File: dvp.h |
||
2177 | * Content: DirectDrawVideoPort include file |
||
2178 | * |
||
2179 | ***************************************************************************) |
||
2180 | |||
2181 | { GUIDS used by DirectDrawVideoPort objects } |
||
2182 | |||
2183 | const |
||
2184 | IID_IDDVideoPortContainer: TGUID = '{6C142760-A733-11CE-A521-0020AF0BE560}'; |
||
2185 | IID_IDirectDrawVideoPort: TGUID = '{B36D93E0-2B43-11CF-A2DE-00AA00B93356}'; |
||
2186 | |||
2187 | DDVPTYPE_E_HREFH_VREFH: TGUID = '{54F39980-DA60-11CF-9B06-00A0C903A3B8}'; |
||
2188 | DDVPTYPE_E_HREFH_VREFL: TGUID = '{92783220-DA60-11CF-9B06-00A0C903A3B8}'; |
||
2189 | DDVPTYPE_E_HREFL_VREFH: TGUID = '{A07A02E0-DA60-11CF-9B06-00A0C903A3B8}'; |
||
2190 | DDVPTYPE_E_HREFL_VREFL: TGUID = '{E09C77E0-DA60-11CF-9B06-00A0C903A3B8}'; |
||
2191 | DDVPTYPE_CCIR656: TGUID = '{FCA326A0-DA60-11CF-9B06-00A0C903A3B8}'; |
||
2192 | DDVPTYPE_BROOKTREE: TGUID = '{1352A560-DA61-11CF-9B06-00A0C903A3B8}'; |
||
2193 | DDVPTYPE_PHILIPS: TGUID = '{332CF160-DA61-11CF-9B06-00A0C903A3B8}'; |
||
2194 | |||
2195 | { DirectDraw Structures } |
||
2196 | |||
2197 | type |
||
2198 | IDDVideoPortContainer = interface; |
||
2199 | IDirectDrawVideoPort = interface; |
||
2200 | |||
2201 | { TDDVideoportConnect structure } |
||
2202 | |||
2203 | PDDVideoportConnect = ^TDDVideoportConnect; |
||
2204 | TDDVideoportConnect = record |
||
2205 | dwSize: DWORD; // size of the TDDVideoportConnect structure |
||
2206 | dwPortWidth: DWORD; // Width of the video port |
||
2207 | guidTypeID: TGUID; // Description of video port connection |
||
2208 | dwFlags: DWORD; // Connection flags |
||
2209 | dwReserved1: DWORD; // Reserved, set to zero. |
||
2210 | end; |
||
2211 | |||
2212 | DDVIDEOPORTCONNECT = TDDVideoportConnect; |
||
2213 | LPDDVIDEOPORTCONNECT = PDDVideoportConnect; |
||
2214 | |||
2215 | { TDDVideoportCaps structure } |
||
2216 | |||
2217 | PDDVideoportCaps = ^TDDVideoportCaps; |
||
2218 | TDDVideoportCaps = record |
||
2219 | dwSize: DWORD; // size of the TDDVideoportCaps structure |
||
2220 | dwFlags: DWORD; // indicates which fields contain data |
||
2221 | dwMaxWidth: DWORD; // max width of the video port field |
||
2222 | dwMaxVBIWidth: DWORD; // max width of the VBI data |
||
2223 | dwMaxHeight: DWORD; // max height of the video port field |
||
2224 | dwVideoPortID: DWORD; // Video port ID (0 - (dwMaxVideoPorts -1)) |
||
2225 | dwCaps: DWORD; // Video port capabilities |
||
2226 | dwFX: DWORD; // More video port capabilities |
||
2227 | dwNumAutoFlipSurfaces: DWORD; // Number of autoflippable surfaces |
||
2228 | dwAlignVideoPortBoundary: DWORD; // Byte restriction of placement within the surface |
||
2229 | dwAlignVideoPortPrescaleWidth: DWORD; // Byte restriction of width after prescaling |
||
2230 | dwAlignVideoPortCropBoundary: DWORD; // Byte restriction of left cropping |
||
2231 | dwAlignVideoPortCropWidth: DWORD; // Byte restriction of cropping width |
||
2232 | dwPreshrinkXStep: DWORD; // Width can be shrunk in steps of 1/x |
||
2233 | dwPreshrinkYStep: DWORD; // Height can be shrunk in steps of 1/x |
||
2234 | dwNumVBIAutoFlipSurfaces: DWORD; // Number of VBI autoflippable surfaces |
||
2235 | dwNumPreferredAutoflip: DWORD; // Optimal number of autoflippable surfaces for hardware |
||
2236 | wNumFilterTapsX: WORD; // Number of taps the prescaler uses in the X direction (0 - no prescale, 1 - replication, etc.) |
||
2237 | wNumFilterTapsY: WORD; // Number of taps the prescaler uses in the Y direction (0 - no prescale, 1 - replication, etc.) |
||
2238 | end; |
||
2239 | |||
2240 | DDVIDEOPORTCAPS = TDDVideoportCaps; |
||
2241 | LPDDVIDEOPORTCAPS = PDDVideoportCaps; |
||
2242 | |||
2243 | { TDDVideoportDesc structure } |
||
2244 | |||
2245 | PDDVideoportDesc = ^TDDVideoportDesc; |
||
2246 | TDDVideoportDesc = record |
||
2247 | dwSize: DWORD; // size of the TDDVideoportDesc structure |
||
2248 | dwFieldWidth: DWORD; // width of the video port field |
||
2249 | dwVBIWidth: DWORD; // width of the VBI data |
||
2250 | dwFieldHeight: DWORD; // height of the video port field |
||
2251 | dwMicrosecondsPerField: DWORD; // Microseconds per video field |
||
2252 | dwMaxPixelsPerSecond: DWORD; // Maximum pixel rate per second |
||
2253 | dwVideoPortID: DWORD; // Video port ID (0 - (dwMaxVideoPorts -1)) |
||
2254 | dwReserved1: DWORD; // Reserved for future use - set to zero |
||
2255 | VideoPortType: TDDVideoportConnect; // Description of video port connection |
||
2256 | dwReserved2: DWORD; // Reserved for future use - set to zero |
||
2257 | dwReserved3: DWORD; // Reserved for future use - set to zero |
||
2258 | end; |
||
2259 | |||
2260 | DDVIDEOPORTDESC = TDDVideoportDesc; |
||
2261 | LPDDVIDEOPORTDESC = PDDVideoportDesc; |
||
2262 | |||
2263 | { TDDVideoportInfo structure } |
||
2264 | |||
2265 | PDDVideoportInfo = ^TDDVideoportInfo; |
||
2266 | TDDVideoportInfo = record |
||
2267 | dwSize: DWORD; // Size of the structure |
||
2268 | dwOriginX: DWORD; // Placement of the video data within the surface. |
||
2269 | dwOriginY: DWORD; // Placement of the video data within the surface. |
||
2270 | dwVPFlags: DWORD; // Video port options |
||
2271 | rCrop: TRect; // Cropping rectangle (optional). |
||
2272 | dwPrescaleWidth: DWORD; // Determines pre-scaling/zooming in the X direction (optional). |
||
2273 | dwPrescaleHeight: DWORD; // Determines pre-scaling/zooming in the Y direction (optional). |
||
2274 | lpddpfInputFormat: PDDPixelFormat; // Video format written to the video port |
||
2275 | lpddpfVBIInputFormat: PDDPixelFormat; // Input format of the VBI data |
||
2276 | lpddpfVBIOutputFormat: PDDPixelFormat; // Output format of the data |
||
2277 | dwVBIHeight: DWORD; // Specifies the number of lines of data within the vertical blanking interval. |
||
2278 | dwReserved1: DWORD; // Reserved for future use - set to zero |
||
2279 | dwReserved2: DWORD; // Reserved for future use - set to zero |
||
2280 | end; |
||
2281 | |||
2282 | DDVIDEOPORTINFO = TDDVideoportInfo; |
||
2283 | LPDDVIDEOPORTINFO = PDDVideoportInfo; |
||
2284 | |||
2285 | { TDDVideoportBandWidth structure } |
||
2286 | |||
2287 | PDDVideoportBandWidth = ^TDDVideoportBandWidth; |
||
2288 | TDDVideoportBandWidth = record |
||
2289 | dwSize: DWORD; // Size of the structure |
||
2290 | dwCaps: DWORD; |
||
2291 | dwOverlay: DWORD; // Zoom factor at which overlay is supported |
||
2292 | dwColorkey: DWORD; // Zoom factor at which overlay w/ colorkey is supported |
||
2293 | dwYInterpolate: DWORD; // Zoom factor at which overlay w/ Y interpolation is supported |
||
2294 | dwYInterpAndColorkey: DWORD; // Zoom factor at which ovelray w/ Y interpolation and colorkeying is supported |
||
2295 | dwReserved1: DWORD; // Reserved for future use - set to zero |
||
2296 | dwReserved2: DWORD; // Reserved for future use - set to zero |
||
2297 | end; |
||
2298 | |||
2299 | DDVIDEOPORTBANDWIDTH = TDDVideoportBandWidth; |
||
2300 | LPDDVIDEOPORTBANDWIDTH = PDDVideoportBandWidth; |
||
2301 | |||
2302 | { TDDVideoportStatus structure } |
||
2303 | |||
2304 | PDDVideoportStatus = ^TDDVideoportStatus; |
||
2305 | TDDVideoportStatus = record |
||
2306 | dwSize: DWORD; // Size of the structure |
||
2307 | bInUse: BOOL; // TRUE if video port is currently being used |
||
2308 | dwFlags: DWORD; // Currently not used |
||
2309 | dwReserved1: DWORD; // Reserved for future use |
||
2310 | VideoPortType: TDDVideoportConnect; // Information about the connection |
||
2311 | dwReserved2: DWORD; // Reserved for future use |
||
2312 | dwReserved3: DWORD; // Reserved for future use |
||
2313 | end; |
||
2314 | |||
2315 | DDVIDEOPORTSTATUS = TDDVideoportStatus; |
||
2316 | LPDDVIDEOPORTSTATUS = PDDVideoportStatus; |
||
2317 | |||
2318 | { API's } |
||
2319 | |||
2320 | TDDEnumVideoCallback = function(const lpDDVideoPortCaps: TDDVideoportCaps; |
||
2321 | lpContext: Pointer): HResult; stdcall; |
||
2322 | LPDDENUMVIDEOCALLBACK = TDDEnumVideoCallback; |
||
2323 | |||
2324 | { IDirectDrawVideoPortContainer Interface } |
||
2325 | |||
2326 | IDDVideoPortContainer = interface(IUnknown) |
||
2327 | ['{6C142760-A733-11CE-A521-0020AF0BE560}'] |
||
2328 | // IDDVideoPortContainer methods |
||
2329 | function CreateVideoPort(dwFlags: DWORD; const lpDDVideoPortDesc: |
||
2330 | TDDVideoportDesc; out lplpDDVideoPort: IDirectDrawVideoPort; |
||
2331 | pUnkOuter: IUnknown): HResult; stdcall; |
||
2332 | function EnumVideoPorts(dwFlags: DWORD; |
||
2333 | const lpDDVideoPortCaps: TDDVideoportCaps; lpContext: Pointer; |
||
2334 | lpEnumVideoCallback: TDDEnumVideoCallback): HResult; stdcall; |
||
2335 | function GetVideoPortConnectInfo(dwPortId: DWORD; var lpNumEntries: DWORD; |
||
2336 | var lpConnectInfo: TDDVideoportConnect): HResult; stdcall; |
||
2337 | function QueryVideoPortStatus(dwPortId: DWORD; |
||
2338 | var lpVPStatus: TDDVideoportStatus): HResult; stdcall; |
||
2339 | end; |
||
2340 | |||
2341 | { IDirectDrawVideoPort Interface } |
||
2342 | |||
2343 | IDirectDrawVideoPort = interface(IUnknown) |
||
2344 | ['{B36D93E0-2B43-11CF-A2DE-00AA00B93356}'] |
||
2345 | // IDirectDrawVideoPort methods |
||
2346 | function Flip(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD): HResult; stdcall; |
||
2347 | function GetBandwidthInfo(const lpddpfFormat: TDDPixelFormat; dwWidth: DWORD; |
||
2348 | dwHeight: DWORD; dwFlags: DWORD; var lpBandwidth: TDDVideoportBandWidth): HResult; stdcall; |
||
2349 | function GetColorControls(var lpColorControl: TDDColorControl): HResult; stdcall; |
||
2350 | function GetInputFormats(var lpNumFormats: DWORD; var lpFormats: |
||
2351 | TDDPixelFormat; dwFlags: DWORD): HResult; stdcall; |
||
2352 | function GetOutputFormats(const lpInputFormat: TDDPixelFormat; |
||
2353 | var lpNumFormats: DWORD; var lpFormats: TDDPixelFormat; dwFlags: DWORD): HResult; stdcall; |
||
2354 | function GetFieldPolarity(var lpbVideoField: BOOL): HResult; stdcall; |
||
2355 | function GetVideoLine(var lpdwLine: DWORD): HResult; stdcall; |
||
2356 | function GetVideoSignalStatus(varlpdwStatus: DWORD): HResult; stdcall; |
||
2357 | function SetColorControls(const lpColorControl: TDDColorControl): HResult; stdcall; |
||
2358 | function SetTargetSurface(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD): HResult; stdcall; |
||
2359 | function StartVideo(const lpVideoInfo: TDDVideoportInfo): HResult; stdcall; |
||
2360 | function StopVideo: HResult; stdcall; |
||
2361 | function UpdateVideo(const lpVideoInfo: TDDVideoportInfo): HResult; stdcall; |
||
2362 | function WaitForSync(dwFlags: DWORD; dwLine: DWORD; dwTimeout: DWORD): HResult; stdcall; |
||
2363 | end; |
||
2364 | |||
2365 | |||
2366 | const |
||
2367 | { Video Port Flags } |
||
2368 | |||
2369 | DDVPD_WIDTH = $00000001; |
||
2370 | DDVPD_HEIGHT = $00000002; |
||
2371 | DDVPD_ID = $00000004; |
||
2372 | DDVPD_CAPS = $00000008; |
||
2373 | DDVPD_FX = $00000010; |
||
2374 | DDVPD_AUTOFLIP = $00000020; |
||
2375 | DDVPD_ALIGN = $00000040; |
||
2376 | DDVPD_PREFERREDAUTOFLIP = $00000080; |
||
2377 | DDVPD_FILTERQUALITY = $00000100; |
||
2378 | |||
2379 | { TDDVideoportConnect flags } |
||
2380 | |||
2381 | DDVPCONNECT_DOUBLECLOCK = $00000001; |
||
2382 | DDVPCONNECT_VACT = $00000002; |
||
2383 | DDVPCONNECT_INVERTPOLARITY = $00000004; |
||
2384 | DDVPCONNECT_DISCARDSVREFDATA = $00000008; |
||
2385 | DDVPCONNECT_HALFLINE = $00000010; |
||
2386 | DDVPCONNECT_INTERLACED = $00000020; |
||
2387 | DDVPCONNECT_SHAREEVEN = $00000040; |
||
2388 | DDVPCONNECT_SHAREODD = $00000080; |
||
2389 | |||
2390 | { TDDVideoportDesc caps } |
||
2391 | |||
2392 | DDVPCAPS_AUTOFLIP = $00000001; |
||
2393 | DDVPCAPS_INTERLACED = $00000002; |
||
2394 | DDVPCAPS_NONINTERLACED = $00000004; |
||
2395 | DDVPCAPS_READBACKFIELD = $00000008; |
||
2396 | DDVPCAPS_READBACKLINE = $00000010; |
||
2397 | DDVPCAPS_SHAREABLE = $00000020; |
||
2398 | DDVPCAPS_SKIPEVENFIELDS = $00000040; |
||
2399 | DDVPCAPS_SKIPODDFIELDS = $00000080; |
||
2400 | DDVPCAPS_SYNCMASTER = $00000100; |
||
2401 | DDVPCAPS_VBISURFACE = $00000200; |
||
2402 | DDVPCAPS_COLORCONTROL = $00000400; |
||
2403 | DDVPCAPS_OVERSAMPLEDVBI = $00000800; |
||
2404 | DDVPCAPS_SYSTEMMEMORY = $00001000; |
||
2405 | DDVPCAPS_VBIANDVIDEOINDEPENDENT = $00002000; |
||
2406 | DDVPCAPS_HARDWAREDEINTERLACE = $00004000; |
||
2407 | |||
2408 | { TDDVideoportDesc FX } |
||
2409 | |||
2410 | DDVPFX_CROPTOPDATA = $00000001; |
||
2411 | DDVPFX_CROPX = $00000002; |
||
2412 | DDVPFX_CROPY = $00000004; |
||
2413 | DDVPFX_INTERLEAVE = $00000008; |
||
2414 | DDVPFX_MIRRORLEFTRIGHT = $00000010; |
||
2415 | DDVPFX_MIRRORUPDOWN = $00000020; |
||
2416 | DDVPFX_PRESHRINKX = $00000040; |
||
2417 | DDVPFX_PRESHRINKY = $00000080; |
||
2418 | DDVPFX_PRESHRINKXB = $00000100; |
||
2419 | DDVPFX_PRESHRINKYB = $00000200; |
||
2420 | DDVPFX_PRESHRINKXS = $00000400; |
||
2421 | DDVPFX_PRESHRINKYS = $00000800; |
||
2422 | DDVPFX_PRESTRETCHX = $00001000; |
||
2423 | DDVPFX_PRESTRETCHY = $00002000; |
||
2424 | DDVPFX_PRESTRETCHXN = $00004000; |
||
2425 | DDVPFX_PRESTRETCHYN = $00008000; |
||
2426 | DDVPFX_VBICONVERT = $00010000; |
||
2427 | DDVPFX_VBINOSCALE = $00020000; |
||
2428 | DDVPFX_IGNOREVBIXCROP = $00040000; |
||
2429 | DDVPFX_VBINOINTERLEAVE = $00080000; |
||
2430 | |||
2431 | { TDDVideoportInfo flags } |
||
2432 | |||
2433 | DDVP_AUTOFLIP = $00000001; |
||
2434 | DDVP_CONVERT = $00000002; |
||
2435 | DDVP_CROP = $00000004; |
||
2436 | DDVP_INTERLEAVE = $00000008; |
||
2437 | DDVP_MIRRORLEFTRIGHT = $00000010; |
||
2438 | DDVP_MIRRORUPDOWN = $00000020; |
||
2439 | DDVP_PRESCALE = $00000040; |
||
2440 | DDVP_SKIPEVENFIELDS = $00000080; |
||
2441 | DDVP_SKIPODDFIELDS = $00000100; |
||
2442 | DDVP_SYNCMASTER = $00000200; |
||
2443 | DDVP_VBICONVERT = $00000400; |
||
2444 | DDVP_VBINOSCALE = $00000800; |
||
2445 | DDVP_OVERRIDEBOBWEAVE = $00001000; |
||
2446 | DDVP_IGNOREVBIXCROP = $00002000; |
||
2447 | DDVP_HARDWAREDEINTERLACE = $00008000; |
||
2448 | |||
2449 | { DirectDrawVideoport GetInputFormat/GetOutputFormat flags } |
||
2450 | |||
2451 | DDVPFORMAT_VIDEO = $00000001; |
||
2452 | DDVPFORMAT_VBI = $00000002; |
||
2453 | |||
2454 | { DirectDrawVideoport SetTargetSurface flags } |
||
2455 | |||
2456 | DDVPTARGET_VIDEO = $00000001; |
||
2457 | DDVPTARGET_VBI = $00000002; |
||
2458 | |||
2459 | { DirectDrawVideoport WaitForSync flags } |
||
2460 | |||
2461 | DDVPWAIT_BEGIN = $00000001; |
||
2462 | DDVPWAIT_END = $00000002; |
||
2463 | DDVPWAIT_LINE = $00000003; |
||
2464 | |||
2465 | { DirectDrawVideoport flip flags } |
||
2466 | |||
2467 | DDVPFLIP_VIDEO = $00000001; |
||
2468 | DDVPFLIP_VBI = $00000002; |
||
2469 | |||
2470 | { DirectDrawVideoport GetVideoSiginalStatus values } |
||
2471 | |||
2472 | DDVPSQ_NOSIGNAL = $00000001; |
||
2473 | DDVPSQ_SIGNALOK = $00000002; |
||
2474 | |||
2475 | { TDDVideoportBandWidth Flags } |
||
2476 | |||
2477 | DDVPB_VIDEOPORT = $00000001; |
||
2478 | DDVPB_OVERLAY = $00000002; |
||
2479 | DDVPB_TYPE = $00000004; |
||
2480 | |||
2481 | { TDDVideoportBandWidth Caps } |
||
2482 | |||
2483 | DDVPBCAPS_SOURCE = $00000001; |
||
2484 | DDVPBCAPS_DESTINATION = $00000002; |
||
2485 | |||
2486 | { IDDVideoportContainer.CreateVideoPort flags } |
||
2487 | |||
2488 | DDVPCREATE_VBIONLY = $00000001; |
||
2489 | DDVPCREATE_VIDEOONLY = $00000002; |
||
2490 | |||
2491 | { TDDVideoportStatus flags } |
||
2492 | |||
2493 | DDVPSTATUS_VBIONLY = $00000001; |
||
2494 | DDVPSTATUS_VIDEOONLY = $00000002; |
||
2495 | |||
2496 | (*==========================================================================; |
||
2497 | * |
||
2498 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
2499 | * |
||
2500 | * File: d3dtypes.h |
||
2501 | * Content: Direct3D types include file |
||
2502 | * |
||
2503 | ***************************************************************************) |
||
2504 | |||
2505 | type |
||
2506 | TD3DValue = Single; |
||
2507 | D3DValue = TD3DValue; |
||
2508 | |||
2509 | TD3DFixed = Longint; |
||
2510 | D3DFIXED = TD3DFixed; |
||
2511 | |||
2512 | TD3DColor = DWORD; |
||
2513 | D3DCOLOR = TD3DColor; |
||
2514 | |||
2515 | function D3DVALP(val: TD3DValue; prec: Integer): TD3DValue; |
||
2516 | function D3DVAL(val: TD3DValue): TD3DValue; |
||
2517 | function D3DDivide(a, b: TD3DValue): TD3DValue; |
||
2518 | function D3DMultiply(a, b: TD3DValue): TD3DValue; |
||
2519 | |||
2520 | (* |
||
2521 | * Format of CI colors is |
||
2522 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2523 | * | alpha | color index | fraction | |
||
2524 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2525 | *) |
||
2526 | |||
2527 | function CI_GETALPHA(ci: Integer): Byte; |
||
2528 | function CI_GETINDEX(ci: Integer): Word; |
||
2529 | function CI_GETFRACTION(ci: Integer): Byte; |
||
2530 | function CI_ROUNDINDEX(ci: Integer): Integer; |
||
2531 | function CI_MASKALPHA(ci: Integer): Integer; |
||
2532 | function CI_MAKE(a: Byte; i: Word; f: Byte): Integer; |
||
2533 | |||
2534 | (* |
||
2535 | * Format of RGBA colors is |
||
2536 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2537 | * | alpha | red | green | blue | |
||
2538 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2539 | *) |
||
2540 | |||
2541 | function RGBA_GETALPHA(rgb: TD3DColor): Byte; |
||
2542 | function RGBA_GETRED(rgb: TD3DColor): Byte; |
||
2543 | function RGBA_GETGREEN(rgb: TD3DColor): Byte; |
||
2544 | function RGBA_GETBLUE(rgb: TD3DColor): Byte; |
||
2545 | function RGBA_MAKE(r, g, b, a: Byte): TD3DColor; |
||
2546 | |||
2547 | (* D3DRGB and D3DRGBA may be used as initialisers for D3DCOLORs |
||
2548 | * The float values must be in the range 0..1 |
||
2549 | *) |
||
2550 | |||
2551 | function D3DRGB(r, g, b: TD3DValue): TD3DColor; |
||
2552 | function D3DRGBA(r, g, b, a: TD3DValue): TD3DColor; |
||
2553 | |||
2554 | (* |
||
2555 | * Format of RGB colors is |
||
2556 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2557 | * | ignored | red | green | blue | |
||
2558 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
||
2559 | *) |
||
2560 | |||
2561 | function RGB_GETRED(rgb: TD3DColor): Byte; |
||
2562 | function RGB_GETGREEN(rgb: TD3DColor): Byte; |
||
2563 | function RGB_GETBLUE(rgb: TD3DColor): Byte; |
||
2564 | function RGBA_SETALPHA(rgba: TD3DColor; x: Byte): TD3DColor; |
||
2565 | function RGB_MAKE(r, g, b: Byte): TD3DColor; |
||
2566 | function RGBA_TORGB(rgba: TD3DColor): TD3DColor; |
||
2567 | function RGB_TORGBA(rgb: TD3DColor): TD3DColor; |
||
2568 | |||
2569 | const |
||
2570 | { Flags for Enumerate functions } |
||
2571 | |||
2572 | D3DENUMRET_CANCEL = DDENUMRET_CANCEL; |
||
2573 | D3DENUMRET_OK = DDENUMRET_OK; |
||
2574 | |||
2575 | type |
||
2576 | TD3DValidateCallback = function(lpUserArg: Pointer; dwOffset: DWORD): HResult; stdcall; |
||
2577 | LPD3DVALIDATECALLBACK = TD3DValidateCallback; |
||
2578 | |||
2579 | TD3DEnumTextureFormatsCalback = function(const lpDdsd: TDDSurfaceDesc; |
||
2580 | lpContext: Pointer): HResult; stdcall; |
||
2581 | LPD3DENUMTEXTUREFORMATSCALLBACK = TD3DEnumTextureFormatsCalback; |
||
2582 | |||
2583 | TD3DEnumPixelFormatsCallback = function(const lpDDPixFmt: TDDPixelFormat; |
||
2584 | lpContext: Pointer): HResult; stdcall; |
||
2585 | |||
2586 | TD3DMaterialHandle = DWORD; |
||
2587 | D3DMATERIALHANDLE = TD3DMaterialHandle; |
||
2588 | |||
2589 | TD3DTextureHandle = DWORD; |
||
2590 | D3DTEXTUREHANDLE = TD3DTextureHandle; |
||
2591 | |||
2592 | TD3DMatrixHandle = DWORD; |
||
2593 | D3DMATRIXHANDLE = TD3DMatrixHandle; |
||
2594 | |||
2595 | { TD3DColorValue structure } |
||
2596 | |||
2597 | PD3DColorValue = ^TD3DColorValue; |
||
2598 | TD3DColorValue = record |
||
2599 | case Integer of |
||
2600 | 0: ( |
||
2601 | r: TD3DValue; |
||
2602 | g: TD3DValue; |
||
2603 | b: TD3DValue; |
||
2604 | a: TD3DValue; |
||
2605 | ); |
||
2606 | 1: ( |
||
2607 | dvR: TD3DValue; |
||
2608 | dvG: TD3DValue; |
||
2609 | dvB: TD3DValue; |
||
2610 | dvA: TD3DValue; |
||
2611 | ); |
||
2612 | end; |
||
2613 | |||
2614 | D3DCOLORVALUE = TD3DColorValue; |
||
2615 | |||
2616 | { TD3DRect structure } |
||
2617 | |||
2618 | PD3DRect = ^TD3DRect; |
||
2619 | TD3DRect = record |
||
2620 | case Integer of |
||
2621 | 0: ( |
||
2622 | x1: Longint; |
||
2623 | y1: Longint; |
||
2624 | x2: Longint; |
||
2625 | y2: Longint; |
||
2626 | ); |
||
2627 | 1: ( |
||
2628 | lX1: Longint; |
||
2629 | lY1: Longint; |
||
2630 | lX2: Longint; |
||
2631 | lY2: Longint; |
||
2632 | ); |
||
2633 | end; |
||
2634 | |||
2635 | D3DRECT = TD3DRect; |
||
2636 | LPD3DRECT = PD3DRect; |
||
2637 | |||
2638 | { TD3DVector structure } |
||
2639 | |||
2640 | PD3DVector = ^TD3DVector; |
||
2641 | TD3DVector = record |
||
2642 | case Integer of |
||
2643 | 0: ( |
||
2644 | x: TD3DValue; |
||
2645 | y: TD3DValue; |
||
2646 | z: TD3DValue; |
||
2647 | ); |
||
2648 | 1: ( |
||
2649 | dvX: TD3DValue; |
||
2650 | dvY: TD3DValue; |
||
2651 | dvZ: TD3DValue; |
||
2652 | ); |
||
2653 | end; |
||
2654 | |||
2655 | D3DVECTOR = TD3DVector; |
||
2656 | LPD3DVECTOR = PD3DVector; |
||
2657 | |||
2658 | // Addition and subtraction |
||
2659 | function VectorAdd(v1, v2: TD3DVector) : TD3DVector; |
||
2660 | function VectorSub(v1, v2: TD3DVector) : TD3DVector; |
||
2661 | // Scalar multiplication and division |
||
2662 | function VectorMulS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
||
2663 | function VectorDivS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
||
2664 | // Memberwise multiplication and division |
||
2665 | function VectorMul(v1, v2: TD3DVector) : TD3DVector; |
||
2666 | function VectorDiv(v1, v2: TD3DVector) : TD3DVector; |
||
2667 | // Vector dominance |
||
2668 | function VectorSmaller(v1, v2: TD3DVector) : boolean; |
||
2669 | function VectorSmallerEquel(v1, v2: TD3DVector) : boolean; |
||
2670 | // Bitwise equality |
||
2671 | function VectorEquel(v1, v2: TD3DVector) : boolean; |
||
2672 | // Length-related functions |
||
2673 | function VectorSquareMagnitude(v: TD3DVector) : TD3DValue; |
||
2674 | function VectorMagnitude(v: TD3DVector) : TD3DValue; |
||
2675 | // Returns vector with same direction and unit length |
||
2676 | function VectorNormalize(v: TD3DVector) : TD3DVector; |
||
2677 | // Return min/max component of the input vector |
||
2678 | function VectorMin(v: TD3DVector) : TD3DValue; |
||
2679 | function VectorMax(v: TD3DVector) : TD3DValue; |
||
2680 | // Return memberwise min/max of input vectors |
||
2681 | function VectorMinimize(v1, v2: TD3DVector) : TD3DVector; |
||
2682 | function VectorMaximize(v1, v2: TD3DVector) : TD3DVector; |
||
2683 | // Dot and cross product |
||
2684 | function VectorDotProduct(v1, v2: TD3DVector) : TD3DValue; |
||
2685 | function VectorCrossProduct(v1, v2: TD3DVector) : TD3DVector; |
||
2686 | |||
2687 | type |
||
2688 | { Vertex data types supported in an ExecuteBuffer. } |
||
2689 | |||
2690 | { TD3DHVertex structure } |
||
2691 | |||
2692 | PD3DHVertex = ^TD3DHVertex; |
||
2693 | TD3DHVertex = record |
||
2694 | dwFlags: DWORD; // Homogeneous clipping flags |
||
2695 | case Integer of |
||
2696 | 0: ( |
||
2697 | hx: TD3DValue; |
||
2698 | hy: TD3DValue; |
||
2699 | hz: TD3DValue; |
||
2700 | ); |
||
2701 | 1: ( |
||
2702 | dvHX: TD3DValue; |
||
2703 | dvHY: TD3DValue; |
||
2704 | dvHZ: TD3DValue; |
||
2705 | ); |
||
2706 | end; |
||
2707 | |||
2708 | D3DHVERTEX = TD3DHVertex; |
||
2709 | |||
2710 | { TD3DTLVertex structure } |
||
2711 | |||
2712 | PD3DTLVertex = ^TD3DTLVertex; |
||
2713 | TD3DTLVertex = record |
||
2714 | case Integer of |
||
2715 | 0: ( |
||
2716 | sx: TD3DValue; // Screen coordinates |
||
2717 | sy: TD3DValue; |
||
2718 | sz: TD3DValue; |
||
2719 | rhw: TD3DValue; // Reciprocal of homogeneous w |
||
2720 | color: TD3DColor; // Vertex color |
||
2721 | specular: TD3DColor; // Specular component of vertex |
||
2722 | tu: TD3DValue; // Texture coordinates |
||
2723 | tv: TD3DValue; |
||
2724 | ); |
||
2725 | 1: ( |
||
2726 | dvSX: TD3DValue; |
||
2727 | dvSY: TD3DValue; |
||
2728 | dvSZ: TD3DValue; |
||
2729 | dvRHW: TD3DValue; |
||
2730 | dcColor: TD3DColor; |
||
2731 | dcSpecular: TD3DColor; |
||
2732 | dvTU: TD3DValue; |
||
2733 | dvTV: TD3DValue; |
||
2734 | ); |
||
2735 | end; |
||
2736 | |||
2737 | D3DTLVERTEX = TD3DTLVertex; |
||
2738 | |||
2739 | { TD3DLVertex structure } |
||
2740 | |||
2741 | PD3DLVertex = ^TD3DLVertex; |
||
2742 | TD3DLVertex = record |
||
2743 | case Integer of |
||
2744 | 0: ( |
||
2745 | x: TD3DValue; // Homogeneous coordinates |
||
2746 | y: TD3DValue; |
||
2747 | z: TD3DValue; |
||
2748 | dwReserved: DWORD; |
||
2749 | color: TD3DColor; // Vertex color |
||
2750 | specular: TD3DColor; // Specular component of vertex |
||
2751 | tu: TD3DValue; // Texture coordinates |
||
2752 | tv: TD3DValue; |
||
2753 | ); |
||
2754 | 1: ( |
||
2755 | dvX: TD3DValue; |
||
2756 | dvY: TD3DValue; |
||
2757 | dvZ: TD3DValue; |
||
2758 | _union1d: DWORD; |
||
2759 | dcColor: TD3DColor; |
||
2760 | dcSpecular: TD3DColor; |
||
2761 | dvTU: TD3DValue; |
||
2762 | dvTV: TD3DValue; |
||
2763 | ); |
||
2764 | end; |
||
2765 | |||
2766 | D3DLVERTEX = TD3DLVertex; |
||
2767 | |||
2768 | { TD3DVertex structure } |
||
2769 | |||
2770 | PD3DVertex = ^TD3DVertex; |
||
2771 | TD3DVertex = record |
||
2772 | case Integer of |
||
2773 | 0: ( |
||
2774 | x: TD3DValue; // Homogeneous coordinates |
||
2775 | y: TD3DValue; |
||
2776 | z: TD3DValue; |
||
2777 | nx: TD3DValue; // Normal |
||
2778 | ny: TD3DValue; |
||
2779 | nz: TD3DValue; |
||
2780 | tu: TD3DValue; // Texture coordinates |
||
2781 | tv: TD3DValue; |
||
2782 | ); |
||
2783 | 1: ( |
||
2784 | dvX: TD3DValue; |
||
2785 | dvY: TD3DValue; |
||
2786 | dvZ: TD3DValue; |
||
2787 | dvNX: TD3DValue; |
||
2788 | dvNY: TD3DValue; |
||
2789 | dvNZ: TD3DValue; |
||
2790 | dvTU: TD3DValue; |
||
2791 | dvTV: TD3DValue; |
||
2792 | ); |
||
2793 | end; |
||
2794 | |||
2795 | D3DVERTEX = TD3DVertex; |
||
2796 | |||
2797 | { TD3DMatrix structure } |
||
2798 | |||
2799 | PD3DMatrix = ^TD3DMatrix; |
||
2800 | TD3DMatrix = record |
||
2801 | _11, _12, _13, _14: TD3DValue; |
||
2802 | _21, _22, _23, _24: TD3DValue; |
||
2803 | _31, _32, _33, _34: TD3DValue; |
||
2804 | _41, _42, _43, _44: TD3DValue; |
||
2805 | end; |
||
2806 | |||
2807 | D3DMATRIX = TD3DMatrix; |
||
2808 | |||
2809 | { TD3DViewport structure } |
||
2810 | |||
2811 | PD3DViewport = ^TD3DViewport; |
||
2812 | TD3DViewport = record |
||
2813 | dwSize: DWORD; |
||
2814 | dwX: DWORD; |
||
2815 | dwY: DWORD; // Top left |
||
2816 | dwWidth: DWORD; |
||
2817 | dwHeight: DWORD; // Dimensions |
||
2818 | dvScaleX: TD3DValue; // Scale homogeneous to screen |
||
2819 | dvScaleY: TD3DValue; // Scale homogeneous to screen |
||
2820 | dvMaxX: TD3DValue; // Min/max homogeneous x coord |
||
2821 | dvMaxY: TD3DValue; // Min/max homogeneous y coord |
||
2822 | dvMinZ: TD3DValue; |
||
2823 | dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
||
2824 | end; |
||
2825 | |||
2826 | D3DVIEWPORT = TD3DViewport; |
||
2827 | |||
2828 | { TD3DViewport2 structure } |
||
2829 | |||
2830 | PD3DViewport2 = ^TD3DViewport2; |
||
2831 | TD3DViewport2 = record |
||
2832 | dwSize: DWORD; |
||
2833 | dwX: DWORD; |
||
2834 | dwY: DWORD; // Top left |
||
2835 | dwWidth: DWORD; |
||
2836 | dwHeight: DWORD; // Dimensions |
||
2837 | dvClipX: TD3DValue; // Top left of clip volume |
||
2838 | dvClipY: TD3DValue; |
||
2839 | dvClipWidth: TD3DValue; // Clip Volume Dimensions |
||
2840 | dvClipHeight: TD3DValue; |
||
2841 | dvMinZ: TD3DValue; |
||
2842 | dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
||
2843 | end; |
||
2844 | |||
2845 | D3DVIEWPORT2 = TD3DViewport2; |
||
2846 | |||
2847 | { TD3DViewport2 structure } |
||
2848 | |||
2849 | PD3DViewport7 = ^TD3DViewport7; |
||
2850 | TD3DViewport7 = record |
||
2851 | dwX: DWORD; |
||
2852 | dwY: DWORD; // Top left |
||
2853 | dwWidth: DWORD; |
||
2854 | dwHeight: DWORD; // Dimensions |
||
2855 | dvMinZ: TD3DValue; |
||
2856 | dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
||
2857 | end; |
||
2858 | |||
2859 | D3DVIEWPORT7 = TD3DViewport7; |
||
2860 | |||
2861 | const |
||
2862 | { Max number of user clipping planes, supported in D3D. } |
||
2863 | D3DMAXUSERCLIPPLANES = 32; |
||
2864 | |||
2865 | { These bits could be ORed together to use with D3DRENDERSTATE_CLIPPLANEENABLE } |
||
2866 | D3DCLIPPLANE0 = 1 shl 0; |
||
2867 | D3DCLIPPLANE1 = 1 shl 1; |
||
2868 | D3DCLIPPLANE2 = 1 shl 2; |
||
2869 | D3DCLIPPLANE3 = 1 shl 3; |
||
2870 | D3DCLIPPLANE4 = 1 shl 4; |
||
2871 | D3DCLIPPLANE5 = 1 shl 5; |
||
2872 | |||
2873 | { Values for clip fields. } |
||
2874 | |||
2875 | D3DCLIP_LEFT = $00000001; |
||
2876 | D3DCLIP_RIGHT = $00000002; |
||
2877 | D3DCLIP_TOP = $00000004; |
||
2878 | D3DCLIP_BOTTOM = $00000008; |
||
2879 | D3DCLIP_FRONT = $00000010; |
||
2880 | D3DCLIP_BACK = $00000020; |
||
2881 | D3DCLIP_GEN0 = $00000040; |
||
2882 | D3DCLIP_GEN1 = $00000080; |
||
2883 | D3DCLIP_GEN2 = $00000100; |
||
2884 | D3DCLIP_GEN3 = $00000200; |
||
2885 | D3DCLIP_GEN4 = $00000400; |
||
2886 | D3DCLIP_GEN5 = $00000800; |
||
2887 | |||
2888 | { Values for d3d status. } |
||
2889 | |||
2890 | D3DSTATUS_CLIPUNIONLEFT = D3DCLIP_LEFT; |
||
2891 | D3DSTATUS_CLIPUNIONRIGHT = D3DCLIP_RIGHT; |
||
2892 | D3DSTATUS_CLIPUNIONTOP = D3DCLIP_TOP; |
||
2893 | D3DSTATUS_CLIPUNIONBOTTOM = D3DCLIP_BOTTOM; |
||
2894 | D3DSTATUS_CLIPUNIONFRONT = D3DCLIP_FRONT; |
||
2895 | D3DSTATUS_CLIPUNIONBACK = D3DCLIP_BACK; |
||
2896 | D3DSTATUS_CLIPUNIONGEN0 = D3DCLIP_GEN0; |
||
2897 | D3DSTATUS_CLIPUNIONGEN1 = D3DCLIP_GEN1; |
||
2898 | D3DSTATUS_CLIPUNIONGEN2 = D3DCLIP_GEN2; |
||
2899 | D3DSTATUS_CLIPUNIONGEN3 = D3DCLIP_GEN3; |
||
2900 | D3DSTATUS_CLIPUNIONGEN4 = D3DCLIP_GEN4; |
||
2901 | D3DSTATUS_CLIPUNIONGEN5 = D3DCLIP_GEN5; |
||
2902 | |||
2903 | D3DSTATUS_CLIPINTERSECTIONLEFT = $00001000; |
||
2904 | D3DSTATUS_CLIPINTERSECTIONRIGHT = $00002000; |
||
2905 | D3DSTATUS_CLIPINTERSECTIONTOP = $00004000; |
||
2906 | D3DSTATUS_CLIPINTERSECTIONBOTTOM = $00008000; |
||
2907 | D3DSTATUS_CLIPINTERSECTIONFRONT = $00010000; |
||
2908 | D3DSTATUS_CLIPINTERSECTIONBACK = $00020000; |
||
2909 | D3DSTATUS_CLIPINTERSECTIONGEN0 = $00040000; |
||
2910 | D3DSTATUS_CLIPINTERSECTIONGEN1 = $00080000; |
||
2911 | D3DSTATUS_CLIPINTERSECTIONGEN2 = $00100000; |
||
2912 | D3DSTATUS_CLIPINTERSECTIONGEN3 = $00200000; |
||
2913 | D3DSTATUS_CLIPINTERSECTIONGEN4 = $00400000; |
||
2914 | D3DSTATUS_CLIPINTERSECTIONGEN5 = $00800000; |
||
2915 | D3DSTATUS_ZNOTVISIBLE = $01000000; |
||
2916 | |||
2917 | D3DSTATUS_CLIPUNIONALL = |
||
2918 | D3DSTATUS_CLIPUNIONLEFT or |
||
2919 | D3DSTATUS_CLIPUNIONRIGHT or |
||
2920 | D3DSTATUS_CLIPUNIONTOP or |
||
2921 | D3DSTATUS_CLIPUNIONBOTTOM or |
||
2922 | D3DSTATUS_CLIPUNIONFRONT or |
||
2923 | D3DSTATUS_CLIPUNIONBACK or |
||
2924 | D3DSTATUS_CLIPUNIONGEN0 or |
||
2925 | D3DSTATUS_CLIPUNIONGEN1 or |
||
2926 | D3DSTATUS_CLIPUNIONGEN2 or |
||
2927 | D3DSTATUS_CLIPUNIONGEN3 or |
||
2928 | D3DSTATUS_CLIPUNIONGEN4 or |
||
2929 | D3DSTATUS_CLIPUNIONGEN5; |
||
2930 | |||
2931 | D3DSTATUS_CLIPINTERSECTIONALL = |
||
2932 | D3DSTATUS_CLIPINTERSECTIONLEFT or |
||
2933 | D3DSTATUS_CLIPINTERSECTIONRIGHT or |
||
2934 | D3DSTATUS_CLIPINTERSECTIONTOP or |
||
2935 | D3DSTATUS_CLIPINTERSECTIONBOTTOM or |
||
2936 | D3DSTATUS_CLIPINTERSECTIONFRONT or |
||
2937 | D3DSTATUS_CLIPINTERSECTIONBACK or |
||
2938 | D3DSTATUS_CLIPINTERSECTIONGEN0 or |
||
2939 | D3DSTATUS_CLIPINTERSECTIONGEN1 or |
||
2940 | D3DSTATUS_CLIPINTERSECTIONGEN2 or |
||
2941 | D3DSTATUS_CLIPINTERSECTIONGEN3 or |
||
2942 | D3DSTATUS_CLIPINTERSECTIONGEN4 or |
||
2943 | D3DSTATUS_CLIPINTERSECTIONGEN5; |
||
2944 | |||
2945 | D3DSTATUS_DEFAULT = ( |
||
2946 | D3DSTATUS_CLIPINTERSECTIONALL or |
||
2947 | D3DSTATUS_ZNOTVISIBLE ); |
||
2948 | |||
2949 | { Options for direct transform calls } |
||
2950 | |||
2951 | D3DTRANSFORM_CLIPPED = $00000001; |
||
2952 | D3DTRANSFORM_UNCLIPPED = $00000002; |
||
2953 | |||
2954 | type |
||
2955 | { TD3DTransformData structure } |
||
2956 | |||
2957 | PD3DTransformData = ^TD3DTransformData; |
||
2958 | TD3DTransformData = record |
||
2959 | dwSize: DWORD; |
||
2960 | lpIn: Pointer; // Input vertices |
||
2961 | dwInSize: DWORD; // Stride of input vertices |
||
2962 | lpOut: Pointer; // Output vertices |
||
2963 | dwOutSize: DWORD; // Stride of output vertices |
||
2964 | lpHOut: PD3DHVertex; // Output homogeneous vertices |
||
2965 | dwClip: DWORD; // Clipping hint |
||
2966 | dwClipIntersection: DWORD; |
||
2967 | dwClipUnion: DWORD; // Union of all clip flags |
||
2968 | drExtent: TD3DRect; // Extent of transformed vertices |
||
2969 | end; |
||
2970 | |||
2971 | D3DTRANSFORMDATA = TD3DTransformData; |
||
2972 | LPD3DTRANSFORMDATA = PD3DTransformData; |
||
2973 | |||
2974 | { TD3DLightingElement structure } |
||
2975 | |||
2976 | PD3DLightingElement = ^TD3DLightingElement; |
||
2977 | TD3DLightingElement = record |
||
2978 | dvPosition: TD3DVector; // Lightable point in model space |
||
2979 | dvNormal: TD3DVector; // Normalised unit vector |
||
2980 | end; |
||
2981 | |||
2982 | D3DLIGHTINGELEMENT = TD3DLightingElement; |
||
2983 | LPD3DLIGHTINGELEMENT = PD3DLightingElement; |
||
2984 | |||
2985 | { TD3DMaterial structure } |
||
2986 | |||
2987 | PD3DMaterial = ^TD3DMaterial; |
||
2988 | TD3DMaterial = record |
||
2989 | dwSize: DWORD; |
||
2990 | case Integer of |
||
2991 | 0: ( |
||
2992 | diffuse: TD3DColorValue; // Diffuse color RGBA |
||
2993 | ambient: TD3DColorValue; // Ambient color RGB |
||
2994 | specular: TD3DColorValue; // Specular 'shininess' |
||
2995 | emissive: TD3DColorValue; // Emissive color RGB |
||
2996 | power: TD3DValue; // Sharpness if specular highlight |
||
2997 | hTexture: TD3DTextureHandle; // Handle to texture map |
||
2998 | dwRampSize: DWORD; |
||
2999 | ); |
||
3000 | 1: ( |
||
3001 | dcvDiffuse: TD3DColorValue; |
||
3002 | dcvAmbient: TD3DColorValue; |
||
3003 | dcvSpecular: TD3DColorValue; |
||
3004 | dcvEmissive: TD3DColorValue; |
||
3005 | dvPower: TD3DValue; |
||
3006 | ); |
||
3007 | end; |
||
3008 | |||
3009 | D3DMATERIAL = TD3DMaterial; |
||
3010 | LPD3DMATERIAL = PD3DMaterial; |
||
3011 | |||
3012 | { TD3DMaterial7 structure } |
||
3013 | |||
3014 | PD3DMaterial7 = ^TD3DMaterial7; |
||
3015 | TD3DMaterial7 = record |
||
3016 | case Integer of |
||
3017 | 0: ( |
||
3018 | diffuse: TD3DColorValue; // Diffuse color RGBA |
||
3019 | ambient: TD3DColorValue; // Ambient color RGB |
||
3020 | specular: TD3DColorValue; // Specular 'shininess' |
||
3021 | emissive: TD3DColorValue; // Emissive color RGB |
||
3022 | power: TD3DValue; // Sharpness if specular highlight |
||
3023 | ); |
||
3024 | 1: ( |
||
3025 | dcvDiffuse: TD3DColorValue; |
||
3026 | dcvAmbient: TD3DColorValue; |
||
3027 | dcvSpecular: TD3DColorValue; |
||
3028 | dcvEmissive: TD3DColorValue; |
||
3029 | dvPower: TD3DValue; |
||
3030 | ); |
||
3031 | end; |
||
3032 | |||
3033 | D3DMATERIAL7 = TD3DMaterial7; |
||
3034 | LPD3DMATERIAL7 = PD3DMaterial7; |
||
3035 | |||
3036 | { TD3DLightType } |
||
3037 | |||
3038 | TD3DLightType = ( |
||
3039 | D3DLIGHT_INVALID_0, |
||
3040 | D3DLIGHT_POINT, |
||
3041 | D3DLIGHT_SPOT, |
||
3042 | D3DLIGHT_DIRECTIONAL, |
||
3043 | D3DLIGHT_PARALLELPOINT |
||
3044 | {$IFNDEF SupportDirectX5},D3DLIGHT_GLSPOT{$ENDIF} |
||
3045 | ); |
||
3046 | |||
3047 | D3DLIGHTTYPE = TD3DLightType; |
||
3048 | |||
3049 | { TD3DLight structure } |
||
3050 | |||
3051 | PD3DLight = ^TD3DLight; |
||
3052 | TD3DLight = record |
||
3053 | dwSize: DWORD; |
||
3054 | dltType: TD3DLightType; // Type of light source |
||
3055 | dcvColor: TD3DColorValue; // Color of light |
||
3056 | dvPosition: TD3DVector; // Position in world space |
||
3057 | dvDirection: TD3DVector; // Direction in world space |
||
3058 | dvRange: TD3DValue; // Cutoff range |
||
3059 | dvFalloff: TD3DValue; // Falloff |
||
3060 | dvAttenuation0: TD3DValue; // Constant attenuation |
||
3061 | dvAttenuation1: TD3DValue; // Linear attenuation |
||
3062 | dvAttenuation2: TD3DValue; // Quadratic attenuation |
||
3063 | dvTheta: TD3DValue; // Inner angle of spotlight cone |
||
3064 | dvPhi: TD3DValue; // Outer angle of spotlight cone |
||
3065 | end; |
||
3066 | |||
3067 | D3DLIGHT = TD3DLight; |
||
3068 | LPD3DLIGHT = PD3DLight; |
||
3069 | |||
3070 | { TD3DLight7 structure } |
||
3071 | |||
3072 | PD3DLight7 = ^TD3DLight7; |
||
3073 | TD3DLight7 = record |
||
3074 | dltType: TD3DLightType; // Type of light source |
||
3075 | dcvDiffuse: TD3DColorValue; // Diffuse color of light |
||
3076 | dcvSpecular: TD3DColorValue;// Specular color of light |
||
3077 | dcvAmbient: TD3DColorValue; // Ambient color of light |
||
3078 | dvPosition: TD3DVector; // Position in world space |
||
3079 | dvDirection: TD3DVector; // Direction in world space |
||
3080 | dvRange: TD3DValue; // Cutoff range |
||
3081 | dvFalloff: TD3DValue; // Falloff |
||
3082 | dvAttenuation0: TD3DValue; // Constant attenuation |
||
3083 | dvAttenuation1: TD3DValue; // Linear attenuation |
||
3084 | dvAttenuation2: TD3DValue; // Quadratic attenuation |
||
3085 | dvTheta: TD3DValue; // Inner angle of spotlight cone |
||
3086 | dvPhi: TD3DValue; // Outer angle of spotlight cone |
||
3087 | end; |
||
3088 | |||
3089 | D3DLIGHT7 = TD3DLight7; |
||
3090 | LPD3DLIGHT7 = PD3DLight7; |
||
3091 | |||
3092 | { Structure defining a light source and its properties. } |
||
3093 | |||
3094 | const |
||
3095 | { flags bits } |
||
3096 | |||
3097 | D3DLIGHT_ACTIVE = $00000001; |
||
3098 | D3DLIGHT_NO_SPECULAR = $00000002; |
||
3099 | D3DLIGHT_ALL = D3DLIGHT_ACTIVE or D3DLIGHT_NO_SPECULAR; |
||
3100 | |||
3101 | { maximum valid light range } |
||
3102 | D3DLIGHT_RANGE_MAX: TD3DValue = 3.4 * 10e+38; |
||
3103 | |||
3104 | type |
||
3105 | { TD3DLight2 structure } |
||
3106 | |||
3107 | PD3DLight2 = ^TD3DLight2; |
||
3108 | TD3DLight2 = record |
||
3109 | dwSize: DWORD; |
||
3110 | dltType: TD3DLightType; // Type of light source |
||
3111 | dcvColor: TD3DColorValue; // Color of light |
||
3112 | dvPosition: TD3DVector; // Position in world space |
||
3113 | dvDirection: TD3DVector; // Direction in world space |
||
3114 | dvRange: TD3DValue; // Cutoff range |
||
3115 | dvFalloff: TD3DValue; // Falloff |
||
3116 | dvAttenuation0: TD3DValue; // Constant attenuation |
||
3117 | dvAttenuation1: TD3DValue; // Linear attenuation |
||
3118 | dvAttenuation2: TD3DValue; // Quadratic attenuation |
||
3119 | dvTheta: TD3DValue; // Inner angle of spotlight cone |
||
3120 | dvPhi: TD3DValue; // Outer angle of spotlight cone |
||
3121 | dwFlags: DWORD; |
||
3122 | end; |
||
3123 | |||
3124 | D3DLIGHT2 = TD3DLight2; |
||
3125 | LPD3DLIGHT2 = PD3DLight2; |
||
3126 | |||
3127 | { TD3DLightData structure } |
||
3128 | |||
3129 | PD3DLightData = ^TD3DLightData; |
||
3130 | TD3DLightData = record |
||
3131 | dwSize: DWORD; |
||
3132 | lpIn: PD3DLightingElement; // Input positions and normals |
||
3133 | dwInSize: DWORD; // Stride of input elements |
||
3134 | lpOut: PD3DTLVertex; // Output colors |
||
3135 | dwOutSize: DWORD; // Stride of output colors |
||
3136 | end; |
||
3137 | |||
3138 | D3DLIGHTDATA = TD3DLightData; |
||
3139 | LPD3DLIGHTDATA = PD3DLightData; |
||
3140 | |||
3141 | (* |
||
3142 | * Before DX5, these values were in an enum called |
||
3143 | * D3DCOLORMODEL. This was not correct, since they are |
||
3144 | * bit flags. A driver can surface either or both flags |
||
3145 | * in the dcmColorModel member of D3DDEVICEDESC. |
||
3146 | *) |
||
3147 | |||
3148 | type |
||
3149 | TD3DColorModel = DWORD; |
||
3150 | D3DCOLORMODEL = TD3DColorModel; |
||
3151 | |||
3152 | const |
||
3153 | D3DCOLOR_INVALID_0 = 0; |
||
3154 | D3DCOLOR_MONO = 1; |
||
3155 | D3DCOLOR_RGB = 2; |
||
3156 | |||
3157 | { Options for clearing } |
||
3158 | |||
3159 | const |
||
3160 | D3DCLEAR_TARGET = $00000001; // Clear target surface |
||
3161 | D3DCLEAR_ZBUFFER = $00000002; // Clear target z buffer |
||
3162 | D3DCLEAR_STENCIL = $00000004; // Clear stencil planes |
||
3163 | |||
3164 | { Supported op codes for execute instructions. } |
||
3165 | |||
3166 | type |
||
3167 | TD3DOpcode = ( |
||
3168 | D3DOP_INVALID_0, |
||
3169 | D3DOP_POINT, |
||
3170 | D3DOP_LINE, |
||
3171 | D3DOP_TRIANGLE, |
||
3172 | D3DOP_MATRIXLOAD, |
||
3173 | D3DOP_MATRIXMULTIPLY, |
||
3174 | D3DOP_STATETRANSFORM, |
||
3175 | D3DOP_STATELIGHT, |
||
3176 | D3DOP_STATERENDER, |
||
3177 | D3DOP_PROCESSVERTICES, |
||
3178 | D3DOP_TEXTURELOAD, |
||
3179 | D3DOP_EXIT, |
||
3180 | D3DOP_BRANCHFORWARD, |
||
3181 | D3DOP_SPAN, |
||
3182 | D3DOP_SETSTATUS |
||
3183 | ); |
||
3184 | |||
3185 | D3DOPCODE = TD3DOpcode; |
||
3186 | |||
3187 | { TD3DInstruction structure } |
||
3188 | |||
3189 | TD3DInstruction = record |
||
3190 | bOpcode: Byte; // Instruction opcode |
||
3191 | bSize: Byte; // Size of each instruction data unit |
||
3192 | wCount: WORD; // Count of instruction data units to follow |
||
3193 | end; |
||
3194 | D3DINSTRUCTION = TD3DInstruction; |
||
3195 | |||
3196 | { TD3DTextureLoad structure } |
||
3197 | |||
3198 | TD3DTextureLoad = record |
||
3199 | hDestTexture: TD3DTextureHandle; |
||
3200 | hSrcTexture: TD3DTextureHandle; |
||
3201 | end; |
||
3202 | D3DTEXTURELOAD = TD3DTextureLoad; |
||
3203 | |||
3204 | { TD3DPickRecord structure } |
||
3205 | |||
3206 | TD3DPickRecord = record |
||
3207 | bOpcode: BYTE; |
||
3208 | bPad: BYTE; |
||
3209 | dwOffset: DWORD; |
||
3210 | dvZ: TD3DValue; |
||
3211 | end; |
||
3212 | D3DPICKRECORD = TD3DPickRecord; |
||
3213 | |||
3214 | { TD3DShadeMode } |
||
3215 | |||
3216 | TD3DShadeMode = ( |
||
3217 | D3DSHADE_INVALID_0, |
||
3218 | D3DSHADE_FLAT, |
||
3219 | D3DSHADE_GOURAUD, |
||
3220 | D3DSHADE_PHONG |
||
3221 | ); |
||
3222 | |||
3223 | D3DSHADEMODE = TD3DShadeMode; |
||
3224 | |||
3225 | { TD3DFillMode } |
||
3226 | |||
3227 | TD3DFillMode = ( |
||
3228 | D3DFILL_INVALID_0, |
||
3229 | D3DFILL_POINT, |
||
3230 | D3DFILL_WIREFRAME, |
||
3231 | D3DFILL_SOLID |
||
3232 | ); |
||
3233 | |||
3234 | D3DFILLMODE = TD3DFillMode; |
||
3235 | |||
3236 | { TD3DLinePattern structure } |
||
3237 | |||
3238 | TD3DLinePattern = record |
||
3239 | wRepeatFactor: WORD; |
||
3240 | wLinePattern: WORD; |
||
3241 | end; |
||
3242 | |||
3243 | D3DLINEPATTERN = TD3DLinePattern; |
||
3244 | |||
3245 | { TD3DTextureFilter } |
||
3246 | |||
3247 | TD3DTextureFilter = ( |
||
3248 | D3DFILTER_INVALID_0, |
||
3249 | D3DFILTER_NEAREST, |
||
3250 | D3DFILTER_LINEAR, |
||
3251 | D3DFILTER_MIPNEAREST, |
||
3252 | D3DFILTER_MIPLINEAR, |
||
3253 | D3DFILTER_LINEARMIPNEAREST, |
||
3254 | D3DFILTER_LINEARMIPLINEAR |
||
3255 | ); |
||
3256 | |||
3257 | D3DTEXTUREFILTER = TD3DTextureFilter; |
||
3258 | |||
3259 | { TD3DBlend } |
||
3260 | |||
3261 | TD3DBlend = ( |
||
3262 | D3DBLEND_INVALID_0, |
||
3263 | D3DBLEND_ZERO, |
||
3264 | D3DBLEND_ONE, |
||
3265 | D3DBLEND_SRCCOLOR, |
||
3266 | D3DBLEND_INVSRCCOLOR, |
||
3267 | D3DBLEND_SRCALPHA, |
||
3268 | D3DBLEND_INVSRCALPHA, |
||
3269 | D3DBLEND_DESTALPHA, |
||
3270 | D3DBLEND_INVDESTALPHA, |
||
3271 | D3DBLEND_DESTCOLOR, |
||
3272 | D3DBLEND_INVDESTCOLOR, |
||
3273 | D3DBLEND_SRCALPHASAT, |
||
3274 | D3DBLEND_BOTHSRCALPHA, |
||
3275 | D3DBLEND_BOTHINVSRCALPHA |
||
3276 | ); |
||
3277 | |||
3278 | D3DBLEND = TD3DBlend; |
||
3279 | |||
3280 | { TD3DTextureBlend } |
||
3281 | |||
3282 | TD3DTextureBlend = ( |
||
3283 | D3DTBLEND_INVALID_0, |
||
3284 | D3DTBLEND_DECAL, |
||
3285 | D3DTBLEND_MODULATE, |
||
3286 | D3DTBLEND_DECALALPHA, |
||
3287 | D3DTBLEND_MODULATEALPHA, |
||
3288 | D3DTBLEND_DECALMASK, |
||
3289 | D3DTBLEND_MODULATEMASK, |
||
3290 | D3DTBLEND_COPY, |
||
3291 | D3DTBLEND_ADD |
||
3292 | ); |
||
3293 | |||
3294 | D3DTEXTUREBLEND = TD3DTextureBlend; |
||
3295 | |||
3296 | { TD3DTextureAddress } |
||
3297 | |||
3298 | TD3DTextureAddress = ( |
||
3299 | D3DTADDRESS_INVALID_0, |
||
3300 | D3DTADDRESS_WRAP, |
||
3301 | D3DTADDRESS_MIRROR, |
||
3302 | D3DTADDRESS_CLAMP, |
||
3303 | D3DTADDRESS_BORDER |
||
3304 | ); |
||
3305 | |||
3306 | D3DTEXTUREADDRESS = TD3DTextureAddress; |
||
3307 | |||
3308 | { TD3DCull } |
||
3309 | |||
3310 | TD3DCull = ( |
||
3311 | D3DCULL_INVALID_0, |
||
3312 | D3DCULL_NONE, |
||
3313 | D3DCULL_CW, |
||
3314 | D3DCULL_CCW |
||
3315 | ); |
||
3316 | |||
3317 | D3DCULL = TD3DCull; |
||
3318 | |||
3319 | { TD3DCmpFunc } |
||
3320 | |||
3321 | TD3DCmpFunc = ( |
||
3322 | D3DCMP_INVALID_0, |
||
3323 | D3DCMP_NEVER, |
||
3324 | D3DCMP_LESS, |
||
3325 | D3DCMP_EQUAL, |
||
3326 | D3DCMP_LESSEQUAL, |
||
3327 | D3DCMP_GREATER, |
||
3328 | D3DCMP_NOTEQUAL, |
||
3329 | D3DCMP_GREATEREQUAL, |
||
3330 | D3DCMP_ALWAYS |
||
3331 | ); |
||
3332 | |||
3333 | D3DCMPFUNC = TD3DCmpFunc; |
||
3334 | |||
3335 | { TD3DStencilOp } |
||
3336 | |||
3337 | TD3DStencilOp = ( |
||
3338 | D3DSTENCILOP_INVALID_0, |
||
3339 | D3DSTENCILOP_KEEP, |
||
3340 | D3DSTENCILOP_ZERO, |
||
3341 | D3DSTENCILOP_REPLACE, |
||
3342 | D3DSTENCILOP_INCRSAT, |
||
3343 | D3DSTENCILOP_DECRSAT, |
||
3344 | D3DSTENCILOP_INVERT, |
||
3345 | D3DSTENCILOP_INCR, |
||
3346 | D3DSTENCILOP_DECR |
||
3347 | ); |
||
3348 | |||
3349 | D3DSTENCILOP = TD3DStencilOp; |
||
3350 | |||
3351 | { TD3DFogMode } |
||
3352 | |||
3353 | TD3DFogMode = ( |
||
3354 | D3DFOG_NONE, |
||
3355 | D3DFOG_EXP, |
||
3356 | D3DFOG_EXP2, |
||
3357 | D3DFOG_LINEAR |
||
3358 | ); |
||
3359 | |||
3360 | D3DFOGMODE = TD3DFogMode; |
||
3361 | |||
3362 | { TD3DZBufferType } |
||
3363 | |||
3364 | TD3DZBufferType = ( |
||
3365 | D3DZB_FALSE, |
||
3366 | D3DZB_TRUE, // Z buffering |
||
3367 | D3DZB_USEW // W buffering |
||
3368 | ); |
||
3369 | |||
3370 | D3DZBUFFERTYPE = TD3DZBufferType; |
||
3371 | |||
3372 | { TD3DAntialiasMode } |
||
3373 | |||
3374 | TD3DAntialiasMode = ( |
||
3375 | D3DANTIALIAS_NONE, |
||
3376 | D3DANTIALIAS_SORTDEPENDENT, |
||
3377 | D3DANTIALIAS_SORTINDEPENDENT |
||
3378 | ); |
||
3379 | |||
3380 | D3DANTIALIASMODE = TD3DAntialiasMode; |
||
3381 | |||
3382 | { TD3DVertexType } |
||
3383 | |||
3384 | TD3DVertexType = ( |
||
3385 | D3DVT_INVALID_0, |
||
3386 | D3DVT_VERTEX, |
||
3387 | D3DVT_LVERTEX, |
||
3388 | D3DVT_TLVERTEX |
||
3389 | ); |
||
3390 | |||
3391 | D3DVERTEXTYPE = TD3DVertexType; |
||
3392 | |||
3393 | { TD3DPrimitiveType } |
||
3394 | |||
3395 | TD3DPrimitiveType = ( |
||
3396 | D3DPT_INVALID_0, |
||
3397 | D3DPT_POINTLIST, |
||
3398 | D3DPT_LINELIST, |
||
3399 | D3DPT_LINESTRIP, |
||
3400 | D3DPT_TRIANGLELIST, |
||
3401 | D3DPT_TRIANGLESTRIP, |
||
3402 | D3DPT_TRIANGLEFAN |
||
3403 | ); |
||
3404 | |||
3405 | D3DPRIMITIVETYPE = TD3DPrimitiveType; |
||
3406 | |||
3407 | { Amount to add to a state to generate the override for that state. } |
||
3408 | |||
3409 | const |
||
3410 | D3DSTATE_OVERRIDE_BIAS = 256; |
||
3411 | |||
3412 | function D3DSTATE_OVERRIDE(typ: DWORD): DWORD; |
||
3413 | |||
3414 | { A state which sets the override flag for the specified state type. } |
||
3415 | |||
3416 | type |
||
3417 | { TD3DTransformStateType } |
||
3418 | |||
3419 | TD3DTransformStateType = ( |
||
3420 | D3DTRANSFORMSTATE_INVALID_0, |
||
3421 | D3DTRANSFORMSTATE_WORLD, |
||
3422 | D3DTRANSFORMSTATE_VIEW, |
||
3423 | D3DTRANSFORMSTATE_PROJECTION, |
||
3424 | |||
3425 | D3DTRANSFORMSTATE_WORLD1, |
||
3426 | D3DTRANSFORMSTATE_WORLD2, |
||
3427 | D3DTRANSFORMSTATE_WORLD3, |
||
3428 | D3DTRANSFORMSTATE_INVALID_7, |
||
3429 | D3DTRANSFORMSTATE_INVALID_8, |
||
3430 | D3DTRANSFORMSTATE_INVALID_9, |
||
3431 | D3DTRANSFORMSTATE_INVALID_10, |
||
3432 | D3DTRANSFORMSTATE_INVALID_11, |
||
3433 | D3DTRANSFORMSTATE_INVALID_12, |
||
3434 | D3DTRANSFORMSTATE_INVALID_13, |
||
3435 | D3DTRANSFORMSTATE_INVALID_14, |
||
3436 | D3DTRANSFORMSTATE_INVALID_15, |
||
3437 | D3DTRANSFORMSTATE_TEXTURE0, |
||
3438 | D3DTRANSFORMSTATE_TEXTURE1, |
||
3439 | D3DTRANSFORMSTATE_TEXTURE2, |
||
3440 | D3DTRANSFORMSTATE_TEXTURE3, |
||
3441 | D3DTRANSFORMSTATE_TEXTURE4, |
||
3442 | D3DTRANSFORMSTATE_TEXTURE5, |
||
3443 | D3DTRANSFORMSTATE_TEXTURE6, |
||
3444 | D3DTRANSFORMSTATE_TEXTURE7 |
||
3445 | ); |
||
3446 | |||
3447 | D3DTRANSFORMSTATETYPE = TD3DTransformStateType; |
||
3448 | |||
3449 | { TD3DLightStateType } |
||
3450 | |||
3451 | TD3DLightStateType = ( |
||
3452 | D3DLIGHTSTATE_INVALID_0, |
||
3453 | D3DLIGHTSTATE_MATERIAL, |
||
3454 | D3DLIGHTSTATE_AMBIENT, |
||
3455 | D3DLIGHTSTATE_COLORMODEL, |
||
3456 | D3DLIGHTSTATE_FOGMODE, |
||
3457 | D3DLIGHTSTATE_FOGSTART, |
||
3458 | D3DLIGHTSTATE_FOGEND, |
||
3459 | D3DLIGHTSTATE_FOGDENSITY, |
||
3460 | D3DLIGHTSTATE_COLORVERTEX |
||
3461 | ); |
||
3462 | |||
3463 | D3DLIGHTSTATETYPE = TD3DLightStateType; |
||
3464 | |||
3465 | { TD3DRenderStateType } |
||
3466 | |||
3467 | TD3DRenderStateType = ( |
||
3468 | D3DRENDERSTATE_INVALID_0, |
||
3469 | D3DRENDERSTATE_TEXTUREHANDLE, // Texture handle for legacy interfaces (Texture,Texture2) |
||
3470 | D3DRENDERSTATE_ANTIALIAS, // TD3DAntialiasMode |
||
3471 | D3DRENDERSTATE_TEXTUREADDRESS, // TD3DTextureAddress |
||
3472 | D3DRENDERSTATE_TEXTUREPERSPECTIVE, // TRUE for perspective correction |
||
3473 | D3DRENDERSTATE_WRAPU, // TRUE for wrapping in u |
||
3474 | D3DRENDERSTATE_WRAPV, // TRUE for wrapping in v |
||
3475 | D3DRENDERSTATE_ZENABLE, // TD3DZBufferType (or TRUE/FALSE for legacy) |
||
3476 | D3DRENDERSTATE_FILLMODE, // TD3DFillMode |
||
3477 | D3DRENDERSTATE_SHADEMODE, // TD3DShadeMode |
||
3478 | D3DRENDERSTATE_LINEPATTERN, // TD3DLinePattern |
||
3479 | D3DRENDERSTATE_MONOENABLE, // TRUE to enable mono rasterization |
||
3480 | D3DRENDERSTATE_ROP2, // ROP2 |
||
3481 | D3DRENDERSTATE_PLANEMASK, // DWORD physical plane mask |
||
3482 | D3DRENDERSTATE_ZWRITEENABLE, // TRUE to enable z writes |
||
3483 | D3DRENDERSTATE_ALPHATESTENABLE, // TRUE to enable alpha tests |
||
3484 | D3DRENDERSTATE_LASTPIXEL, // TRUE for last-pixel on lines |
||
3485 | D3DRENDERSTATE_TEXTUREMAG, // TD3DTextureFilter |
||
3486 | D3DRENDERSTATE_TEXTUREMIN, // TD3DTextureFilter |
||
3487 | D3DRENDERSTATE_SRCBLEND, // TD3DBlend |
||
3488 | D3DRENDERSTATE_DESTBLEND, // TD3DBlend |
||
3489 | D3DRENDERSTATE_TEXTUREMAPBLEND, // TD3DTextureBlend |
||
3490 | D3DRENDERSTATE_CULLMODE, // TD3DCull |
||
3491 | D3DRENDERSTATE_ZFUNC, // TD3DCmpFunc |
||
3492 | D3DRENDERSTATE_ALPHAREF, // TD3DFixed |
||
3493 | D3DRENDERSTATE_ALPHAFUNC, // TD3DCmpFunc |
||
3494 | D3DRENDERSTATE_DITHERENABLE, // TRUE to enable dithering |
||
3495 | D3DRENDERSTATE_ALPHABLENDENABLE, // TRUE to enable alpha blending |
||
3496 | D3DRENDERSTATE_FOGENABLE, // TRUE to enable fog |
||
3497 | D3DRENDERSTATE_SPECULARENABLE, // TRUE to enable specular |
||
3498 | D3DRENDERSTATE_ZVISIBLE, // TRUE to enable z checking |
||
3499 | D3DRENDERSTATE_SUBPIXEL, // TRUE to enable subpixel correction |
||
3500 | D3DRENDERSTATE_SUBPIXELX, // TRUE to enable correction in X only |
||
3501 | D3DRENDERSTATE_STIPPLEDALPHA, // TRUE to enable stippled alpha |
||
3502 | D3DRENDERSTATE_FOGCOLOR, // TD3DColor |
||
3503 | D3DRENDERSTATE_FOGTABLEMODE, // TD3DFogMode |
||
3504 | D3DRENDERSTATE_FOGSTART, // Fog start (for both vertex and pixel fog) |
||
3505 | D3DRENDERSTATE_FOGEND, // Fog end |
||
3506 | D3DRENDERSTATE_FOGDENSITY, // Fog density |
||
3507 | D3DRENDERSTATE_STIPPLEENABLE, // TRUE to enable stippling |
||
3508 | D3DRENDERSTATE_EDGEANTIALIAS, // TRUE to enable edge antialiasing |
||
3509 | D3DRENDERSTATE_COLORKEYENABLE, // TRUE to enable source colorkeyed textures |
||
3510 | D3DRENDERSTATE_BORDERCOLOR, // Border color for texturing w/border |
||
3511 | D3DRENDERSTATE_TEXTUREADDRESSU, // Texture addressing mode for U coordinate |
||
3512 | D3DRENDERSTATE_TEXTUREADDRESSV, // Texture addressing mode for V coordinate |
||
3513 | D3DRENDERSTATE_MIPMAPLODBIAS, // TD3DValue Mipmap LOD bias |
||
3514 | D3DRENDERSTATE_ZBIAS, // LONG Z bias |
||
3515 | D3DRENDERSTATE_RANGEFOGENABLE, // Enables range-based fog |
||
3516 | D3DRENDERSTATE_ANISOTROPY, // Max. anisotropy. 1 = no anisotropy |
||
3517 | D3DRENDERSTATE_FLUSHBATCH, // Explicit flush for DP batching (DX5 Only) |
||
3518 | D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT,// BOOL enable sort-independent transparency |
||
3519 | D3DRENDERSTATE_STENCILENABLE, // BOOL enable/disable stenciling |
||
3520 | D3DRENDERSTATE_STENCILFAIL, // TD3DStencilOp to do if stencil test fails |
||
3521 | D3DRENDERSTATE_STENCILZFAIL, // TD3DStencilOp to do if stencil test passes and Z test fails |
||
3522 | D3DRENDERSTATE_STENCILPASS, // TD3DStencilOp to do if both stencil and Z tests pass |
||
3523 | D3DRENDERSTATE_STENCILFUNC , // TD3DCmpFunc fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true |
||
3524 | D3DRENDERSTATE_STENCILREF, // Reference value used in stencil test |
||
3525 | D3DRENDERSTATE_STENCILMASK, // Mask value used in stencil test |
||
3526 | D3DRENDERSTATE_STENCILWRITEMASK, // Write mask applied to values written to stencil buffer |
||
3527 | D3DRENDERSTATE_TEXTUREFACTOR, // TD3DColor used for multi-texture blend |
||
3528 | D3DRENDERSTATE_INVALID_61, |
||
3529 | D3DRENDERSTATE_INVALID_62, |
||
3530 | D3DRENDERSTATE_INVALID_63, |
||
3531 | D3DRENDERSTATE_STIPPLEPATTERN00, // Stipple pattern 01... |
||
3532 | D3DRENDERSTATE_STIPPLEPATTERN01, |
||
3533 | D3DRENDERSTATE_STIPPLEPATTERN02, |
||
3534 | D3DRENDERSTATE_STIPPLEPATTERN03, |
||
3535 | D3DRENDERSTATE_STIPPLEPATTERN04, |
||
3536 | D3DRENDERSTATE_STIPPLEPATTERN05, |
||
3537 | D3DRENDERSTATE_STIPPLEPATTERN06, |
||
3538 | D3DRENDERSTATE_STIPPLEPATTERN07, |
||
3539 | D3DRENDERSTATE_STIPPLEPATTERN08, |
||
3540 | D3DRENDERSTATE_STIPPLEPATTERN09, |
||
3541 | D3DRENDERSTATE_STIPPLEPATTERN10, |
||
3542 | D3DRENDERSTATE_STIPPLEPATTERN11, |
||
3543 | D3DRENDERSTATE_STIPPLEPATTERN12, |
||
3544 | D3DRENDERSTATE_STIPPLEPATTERN13, |
||
3545 | D3DRENDERSTATE_STIPPLEPATTERN14, |
||
3546 | D3DRENDERSTATE_STIPPLEPATTERN15, |
||
3547 | D3DRENDERSTATE_STIPPLEPATTERN16, |
||
3548 | D3DRENDERSTATE_STIPPLEPATTERN17, |
||
3549 | D3DRENDERSTATE_STIPPLEPATTERN18, |
||
3550 | D3DRENDERSTATE_STIPPLEPATTERN19, |
||
3551 | D3DRENDERSTATE_STIPPLEPATTERN20, |
||
3552 | D3DRENDERSTATE_STIPPLEPATTERN21, |
||
3553 | D3DRENDERSTATE_STIPPLEPATTERN22, |
||
3554 | D3DRENDERSTATE_STIPPLEPATTERN23, |
||
3555 | D3DRENDERSTATE_STIPPLEPATTERN24, |
||
3556 | D3DRENDERSTATE_STIPPLEPATTERN25, |
||
3557 | D3DRENDERSTATE_STIPPLEPATTERN26, |
||
3558 | D3DRENDERSTATE_STIPPLEPATTERN27, |
||
3559 | D3DRENDERSTATE_STIPPLEPATTERN28, |
||
3560 | D3DRENDERSTATE_STIPPLEPATTERN29, |
||
3561 | D3DRENDERSTATE_STIPPLEPATTERN30, |
||
3562 | D3DRENDERSTATE_STIPPLEPATTERN31, |
||
3563 | D3DRENDERSTATE_INVALID_95, |
||
3564 | D3DRENDERSTATE_INVALID_96, |
||
3565 | D3DRENDERSTATE_INVALID_97, |
||
3566 | D3DRENDERSTATE_INVALID_98, |
||
3567 | D3DRENDERSTATE_INVALID_99, |
||
3568 | D3DRENDERSTATE_INVALID_100, |
||
3569 | D3DRENDERSTATE_INVALID_101, |
||
3570 | D3DRENDERSTATE_INVALID_102, |
||
3571 | D3DRENDERSTATE_INVALID_103, |
||
3572 | D3DRENDERSTATE_INVALID_104, |
||
3573 | D3DRENDERSTATE_INVALID_105, |
||
3574 | D3DRENDERSTATE_INVALID_106, |
||
3575 | D3DRENDERSTATE_INVALID_107, |
||
3576 | D3DRENDERSTATE_INVALID_108, |
||
3577 | D3DRENDERSTATE_INVALID_109, |
||
3578 | D3DRENDERSTATE_INVALID_110, |
||
3579 | D3DRENDERSTATE_INVALID_111, |
||
3580 | D3DRENDERSTATE_INVALID_112, |
||
3581 | D3DRENDERSTATE_INVALID_113, |
||
3582 | D3DRENDERSTATE_INVALID_114, |
||
3583 | D3DRENDERSTATE_INVALID_115, |
||
3584 | D3DRENDERSTATE_INVALID_116, |
||
3585 | D3DRENDERSTATE_INVALID_117, |
||
3586 | D3DRENDERSTATE_INVALID_118, |
||
3587 | D3DRENDERSTATE_INVALID_119, |
||
3588 | D3DRENDERSTATE_INVALID_120, |
||
3589 | D3DRENDERSTATE_INVALID_121, |
||
3590 | D3DRENDERSTATE_INVALID_122, |
||
3591 | D3DRENDERSTATE_INVALID_123, |
||
3592 | D3DRENDERSTATE_INVALID_124, |
||
3593 | D3DRENDERSTATE_INVALID_125, |
||
3594 | D3DRENDERSTATE_INVALID_126, |
||
3595 | D3DRENDERSTATE_INVALID_127, |
||
3596 | // |
||
3597 | // 128 values [128, 255] are reserved for texture coordinate wrap flags. |
||
3598 | // These are constructed with the D3DWRAP_U and D3DWRAP_V macros. Using |
||
3599 | // a flags word preserves forward compatibility with texture coordinates |
||
3600 | // that are >2D. |
||
3601 | // |
||
3602 | D3DRENDERSTATE_WRAP0, // wrap for 1st texture coord. set |
||
3603 | D3DRENDERSTATE_WRAP1, // wrap for 2nd texture coord. set |
||
3604 | D3DRENDERSTATE_WRAP2, // wrap for 3rd texture coord. set |
||
3605 | D3DRENDERSTATE_WRAP3, // wrap for 4th texture coord. set |
||
3606 | D3DRENDERSTATE_WRAP4, // wrap for 5th texture coord. set |
||
3607 | D3DRENDERSTATE_WRAP5, // wrap for 6th texture coord. set |
||
3608 | D3DRENDERSTATE_WRAP6, // wrap for 7th texture coord. set |
||
3609 | D3DRENDERSTATE_WRAP7, // wrap for 8th texture coord. set |
||
3610 | D3DRENDERSTATE_CLIPPING, |
||
3611 | D3DRENDERSTATE_LIGHTING, |
||
3612 | D3DRENDERSTATE_EXTENTS, |
||
3613 | D3DRENDERSTATE_AMBIENT, |
||
3614 | D3DRENDERSTATE_FOGVERTEXMODE, |
||
3615 | D3DRENDERSTATE_COLORVERTEX, |
||
3616 | D3DRENDERSTATE_LOCALVIEWER, |
||
3617 | D3DRENDERSTATE_NORMALIZENORMALS, |
||
3618 | D3DRENDERSTATE_COLORKEYBLENDENABLE, |
||
3619 | D3DRENDERSTATE_DIFFUSEMATERIALSOURCE, |
||
3620 | D3DRENDERSTATE_SPECULARMATERIALSOURCE, |
||
3621 | D3DRENDERSTATE_AMBIENTMATERIALSOURCE, |
||
3622 | D3DRENDERSTATE_EMISSIVEMATERIALSOURCE, |
||
3623 | D3DRENDERSTATE_INVALID_149, |
||
3624 | D3DRENDERSTATE_INVALID_150, |
||
3625 | D3DRENDERSTATE_VERTEXBLEND, |
||
3626 | D3DRENDERSTATE_CLIPPLANEENABLE |
||
3627 | ); |
||
3628 | |||
3629 | D3DRENDERSTATETYPE = TD3DRenderStateType; |
||
3630 | |||
3631 | TD3DMaterialColorSource = ( |
||
3632 | D3DMCS_MATERIAL, // Color from material is used |
||
3633 | D3DMCS_COLOR1, // Diffuse vertex color is used |
||
3634 | D3DMCS_COLOR2 // Specular vertex color is used |
||
3635 | ); // force 32-bit size enum |
||
3636 | |||
3637 | const |
||
3638 | { For back-compatibility with legacy compilations } |
||
3639 | D3DRENDERSTATE_BLENDENABLE = D3DRENDERSTATE_ALPHABLENDENABLE; |
||
3640 | D3DRENDERSTATE_FOGTABLESTART = D3DRENDERSTATE_FOGSTART; |
||
3641 | D3DRENDERSTATE_FOGTABLEEND = D3DRENDERSTATE_FOGEND; |
||
3642 | D3DRENDERSTATE_FOGTABLEDENSITY = D3DRENDERSTATE_FOGDENSITY; |
||
3643 | |||
3644 | { Bias to apply to the texture coordinate set to apply a wrap to. } |
||
3645 | D3DRENDERSTATE_WRAPBIAS = TD3DRenderStateType(128); |
||
3646 | |||
3647 | { Flags to construct the WRAP render states } |
||
3648 | D3DWRAP_U = $00000001; |
||
3649 | D3DWRAP_V = $00000002; |
||
3650 | |||
3651 | { Flags to construct the WRAP render states for 1D thru 4D texture coordinates } |
||
3652 | D3DWRAPCOORD_0 = $00000001; // same as D3DWRAP_U |
||
3653 | D3DWRAPCOORD_1 = $00000002; // same as D3DWRAP_V |
||
3654 | D3DWRAPCOORD_2 = $00000004; |
||
3655 | D3DWRAPCOORD_3 = $00000008; |
||
3656 | |||
3657 | function D3DRENDERSTATE_STIPPLEPATTERN(y: DWORD): TD3DRenderStateType; |
||
3658 | |||
3659 | type |
||
3660 | |||
3661 | TD3DState = record |
||
3662 | case Integer of |
||
3663 | 0: ( |
||
3664 | dtstTransformStateType: TD3DTransformStateType; |
||
3665 | dwArg: array[0..0] of DWORD; |
||
3666 | ); |
||
3667 | 1: ( |
||
3668 | dlstLightStateType: TD3DLightStateType; |
||
3669 | dvArg: array[0..0] of TD3DValue; |
||
3670 | ); |
||
3671 | 2: ( |
||
3672 | drstRenderStateType: TD3DRenderStateType; |
||
3673 | ); |
||
3674 | end; |
||
3675 | |||
3676 | D3DSTATE = TD3DState; |
||
3677 | |||
3678 | { TD3DMatrixLoad structure } |
||
3679 | |||
3680 | TD3DMatrixLoad = record |
||
3681 | hDestMatrix: TD3DMatrixHandle; // Destination matrix |
||
3682 | hSrcMatrix: TD3DMatrixHandle; // Source matrix |
||
3683 | end; |
||
3684 | |||
3685 | D3DMATRIXLOAD = TD3DMatrixLoad; |
||
3686 | |||
3687 | { TD3DMatrixMultiply structure } |
||
3688 | |||
3689 | TD3DMatrixMultiply = record |
||
3690 | hDestMatrix: TD3DMatrixHandle; // Destination matrix |
||
3691 | hSrcMatrix1: TD3DMatrixHandle; // First source matrix |
||
3692 | hSrcMatrix2: TD3DMatrixHandle; // Second source matrix |
||
3693 | end; |
||
3694 | |||
3695 | D3DMATRIXMULTIPLY = TD3DMatrixMultiply; |
||
3696 | |||
3697 | { TD3DProcessVertices structure } |
||
3698 | |||
3699 | TD3DProcessVertices = record |
||
3700 | dwFlags: DWORD; // Do we transform or light or just copy? |
||
3701 | wStart: WORD; // Index to first vertex in source |
||
3702 | wDest: WORD; // Index to first vertex in local buffer |
||
3703 | dwCount: DWORD; // Number of vertices to be processed |
||
3704 | dwReserved: DWORD; // Must be zero |
||
3705 | end; |
||
3706 | |||
3707 | D3DPROCESSVERTICES = TD3DProcessVertices; |
||
3708 | |||
3709 | const |
||
3710 | D3DPROCESSVERTICES_TRANSFORMLIGHT = $00000000; |
||
3711 | D3DPROCESSVERTICES_TRANSFORM = $00000001; |
||
3712 | D3DPROCESSVERTICES_COPY = $00000002; |
||
3713 | D3DPROCESSVERTICES_OPMASK = $00000007; |
||
3714 | |||
3715 | D3DPROCESSVERTICES_UPDATEEXTENTS = $00000008; |
||
3716 | D3DPROCESSVERTICES_NOCOLOR = $00000010; |
||
3717 | |||
3718 | { TD3DTextureStagesStateType } |
||
3719 | |||
3720 | type |
||
3721 | TD3DTextureStagesStateType = ( |
||
3722 | D3DTSS_INVALID_0, |
||
3723 | D3DTSS_COLOROP, // TD3DTextureOp - per-stage blending controls for color channels |
||
3724 | D3DTSS_COLORARG1, // D3DTA_* (texture arg) |
||
3725 | D3DTSS_COLORARG2, // D3DTA_* (texture arg) |
||
3726 | D3DTSS_ALPHAOP, // TD3DTextureOp - per-stage blending controls for alpha channel |
||
3727 | D3DTSS_ALPHAARG1, // D3DTA_* (texture arg) |
||
3728 | D3DTSS_ALPHAARG2, // D3DTA_* (texture arg) |
||
3729 | D3DTSS_BUMPENVMAT00, // TD3DValue (bump mapping matrix) |
||
3730 | D3DTSS_BUMPENVMAT01, // TD3DValue (bump mapping matrix) |
||
3731 | D3DTSS_BUMPENVMAT10, // TD3DValue (bump mapping matrix) |
||
3732 | D3DTSS_BUMPENVMAT11, // TD3DValue (bump mapping matrix) |
||
3733 | D3DTSS_TEXCOORDINDEX, // identifies which set of texture coordinates index this texture |
||
3734 | D3DTSS_ADDRESS, // TD3DTextureAddress for both coordinates |
||
3735 | D3DTSS_ADDRESSU, // TD3DTextureAddress for U coordinate |
||
3736 | D3DTSS_ADDRESSV, // TD3DTextureAddress for V coordinate |
||
3737 | D3DTSS_BORDERCOLOR, // TD3DColor |
||
3738 | D3DTSS_MAGFILTER, // TD3DTextureMagFilter filter to use for magnification |
||
3739 | D3DTSS_MINFILTER, // TD3DTextureMinFilter filter to use for minification |
||
3740 | D3DTSS_MIPFILTER, // TD3DTextureMipFilter filter to use between mipmaps during minification |
||
3741 | D3DTSS_MIPMAPLODBIAS, // D3DVALUE Mipmap LOD bias |
||
3742 | D3DTSS_MAXMIPLEVEL, // DWORD 0..(n-1) LOD index of largest map to use (0 == largest) |
||
3743 | D3DTSS_MAXANISOTROPY, // DWORD maximum anisotropy |
||
3744 | D3DTSS_BUMPENVLSCALE, // TD3DValue scale for bump map luminance |
||
3745 | D3DTSS_BUMPENVLOFFSET, // TD3DValue offset for bump map luminance |
||
3746 | D3DTSS_TEXTURETRANSFORMFLAGS // D3DTEXTURETRANSFORMFLAGS controls texture transform |
||
3747 | ); |
||
3748 | |||
3749 | D3DTEXTURESTAGESTATETYPE = TD3DTextureStagesStateType; |
||
3750 | |||
3751 | const |
||
3752 | { Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position } |
||
3753 | { and normal in the camera space) should be taken as texture coordinates } |
||
3754 | { Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from } |
||
3755 | |||
3756 | D3DTSS_TCI_PASSTHRU = $00000000; |
||
3757 | D3DTSS_TCI_CAMERASPACENORMAL = $00010000; |
||
3758 | D3DTSS_TCI_CAMERASPACEPOSITION = $00020000; |
||
3759 | D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = $00030000; |
||
3760 | |||
3761 | { TD3DTextureOp } |
||
3762 | |||
3763 | type |
||
3764 | TD3DTextureOp = ( |
||
3765 | D3DTOP_INVALID_0, |
||
3766 | // Control |
||
3767 | D3DTOP_DISABLE, // disables stage |
||
3768 | D3DTOP_SELECTARG1, // the default |
||
3769 | D3DTOP_SELECTARG2, |
||
3770 | // Modulate |
||
3771 | D3DTOP_MODULATE, // multiply args together |
||
3772 | D3DTOP_MODULATE2X, // multiply and 1 bit |
||
3773 | D3DTOP_MODULATE4X, // multiply and 2 bits |
||
3774 | // Add |
||
3775 | D3DTOP_ADD, // add arguments together |
||
3776 | D3DTOP_ADDSIGNED, // add with -0.5 bias |
||
3777 | D3DTOP_ADDSIGNED2X, // as above but left 1 bit |
||
3778 | D3DTOP_SUBTRACT, // Arg1 - Arg2, with no saturation |
||
3779 | D3DTOP_ADDSMOOTH, // add 2 args, subtract product |
||
3780 | // Arg1 + Arg2 - Arg1*Arg2 |
||
3781 | // = Arg1 + (1-Arg1)*Arg2 |
||
3782 | // Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) |
||
3783 | D3DTOP_BLENDDIFFUSEALPHA, // iterated alpha |
||
3784 | D3DTOP_BLENDTEXTUREALPHA, // texture alpha |
||
3785 | D3DTOP_BLENDFACTORALPHA, // alpha from D3DRENDERSTATE_TEXTUREFACTOR |
||
3786 | // Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) |
||
3787 | D3DTOP_BLENDTEXTUREALPHAPM, // texture alpha |
||
3788 | D3DTOP_BLENDCURRENTALPHA, // by alpha of current color |
||
3789 | // Specular mapping |
||
3790 | D3DTOP_PREMODULATE, // modulate with next texture before use |
||
3791 | D3DTOP_MODULATEALPHA_ADDCOLOR, // Arg1.RGB + Arg1.A*Arg2.RGB |
||
3792 | // COLOROP only |
||
3793 | D3DTOP_MODULATECOLOR_ADDALPHA, // Arg1.RGB*Arg2.RGB + Arg1.A |
||
3794 | // COLOROP only |
||
3795 | D3DTOP_MODULATEINVALPHA_ADDCOLOR, // (1-Arg1.A)*Arg2.RGB + Arg1.RGB |
||
3796 | // COLOROP only |
||
3797 | D3DTOP_MODULATEINVCOLOR_ADDALPHA, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A |
||
3798 | // COLOROP only |
||
3799 | // Bump mapping |
||
3800 | D3DTOP_BUMPENVMAP, // per pixel env map perturbation |
||
3801 | D3DTOP_BUMPENVMAPLUMINANCE, // with luminance channel |
||
3802 | // This can do either diffuse or specular bump mapping with correct input. |
||
3803 | // Performs the function (Arg1.R*Arg2.R + Arg1.G*Arg2.G + Arg1.B*Arg2.B) |
||
3804 | // where each component has been scaled and offset to make it signed. |
||
3805 | // The result is replicated into all four (including alpha) channels. |
||
3806 | // This is a valid COLOROP only. |
||
3807 | D3DTOP_DOTPRODUCT3 |
||
3808 | ); |
||
3809 | |||
3810 | D3DTEXTUREOP = TD3DTextureOp; |
||
3811 | |||
3812 | { Values for COLORARG1,2 and ALPHAARG1,2 texture blending operations |
||
3813 | set in texture processing stage controls in D3DRENDERSTATE. } |
||
3814 | |||
3815 | const |
||
3816 | D3DTA_SELECTMASK = $0000000f; // mask for arg selector |
||
3817 | D3DTA_DIFFUSE = $00000000; // select diffuse color |
||
3818 | D3DTA_CURRENT = $00000001; // select result of previous stage |
||
3819 | D3DTA_TEXTURE = $00000002; // select texture color |
||
3820 | D3DTA_TFACTOR = $00000003; // select RENDERSTATE_TEXTUREFACTOR |
||
3821 | D3DTA_SPECULAR = $00000004; // select specular color |
||
3822 | D3DTA_COMPLEMENT = $00000010; // take 1.0 - x |
||
3823 | D3DTA_ALPHAREPLICATE = $00000020; // replicate alpha to color components |
||
3824 | |||
3825 | { IDirect3DTexture2 State Filter Types } |
||
3826 | |||
3827 | type |
||
3828 | TD3DTextureMagFilter = ( |
||
3829 | D3DTFG_INVALID_0, |
||
3830 | D3DTFG_POINT, // nearest |
||
3831 | D3DTFG_LINEAR, // linear interpolation |
||
3832 | D3DTFG_FLATCUBIC, // cubic |
||
3833 | D3DTFG_GAUSSIANCUBIC, // different cubic kernel |
||
3834 | D3DTFG_ANISOTROPIC |
||
3835 | ); |
||
3836 | |||
3837 | D3DTEXTUREMAGFILTER = TD3DTextureMagFilter; |
||
3838 | |||
3839 | TD3DTextureMinFilter = ( |
||
3840 | D3DTFN_INVALID_0, |
||
3841 | D3DTFN_POINT, // nearest |
||
3842 | D3DTFN_LINEAR, // linear interpolation |
||
3843 | D3DTFN_ANISOTROPIC |
||
3844 | ); |
||
3845 | |||
3846 | D3DTEXTUREMINFILTER = TD3DTextureMinFilter; |
||
3847 | |||
3848 | TD3DTextureMipFilter = ( |
||
3849 | D3DTFP_INVALID_0, |
||
3850 | D3DTFP_NONE, // mipmapping disabled (use MAG filter) |
||
3851 | D3DTFP_POINT, // nearest |
||
3852 | D3DTFP_LINEAR // linear interpolation |
||
3853 | ); |
||
3854 | |||
3855 | D3DTEXTUREMIPFILTER = TD3DTextureMipFilter; |
||
3856 | |||
3857 | { Triangle flags } |
||
3858 | |||
3859 | const |
||
3860 | D3DTRIFLAG_START = $00000000; |
||
3861 | D3DTRIFLAG_ODD = $0000001e; |
||
3862 | D3DTRIFLAG_EVEN = $0000001f; |
||
3863 | |||
3864 | function D3DTRIFLAG_STARTFLAT(len: DWORD): DWORD; |
||
3865 | |||
3866 | { Triangle edge flags } |
||
3867 | |||
3868 | const |
||
3869 | D3DTRIFLAG_EDGEENABLE1 = $00000100; // v0-v1 edge |
||
3870 | D3DTRIFLAG_EDGEENABLE2 = $00000200; // v1-v2 edge |
||
3871 | D3DTRIFLAG_EDGEENABLE3 = $00000400; // v2-v0 edge |
||
3872 | D3DTRIFLAG_EDGEENABLETRIANGLE = |
||
3873 | D3DTRIFLAG_EDGEENABLE1 or D3DTRIFLAG_EDGEENABLE2 or D3DTRIFLAG_EDGEENABLE3; |
||
3874 | |||
3875 | { TD3DTriangle structure } |
||
3876 | |||
3877 | type |
||
3878 | PD3DTriangle = ^TD3DTriangle; |
||
3879 | TD3DTriangle = record |
||
3880 | case Integer of |
||
3881 | 0: ( |
||
3882 | v1: WORD; // Vertex indices |
||
3883 | v2: WORD; |
||
3884 | v3: WORD; |
||
3885 | wFlags: WORD; // Edge (and other) flags |
||
3886 | ); |
||
3887 | 1: ( |
||
3888 | wV1: WORD; |
||
3889 | wV2: WORD; |
||
3890 | wV3: WORD; |
||
3891 | ); |
||
3892 | end; |
||
3893 | |||
3894 | D3DTRIANGLE = TD3DTriangle; |
||
3895 | LPD3DTRIANGLE = PD3DTriangle; |
||
3896 | |||
3897 | { TD3DLine structure } |
||
3898 | |||
3899 | PD3DLine = ^TD3DLine; |
||
3900 | TD3DLine = record |
||
3901 | case Integer of |
||
3902 | 0: ( |
||
3903 | v1: WORD; // Vertex indices |
||
3904 | v2: WORD; |
||
3905 | ); |
||
3906 | 1: ( |
||
3907 | wV1: WORD; |
||
3908 | wV2: WORD; |
||
3909 | ); |
||
3910 | end; |
||
3911 | |||
3912 | D3DLINE = TD3DLine; |
||
3913 | LPD3DLINE = PD3DLine; |
||
3914 | |||
3915 | { TD3DSpan structure } |
||
3916 | |||
3917 | PD3DSpan = ^TD3DSpan; |
||
3918 | TD3DSpan = record |
||
3919 | wCount: WORD; // Number of spans |
||
3920 | wFirst: WORD; // Index to first vertex |
||
3921 | end; |
||
3922 | |||
3923 | D3DSPAN = TD3DSpan; |
||
3924 | LPD3DSPAN = PD3DSpan; |
||
3925 | |||
3926 | { TD3DPoint structure } |
||
3927 | |||
3928 | PD3DPoint = ^TD3DPoint; |
||
3929 | TD3DPoint = record |
||
3930 | wCount: WORD; // number of points |
||
3931 | wFirst: WORD; // index to first vertex |
||
3932 | end; |
||
3933 | |||
3934 | D3DPOINT = TD3DPoint; |
||
3935 | LPD3DPOINT = PD3DPoint; |
||
3936 | |||
3937 | { TD3DBranch structure } |
||
3938 | |||
3939 | PD3DBranch = ^TD3DBranch; |
||
3940 | TD3DBranch = record |
||
3941 | dwMask: DWORD; // Bitmask against D3D status |
||
3942 | dwValue: DWORD; |
||
3943 | bNegate: BOOL; // TRUE to negate comparison |
||
3944 | dwOffset: DWORD; // How far to branch forward (0 for exit) |
||
3945 | end; |
||
3946 | |||
3947 | D3DBRANCH = TD3DBranch; |
||
3948 | LPD3DBRANCH = PD3DBranch; |
||
3949 | |||
3950 | { TD3DStatus structure } |
||
3951 | |||
3952 | PD3DStatus = ^TD3DStatus; |
||
3953 | TD3DStatus = record |
||
3954 | dwFlags: DWORD; // Do we set extents or status |
||
3955 | dwStatus: DWORD; // D3D status |
||
3956 | drExtent: TD3DRect; |
||
3957 | end; |
||
3958 | |||
3959 | D3DSTATUS = TD3DStatus; |
||
3960 | LPD3DSTATUS = PD3DStatus; |
||
3961 | |||
3962 | const |
||
3963 | D3DSETSTATUS_STATUS = $00000001; |
||
3964 | D3DSETSTATUS_EXTENTS = $00000002; |
||
3965 | D3DSETSTATUS_ALL = D3DSETSTATUS_STATUS or D3DSETSTATUS_EXTENTS; |
||
3966 | |||
3967 | { TD3DClipStatus structure } |
||
3968 | |||
3969 | type |
||
3970 | PD3DClipStatus = ^TD3DClipStatus; |
||
3971 | TD3DClipStatus = record |
||
3972 | dwFlags: DWORD; // Do we set 2d extents, 3D extents or status |
||
3973 | dwStatus: DWORD; // Clip status |
||
3974 | minx, maxx: Single; // X extents |
||
3975 | miny, maxy: Single; // Y extents |
||
3976 | minz, maxz: Single; // Z extents |
||
3977 | end; |
||
3978 | |||
3979 | D3DCLIPSTATUS = TD3DClipStatus; |
||
3980 | LPD3DCLIPSTATUS = PD3DClipStatus; |
||
3981 | |||
3982 | const |
||
3983 | D3DCLIPSTATUS_STATUS = $00000001; |
||
3984 | D3DCLIPSTATUS_EXTENTS2 = $00000002; |
||
3985 | D3DCLIPSTATUS_EXTENTS3 = $00000004; |
||
3986 | |||
3987 | { TD3DStats structure } |
||
3988 | |||
3989 | type |
||
3990 | PD3DStats = ^TD3DStats; |
||
3991 | TD3DStats = record |
||
3992 | dwSize: DWORD; |
||
3993 | dwTrianglesDrawn: DWORD; |
||
3994 | dwLinesDrawn: DWORD; |
||
3995 | dwPointsDrawn: DWORD; |
||
3996 | dwSpansDrawn: DWORD; |
||
3997 | dwVerticesProcessed: DWORD; |
||
3998 | end; |
||
3999 | |||
4000 | D3DSTATS = TD3DStats; |
||
4001 | LPD3DSTATS = PD3DStats; |
||
4002 | |||
4003 | { Execute options. } |
||
4004 | |||
4005 | const |
||
4006 | D3DEXECUTE_CLIPPED = $00000001; |
||
4007 | D3DEXECUTE_UNCLIPPED = $00000002; |
||
4008 | |||
4009 | { TD3DExecuteData structure } |
||
4010 | |||
4011 | type |
||
4012 | PD3DExecuteData = ^TD3DExecuteData; |
||
4013 | TD3DExecuteData = record |
||
4014 | dwSize: DWORD; |
||
4015 | dwVertexOffset: DWORD; |
||
4016 | dwVertexCount: DWORD; |
||
4017 | dwInstructionOffset: DWORD; |
||
4018 | dwInstructionLength: DWORD; |
||
4019 | dwHVertexOffset: DWORD; |
||
4020 | dsStatus: D3DSTATUS; // Status after execute |
||
4021 | end; |
||
4022 | |||
4023 | D3DEXECUTEDATA = TD3DExecuteData; |
||
4024 | LPD3DEXECUTEDATA = PD3DExecuteData; |
||
4025 | |||
4026 | { Palette flags. } |
||
4027 | |||
4028 | const |
||
4029 | D3DPAL_FREE = $00; // Renderer may use this entry freely |
||
4030 | D3DPAL_READONLY = $40; // Renderer may not set this entry |
||
4031 | D3DPAL_RESERVED = $80; // Renderer may not use this entry |
||
4032 | |||
4033 | { TD3DVertexBufferDesc structure } |
||
4034 | |||
4035 | type |
||
4036 | PD3DVertexBufferDesc = ^TD3DVertexBufferDesc; |
||
4037 | TD3DVertexBufferDesc = record |
||
4038 | dwSize: DWORD; |
||
4039 | dwCaps: DWORD; |
||
4040 | dwFVF: DWORD; |
||
4041 | dwNumVertices: DWORD; |
||
4042 | end; |
||
4043 | |||
4044 | D3DVERTEXBUFFERDESC = TD3DVertexBufferDesc; |
||
4045 | LPD3DVERTEXBUFFERDESC = PD3DVertexBufferDesc; |
||
4046 | |||
4047 | { These correspond to DDSCAPS_* flags } |
||
4048 | |||
4049 | const |
||
4050 | D3DVBCAPS_SYSTEMMEMORY = $00000800; |
||
4051 | D3DVBCAPS_WRITEONLY = $00010000; |
||
4052 | D3DVBCAPS_OPTIMIZED = $80000000; |
||
4053 | D3DVBCAPS_DONOTCLIP = $00000001; |
||
4054 | |||
4055 | { Vertex Operations for ProcessVertices } |
||
4056 | |||
4057 | D3DVOP_LIGHT = 1 shl 10; |
||
4058 | D3DVOP_TRANSFORM = 1 shl 0; |
||
4059 | D3DVOP_CLIP = 1 shl 2; |
||
4060 | D3DVOP_EXTENTS = 1 shl 3; |
||
4061 | |||
4062 | { The maximum number of vertices user can pass to any d3d |
||
4063 | drawing function or to create vertex buffer with } |
||
4064 | D3DMAXNUMVERTICES = (1 shl 16)-1; |
||
4065 | |||
4066 | { The maximum number of primitives user can pass to any d3d drawing function. } |
||
4067 | D3DMAXNUMPRIMITIVES = (1 shl 16)-1; |
||
4068 | |||
4069 | { Bits for dwFlags in ProcessVertices call } |
||
4070 | D3DPV_DONOTCOPYDATA = 1 shl 0; |
||
4071 | |||
4072 | { Flexible vertex format bits } |
||
4073 | |||
4074 | D3DFVF_RESERVED0 = $001; |
||
4075 | D3DFVF_POSITION_MASK = $00E; |
||
4076 | D3DFVF_XYZ = $002; |
||
4077 | D3DFVF_XYZRHW = $004; |
||
4078 | D3DFVF_XYZB1 = $006; |
||
4079 | D3DFVF_XYZB2 = $008; |
||
4080 | D3DFVF_XYZB3 = $00a; |
||
4081 | D3DFVF_XYZB4 = $00c; |
||
4082 | D3DFVF_XYZB5 = $00e; |
||
4083 | D3DFVF_NORMAL = $010; |
||
4084 | D3DFVF_RESERVED1 = $020; |
||
4085 | D3DFVF_DIFFUSE = $040; |
||
4086 | D3DFVF_SPECULAR = $080; |
||
4087 | D3DFVF_TEXCOUNT_MASK = $f00; |
||
4088 | D3DFVF_TEXCOUNT_SHIFT = 8; |
||
4089 | D3DFVF_TEX0 = $000; |
||
4090 | D3DFVF_TEX1 = $100; |
||
4091 | D3DFVF_TEX2 = $200; |
||
4092 | D3DFVF_TEX3 = $300; |
||
4093 | D3DFVF_TEX4 = $400; |
||
4094 | D3DFVF_TEX5 = $500; |
||
4095 | D3DFVF_TEX6 = $600; |
||
4096 | D3DFVF_TEX7 = $700; |
||
4097 | D3DFVF_TEX8 = $800; |
||
4098 | |||
4099 | D3DFVF_RESERVED2 = $F000; // 4 reserved bits |
||
4100 | |||
4101 | D3DFVF_VERTEX = D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_TEX1; |
||
4102 | D3DFVF_LVERTEX = D3DFVF_XYZ or D3DFVF_RESERVED1 or D3DFVF_DIFFUSE or |
||
4103 | D3DFVF_SPECULAR or D3DFVF_TEX1; |
||
4104 | D3DFVF_TLVERTEX = D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or |
||
4105 | D3DFVF_TEX1; |
||
4106 | |||
4107 | { TD3DDP_PtrStride } |
||
4108 | |||
4109 | type |
||
4110 | TD3DDP_PtrStride = record |
||
4111 | lpvData: Pointer; |
||
4112 | dwStride: DWORD; |
||
4113 | end; |
||
4114 | |||
4115 | D3DDP_PTRSTRIDE = TD3DDP_PtrStride; |
||
4116 | |||
4117 | const |
||
4118 | D3DDP_MAXTEXCOORD = 8; |
||
4119 | |||
4120 | type |
||
4121 | PD3DDrawPrimitiveStridedData = ^TD3DDrawPrimitiveStridedData; |
||
4122 | TD3DDrawPrimitiveStridedData = record |
||
4123 | position: TD3DDP_PtrStride; |
||
4124 | normal: TD3DDP_PtrStride; |
||
4125 | diffuse: TD3DDP_PtrStride; |
||
4126 | specular: TD3DDP_PtrStride; |
||
4127 | textureCoords: array[0..D3DDP_MAXTEXCOORD-1] of TD3DDP_PtrStride; |
||
4128 | end; |
||
4129 | |||
4130 | D3DDRAWPRIMITIVESTRIDEDDATA = TD3DDrawPrimitiveStridedData; |
||
4131 | LPD3DDRAWPRIMITIVESTRIDEDDATA = PD3DDrawPrimitiveStridedData; |
||
4132 | |||
4133 | { ComputeSphereVisibility return values } |
||
4134 | |||
4135 | const |
||
4136 | D3DVIS_INSIDE_FRUSTUM = 0; |
||
4137 | D3DVIS_INTERSECT_FRUSTUM = 1; |
||
4138 | D3DVIS_OUTSIDE_FRUSTUM = 2; |
||
4139 | D3DVIS_INSIDE_LEFT = 0; |
||
4140 | D3DVIS_INTERSECT_LEFT = 1 shl 2; |
||
4141 | D3DVIS_OUTSIDE_LEFT = 2 shl 2; |
||
4142 | D3DVIS_INSIDE_RIGHT = 0; |
||
4143 | D3DVIS_INTERSECT_RIGHT = 1 shl 4; |
||
4144 | D3DVIS_OUTSIDE_RIGHT = 2 shl 4; |
||
4145 | D3DVIS_INSIDE_TOP = 0; |
||
4146 | D3DVIS_INTERSECT_TOP = 1 shl 6; |
||
4147 | D3DVIS_OUTSIDE_TOP = 2 shl 6; |
||
4148 | D3DVIS_INSIDE_BOTTOM = 0; |
||
4149 | D3DVIS_INTERSECT_BOTTOM = 1 shl 8; |
||
4150 | D3DVIS_OUTSIDE_BOTTOM = 2 shl 8; |
||
4151 | D3DVIS_INSIDE_NEAR = 0; |
||
4152 | D3DVIS_INTERSECT_NEAR = 1 shl 10; |
||
4153 | D3DVIS_OUTSIDE_NEAR = 2 shl 10; |
||
4154 | D3DVIS_INSIDE_FAR = 0; |
||
4155 | D3DVIS_INTERSECT_FAR = 1 shl 12; |
||
4156 | D3DVIS_OUTSIDE_FAR = 2 shl 12; |
||
4157 | |||
4158 | D3DVIS_MASK_FRUSTUM = 3 shl 0; |
||
4159 | D3DVIS_MASK_LEFT = 3 shl 2; |
||
4160 | D3DVIS_MASK_RIGHT = 3 shl 4; |
||
4161 | D3DVIS_MASK_TOP = 3 shl 6; |
||
4162 | D3DVIS_MASK_BOTTOM = 3 shl 8; |
||
4163 | D3DVIS_MASK_NEAR = 3 shl 10; |
||
4164 | D3DVIS_MASK_FAR = 3 shl 12; |
||
4165 | |||
4166 | { To be used with GetInfo() } |
||
4167 | |||
4168 | D3DDEVINFOID_TEXTUREMANAGER = 1; |
||
4169 | D3DDEVINFOID_D3DTEXTUREMANAGER = 2; |
||
4170 | D3DDEVINFOID_TEXTURING = 3; |
||
4171 | |||
4172 | type |
||
4173 | |||
4174 | { TD3DStateBlockType } |
||
4175 | |||
4176 | TD3DStateBlockType = ( |
||
4177 | D3DBST_INVALID_0, |
||
4178 | D3DSBT_PIXELSTATE, // capture pixel state |
||
4179 | D3DSBT_VERTEXSTATE // capture vertex state |
||
4180 | ); |
||
4181 | |||
4182 | D3DSTATEBLOCKTYPE = TD3DStateBlockType; |
||
4183 | |||
4184 | { TD3DVertexBlendFlags } |
||
4185 | |||
4186 | TD3DVertexBlendFlags = ( |
||
4187 | D3DVBLEND_DISABLE, // Disable vertex blending |
||
4188 | D3DVBLEND_1WEIGHT, // blend between 2 matrices |
||
4189 | D3DVBLEND_2WEIGHTS, // blend between 3 matrices |
||
4190 | D3DVBLEND_3WEIGHTS // blend between 4 matrices |
||
4191 | ); |
||
4192 | |||
4193 | D3DVERTEXBLENDFLAGS = TD3DVertexBlendFlags; |
||
4194 | |||
4195 | { TD3DTextureTransformFlags } |
||
4196 | |||
4197 | TD3DTextureTransformFlags = ( |
||
4198 | D3DTTFF_DISABLE, // texture coordinates are passed directly |
||
4199 | D3DTTFF_COUNT1, // rasterizer should expect 1-D texture coords |
||
4200 | D3DTTFF_COUNT2, // rasterizer should expect 2-D texture coords |
||
4201 | D3DTTFF_COUNT3, // rasterizer should expect 3-D texture coords |
||
4202 | D3DTTFF_COUNT4, // rasterizer should expect 4-D texture coords |
||
4203 | D3DTIFF_INVALID_5, |
||
4204 | D3DTIFF_INVALID_6, |
||
4205 | D3DTIFF_INVALID_7, |
||
4206 | D3DTIFF_INVALID_8, |
||
4207 | D3DTIFF_INVALID_9, |
||
4208 | D3DTIFF_INVALID_10, |
||
4209 | D3DTIFF_INVALID_11, |
||
4210 | D3DTIFF_INVALID_12, |
||
4211 | D3DTIFF_INVALID_13, |
||
4212 | D3DTIFF_INVALID_14, |
||
4213 | D3DTIFF_INVALID_15, |
||
4214 | D3DTIFF_INVALID_16, |
||
4215 | D3DTIFF_INVALID_17, |
||
4216 | D3DTIFF_INVALID_18, |
||
4217 | D3DTIFF_INVALID_19, |
||
4218 | D3DTIFF_INVALID_20, |
||
4219 | D3DTIFF_INVALID_21, |
||
4220 | D3DTIFF_INVALID_22, |
||
4221 | D3DTIFF_INVALID_23, |
||
4222 | D3DTIFF_INVALID_24, |
||
4223 | D3DTIFF_INVALID_25, |
||
4224 | D3DTIFF_INVALID_26, |
||
4225 | D3DTIFF_INVALID_27, |
||
4226 | D3DTIFF_INVALID_28, |
||
4227 | D3DTIFF_INVALID_29, |
||
4228 | D3DTIFF_INVALID_30, |
||
4229 | D3DTIFF_INVALID_31, |
||
4230 | D3DTIFF_INVALID_32, |
||
4231 | D3DTIFF_INVALID_33, |
||
4232 | D3DTIFF_INVALID_34, |
||
4233 | D3DTIFF_INVALID_35, |
||
4234 | D3DTIFF_INVALID_36, |
||
4235 | D3DTIFF_INVALID_37, |
||
4236 | D3DTIFF_INVALID_38, |
||
4237 | D3DTIFF_INVALID_39, |
||
4238 | D3DTIFF_INVALID_40, |
||
4239 | D3DTIFF_INVALID_41, |
||
4240 | D3DTIFF_INVALID_42, |
||
4241 | D3DTIFF_INVALID_43, |
||
4242 | D3DTIFF_INVALID_44, |
||
4243 | D3DTIFF_INVALID_45, |
||
4244 | D3DTIFF_INVALID_46, |
||
4245 | D3DTIFF_INVALID_47, |
||
4246 | D3DTIFF_INVALID_48, |
||
4247 | D3DTIFF_INVALID_49, |
||
4248 | D3DTIFF_INVALID_50, |
||
4249 | D3DTIFF_INVALID_51, |
||
4250 | D3DTIFF_INVALID_52, |
||
4251 | D3DTIFF_INVALID_53, |
||
4252 | D3DTIFF_INVALID_54, |
||
4253 | D3DTIFF_INVALID_55, |
||
4254 | D3DTIFF_INVALID_56, |
||
4255 | D3DTIFF_INVALID_57, |
||
4256 | D3DTIFF_INVALID_58, |
||
4257 | D3DTIFF_INVALID_59, |
||
4258 | D3DTIFF_INVALID_60, |
||
4259 | D3DTIFF_INVALID_61, |
||
4260 | D3DTIFF_INVALID_62, |
||
4261 | D3DTIFF_INVALID_63, |
||
4262 | D3DTIFF_INVALID_64, |
||
4263 | D3DTIFF_INVALID_65, |
||
4264 | D3DTIFF_INVALID_66, |
||
4265 | D3DTIFF_INVALID_67, |
||
4266 | D3DTIFF_INVALID_68, |
||
4267 | D3DTIFF_INVALID_69, |
||
4268 | D3DTIFF_INVALID_70, |
||
4269 | D3DTIFF_INVALID_71, |
||
4270 | D3DTIFF_INVALID_72, |
||
4271 | D3DTIFF_INVALID_73, |
||
4272 | D3DTIFF_INVALID_74, |
||
4273 | D3DTIFF_INVALID_75, |
||
4274 | D3DTIFF_INVALID_76, |
||
4275 | D3DTIFF_INVALID_77, |
||
4276 | D3DTIFF_INVALID_78, |
||
4277 | D3DTIFF_INVALID_79, |
||
4278 | D3DTIFF_INVALID_80, |
||
4279 | D3DTIFF_INVALID_81, |
||
4280 | D3DTIFF_INVALID_82, |
||
4281 | D3DTIFF_INVALID_83, |
||
4282 | D3DTIFF_INVALID_84, |
||
4283 | D3DTIFF_INVALID_85, |
||
4284 | D3DTIFF_INVALID_86, |
||
4285 | D3DTIFF_INVALID_87, |
||
4286 | D3DTIFF_INVALID_88, |
||
4287 | D3DTIFF_INVALID_89, |
||
4288 | D3DTIFF_INVALID_90, |
||
4289 | D3DTIFF_INVALID_91, |
||
4290 | D3DTIFF_INVALID_92, |
||
4291 | D3DTIFF_INVALID_93, |
||
4292 | D3DTIFF_INVALID_94, |
||
4293 | D3DTIFF_INVALID_95, |
||
4294 | D3DTIFF_INVALID_96, |
||
4295 | D3DTIFF_INVALID_97, |
||
4296 | D3DTIFF_INVALID_98, |
||
4297 | D3DTIFF_INVALID_99, |
||
4298 | D3DTIFF_INVALID_100, |
||
4299 | D3DTIFF_INVALID_101, |
||
4300 | D3DTIFF_INVALID_102, |
||
4301 | D3DTIFF_INVALID_103, |
||
4302 | D3DTIFF_INVALID_104, |
||
4303 | D3DTIFF_INVALID_105, |
||
4304 | D3DTIFF_INVALID_106, |
||
4305 | D3DTIFF_INVALID_107, |
||
4306 | D3DTIFF_INVALID_108, |
||
4307 | D3DTIFF_INVALID_109, |
||
4308 | D3DTIFF_INVALID_110, |
||
4309 | D3DTIFF_INVALID_111, |
||
4310 | D3DTIFF_INVALID_112, |
||
4311 | D3DTIFF_INVALID_113, |
||
4312 | D3DTIFF_INVALID_114, |
||
4313 | D3DTIFF_INVALID_115, |
||
4314 | D3DTIFF_INVALID_116, |
||
4315 | D3DTIFF_INVALID_117, |
||
4316 | D3DTIFF_INVALID_118, |
||
4317 | D3DTIFF_INVALID_119, |
||
4318 | D3DTIFF_INVALID_120, |
||
4319 | D3DTIFF_INVALID_121, |
||
4320 | D3DTIFF_INVALID_122, |
||
4321 | D3DTIFF_INVALID_123, |
||
4322 | D3DTIFF_INVALID_124, |
||
4323 | D3DTIFF_INVALID_125, |
||
4324 | D3DTIFF_INVALID_126, |
||
4325 | D3DTIFF_INVALID_127, |
||
4326 | D3DTIFF_INVALID_128, |
||
4327 | D3DTIFF_INVALID_129, |
||
4328 | D3DTIFF_INVALID_130, |
||
4329 | D3DTIFF_INVALID_131, |
||
4330 | D3DTIFF_INVALID_132, |
||
4331 | D3DTIFF_INVALID_133, |
||
4332 | D3DTIFF_INVALID_134, |
||
4333 | D3DTIFF_INVALID_135, |
||
4334 | D3DTIFF_INVALID_136, |
||
4335 | D3DTIFF_INVALID_137, |
||
4336 | D3DTIFF_INVALID_138, |
||
4337 | D3DTIFF_INVALID_139, |
||
4338 | D3DTIFF_INVALID_140, |
||
4339 | D3DTIFF_INVALID_141, |
||
4340 | D3DTIFF_INVALID_142, |
||
4341 | D3DTIFF_INVALID_143, |
||
4342 | D3DTIFF_INVALID_144, |
||
4343 | D3DTIFF_INVALID_145, |
||
4344 | D3DTIFF_INVALID_146, |
||
4345 | D3DTIFF_INVALID_147, |
||
4346 | D3DTIFF_INVALID_148, |
||
4347 | D3DTIFF_INVALID_149, |
||
4348 | D3DTIFF_INVALID_150, |
||
4349 | D3DTIFF_INVALID_151, |
||
4350 | D3DTIFF_INVALID_152, |
||
4351 | D3DTIFF_INVALID_153, |
||
4352 | D3DTIFF_INVALID_154, |
||
4353 | D3DTIFF_INVALID_155, |
||
4354 | D3DTIFF_INVALID_156, |
||
4355 | D3DTIFF_INVALID_157, |
||
4356 | D3DTIFF_INVALID_158, |
||
4357 | D3DTIFF_INVALID_159, |
||
4358 | D3DTIFF_INVALID_160, |
||
4359 | D3DTIFF_INVALID_161, |
||
4360 | D3DTIFF_INVALID_162, |
||
4361 | D3DTIFF_INVALID_163, |
||
4362 | D3DTIFF_INVALID_164, |
||
4363 | D3DTIFF_INVALID_165, |
||
4364 | D3DTIFF_INVALID_166, |
||
4365 | D3DTIFF_INVALID_167, |
||
4366 | D3DTIFF_INVALID_168, |
||
4367 | D3DTIFF_INVALID_169, |
||
4368 | D3DTIFF_INVALID_170, |
||
4369 | D3DTIFF_INVALID_171, |
||
4370 | D3DTIFF_INVALID_172, |
||
4371 | D3DTIFF_INVALID_173, |
||
4372 | D3DTIFF_INVALID_174, |
||
4373 | D3DTIFF_INVALID_175, |
||
4374 | D3DTIFF_INVALID_176, |
||
4375 | D3DTIFF_INVALID_177, |
||
4376 | D3DTIFF_INVALID_178, |
||
4377 | D3DTIFF_INVALID_179, |
||
4378 | D3DTIFF_INVALID_180, |
||
4379 | D3DTIFF_INVALID_181, |
||
4380 | D3DTIFF_INVALID_182, |
||
4381 | D3DTIFF_INVALID_183, |
||
4382 | D3DTIFF_INVALID_184, |
||
4383 | D3DTIFF_INVALID_185, |
||
4384 | D3DTIFF_INVALID_186, |
||
4385 | D3DTIFF_INVALID_187, |
||
4386 | D3DTIFF_INVALID_188, |
||
4387 | D3DTIFF_INVALID_189, |
||
4388 | D3DTIFF_INVALID_190, |
||
4389 | D3DTIFF_INVALID_191, |
||
4390 | D3DTIFF_INVALID_192, |
||
4391 | D3DTIFF_INVALID_193, |
||
4392 | D3DTIFF_INVALID_194, |
||
4393 | D3DTIFF_INVALID_195, |
||
4394 | D3DTIFF_INVALID_196, |
||
4395 | D3DTIFF_INVALID_197, |
||
4396 | D3DTIFF_INVALID_198, |
||
4397 | D3DTIFF_INVALID_199, |
||
4398 | D3DTIFF_INVALID_200, |
||
4399 | D3DTIFF_INVALID_201, |
||
4400 | D3DTIFF_INVALID_202, |
||
4401 | D3DTIFF_INVALID_203, |
||
4402 | D3DTIFF_INVALID_204, |
||
4403 | D3DTIFF_INVALID_205, |
||
4404 | D3DTIFF_INVALID_206, |
||
4405 | D3DTIFF_INVALID_207, |
||
4406 | D3DTIFF_INVALID_208, |
||
4407 | D3DTIFF_INVALID_209, |
||
4408 | D3DTIFF_INVALID_210, |
||
4409 | D3DTIFF_INVALID_211, |
||
4410 | D3DTIFF_INVALID_212, |
||
4411 | D3DTIFF_INVALID_213, |
||
4412 | D3DTIFF_INVALID_214, |
||
4413 | D3DTIFF_INVALID_215, |
||
4414 | D3DTIFF_INVALID_216, |
||
4415 | D3DTIFF_INVALID_217, |
||
4416 | D3DTIFF_INVALID_218, |
||
4417 | D3DTIFF_INVALID_219, |
||
4418 | D3DTIFF_INVALID_220, |
||
4419 | D3DTIFF_INVALID_221, |
||
4420 | D3DTIFF_INVALID_222, |
||
4421 | D3DTIFF_INVALID_223, |
||
4422 | D3DTIFF_INVALID_224, |
||
4423 | D3DTIFF_INVALID_225, |
||
4424 | D3DTIFF_INVALID_226, |
||
4425 | D3DTIFF_INVALID_227, |
||
4426 | D3DTIFF_INVALID_228, |
||
4427 | D3DTIFF_INVALID_229, |
||
4428 | D3DTIFF_INVALID_230, |
||
4429 | D3DTIFF_INVALID_231, |
||
4430 | D3DTIFF_INVALID_232, |
||
4431 | D3DTIFF_INVALID_233, |
||
4432 | D3DTIFF_INVALID_234, |
||
4433 | D3DTIFF_INVALID_235, |
||
4434 | D3DTIFF_INVALID_236, |
||
4435 | D3DTIFF_INVALID_237, |
||
4436 | D3DTIFF_INVALID_238, |
||
4437 | D3DTIFF_INVALID_239, |
||
4438 | D3DTIFF_INVALID_240, |
||
4439 | D3DTIFF_INVALID_241, |
||
4440 | D3DTIFF_INVALID_242, |
||
4441 | D3DTIFF_INVALID_243, |
||
4442 | D3DTIFF_INVALID_244, |
||
4443 | D3DTIFF_INVALID_245, |
||
4444 | D3DTIFF_INVALID_246, |
||
4445 | D3DTIFF_INVALID_247, |
||
4446 | D3DTIFF_INVALID_248, |
||
4447 | D3DTIFF_INVALID_249, |
||
4448 | D3DTIFF_INVALID_250, |
||
4449 | D3DTIFF_INVALID_251, |
||
4450 | D3DTIFF_INVALID_252, |
||
4451 | D3DTIFF_INVALID_253, |
||
4452 | D3DTIFF_INVALID_254, |
||
4453 | D3DTIFF_INVALID_255, |
||
4454 | D3DTTFF_PROJECTED // texcoords to be divided by COUNTth element |
||
4455 | ); |
||
4456 | |||
4457 | { Macros to set texture coordinate format bits in the FVF id } |
||
4458 | |||
4459 | const |
||
4460 | D3DFVF_TEXTUREFORMAT2 = 0; // Two floating point values |
||
4461 | D3DFVF_TEXTUREFORMAT1 = 3; // One floating point value |
||
4462 | D3DFVF_TEXTUREFORMAT3 = 1; // Three floating point values |
||
4463 | D3DFVF_TEXTUREFORMAT4 = 2; // Four floating point values |
||
4464 | |||
4465 | function D3DFVF_TEXCOORDSIZE3(CoordIndex: DWORD): DWORD; |
||
4466 | function D3DFVF_TEXCOORDSIZE2(CoordIndex: DWORD): DWORD; |
||
4467 | function D3DFVF_TEXCOORDSIZE4(CoordIndex: DWORD): DWORD; |
||
4468 | function D3DFVF_TEXCOORDSIZE1(CoordIndex: DWORD): DWORD; |
||
4469 | |||
4470 | (*==========================================================================; |
||
4471 | * |
||
4472 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
4473 | * |
||
4474 | * File: d3dcaps.h |
||
4475 | * Content: Direct3D capabilities include file |
||
4476 | * |
||
4477 | ***************************************************************************) |
||
4478 | |||
4479 | { Description of capabilities of transform } |
||
4480 | |||
4481 | type |
||
4482 | PD3DTransformCaps = ^TD3DTransformCaps; |
||
4483 | TD3DTransformCaps = record |
||
4484 | dwSize: DWORD; |
||
4485 | dwCaps: DWORD; |
||
4486 | end; |
||
4487 | |||
4488 | D3DTRANSFORMCAPS = TD3DTransformCaps; |
||
4489 | LPD3DTRANSFORMCAPS = PD3DTransformCaps; |
||
4490 | |||
4491 | const |
||
4492 | D3DTRANSFORMCAPS_CLIP = $00000001; // Will clip whilst transforming |
||
4493 | |||
4494 | { Description of capabilities of lighting } |
||
4495 | |||
4496 | type |
||
4497 | PD3DLightingCaps = ^TD3DLightingCaps; |
||
4498 | TD3DLightingCaps = record |
||
4499 | dwSize: DWORD; |
||
4500 | dwCaps: DWORD; // Lighting caps |
||
4501 | dwLightingModel: DWORD; // Lighting model - RGB or mono |
||
4502 | dwNumLights: DWORD; // Number of lights that can be handled |
||
4503 | end; |
||
4504 | |||
4505 | D3DLIGHTINGCAPS = TD3DLightingCaps; |
||
4506 | LPD3DLIGHTINGCAPS = PD3DLightingCaps; |
||
4507 | |||
4508 | const |
||
4509 | D3DLIGHTINGMODEL_RGB = $00000001; |
||
4510 | D3DLIGHTINGMODEL_MONO = $00000002; |
||
4511 | |||
4512 | D3DLIGHTCAPS_POINT = $00000001; // Point lights supported |
||
4513 | D3DLIGHTCAPS_SPOT = $00000002; // Spot lights supported |
||
4514 | D3DLIGHTCAPS_DIRECTIONAL = $00000004; // Directional lights supported |
||
4515 | D3DLIGHTCAPS_PARALLELPOINT = $00000008; // Parallel point lights supported |
||
4516 | D3DLIGHTCAPS_GLSPOT = $00000010; // GL syle spot lights supported |
||
4517 | |||
4518 | { Description of capabilities for each primitive type } |
||
4519 | |||
4520 | type |
||
4521 | PD3DPrimCaps = ^TD3DPrimCaps; |
||
4522 | TD3DPrimCaps = record |
||
4523 | dwSize: DWORD; |
||
4524 | dwMiscCaps: DWORD; // Capability flags |
||
4525 | dwRasterCaps: DWORD; |
||
4526 | dwZCmpCaps: DWORD; |
||
4527 | dwSrcBlendCaps: DWORD; |
||
4528 | dwDestBlendCaps: DWORD; |
||
4529 | dwAlphaCmpCaps: DWORD; |
||
4530 | dwShadeCaps: DWORD; |
||
4531 | dwTextureCaps: DWORD; |
||
4532 | dwTextureFilterCaps: DWORD; |
||
4533 | dwTextureBlendCaps: DWORD; |
||
4534 | dwTextureAddressCaps: DWORD; |
||
4535 | dwStippleWidth: DWORD; // maximum width and height of |
||
4536 | dwStippleHeight: DWORD; // of supported stipple (up to 32x32) |
||
4537 | end; |
||
4538 | |||
4539 | D3DPRIMCAPS = TD3DPrimCaps; |
||
4540 | LPD3DPRIMCAPS = PD3DPrimCaps; |
||
4541 | |||
4542 | { TD3DPrimCaps dwMiscCaps } |
||
4543 | |||
4544 | const |
||
4545 | D3DPMISCCAPS_MASKPLANES = $00000001; |
||
4546 | D3DPMISCCAPS_MASKZ = $00000002; |
||
4547 | D3DPMISCCAPS_LINEPATTERNREP = $00000004; |
||
4548 | D3DPMISCCAPS_CONFORMANT = $00000008; |
||
4549 | D3DPMISCCAPS_CULLNONE = $00000010; |
||
4550 | D3DPMISCCAPS_CULLCW = $00000020; |
||
4551 | D3DPMISCCAPS_CULLCCW = $00000040; |
||
4552 | |||
4553 | { TD3DPrimCaps dwRasterCaps } |
||
4554 | |||
4555 | D3DPRASTERCAPS_DITHER = $00000001; |
||
4556 | D3DPRASTERCAPS_ROP2 = $00000002; |
||
4557 | D3DPRASTERCAPS_XOR = $00000004; |
||
4558 | D3DPRASTERCAPS_PAT = $00000008; |
||
4559 | D3DPRASTERCAPS_ZTEST = $00000010; |
||
4560 | D3DPRASTERCAPS_SUBPIXEL = $00000020; |
||
4561 | D3DPRASTERCAPS_SUBPIXELX = $00000040; |
||
4562 | D3DPRASTERCAPS_FOGVERTEX = $00000080; |
||
4563 | D3DPRASTERCAPS_FOGTABLE = $00000100; |
||
4564 | D3DPRASTERCAPS_STIPPLE = $00000200; |
||
4565 | D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT = $00000400; |
||
4566 | D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT = $00000800; |
||
4567 | D3DPRASTERCAPS_ANTIALIASEDGES = $00001000; |
||
4568 | D3DPRASTERCAPS_MIPMAPLODBIAS = $00002000; |
||
4569 | D3DPRASTERCAPS_ZBIAS = $00004000; |
||
4570 | D3DPRASTERCAPS_ZBUFFERLESSHSR = $00008000; |
||
4571 | D3DPRASTERCAPS_FOGRANGE = $00010000; |
||
4572 | D3DPRASTERCAPS_ANISOTROPY = $00020000; |
||
4573 | D3DPRASTERCAPS_WBUFFER = $00040000; |
||
4574 | D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT = $00080000; |
||
4575 | D3DPRASTERCAPS_WFOG = $00100000; |
||
4576 | D3DPRASTERCAPS_ZFOG = $00200000; |
||
4577 | |||
4578 | { TD3DPrimCaps dwZCmpCaps, dwAlphaCmpCaps } |
||
4579 | |||
4580 | D3DPCMPCAPS_NEVER = $00000001; |
||
4581 | D3DPCMPCAPS_LESS = $00000002; |
||
4582 | D3DPCMPCAPS_EQUAL = $00000004; |
||
4583 | D3DPCMPCAPS_LESSEQUAL = $00000008; |
||
4584 | D3DPCMPCAPS_GREATER = $00000010; |
||
4585 | D3DPCMPCAPS_NOTEQUAL = $00000020; |
||
4586 | D3DPCMPCAPS_GREATEREQUAL = $00000040; |
||
4587 | D3DPCMPCAPS_ALWAYS = $00000080; |
||
4588 | |||
4589 | { TD3DPrimCaps dwSourceBlendCaps, dwDestBlendCaps } |
||
4590 | |||
4591 | D3DPBLENDCAPS_ZERO = $00000001; |
||
4592 | D3DPBLENDCAPS_ONE = $00000002; |
||
4593 | D3DPBLENDCAPS_SRCCOLOR = $00000004; |
||
4594 | D3DPBLENDCAPS_INVSRCCOLOR = $00000008; |
||
4595 | D3DPBLENDCAPS_SRCALPHA = $00000010; |
||
4596 | D3DPBLENDCAPS_INVSRCALPHA = $00000020; |
||
4597 | D3DPBLENDCAPS_DESTALPHA = $00000040; |
||
4598 | D3DPBLENDCAPS_INVDESTALPHA = $00000080; |
||
4599 | D3DPBLENDCAPS_DESTCOLOR = $00000100; |
||
4600 | D3DPBLENDCAPS_INVDESTCOLOR = $00000200; |
||
4601 | D3DPBLENDCAPS_SRCALPHASAT = $00000400; |
||
4602 | D3DPBLENDCAPS_BOTHSRCALPHA = $00000800; |
||
4603 | D3DPBLENDCAPS_BOTHINVSRCALPHA = $00001000; |
||
4604 | |||
4605 | { TD3DPrimCaps dwShadeCaps } |
||
4606 | |||
4607 | D3DPSHADECAPS_COLORFLATMONO = $00000001; |
||
4608 | D3DPSHADECAPS_COLORFLATRGB = $00000002; |
||
4609 | D3DPSHADECAPS_COLORGOURAUDMONO = $00000004; |
||
4610 | D3DPSHADECAPS_COLORGOURAUDRGB = $00000008; |
||
4611 | D3DPSHADECAPS_COLORPHONGMONO = $00000010; |
||
4612 | D3DPSHADECAPS_COLORPHONGRGB = $00000020; |
||
4613 | |||
4614 | D3DPSHADECAPS_SPECULARFLATMONO = $00000040; |
||
4615 | D3DPSHADECAPS_SPECULARFLATRGB = $00000080; |
||
4616 | D3DPSHADECAPS_SPECULARGOURAUDMONO = $00000100; |
||
4617 | D3DPSHADECAPS_SPECULARGOURAUDRGB = $00000200; |
||
4618 | D3DPSHADECAPS_SPECULARPHONGMONO = $00000400; |
||
4619 | D3DPSHADECAPS_SPECULARPHONGRGB = $00000800; |
||
4620 | |||
4621 | D3DPSHADECAPS_ALPHAFLATBLEND = $00001000; |
||
4622 | D3DPSHADECAPS_ALPHAFLATSTIPPLED = $00002000; |
||
4623 | D3DPSHADECAPS_ALPHAGOURAUDBLEND = $00004000; |
||
4624 | D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED = $00008000; |
||
4625 | D3DPSHADECAPS_ALPHAPHONGBLEND = $00010000; |
||
4626 | D3DPSHADECAPS_ALPHAPHONGSTIPPLED = $00020000; |
||
4627 | |||
4628 | D3DPSHADECAPS_FOGFLAT = $00040000; |
||
4629 | D3DPSHADECAPS_FOGGOURAUD = $00080000; |
||
4630 | D3DPSHADECAPS_FOGPHONG = $00100000; |
||
4631 | |||
4632 | { TD3DPrimCaps dwTextureCaps } |
||
4633 | |||
4634 | D3DPTEXTURECAPS_PERSPECTIVE = $00000001; |
||
4635 | D3DPTEXTURECAPS_POW2 = $00000002; |
||
4636 | D3DPTEXTURECAPS_ALPHA = $00000004; |
||
4637 | D3DPTEXTURECAPS_TRANSPARENCY = $00000008; |
||
4638 | D3DPTEXTURECAPS_BORDER = $00000010; |
||
4639 | D3DPTEXTURECAPS_SQUAREONLY = $00000020; |
||
4640 | D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = $00000040; |
||
4641 | D3DPTEXTURECAPS_ALPHAPALETTE = $00000080; |
||
4642 | D3DPTEXTURECAPS_NONPOW2CONDITIONAL = $00000100; |
||
4643 | D3DPTEXTURECAPS_PROJECTED = $00000400; |
||
4644 | D3DPTEXTURECAPS_CUBEMAP = $00000800; |
||
4645 | D3DPTEXTURECAPS_COLORKEYBLEND = $00001000; |
||
4646 | |||
4647 | { TD3DPrimCaps dwTextureFilterCaps } |
||
4648 | |||
4649 | D3DPTFILTERCAPS_NEAREST = $00000001; |
||
4650 | D3DPTFILTERCAPS_LINEAR = $00000002; |
||
4651 | D3DPTFILTERCAPS_MIPNEAREST = $00000004; |
||
4652 | D3DPTFILTERCAPS_MIPLINEAR = $00000008; |
||
4653 | D3DPTFILTERCAPS_LINEARMIPNEAREST = $00000010; |
||
4654 | D3DPTFILTERCAPS_LINEARMIPLINEAR = $00000020; |
||
4655 | |||
4656 | { Device3 Min Filter } |
||
4657 | |||
4658 | D3DPTFILTERCAPS_MINFPOINT = $00000100; |
||
4659 | D3DPTFILTERCAPS_MINFLINEAR = $00000200; |
||
4660 | D3DPTFILTERCAPS_MINFANISOTROPIC = $00000400; |
||
4661 | |||
4662 | { Device3 Mip Filter } |
||
4663 | |||
4664 | D3DPTFILTERCAPS_MIPFPOINT = $00010000; |
||
4665 | D3DPTFILTERCAPS_MIPFLINEAR = $00020000; |
||
4666 | |||
4667 | { Device3 Mag Filter } |
||
4668 | |||
4669 | D3DPTFILTERCAPS_MAGFPOINT = $01000000; |
||
4670 | D3DPTFILTERCAPS_MAGFLINEAR = $02000000; |
||
4671 | D3DPTFILTERCAPS_MAGFANISOTROPIC = $04000000; |
||
4672 | D3DPTFILTERCAPS_MAGFAFLATCUBIC = $08000000; |
||
4673 | D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC = $10000000; |
||
4674 | |||
4675 | { TD3DPrimCaps dwTextureBlendCaps } |
||
4676 | |||
4677 | D3DPTBLENDCAPS_DECAL = $00000001; |
||
4678 | D3DPTBLENDCAPS_MODULATE = $00000002; |
||
4679 | D3DPTBLENDCAPS_DECALALPHA = $00000004; |
||
4680 | D3DPTBLENDCAPS_MODULATEALPHA = $00000008; |
||
4681 | D3DPTBLENDCAPS_DECALMASK = $00000010; |
||
4682 | D3DPTBLENDCAPS_MODULATEMASK = $00000020; |
||
4683 | D3DPTBLENDCAPS_COPY = $00000040; |
||
4684 | D3DPTBLENDCAPS_ADD = $00000080; |
||
4685 | |||
4686 | { TD3DPrimCaps dwTextureAddressCaps } |
||
4687 | |||
4688 | D3DPTADDRESSCAPS_WRAP = $00000001; |
||
4689 | D3DPTADDRESSCAPS_MIRROR = $00000002; |
||
4690 | D3DPTADDRESSCAPS_CLAMP = $00000004; |
||
4691 | D3DPTADDRESSCAPS_BORDER = $00000008; |
||
4692 | D3DPTADDRESSCAPS_INDEPENDENTUV = $00000010; |
||
4693 | |||
4694 | { D3DDEVICEDESC dwStencilCaps } |
||
4695 | |||
4696 | D3DSTENCILCAPS_KEEP = $00000001; |
||
4697 | D3DSTENCILCAPS_ZERO = $00000002; |
||
4698 | D3DSTENCILCAPS_REPLACE = $00000004; |
||
4699 | D3DSTENCILCAPS_INCRSAT = $00000008; |
||
4700 | D3DSTENCILCAPS_DECRSAT = $00000010; |
||
4701 | D3DSTENCILCAPS_INVERT = $00000020; |
||
4702 | D3DSTENCILCAPS_INCR = $00000040; |
||
4703 | D3DSTENCILCAPS_DECR = $00000080; |
||
4704 | |||
4705 | { D3DDEVICEDESC dwTextureOpCaps } |
||
4706 | |||
4707 | D3DTEXOPCAPS_DISABLE = $00000001; |
||
4708 | D3DTEXOPCAPS_SELECTARG1 = $00000002; |
||
4709 | D3DTEXOPCAPS_SELECTARG2 = $00000004; |
||
4710 | D3DTEXOPCAPS_MODULATE = $00000008; |
||
4711 | D3DTEXOPCAPS_MODULATE2X = $00000010; |
||
4712 | D3DTEXOPCAPS_MODULATE4X = $00000020; |
||
4713 | D3DTEXOPCAPS_ADD = $00000040; |
||
4714 | D3DTEXOPCAPS_ADDSIGNED = $00000080; |
||
4715 | D3DTEXOPCAPS_ADDSIGNED2X = $00000100; |
||
4716 | D3DTEXOPCAPS_SUBTRACT = $00000200; |
||
4717 | D3DTEXOPCAPS_ADDSMOOTH = $00000400; |
||
4718 | D3DTEXOPCAPS_BLENDDIFFUSEALPHA = $00000800; |
||
4719 | D3DTEXOPCAPS_BLENDTEXTUREALPHA = $00001000; |
||
4720 | D3DTEXOPCAPS_BLENDFACTORALPHA = $00002000; |
||
4721 | D3DTEXOPCAPS_BLENDTEXTUREALPHAPM = $00004000; |
||
4722 | D3DTEXOPCAPS_BLENDCURRENTALPHA = $00008000; |
||
4723 | D3DTEXOPCAPS_PREMODULATE = $00010000; |
||
4724 | D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = $00020000; |
||
4725 | D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = $00040000; |
||
4726 | D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = $00080000; |
||
4727 | D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = $00100000; |
||
4728 | D3DTEXOPCAPS_BUMPENVMAP = $00200000; |
||
4729 | D3DTEXOPCAPS_BUMPENVMAPLUMINANCE = $00400000; |
||
4730 | D3DTEXOPCAPS_DOTPRODUCT3 = $00800000; |
||
4731 | |||
4732 | { D3DDEVICEDESC dwFVFCaps flags } |
||
4733 | |||
4734 | D3DFVFCAPS_TEXCOORDCOUNTMASK = $0000ffff; // mask for texture coordinate count field |
||
4735 | D3DFVFCAPS_DONOTSTRIPELEMENTS = $00080000; // Device prefers that vertex elements not be stripped |
||
4736 | |||
4737 | { Description for a device. } |
||
4738 | |||
4739 | type |
||
4740 | PD3DDeviceDesc_DX3 = ^TD3DDeviceDesc_DX3; |
||
4741 | TD3DDeviceDesc_DX3 = record |
||
4742 | dwSize: DWORD; // Size of D3DDEVICEDESC structure |
||
4743 | dwFlags: DWORD; // Indicates which fields have valid data |
||
4744 | dcmColorModel: TD3DColorModel; // Color model of device |
||
4745 | dwDevCaps: DWORD; // Capabilities of device |
||
4746 | dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
||
4747 | bClipping: BOOL; // Device can do 3D clipping |
||
4748 | dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
||
4749 | dpcLineCaps: TD3DPrimCaps; |
||
4750 | dpcTriCaps: TD3DPrimCaps; |
||
4751 | dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
||
4752 | dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
||
4753 | dwMaxBufferSize: DWORD; // Maximum execute buffer size |
||
4754 | dwMaxVertexCount: DWORD; // Maximum vertex count |
||
4755 | end; |
||
4756 | |||
4757 | PD3DDeviceDesc_DX5 = ^TD3DDeviceDesc_DX5; |
||
4758 | TD3DDeviceDesc_DX5 = record |
||
4759 | dwSize: DWORD; // Size of D3DDEVICEDESC structure |
||
4760 | dwFlags: DWORD; // Indicates which fields have valid data |
||
4761 | dcmColorModel: TD3DColorModel; // Color model of device |
||
4762 | dwDevCaps: DWORD; // Capabilities of device |
||
4763 | dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
||
4764 | bClipping: BOOL; // Device can do 3D clipping |
||
4765 | dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
||
4766 | dpcLineCaps: TD3DPrimCaps; |
||
4767 | dpcTriCaps: TD3DPrimCaps; |
||
4768 | dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
||
4769 | dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
||
4770 | dwMaxBufferSize: DWORD; // Maximum execute buffer size |
||
4771 | dwMaxVertexCount: DWORD; // Maximum vertex count |
||
4772 | // New fields for DX5 |
||
4773 | // Width and height caps are 0 for legacy HALs. |
||
4774 | dwMinTextureWidth, dwMinTextureHeight : DWORD; |
||
4775 | dwMaxTextureWidth, dwMaxTextureHeight : DWORD; |
||
4776 | dwMinStippleWidth, dwMaxStippleWidth : DWORD; |
||
4777 | dwMinStippleHeight, dwMaxStippleHeight : DWORD; |
||
4778 | end; |
||
4779 | |||
4780 | PD3DDeviceDesc_DX6 = ^TD3DDeviceDesc_DX6; |
||
4781 | TD3DDeviceDesc_DX6 = record |
||
4782 | dwSize: DWORD; // Size of D3DDEVICEDESC structure |
||
4783 | dwFlags: DWORD; // Indicates which fields have valid data |
||
4784 | dcmColorModel: TD3DColorModel; // Color model of device |
||
4785 | dwDevCaps: DWORD; // Capabilities of device |
||
4786 | dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
||
4787 | bClipping: BOOL; // Device can do 3D clipping |
||
4788 | dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
||
4789 | dpcLineCaps: TD3DPrimCaps; |
||
4790 | dpcTriCaps: TD3DPrimCaps; |
||
4791 | dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
||
4792 | dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
||
4793 | dwMaxBufferSize: DWORD; // Maximum execute buffer size |
||
4794 | dwMaxVertexCount: DWORD; // Maximum vertex count |
||
4795 | |||
4796 | // New fields for DX5 |
||
4797 | // Width and height caps are 0 for legacy HALs. |
||
4798 | dwMinTextureWidth, dwMinTextureHeight : DWORD; |
||
4799 | dwMaxTextureWidth, dwMaxTextureHeight : DWORD; |
||
4800 | dwMinStippleWidth, dwMaxStippleWidth : DWORD; |
||
4801 | dwMinStippleHeight, dwMaxStippleHeight : DWORD; |
||
4802 | |||
4803 | // New fields for DX6 |
||
4804 | dwMaxTextureRepeat: DWORD; |
||
4805 | dwMaxTextureAspectRatio: DWORD; |
||
4806 | dwMaxAnisotropy: DWORD; |
||
4807 | |||
4808 | // Guard band that the rasterizer can accommodate |
||
4809 | // Screen-space vertices inside this space but outside the viewport |
||
4810 | // will get clipped properly. |
||
4811 | dvGuardBandLeft: TD3DValue; |
||
4812 | dvGuardBandTop: TD3DValue; |
||
4813 | dvGuardBandRight: TD3DValue; |
||
4814 | dvGuardBandBottom: TD3DValue; |
||
4815 | dvExtentsAdjust: TD3DValue; |
||
4816 | dwStencilCaps: DWORD; |
||
4817 | dwFVFCaps: DWORD; // low 4 bits: 0 implies TLVERTEX only, 1..8 imply FVF aware |
||
4818 | dwTextureOpCaps: DWORD; |
||
4819 | wMaxTextureBlendStages: Word; |
||
4820 | wMaxSimultaneousTextures: Word; |
||
4821 | end; |
||
4822 | |||
4823 | {$IFDEF DirectX3} |
||
4824 | TD3DDeviceDesc = TD3DDeviceDesc_DX3; |
||
4825 | PD3DDeviceDesc = PD3DDeviceDesc_DX3; |
||
4826 | {$ENDIF}{$IFDEF DirectX5} |
||
4827 | TD3DDeviceDesc = TD3DDeviceDesc_DX5; |
||
4828 | PD3DDeviceDesc = PD3DDeviceDesc_DX5; |
||
4829 | {$ENDIF}{$IFDEF DirectX6} |
||
4830 | TD3DDeviceDesc = TD3DDeviceDesc_DX6; |
||
4831 | PD3DDeviceDesc = PD3DDeviceDesc_DX6; |
||
4832 | {$ENDIF}{$IFDEF DirectX7} |
||
4833 | TD3DDeviceDesc = TD3DDeviceDesc_DX6; |
||
4834 | PD3DDeviceDesc = PD3DDeviceDesc_DX6; |
||
4835 | {$ENDIF} |
||
4836 | |||
4837 | D3DDEVICEDESC = TD3DDeviceDesc; |
||
4838 | LPD3DDEVICEDESC = PD3DDeviceDesc; |
||
4839 | |||
4840 | PD3DDeviceDesc7 = ^TD3DDeviceDesc7; |
||
4841 | TD3DDeviceDesc7 = record |
||
4842 | dwDevCaps: DWORD; |
||
4843 | dpcLineCaps: TD3DPrimCaps; |
||
4844 | dpcTriCaps: TD3DPrimCaps; |
||
4845 | dwDeviceRenderBitDepth: DWORD; |
||
4846 | dwDeviceZBufferBitDepth: DWORD; |
||
4847 | |||
4848 | dwMinTextureWidth: DWORD; |
||
4849 | dwMinTextureHeight: DWORD; |
||
4850 | dwMaxTextureWidth: DWORD; |
||
4851 | dwMaxTextureHeight: DWORD; |
||
4852 | |||
4853 | dwMaxTextureRepeat: DWORD; |
||
4854 | dwMaxTextureAspectRatio: DWORD; |
||
4855 | dwMaxAnisotropy: DWORD; |
||
4856 | |||
4857 | dvGuardBandLeft: TD3DValue; |
||
4858 | dvGuardBandTop: TD3DValue; |
||
4859 | dvGuardBandRight: TD3DValue; |
||
4860 | dvGuardBandBottom: TD3DValue; |
||
4861 | |||
4862 | dvExtentsAdjust: TD3DValue; |
||
4863 | dwStencilCaps: DWORD; |
||
4864 | |||
4865 | dwFVFCaps: DWORD; |
||
4866 | dwTextureOpCaps: DWORD; |
||
4867 | wMaxTextureBlendStages: Word; |
||
4868 | wMaxSimultaneousTextures: Word; |
||
4869 | |||
4870 | dwMaxActiveLights: DWORD; |
||
4871 | dvMaxVertexW: TD3DValue; |
||
4872 | deviceGUID: TGUID; |
||
4873 | |||
4874 | wMaxUserClipPlanes: Word; |
||
4875 | wMaxVertexBlendMatrices: Word; |
||
4876 | |||
4877 | dwVertexProcessingCaps: DWORD; |
||
4878 | |||
4879 | dwReserved1: DWORD; |
||
4880 | dwReserved2: DWORD; |
||
4881 | dwReserved3: DWORD; |
||
4882 | dwReserved4: DWORD; |
||
4883 | end; |
||
4884 | |||
4885 | |||
4886 | type |
||
4887 | TD3DEnumDevicesCallback = function(const lpGuid: TGUID; |
||
4888 | lpDeviceDescription: LPSTR; lpDeviceName: LPSTR; |
||
4889 | const lpD3DHWDeviceDesc: TD3DDeviceDesc; |
||
4890 | const lpD3DHELDeviceDesc: TD3DDeviceDesc; |
||
4891 | lpUserArg: Pointer): HResult; stdcall; |
||
4892 | |||
4893 | LPD3DENUMDEVICESCALLBACK = TD3DEnumDevicesCallback; |
||
4894 | |||
4895 | TD3DEnumDevicesCallback7 = function(lpDeviceDescription: LPSTR; lpDeviceName: LPSTR; |
||
4896 | const lpD3DDeviceDesc: TD3DDeviceDesc7; lpUserArg: Pointer): HResult; stdcall; |
||
4897 | |||
4898 | LPD3DENUMDEVICESCALLBACK7 = TD3DEnumDevicesCallback7; |
||
4899 | |||
4900 | { TD3DDeviceDesc dwFlags indicating valid fields } |
||
4901 | |||
4902 | const |
||
4903 | D3DDD_COLORMODEL = $00000001; // dcmColorModel is valid |
||
4904 | D3DDD_DEVCAPS = $00000002; // dwDevCaps is valid |
||
4905 | D3DDD_TRANSFORMCAPS = $00000004; // dtcTransformCaps is valid |
||
4906 | D3DDD_LIGHTINGCAPS = $00000008; // dlcLightingCaps is valid |
||
4907 | D3DDD_BCLIPPING = $00000010; // bClipping is valid |
||
4908 | D3DDD_LINECAPS = $00000020; // dpcLineCaps is valid |
||
4909 | D3DDD_TRICAPS = $00000040; // dpcTriCaps is valid |
||
4910 | D3DDD_DEVICERENDERBITDEPTH = $00000080; // dwDeviceRenderBitDepth is valid |
||
4911 | D3DDD_DEVICEZBUFFERBITDEPTH = $00000100; // dwDeviceZBufferBitDepth is valid |
||
4912 | D3DDD_MAXBUFFERSIZE = $00000200; // dwMaxBufferSize is valid |
||
4913 | D3DDD_MAXVERTEXCOUNT = $00000400; // dwMaxVertexCount is valid |
||
4914 | |||
4915 | { TD3DDeviceDesc dwDevCaps flags } |
||
4916 | |||
4917 | D3DDEVCAPS_FLOATTLVERTEX = $00000001; // Device accepts floating point |
||
4918 | // for post-transform vertex data |
||
4919 | D3DDEVCAPS_SORTINCREASINGZ = $00000002; // Device needs data sorted for increasing Z |
||
4920 | D3DDEVCAPS_SORTDECREASINGZ = $00000004; // Device needs data sorted for decreasing Z |
||
4921 | D3DDEVCAPS_SORTEXACT = $00000008; // Device needs data sorted exactly |
||
4922 | |||
4923 | D3DDEVCAPS_EXECUTESYSTEMMEMORY = $00000010; // Device can use execute buffers from system memory |
||
4924 | D3DDEVCAPS_EXECUTEVIDEOMEMORY = $00000020; // Device can use execute buffers from video memory |
||
4925 | D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = $00000040; // Device can use TL buffers from system memory |
||
4926 | D3DDEVCAPS_TLVERTEXVIDEOMEMORY = $00000080; // Device can use TL buffers from video memory |
||
4927 | D3DDEVCAPS_TEXTURESYSTEMMEMORY = $00000100; // Device can texture from system memory |
||
4928 | D3DDEVCAPS_TEXTUREVIDEOMEMORY = $00000200; // Device can texture from device memory |
||
4929 | D3DDEVCAPS_DRAWPRIMTLVERTEX = $00000400; // Device can draw TLVERTEX primitives |
||
4930 | D3DDEVCAPS_CANRENDERAFTERFLIP = $00000800; // Device can render without waiting for flip to complete |
||
4931 | D3DDEVCAPS_TEXTURENONLOCALVIDMEM = $00001000; // Device can texture from nonlocal video memory |
||
4932 | D3DDEVCAPS_DRAWPRIMITIVES2 = $00002000; // Device can support DrawPrimitives2 |
||
4933 | D3DDEVCAPS_SEPARATETEXTUREMEMORIES = $00004000; // Device is texturing from separate memory pools |
||
4934 | D3DDEVCAPS_DRAWPRIMITIVES2EX = $00008000; // Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver |
||
4935 | D3DDEVCAPS_HWTRANSFORMANDLIGHT = $00010000; // Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also |
||
4936 | D3DDEVCAPS_CANBLTSYSTONONLOCAL = $00020000; // Device supports a Tex Blt from system memory to non-local vidmem |
||
4937 | D3DDEVCAPS_HWRASTERIZATION = $00080000; // Device has HW acceleration for rasterization |
||
4938 | |||
4939 | { TD3DDeviceDesc7.dwVertexProcessingCaps field } |
||
4940 | |||
4941 | D3DVTXPCAPS_TEXGEN = $00000001; |
||
4942 | D3DVTXPCAPS_MATERIALSOURCE7 = $00000002; |
||
4943 | D3DVTXPCAPS_VERTEXFOG = $00000004; |
||
4944 | D3DVTXPCAPS_DIRECTIONALLIGHTS = $00000008; |
||
4945 | D3DVTXPCAPS_POSITIONALLIGHTS = $00000010; |
||
4946 | D3DVTXPCAPS_LOCALVIEWER = $00000020; |
||
4947 | |||
4948 | D3DFDS_COLORMODEL = $00000001; // Match color model |
||
4949 | D3DFDS_GUID = $00000002; // Match guid |
||
4950 | D3DFDS_HARDWARE = $00000004; // Match hardware/software |
||
4951 | D3DFDS_TRIANGLES = $00000008; // Match in triCaps |
||
4952 | D3DFDS_LINES = $00000010; // Match in lineCaps |
||
4953 | D3DFDS_MISCCAPS = $00000020; // Match primCaps.dwMiscCaps |
||
4954 | D3DFDS_RASTERCAPS = $00000040; // Match primCaps.dwRasterCaps |
||
4955 | D3DFDS_ZCMPCAPS = $00000080; // Match primCaps.dwZCmpCaps |
||
4956 | D3DFDS_ALPHACMPCAPS = $00000100; // Match primCaps.dwAlphaCmpCaps |
||
4957 | D3DFDS_SRCBLENDCAPS = $00000200; // Match primCaps.dwSourceBlendCaps |
||
4958 | D3DFDS_DSTBLENDCAPS = $00000400; // Match primCaps.dwDestBlendCaps |
||
4959 | D3DFDS_SHADECAPS = $00000800; // Match primCaps.dwShadeCaps |
||
4960 | D3DFDS_TEXTURECAPS = $00001000; // Match primCaps.dwTextureCaps |
||
4961 | D3DFDS_TEXTUREFILTERCAPS = $00002000; // Match primCaps.dwTextureFilterCaps |
||
4962 | D3DFDS_TEXTUREBLENDCAPS = $00004000; // Match primCaps.dwTextureBlendCaps |
||
4963 | D3DFDS_TEXTUREADDRESSCAPS = $00008000; // Match primCaps.dwTextureBlendCaps |
||
4964 | |||
4965 | { FindDevice arguments } |
||
4966 | |||
4967 | type |
||
4968 | PD3DFindDeviceSearch = ^TD3DFindDeviceSearch; |
||
4969 | TD3DFindDeviceSearch = record |
||
4970 | dwSize: DWORD; |
||
4971 | dwFlags: DWORD; |
||
4972 | bHardware: BOOL; |
||
4973 | dcmColorModel: TD3DColorModel; |
||
4974 | guid: TGUID; |
||
4975 | dwCaps: DWORD; |
||
4976 | dpcPrimCaps: TD3DPrimCaps; |
||
4977 | end; |
||
4978 | |||
4979 | D3DFINDDEVICESEARCH = TD3DFindDeviceSearch; |
||
4980 | LPD3DFINDDEVICESEARCH = PD3DFindDeviceSearch; |
||
4981 | |||
4982 | PD3DFindDeviceResult = ^TD3DFindDeviceResult; |
||
4983 | TD3DFindDeviceResult = record |
||
4984 | dwSize: DWORD; |
||
4985 | guid: TGUID; // guid which matched |
||
4986 | ddHwDesc: TD3DDeviceDesc; // hardware TD3DDeviceDesc |
||
4987 | ddSwDesc: TD3DDeviceDesc; // software TD3DDeviceDesc |
||
4988 | end; |
||
4989 | |||
4990 | D3DFINDDEVICERESULT = TD3DFindDeviceResult; |
||
4991 | LPD3DFINDDEVICERESULT = PD3DFindDeviceResult; |
||
4992 | |||
4993 | { Description of execute buffer. } |
||
4994 | |||
4995 | PD3DExecuteBufferDesc = ^TD3DExecuteBufferDesc; |
||
4996 | TD3DExecuteBufferDesc = record |
||
4997 | dwSize: DWORD; // size of this structure |
||
4998 | dwFlags: DWORD; // flags indicating which fields are valid |
||
4999 | dwCaps: DWORD; // capabilities of execute buffer |
||
5000 | dwBufferSize: DWORD; // size of execute buffer data |
||
5001 | lpData: Pointer; // pointer to actual data |
||
5002 | end; |
||
5003 | |||
5004 | D3DEXECUTEBUFFERDESC = TD3DExecuteBufferDesc; |
||
5005 | LPD3DEXECUTEBUFFERDESC = PD3DExecuteBufferDesc; |
||
5006 | |||
5007 | { D3DEXECUTEBUFFER dwFlags indicating valid fields } |
||
5008 | |||
5009 | const |
||
5010 | D3DDEB_BUFSIZE = $00000001; // buffer size valid |
||
5011 | D3DDEB_CAPS = $00000002; // caps valid |
||
5012 | D3DDEB_LPDATA = $00000004; // lpData valid |
||
5013 | |||
5014 | { D3DEXECUTEBUFFER dwCaps } |
||
5015 | |||
5016 | D3DDEBCAPS_SYSTEMMEMORY = $00000001; // buffer in system memory |
||
5017 | D3DDEBCAPS_VIDEOMEMORY = $00000002; // buffer in device memory |
||
5018 | D3DDEBCAPS_MEM = D3DDEBCAPS_SYSTEMMEMORY or D3DDEBCAPS_VIDEOMEMORY; |
||
5019 | |||
5020 | type |
||
5021 | |||
5022 | { TD3DDevInfo_TextureManager } |
||
5023 | |||
5024 | PD3DDevInfo_TextureManager = ^TD3DDevInfo_TextureManager; |
||
5025 | TD3DDevInfo_TextureManager = record |
||
5026 | bThrashing: BOOL; // indicates if thrashing |
||
5027 | dwApproxBytesDownloaded: DWORD; // Approximate number of bytes downloaded by texture manager |
||
5028 | dwNumEvicts: DWORD; // number of textures evicted |
||
5029 | dwNumVidCreates: DWORD; // number of textures created in video memory |
||
5030 | dwNumTexturesUsed: DWORD; // number of textures used |
||
5031 | dwNumUsedTexInVid: DWORD; // number of used textures present in video memory |
||
5032 | dwWorkingSet: DWORD; // number of textures in video memory |
||
5033 | dwWorkingSetBytes: DWORD; // number of bytes in video memory |
||
5034 | dwTotalManaged: DWORD; // total number of managed textures |
||
5035 | dwTotalBytes: DWORD; // total number of bytes of managed textures |
||
5036 | dwLastPri: DWORD; // priority of last texture evicted |
||
5037 | end; |
||
5038 | |||
5039 | D3DDEVINFO_TEXTUREMANAGER = TD3DDevInfo_TextureManager; |
||
5040 | LPD3DDEVINFO_TEXTUREMANAGER = PD3DDevInfo_TextureManager; |
||
5041 | |||
5042 | { TD3DDevInfo_Texturing } |
||
5043 | |||
5044 | PD3DDevInfo_Texturing = ^TD3DDevInfo_Texturing; |
||
5045 | TD3DDevInfo_Texturing = record |
||
5046 | dwNumLoads: DWORD; // counts Load() API calls |
||
5047 | dwApproxBytesLoaded: DWORD; // Approximate number bytes loaded via Load() |
||
5048 | dwNumPreLoads: DWORD; // counts PreLoad() API calls |
||
5049 | dwNumSet: DWORD; // counts SetTexture() API calls |
||
5050 | dwNumCreates: DWORD; // counts texture creates |
||
5051 | dwNumDestroys: DWORD; // counts texture destroys |
||
5052 | dwNumSetPriorities: DWORD; // counts SetPriority() API calls |
||
5053 | dwNumSetLODs: DWORD; // counts SetLOD() API calls |
||
5054 | dwNumLocks: DWORD; // counts number of texture locks |
||
5055 | dwNumGetDCs: DWORD; // counts number of GetDCs to textures |
||
5056 | end; |
||
5057 | |||
5058 | D3DDEVINFO_TEXTURING = TD3DDevInfo_Texturing; |
||
5059 | LPD3DDEVINFO_TEXTURING = PD3DDevInfo_Texturing; |
||
5060 | |||
5061 | (*==========================================================================; |
||
5062 | * |
||
5063 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
5064 | * |
||
5065 | * File: d3d.h |
||
5066 | * Content: Direct3D include file |
||
5067 | * |
||
5068 | ***************************************************************************) |
||
5069 | |||
5070 | { Interface IID's } |
||
5071 | |||
5072 | const |
||
5073 | IID_IDirect3D: TGUID = '{3BBA0080-2421-11CF-A31A-00AA00B93356}'; |
||
5074 | IID_IDirect3D2: TGUID = '{6AAE1EC1-662A-11D0-889D-00AA00BBB76A}'; |
||
5075 | IID_IDirect3D3: TGUID = '{BB223240-E72B-11D0-A9B4-00AA00C0993E}'; |
||
5076 | IID_IDirect3D7: TGUID = '{F5049E77-4861-11D2-A407-00A0C90629A8}'; |
||
5077 | |||
5078 | IID_IDirect3DRampDevice: TGUID = '{F2086B20-259F-11CF-A31A-00AA00B93356}'; |
||
5079 | IID_IDirect3DRGBDevice: TGUID = '{A4665C60-2673-11CF-A31A-00AA00B93356}'; |
||
5080 | IID_IDirect3DHALDevice: TGUID = '{84E63DE0-46AA-11CF-816F-0000C020156E}'; |
||
5081 | IID_IDirect3DMMXDevice: TGUID = '{881949A1-D6F3-11D0-89AB-00A0C9054129}'; |
||
5082 | IID_IDirect3DRefDevice: TGUID = '{50936643-13E9-11D1-89AA-00A0C9054129}'; |
||
5083 | IID_IDirect3DNullDevice: TGUID = '{8767DF22-BACC-11D1-8969-00A0C90629A8}'; |
||
5084 | IID_IDirect3DTnLHalDevice: TGUID = '{F5049E78-4861-11D2-A407-00A0C90629A8}'; |
||
5085 | |||
5086 | IID_IDirect3DDevice: TGUID = '{64108800-957D-11D0-89AB-00A0C9054129}'; |
||
5087 | IID_IDirect3DDevice2: TGUID = '{93281501-8CF8-11D0-89AB-00A0C9054129}'; |
||
5088 | IID_IDirect3DDevice3: TGUID = '{B0AB3B60-33D7-11D1-A981-00C04FD7B174}'; |
||
5089 | IID_IDirect3DDevice7: TGUID = '{F5049E79-4861-11D2-A407-00A0C90629A8}'; |
||
5090 | |||
5091 | IID_IDirect3DTexture: TGUID ='{2CDCD9E0-25A0-11CF-A31A-00AA00B93356}'; |
||
5092 | IID_IDirect3DTexture2: TGUID = '{93281502-8CF8-11D0-89AB-00A0C9054129}'; |
||
5093 | IID_IDirect3DLight: TGUID = '{4417C142-33AD-11CF-816F-0000C020156E}'; |
||
5094 | IID_IDirect3DMaterial: TGUID = '{4417C144-33AD-11CF-816F-0000C020156E}'; |
||
5095 | IID_IDirect3DMaterial2: TGUID = '{93281503-8CF8-11D0-89AB-00A0C9054129}'; |
||
5096 | IID_IDirect3DMaterial3: TGUID = '{CA9C46F4-D3C5-11D1-B75A-00600852B312}'; |
||
5097 | IID_IDirect3DExecuteBuffer: TGUID = '{4417C145-33AD-11CF-816F-0000C020156E}'; |
||
5098 | IID_IDirect3DViewport: TGUID = '{4417C146-33AD-11CF-816F-0000C020156E}'; |
||
5099 | IID_IDirect3DViewport2: TGUID = '{93281500-8CF8-11D0-89AB-00A0C9054129}'; |
||
5100 | IID_IDirect3DViewport3: TGUID = '{B0AB3B61-33D7-11D1-A981-00C04FD7B174}'; |
||
5101 | IID_IDirect3DVertexBuffer: TGUID = '{7A503555-4A83-11D1-A5DB-00A0C90367F8}'; |
||
5102 | IID_IDirect3DVertexBuffer7: TGUID = '{F5049E7D-4861-11D2-A407-00A0C90629A8}'; |
||
5103 | |||
5104 | { Data structures } |
||
5105 | |||
5106 | type |
||
5107 | IDirect3D = interface; |
||
5108 | IDirect3D2 = interface; |
||
5109 | IDirect3D3 = interface; |
||
5110 | IDirect3D7 = interface; |
||
5111 | IDirect3DDevice = interface; |
||
5112 | IDirect3DDevice2 = interface; |
||
5113 | IDirect3DDevice3 = interface; |
||
5114 | IDirect3DDevice7 = interface; |
||
5115 | IDirect3DExecuteBuffer = interface; |
||
5116 | IDirect3DLight = interface; |
||
5117 | IDirect3DMaterial = interface; |
||
5118 | IDirect3DMaterial2 = interface; |
||
5119 | IDirect3DMaterial3 = interface; |
||
5120 | IDirect3DTexture = interface; |
||
5121 | IDirect3DTexture2 = interface; |
||
5122 | IDirect3DViewport = interface; |
||
5123 | IDirect3DViewport2 = interface; |
||
5124 | IDirect3DViewport3 = interface; |
||
5125 | IDirect3DVertexBuffer = interface; |
||
5126 | IDirect3DVertexBuffer7 = interface; |
||
5127 | |||
5128 | IDirect3D = interface(IUnknown) |
||
5129 | ['{3BBA0080-2421-11CF-A31A-00AA00B93356}'] |
||
5130 | // IDirect3D methods |
||
5131 | function Initialize(const lpREFIID: TGUID): HResult; stdcall; |
||
5132 | function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
||
5133 | lpUserArg: Pointer): HResult; stdcall; |
||
5134 | function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
||
5135 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5136 | function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial; |
||
5137 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5138 | function CreateViewport(out lplpD3DViewport: IDirect3DViewport; |
||
5139 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5140 | function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
||
5141 | var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
||
5142 | end; |
||
5143 | |||
5144 | IDirect3D2 = interface(IUnknown) |
||
5145 | ['{6AAE1EC1-662A-11D0-889D-00AA00BBB76A}'] |
||
5146 | // IDirect3D methods |
||
5147 | function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
||
5148 | lpUserArg: Pointer): HResult; stdcall; |
||
5149 | function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
||
5150 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5151 | function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial2; |
||
5152 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5153 | function CreateViewport(out lplpD3DViewport: IDirect3DViewport2; |
||
5154 | pUnkOuter: IUnknown ): HResult; stdcall; |
||
5155 | function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
||
5156 | var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
||
5157 | // IDirect3D2 methods |
||
5158 | function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface; |
||
5159 | out lplpD3DDevice2: IDirect3DDevice2): HResult; stdcall; |
||
5160 | end; |
||
5161 | |||
5162 | IDirect3D3 = interface(IUnknown) |
||
5163 | ['{BB223240-E72B-11D0-A9B4-00AA00C0993E}'] |
||
5164 | // IDirect3D methods |
||
5165 | function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
||
5166 | lpUserArg: Pointer): HResult; stdcall; |
||
5167 | function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
||
5168 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5169 | function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial3; |
||
5170 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5171 | function CreateViewport(out lplpD3DViewport: IDirect3DViewport3; |
||
5172 | pUnkOuter: IUnknown ): HResult; stdcall; |
||
5173 | function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
||
5174 | var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
||
5175 | // IDirect3D2 methods |
||
5176 | function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface4; |
||
5177 | out lplpD3DDevice2: IDirect3DDevice3; pUnkOuter: IUnknown): HResult; stdcall; |
||
5178 | // IDirect3D3 methods |
||
5179 | function CreateVertexBuffer(const lpVBDesc: TD3DVertexBufferDesc; |
||
5180 | out lpD3DVertexBuffer: IDirect3DVertexBuffer; dwFlags: DWORD; pUnkOuter: IUnknown): HResult; stdcall; |
||
5181 | function EnumZBufferFormats(const riidDevice: TGUID; lpEnumCallback: TD3DEnumPixelFormatsCallback; |
||
5182 | lpContext: Pointer): HResult; stdcall; |
||
5183 | function EvictManagedTextures: HResult; stdcall; |
||
5184 | end; |
||
5185 | |||
5186 | IDirect3D7 = interface(IUnknown) |
||
5187 | ['{F5049E77-4861-11D2-A407-00A0C90629A8}'] |
||
5188 | // IDirect3D7 methods |
||
5189 | function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback7; |
||
5190 | lpUserArg: Pointer): HResult; stdcall; |
||
5191 | function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface7; |
||
5192 | out lplpD3DDevice7: IDirect3DDevice7): HResult; stdcall; |
||
5193 | function CreateVertexBuffer(const lpVBDesc: TD3DVertexBufferDesc; |
||
5194 | out lpD3DVertexBuffer: IDirect3DVertexBuffer7; dwFlags: DWORD): HResult; stdcall; |
||
5195 | function EnumZBufferFormats(const riidDevice: TGUID; lpEnumCallback: TD3DEnumPixelFormatsCallback; |
||
5196 | lpContext: Pointer): HResult; stdcall; |
||
5197 | function EvictManagedTextures: HResult; stdcall; |
||
5198 | end; |
||
5199 | |||
5200 | IDirect3DDevice = interface(IUnknown) |
||
5201 | ['{64108800-957D-11D0-89AB-00A0C9054129}'] |
||
5202 | // IDirect3DDevice methods |
||
5203 | function Initialize(lpd3d: IDirect3D; const lpGUID: TGUID; |
||
5204 | const lpd3ddvdesc: TD3DDeviceDesc): HResult; stdcall; |
||
5205 | function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
||
5206 | var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
||
5207 | function SwapTextureHandles(lpD3DTex1: IDirect3DTexture; |
||
5208 | lpD3DTex2: IDirect3DTexture): HResult; stdcall; |
||
5209 | function CreateExecuteBuffer(const lpDesc: TD3DExecuteBufferDesc; |
||
5210 | out lplpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
||
5211 | pUnkOuter: IUnknown): HResult; stdcall; |
||
5212 | function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
||
5213 | function Execute(lpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
||
5214 | lpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD): HResult; stdcall; |
||
5215 | function AddViewport(lpDirect3DViewport: IDirect3DViewport): HResult; stdcall; |
||
5216 | function DeleteViewport(lpDirect3DViewport: IDirect3DViewport): HResult; stdcall; |
||
5217 | function NextViewport(lpDirect3DViewport: IDirect3DViewport; |
||
5218 | out lplpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD): HResult; stdcall; |
||
5219 | function Pick(lpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
||
5220 | lpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD; |
||
5221 | const lpRect: TD3DRect): HResult; stdcall; |
||
5222 | function GetPickRecords(var lpCount: DWORD; |
||
5223 | var lpD3DPickRec: TD3DPickRecord): HResult; stdcall; |
||
5224 | function EnumTextureFormats(lpd3dEnumTextureProc: TD3DEnumTextureFormatsCalback; |
||
5225 | lpArg: Pointer): HResult; stdcall; |
||
5226 | function CreateMatrix(var lpD3DMatHandle: TD3DMatrixHandle): HResult; stdcall; |
||
5227 | function SetMatrix(d3dMatHandle: TD3DMatrixHandle; |
||
5228 | const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5229 | function GetMatrix(lpD3DMatHandle: TD3DMatrixHandle; |
||
5230 | var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5231 | function DeleteMatrix(d3dMatHandle: TD3DMatrixHandle): HResult; stdcall; |
||
5232 | function BeginScene: HResult; stdcall; |
||
5233 | function EndScene: HResult; stdcall; |
||
5234 | function GetDirect3D(out lpD3D: IDirect3D): HResult; stdcall; |
||
5235 | end; |
||
5236 | |||
5237 | IDirect3DDevice2 = interface(IUnknown) |
||
5238 | ['{93281501-8CF8-11D0-89AB-00A0C9054129}'] |
||
5239 | // IDirect3DDevice2 methods |
||
5240 | function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
||
5241 | var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
||
5242 | function SwapTextureHandles(lpD3DTex1: IDirect3DTexture2; |
||
5243 | lpD3DTex2: IDirect3DTexture2): HResult; stdcall; |
||
5244 | function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
||
5245 | function AddViewport(lpDirect3DViewport: IDirect3DViewport2): HResult; stdcall; |
||
5246 | function DeleteViewport(lpDirect3DViewport: IDirect3DViewport2): HResult; stdcall; |
||
5247 | function NextViewport(lpDirect3DViewport: IDirect3DViewport2; |
||
5248 | out lplpDirect3DViewport: IDirect3DViewport2; dwFlags: DWORD): HResult; stdcall; |
||
5249 | function EnumTextureFormats(lpd3dEnumTextureProc: TD3DEnumTextureFormatsCalback; |
||
5250 | lpArg: Pointer): HResult; stdcall; |
||
5251 | function BeginScene: HResult; stdcall; |
||
5252 | function EndScene: HResult; stdcall; |
||
5253 | function GetDirect3D(out lpD3D: IDirect3D2): HResult; stdcall; |
||
5254 | function SetCurrentViewport(lpd3dViewport2: IDirect3DViewport2): HResult; stdcall; |
||
5255 | function GetCurrentViewport(out lplpd3dViewport2: IDirect3DViewport2): HResult; stdcall; |
||
5256 | function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface): HResult; stdcall; |
||
5257 | function GetRenderTarget(out lplpNewRenderTarget: IDirectDrawSurface): HResult; stdcall; |
||
5258 | function Begin_(d3dpt: TD3DPrimitiveType; d3dvt: TD3DVertexType; |
||
5259 | dwFlags: DWORD): HResult; stdcall; |
||
5260 | function BeginIndexed(dptPrimitiveType: TD3DPrimitiveType; dvtVertexType: |
||
5261 | TD3DVertexType; const lpvVertices; dwNumVertices: DWORD; |
||
5262 | dwFlags: DWORD): HResult; stdcall; |
||
5263 | function Vertex(const lpVertexType): HResult; stdcall; |
||
5264 | function Index(wVertexIndex: WORD): HResult; stdcall; |
||
5265 | function End_(dwFlags: DWORD): HResult; stdcall; |
||
5266 | function GetRenderState(dwRenderStateType: TD3DRenderStateType; |
||
5267 | var lpdwRenderState: DWORD): HResult; stdcall; |
||
5268 | function SetRenderState(dwRenderStateType: TD3DRenderStateType; |
||
5269 | dwRenderState: DWORD): HResult; stdcall; |
||
5270 | function GetLightState(dwLightStateType: TD3DLightStateType; |
||
5271 | var lpdwLightState: DWORD): HResult; stdcall; |
||
5272 | function SetLightState(dwLightStateType: TD3DLightStateType; |
||
5273 | dwLightState: DWORD): HResult; stdcall; |
||
5274 | function SetTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5275 | const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5276 | function GetTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5277 | var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5278 | function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5279 | var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5280 | function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
||
5281 | dvtVertexType: TD3DVertexType; const lpvVertices; dwVertexCount, |
||
5282 | dwFlags: DWORD): HResult; stdcall; |
||
5283 | function DrawIndexedPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
||
5284 | dvtVertexType: TD3DVertexType; const lpvVertices; |
||
5285 | dwVertexCount: DWORD; const dwIndices; dwIndexCount: DWORD; |
||
5286 | dwFlags: DWORD): HResult; stdcall; |
||
5287 | function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5288 | function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5289 | end; |
||
5290 | |||
5291 | IDirect3DDevice3 = interface(IUnknown) |
||
5292 | ['{B0AB3B60-33D7-11D1-A981-00C04FD7B174}'] |
||
5293 | // IDirect3DDevice3 methods |
||
5294 | function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
||
5295 | var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
||
5296 | function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
||
5297 | function AddViewport(lpDirect3DViewport: IDirect3DViewport3): HResult; stdcall; |
||
5298 | function DeleteViewport(lpDirect3DViewport: IDirect3DViewport3): HResult; stdcall; |
||
5299 | function NextViewport(lpDirect3DViewport: IDirect3DViewport3; |
||
5300 | out lplpDirect3DViewport: IDirect3DViewport3; dwFlags: DWORD): HResult; stdcall; |
||
5301 | function EnumTextureFormats(lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; |
||
5302 | lpArg: Pointer): HResult; stdcall; |
||
5303 | function BeginScene: HResult; stdcall; |
||
5304 | function EndScene: HResult; stdcall; |
||
5305 | function GetDirect3D(out lpD3D: IDirect3D3): HResult; stdcall; |
||
5306 | function SetCurrentViewport(lpd3dViewport: IDirect3DViewport3): HResult; stdcall; |
||
5307 | function GetCurrentViewport(out lplpd3dViewport: IDirect3DViewport3): HResult; stdcall; |
||
5308 | function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface4): HResult; stdcall; |
||
5309 | function GetRenderTarget(out lplpNewRenderTarget: IDirectDrawSurface4): HResult; stdcall; |
||
5310 | function Begin_(d3dpt: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5311 | dwFlags: DWORD): HResult; stdcall; |
||
5312 | function BeginIndexed(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5313 | const lpvVertices; dwNumVertices: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5314 | function Vertex(const lpVertexType): HResult; stdcall; |
||
5315 | function Index(wVertexIndex: WORD): HResult; stdcall; |
||
5316 | function End_(dwFlags: DWORD): HResult; stdcall; |
||
5317 | function GetRenderState(dwRenderStateType: TD3DRenderStateType; |
||
5318 | var lpdwRenderState: DWORD): HResult; stdcall; |
||
5319 | function SetRenderState(dwRenderStateType: TD3DRenderStateType; |
||
5320 | dwRenderState: DWORD): HResult; stdcall; |
||
5321 | function GetLightState(dwLightStateType: TD3DLightStateType; |
||
5322 | var lpdwLightState: DWORD): HResult; stdcall; |
||
5323 | function SetLightState(dwLightStateType: TD3DLightStateType; |
||
5324 | dwLightState: DWORD): HResult; stdcall; |
||
5325 | function SetTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5326 | const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5327 | function GetTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5328 | var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5329 | function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; |
||
5330 | var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5331 | function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
||
5332 | dwVertexTypeDesc: DWORD; const lpvVertices; dwVertexCount, |
||
5333 | dwFlags: DWORD): HResult; stdcall; |
||
5334 | function DrawIndexedPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
||
5335 | dwVertexTypeDesc: DWORD; const lpvVertices; |
||
5336 | dwVertexCount: DWORD; const dwIndices; dwIndexCount: DWORD; |
||
5337 | dwFlags: DWORD): HResult; stdcall; |
||
5338 | function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5339 | function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5340 | function DrawPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
||
5341 | dwVertexTypeDesc: DWORD; const lpVertexArray; |
||
5342 | dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5343 | function DrawIndexedPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
||
5344 | dwVertexTypeDesc: DWORD; const lpVertexArray; |
||
5345 | dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5346 | function DrawPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
||
5347 | lpd3dVertexBuffer: IDirect3DVertexBuffer; dwStartVertex, dwNumVertices: DWORD; |
||
5348 | dwFlags: DWORD): HResult; stdcall; |
||
5349 | function DrawIndexedPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
||
5350 | lpd3dVertexBuffer: IDirect3DVertexBuffer; const lpwIndices; dwIndexCount: DWORD; |
||
5351 | dwFlags: DWORD): HResult; stdcall; |
||
5352 | function ComputeSphereVisibility(const lpCenters; const lpRadii; |
||
5353 | dwNumSpheres: DWORD; dwFlags: DWORD; var lpdwReturnValues): HResult; stdcall; |
||
5354 | function GetTexture(dwStage: DWORD; out lplpTexture: IDirect3DTexture2): HResult; stdcall; |
||
5355 | function SetTexture(dwStage: DWORD; lpTexture: IDirect3DTexture2): HResult; stdcall; |
||
5356 | function GetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; |
||
5357 | var lpdwValue: DWORD): HResult; stdcall; |
||
5358 | function SetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; |
||
5359 | lpdwValue: DWORD): HResult; stdcall; |
||
5360 | function ValidateDevice(var lpdwPasses: DWORD): HResult; stdcall; |
||
5361 | end; |
||
5362 | |||
5363 | IDirect3DDevice7 = interface(IUnknown) |
||
5364 | ['{F5049E79-4861-11D2-A407-00A0C90629A8}'] |
||
5365 | // IDirect3DDevice7 methods |
||
5366 | function GetCaps(var lpD3DDeviceDesc: TD3DDeviceDesc7): HResult; stdcall; |
||
5367 | function EnumTextureFormats(lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; |
||
5368 | lpArg: Pointer): HResult; stdcall; |
||
5369 | function BeginScene: HResult; stdcall; |
||
5370 | function EndScene: HResult; stdcall; |
||
5371 | function GetDirect3D(out lplpD3D: IDirect3D7): HResult; stdcall; |
||
5372 | function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface7; dwFlags: DWORD): HResult; stdcall; |
||
5373 | function GetRenderTarget(out lplpRenderTarget: IDirectDrawSurface7): HResult; stdcall; |
||
5374 | function Clear(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD; dwColor: TD3DColor; |
||
5375 | dvZ: TD3DValue; dwStencil: DWORD): HResult; stdcall; |
||
5376 | function SetTransform(dtstTransformStateType: TD3DTransformStateType; const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5377 | function GetTransform(dtstTransformStateType: TD3DTransformStateType; var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5378 | function SetViewport(const lpViewport: TD3DViewport7): HResult; stdcall; |
||
5379 | function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
||
5380 | function GetViewport(var lpViewport: TD3DViewport7): HResult; stdcall; |
||
5381 | function SetMaterial(const lpMaterial: TD3DMaterial7): HResult; stdcall; |
||
5382 | function GetMaterial(var lpMaterial: TD3DMaterial7): HResult; stdcall; |
||
5383 | function SetLight(dwLightIndex: DWORD; const lpLight: TD3DLight7): HResult; stdcall; |
||
5384 | function GetLight(dwLightIndex: DWORD; var lpLight: TD3DLight7): HResult; stdcall; |
||
5385 | function SetRenderState(dwRenderStateType: TD3DRenderStateType; dwRenderState: DWORD): HResult; stdcall; |
||
5386 | function GetRenderState(dwRenderStateType: TD3DRenderStateType; var lpdwRenderState: DWORD): HResult; stdcall; |
||
5387 | function BeginStateBlock: HResult; stdcall; |
||
5388 | function EndStateBlock(var lpdwBlockHandle: DWORD): HResult; stdcall; |
||
5389 | function PreLoad(lpddsTexture: IDirectDrawSurface7): HResult; stdcall; |
||
5390 | function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5391 | const lpvVertices; dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5392 | function DrawIndexedPrimitive(d3dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5393 | const lpvVertices; dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5394 | function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5395 | function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
||
5396 | function DrawPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5397 | const lpVertexArray; dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5398 | function DrawIndexedPrimitiveStrided(d3dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
||
5399 | const lpVertexArray; dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5400 | function DrawPrimitiveVB(d3dptPrimitiveType: TD3DPrimitiveType; lpd3dVertexBuffer: IDirect3DVertexBuffer7; |
||
5401 | dwStartVertex: DWORD; dwNumVertices: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5402 | function DrawIndexedPrimitiveVB(d3dptPrimitiveType: TD3DPrimitiveType; lpd3dVertexBuffer: IDirect3DVertexBuffer7; |
||
5403 | dwStartVertex: DWORD; dwNumVertices: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
5404 | function ComputeSphereVisibility(const lpCenters; const lpRadii; dwNumSpheres: DWORD; dwFlags: DWORD; var lpdwReturnValue): HResult; stdcall; |
||
5405 | function GetTexture(dwStage: DWORD; out lplpTexture: IDirectDrawSurface7): HResult; stdcall; |
||
5406 | function SetTexture(dwStage: DWORD; lpTexture: IDirectDrawSurface7): HResult; stdcall; |
||
5407 | function GetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; var lpdwValue: DWORD): HResult; stdcall; |
||
5408 | function SetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; dwValue: DWORD): HResult; stdcall; |
||
5409 | function ValidateDevice(var lpdwPasses: DWORD): HResult; stdcall; |
||
5410 | function ApplyStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
||
5411 | function CaptureStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
||
5412 | function DeleteStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
||
5413 | function CreateStateBlock(d3dsbType: TD3DSTATEBLOCKTYPE; var lpdwBlockHandle: DWORD): HResult; stdcall; |
||
5414 | function Load(lpDestTex: IDirectDrawSurface7; const lpDestPoint: TPoint; lpSrcTex: IDirectDrawSurface7; const lprcSrcRect: TRect; dwFlags: DWORD): HResult; stdcall; |
||
5415 | function LightEnable(dwLightIndex: DWORD; bEnable: BOOL): HResult; stdcall; |
||
5416 | function GetLightEnable(dwLightIndex: DWORD; var pbEnable: BOOL): HResult; stdcall; |
||
5417 | function SetClipPlane(dwIndex: DWORD; const pPlaneEquation): HResult; stdcall; |
||
5418 | function GetClipPlane(dwIndex: DWORD; var pPlaneEquation): HResult; stdcall; |
||
5419 | function GetInfo(dwDevInfoID: DWORD; pDevInfoStruct: Pointer; dwSize: DWORD): HResult; stdcall; |
||
5420 | end; |
||
5421 | |||
5422 | IDirect3DExecuteBuffer = interface(IUnknown) |
||
5423 | ['{4417C145-33AD-11CF-816F-0000C020156E}'] |
||
5424 | // IDirect3DExecuteBuffer methods |
||
5425 | function Initialize(lpDirect3DDevice: IDirect3DDevice; |
||
5426 | const lpDesc: TD3DExecuteBufferDesc): HResult; stdcall; |
||
5427 | function Lock(var lpDesc: TD3DExecuteBufferDesc): HResult; stdcall; |
||
5428 | function Unlock: HResult; stdcall; |
||
5429 | function SetExecuteData(const lpData: TD3DExecuteData): HResult; stdcall; |
||
5430 | function GetExecuteData(var lpData: TD3DExecuteData): HResult; stdcall; |
||
5431 | function Validate(var lpdwOffset: DWORD; lpFunc: TD3DValidateCallback; |
||
5432 | lpUserArg: Pointer; dwReserved: DWORD): HResult; stdcall; |
||
5433 | function Optimize(dwFlags: DWORD): HResult; stdcall; |
||
5434 | end; |
||
5435 | |||
5436 | IDirect3DLight = interface(IUnknown) |
||
5437 | ['{4417C142-33AD-11CF-816F-0000C020156E}'] |
||
5438 | // IDirect3DLight methods |
||
5439 | function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
||
5440 | function SetLight(const lpLight: TD3DLight): HResult; stdcall; |
||
5441 | function GetLight(var lpLight: TD3DLight): HResult; stdcall; |
||
5442 | end; |
||
5443 | |||
5444 | IDirect3DMaterial = interface(IUnknown) |
||
5445 | ['{4417C144-33AD-11CF-816F-0000C020156E}'] |
||
5446 | // IDirect3DMaterial methods |
||
5447 | function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
||
5448 | function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
||
5449 | function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
||
5450 | function GetHandle(lpDirect3DDevice: IDirect3DDevice; |
||
5451 | var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
||
5452 | function Reserve: HResult; stdcall; |
||
5453 | function Unreserve: HResult; stdcall; |
||
5454 | end; |
||
5455 | |||
5456 | IDirect3DMaterial2 = interface(IUnknown) |
||
5457 | ['{93281503-8CF8-11D0-89AB-00A0C9054129}'] |
||
5458 | // IDirect3DMaterial2 methods |
||
5459 | function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
||
5460 | function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
||
5461 | function GetHandle(lpDirect3DDevice: IDirect3DDevice2; |
||
5462 | var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
||
5463 | end; |
||
5464 | |||
5465 | IDirect3DMaterial3 = interface(IUnknown) |
||
5466 | ['{CA9C46F4-D3C5-11D1-B75A-00600852B312}'] |
||
5467 | // IDirect3DMaterial3 methods |
||
5468 | function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
||
5469 | function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
||
5470 | function GetHandle(lpDirect3DDevice: IDirect3DDevice3; |
||
5471 | var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
||
5472 | end; |
||
5473 | |||
5474 | IDirect3DTexture = interface(IUnknown) |
||
5475 | ['{2CDCD9E0-25A0-11CF-A31A-00AA00B93356}'] |
||
5476 | // IDirect3DTexture methods |
||
5477 | function Initialize(lpD3DDevice: IDirect3DDevice; |
||
5478 | lpDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
5479 | function GetHandle(lpDirect3DDevice: IDirect3DDevice; |
||
5480 | var lpHandle: TD3DTextureHandle): HResult; stdcall; |
||
5481 | function PaletteChanged(dwStart: DWORD; dwCount: DWORD): HResult; stdcall; |
||
5482 | function Load(lpD3DTexture: IDirect3DTexture): HResult; stdcall; |
||
5483 | function Unload: HResult; stdcall; |
||
5484 | end; |
||
5485 | |||
5486 | IDirect3DTexture2 = interface(IUnknown) |
||
5487 | ['{93281502-8CF8-11D0-89AB-00A0C9054129}'] |
||
5488 | // IDirect3DTexture2 methods |
||
5489 | function GetHandle(lpDirect3DDevice2: IDirect3DDevice2; |
||
5490 | var lpHandle: TD3DTextureHandle): HResult; stdcall; |
||
5491 | function PaletteChanged(dwStart: DWORD; dwCount: DWORD): HResult; stdcall; |
||
5492 | function Load(lpD3DTexture2: IDirect3DTexture2): HResult; stdcall; |
||
5493 | end; |
||
5494 | |||
5495 | IDirect3DViewport = interface(IUnknown) |
||
5496 | ['{4417C146-33AD-11CF-816F-0000C020156E}'] |
||
5497 | // IDirect3DViewport methods |
||
5498 | function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
||
5499 | function GetViewport(var lpData: TD3DViewport): HResult; stdcall; |
||
5500 | function SetViewport(const lpData: TD3DViewport): HResult; stdcall; |
||
5501 | function TransformVertices(dwVertexCount: DWORD; |
||
5502 | var lpData: TD3DTransformData; dwFlags: DWORD; |
||
5503 | var lpOffscreen: DWORD): HResult; stdcall; |
||
5504 | function LightElements(dwElementCount: DWORD; |
||
5505 | var lpData: TD3DLightData): HResult; stdcall; |
||
5506 | function SetBackground(hMat: TD3DMaterialHandle): HResult; stdcall; |
||
5507 | function GetBackground(hMat: TD3DMaterialHandle): HResult; stdcall; |
||
5508 | function SetBackgroundDepth(lpDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
5509 | function GetBackgroundDepth(out lplpDDSurface: IDirectDrawSurface; |
||
5510 | var lpValid: BOOL): HResult; stdcall; |
||
5511 | function Clear(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD): HResult; stdcall; |
||
5512 | function AddLight(lpDirect3DLight: IDirect3DLight): HResult; stdcall; |
||
5513 | function DeleteLight(lpDirect3DLight: IDirect3DLight): HResult; stdcall; |
||
5514 | function NextLight(lpDirect3DLight: IDirect3DLight; |
||
5515 | out lplpDirect3DLight: IDirect3DLight; dwFlags: DWORD): HResult; stdcall; |
||
5516 | end; |
||
5517 | |||
5518 | IDirect3DViewport2 = interface(IDirect3DViewport) |
||
5519 | ['{93281500-8CF8-11D0-89AB-00A0C9054129}'] |
||
5520 | // IDirect3DViewport2 methods |
||
5521 | function GetViewport2(var lpData: TD3DViewport2): HResult; stdcall; |
||
5522 | function SetViewport2(const lpData: TD3DViewport2): HResult; stdcall; |
||
5523 | end; |
||
5524 | |||
5525 | IDirect3DViewport3 = interface(IDirect3DViewport2) |
||
5526 | ['{B0AB3B61-33D7-11D1-A981-00C04FD7B174}'] |
||
5527 | // IDirect3DViewport3 methods |
||
5528 | function SetBackgroundDepth2(lpDDS: IDirectDrawSurface4): HResult; stdcall; |
||
5529 | function GetBackgroundDepth2(out lplpDDS: IDirectDrawSurface4; var lpValid: BOOL): HResult; stdcall; |
||
5530 | function Clear2(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD; |
||
5531 | dwColor: DWORD; dvZ: TD3DValue; dwStencil: DWORD): HResult; stdcall; |
||
5532 | end; |
||
5533 | |||
5534 | IDirect3DVertexBuffer = interface(IUnknown) |
||
5535 | ['{7A503555-4A83-11D1-A5DB-00A0C90367F8}'] |
||
5536 | // IDirect3DVertexBuffer methods |
||
5537 | function Lock(dwFlags: DWORD; var lplpData: Pointer; var lpdwSize: DWORD): HResult; stdcall; |
||
5538 | function Unlock: HResult; stdcall; |
||
5539 | function ProcessVertices(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
||
5540 | lpSrcBuffer: IDirect3DVertexBuffer; dwSrcIndex: DWORD; |
||
5541 | lpD3DDevice: IDirect3DDevice3; dwFlags: DWORD): HResult; stdcall; |
||
5542 | function GetVertexBufferDesc(var lpVBDesc: TD3DVertexBufferDesc): HResult; stdcall; |
||
5543 | function Optimize(lpD3DDevice: IDirect3DDevice3; dwFlags: DWORD): HResult; stdcall; |
||
5544 | end; |
||
5545 | |||
5546 | IDirect3DVertexBuffer7 = interface(IUnknown) |
||
5547 | ['{F5049E7D-4861-11D2-A407-00A0C90629A8}'] |
||
5548 | // IDirect3DVertexBuffer7 methods |
||
5549 | function Lock(dwFlags: DWORD; var lplpData: Pointer; var lpdwSize: DWORD): HResult; stdcall; |
||
5550 | function Unlock: HResult; stdcall; |
||
5551 | function ProcessVertices(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
||
5552 | lpSrcBuffer: IDirect3DVertexBuffer7; dwSrcIndex: DWORD; lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
||
5553 | function GetVertexBufferDesc(var lpVBDesc: TD3DVertexBufferDesc): HResult; stdcall; |
||
5554 | function Optimize(lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
||
5555 | function ProcessVerticesStrided(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
||
5556 | const lpVertexArray; dwSrcIndex: DWORD; lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
||
5557 | end; |
||
5558 | |||
5559 | const |
||
5560 | |||
5561 | { Flags for IDirect3DDevice::NextViewport } |
||
5562 | |||
5563 | D3DNEXT_NEXT = $00000001; |
||
5564 | D3DNEXT_HEAD = $00000002; |
||
5565 | D3DNEXT_TAIL = $00000004; |
||
5566 | |||
5567 | { Flags for DrawPrimitive/DrawIndexedPrimitive |
||
5568 | Also valid for Begin/BeginIndexed } |
||
5569 | |||
5570 | D3DDP_WAIT = $00000001; |
||
5571 | D3DDP_OUTOFORDER = $00000002; |
||
5572 | D3DDP_DONOTCLIP = $00000004; |
||
5573 | D3DDP_DONOTUPDATEEXTENTS = $00000008; |
||
5574 | D3DDP_DONOTLIGHT = $00000010; |
||
5575 | |||
5576 | { Direct3D Errors } |
||
5577 | |||
5578 | const |
||
5579 | D3D_OK = HResult(DD_OK); |
||
5580 | D3DERR_BADMAJORVERSION = HResult($88760000 + 700); |
||
5581 | D3DERR_BADMINORVERSION = HResult($88760000 + 701); |
||
5582 | |||
5583 | { An invalid device was requested by the application. } |
||
5584 | |||
5585 | D3DERR_INVALID_DEVICE = HResult($88760000 + 705); |
||
5586 | D3DERR_INITFAILED = HResult($88760000 + 706); |
||
5587 | |||
5588 | { SetRenderTarget attempted on a device that was |
||
5589 | QI'd off the render target. } |
||
5590 | |||
5591 | D3DERR_DEVICEAGGREGATED = HResult($88760000 + 707); |
||
5592 | |||
5593 | D3DERR_EXECUTE_CREATE_FAILED = HResult($88760000 + 710); |
||
5594 | D3DERR_EXECUTE_DESTROY_FAILED = HResult($88760000 + 711); |
||
5595 | D3DERR_EXECUTE_LOCK_FAILED = HResult($88760000 + 712); |
||
5596 | D3DERR_EXECUTE_UNLOCK_FAILED = HResult($88760000 + 713); |
||
5597 | D3DERR_EXECUTE_LOCKED = HResult($88760000 + 714); |
||
5598 | D3DERR_EXECUTE_NOT_LOCKED = HResult($88760000 + 715); |
||
5599 | |||
5600 | D3DERR_EXECUTE_FAILED = HResult($88760000 + 716); |
||
5601 | D3DERR_EXECUTE_CLIPPED_FAILED = HResult($88760000 + 717); |
||
5602 | |||
5603 | D3DERR_TEXTURE_NO_SUPPORT = HResult($88760000 + 720); |
||
5604 | D3DERR_TEXTURE_CREATE_FAILED = HResult($88760000 + 721); |
||
5605 | D3DERR_TEXTURE_DESTROY_FAILED = HResult($88760000 + 722); |
||
5606 | D3DERR_TEXTURE_LOCK_FAILED = HResult($88760000 + 723); |
||
5607 | D3DERR_TEXTURE_UNLOCK_FAILED = HResult($88760000 + 724); |
||
5608 | D3DERR_TEXTURE_LOAD_FAILED = HResult($88760000 + 725); |
||
5609 | D3DERR_TEXTURE_SWAP_FAILED = HResult($88760000 + 726); |
||
5610 | D3DERR_TEXTURE_LOCKED = HResult($88760000 + 727); |
||
5611 | D3DERR_TEXTURE_NOT_LOCKED = HResult($88760000 + 728); |
||
5612 | D3DERR_TEXTURE_GETSURF_FAILED = HResult($88760000 + 729); |
||
5613 | |||
5614 | D3DERR_MATRIX_CREATE_FAILED = HResult($88760000 + 730); |
||
5615 | D3DERR_MATRIX_DESTROY_FAILED = HResult($88760000 + 731); |
||
5616 | D3DERR_MATRIX_SETDATA_FAILED = HResult($88760000 + 732); |
||
5617 | D3DERR_MATRIX_GETDATA_FAILED = HResult($88760000 + 733); |
||
5618 | D3DERR_SETVIEWPORTDATA_FAILED = HResult($88760000 + 734); |
||
5619 | |||
5620 | D3DERR_INVALIDCURRENTVIEWPORT = HResult($88760000 + 735); |
||
5621 | D3DERR_INVALIDPRIMITIVETYPE = HResult($88760000 + 736); |
||
5622 | D3DERR_INVALIDVERTEXTYPE = HResult($88760000 + 737); |
||
5623 | D3DERR_TEXTURE_BADSIZE = HResult($88760000 + 738); |
||
5624 | D3DERR_INVALIDRAMPTEXTURE = HResult($88760000 + 739); |
||
5625 | |||
5626 | D3DERR_MATERIAL_CREATE_FAILED = HResult($88760000 + 740); |
||
5627 | D3DERR_MATERIAL_DESTROY_FAILED = HResult($88760000 + 741); |
||
5628 | D3DERR_MATERIAL_SETDATA_FAILED = HResult($88760000 + 742); |
||
5629 | D3DERR_MATERIAL_GETDATA_FAILED = HResult($88760000 + 743); |
||
5630 | |||
5631 | D3DERR_INVALIDPALETTE = HResult($88760000 + 744); |
||
5632 | |||
5633 | D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY = HResult($88760000 + 745); |
||
5634 | D3DERR_ZBUFF_NEEDS_VIDEOMEMORY = HResult($88760000 + 746); |
||
5635 | D3DERR_SURFACENOTINVIDMEM = HResult($88760000 + 747); |
||
5636 | |||
5637 | D3DERR_LIGHT_SET_FAILED = HResult($88760000 + 750); |
||
5638 | D3DERR_LIGHTHASVIEWPORT = HResult($88760000 + 751); |
||
5639 | D3DERR_LIGHTNOTINTHISVIEWPORT = HResult($88760000 + 752); |
||
5640 | |||
5641 | D3DERR_SCENE_IN_SCENE = HResult($88760000 + 760); |
||
5642 | D3DERR_SCENE_NOT_IN_SCENE = HResult($88760000 + 761); |
||
5643 | D3DERR_SCENE_BEGIN_FAILED = HResult($88760000 + 762); |
||
5644 | D3DERR_SCENE_END_FAILED = HResult($88760000 + 763); |
||
5645 | |||
5646 | D3DERR_INBEGIN = HResult($88760000 + 770); |
||
5647 | D3DERR_NOTINBEGIN = HResult($88760000 + 771); |
||
5648 | D3DERR_NOVIEWPORTS = HResult($88760000 + 772); |
||
5649 | D3DERR_VIEWPORTDATANOTSET = HResult($88760000 + 773); |
||
5650 | D3DERR_VIEWPORTHASNODEVICE = HResult($88760000 + 774); |
||
5651 | D3DERR_NOCURRENTVIEWPORT = HResult($88760000 + 775); |
||
5652 | |||
5653 | D3DERR_INVALIDVERTEXFORMAT = HResult($88760000 + 2048); |
||
5654 | |||
5655 | D3DERR_COLORKEYATTACHED = HResult($88760000 + 2050); |
||
5656 | |||
5657 | D3DERR_VERTEXBUFFEROPTIMIZED = HResult($88760000 + 2060); |
||
5658 | D3DERR_VBUF_CREATE_FAILED = HResult($88760000 + 2061); |
||
5659 | D3DERR_VERTEXBUFFERLOCKED = HResult($88760000 + 2062); |
||
5660 | D3DERR_VERTEXBUFFERUNLOCKFAILED = HResult($88760000 + 2063); |
||
5661 | |||
5662 | D3DERR_ZBUFFER_NOTPRESENT = HResult($88760000 + 2070); |
||
5663 | D3DERR_STENCILBUFFER_NOTPRESENT = HResult($88760000 + 2071); |
||
5664 | |||
5665 | D3DERR_WRONGTEXTUREFORMAT = HResult($88760000 + 2072); |
||
5666 | D3DERR_UNSUPPORTEDCOLOROPERATION = HResult($88760000 + 2073); |
||
5667 | D3DERR_UNSUPPORTEDCOLORARG = HResult($88760000 + 2074); |
||
5668 | D3DERR_UNSUPPORTEDALPHAOPERATION = HResult($88760000 + 2075); |
||
5669 | D3DERR_UNSUPPORTEDALPHAARG = HResult($88760000 + 2076); |
||
5670 | D3DERR_TOOMANYOPERATIONS = HResult($88760000 + 2077); |
||
5671 | D3DERR_CONFLICTINGTEXTUREFILTER = HResult($88760000 + 2078); |
||
5672 | D3DERR_UNSUPPORTEDFACTORVALUE = HResult($88760000 + 2079); |
||
5673 | D3DERR_CONFLICTINGRENDERSTATE = HResult($88760000 + 2081); |
||
5674 | D3DERR_UNSUPPORTEDTEXTUREFILTER = HResult($88760000 + 2082); |
||
5675 | D3DERR_TOOMANYPRIMITIVES = HResult($88760000 + 2083); |
||
5676 | D3DERR_INVALIDMATRIX = HResult($88760000 + 2084); |
||
5677 | D3DERR_TOOMANYVERTICES = HResult($88760000 + 2085); |
||
5678 | D3DERR_CONFLICTINGTEXTUREPALETTE = HResult($88760000 + 2086); |
||
5679 | |||
5680 | D3DERR_INVALIDSTATEBLOCK = HResult($88760000 + 2100); |
||
5681 | D3DERR_INBEGINSTATEBLOCK = HResult($88760000 + 2101); |
||
5682 | D3DERR_NOTINBEGINSTATEBLOCK = HResult($88760000 + 2102); |
||
5683 | |||
5684 | (*==========================================================================; |
||
5685 | * |
||
5686 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
5687 | * |
||
5688 | * File: d3drmdef.h |
||
5689 | * Content: Direct3DRM include file |
||
5690 | * |
||
5691 | ***************************************************************************) |
||
5692 | |||
5693 | { TD3DRMVector4D structure } |
||
5694 | |||
5695 | type |
||
5696 | PD3DRMVector4D = ^TD3DRMVector4D; |
||
5697 | TD3DRMVector4D = record |
||
5698 | x, y, z, w: TD3DValue; |
||
5699 | end; |
||
5700 | |||
5701 | D3DRMVECTOR4D = TD3DRMVector4D; |
||
5702 | LPD3DRMVECTOR4D = PD3DRMVector4D; |
||
5703 | |||
5704 | { TD3DRMMatrix4D structure } |
||
5705 | |||
5706 | TD3DRMMatrix4D = array[0..3, 0..3] of TD3DValue; |
||
5707 | D3DRMMATRIX4D = TD3DRMMatrix4D; |
||
5708 | |||
5709 | { TD3DRMQuaternion structure } |
||
5710 | |||
5711 | PD3DRMQuaternion = ^TD3DRMQuaternion; |
||
5712 | TD3DRMQuaternion = record |
||
5713 | s: TD3DValue; |
||
5714 | v: TD3DVector; |
||
5715 | end; |
||
5716 | |||
5717 | D3DRMQUATERNION = TD3DRMQuaternion; |
||
5718 | LPD3DRMQUATERNION = PD3DRMQUATERNION; |
||
5719 | |||
5720 | { TD3DRMRay structure } |
||
5721 | |||
5722 | PD3DRMRay = ^TD3DRMRay; |
||
5723 | TD3DRMRay = record |
||
5724 | dvDir: TD3DVector; |
||
5725 | dvPos: TD3DVector; |
||
5726 | end; |
||
5727 | |||
5728 | D3DRMRAY = TD3DRMRay; |
||
5729 | LPD3DRMRAY = PD3DRMRay; |
||
5730 | |||
5731 | { TD3DRMBox structure } |
||
5732 | |||
5733 | PD3DRMBox = ^TD3DRMBox; |
||
5734 | TD3DRMBox = record |
||
5735 | min, max: TD3DVector; |
||
5736 | end; |
||
5737 | |||
5738 | D3DRMBOX = TD3DRMBox; |
||
5739 | LPD3DRMBOX = PD3DRMBox; |
||
5740 | |||
5741 | { TD3DRMWrapCallback } |
||
5742 | |||
5743 | TD3DRMWrapCallback = procedure(var lpD3DVector: TD3DVector; var lpU: Integer; |
||
5744 | var lpV: Integer; var lpD3DRMVA: TD3DVector; lpD3DRMVB: TD3DVector; |
||
5745 | lpArg: Pointer); stdcall; |
||
5746 | |||
5747 | D3DRMWRAPCALLBACK = TD3DRMWrapCallback; |
||
5748 | |||
5749 | { TD3DRMLightType } |
||
5750 | |||
5751 | TD3DRMLightType = ( |
||
5752 | D3DRMLIGHT_AMBIENT, |
||
5753 | D3DRMLIGHT_POINT, |
||
5754 | D3DRMLIGHT_SPOT, |
||
5755 | D3DRMLIGHT_DIRECTIONAL, |
||
5756 | D3DRMLIGHT_PARALLELPOINT |
||
5757 | ); |
||
5758 | |||
5759 | D3DRMLIGHTTYPE = TD3DRMLightType; |
||
5760 | |||
5761 | { TD3DRMShadeMode } |
||
5762 | |||
5763 | TD3DRMShadeMode = Word; |
||
5764 | D3DRMSHADEMODE = TD3DRMShadeMode; |
||
5765 | |||
5766 | const |
||
5767 | D3DRMSHADE_FLAT = 0; |
||
5768 | D3DRMSHADE_GOURAUD = 1; |
||
5769 | D3DRMSHADE_PHONG = 2; |
||
5770 | D3DRMSHADE_MASK = 7; |
||
5771 | D3DRMSHADE_MAX = 8; |
||
5772 | |||
5773 | { TD3DRMLightMode } |
||
5774 | |||
5775 | type |
||
5776 | TD3DRMLightMode = Word; |
||
5777 | D3DRMLIGHTMODE = TD3DRMLightMode; |
||
5778 | |||
5779 | const |
||
5780 | D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX; |
||
5781 | D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX; |
||
5782 | D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX; |
||
5783 | D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX; |
||
5784 | |||
5785 | { TD3DRMFillMode } |
||
5786 | |||
5787 | type |
||
5788 | TD3DRMFillMode = Word; |
||
5789 | D3DRMFILLMODE = TD3DRMFillMode; |
||
5790 | |||
5791 | const |
||
5792 | D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX; |
||
5793 | D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX; |
||
5794 | D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX; |
||
5795 | D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX; |
||
5796 | D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX; |
||
5797 | |||
5798 | { TD3DRMRenderQuality } |
||
5799 | |||
5800 | type |
||
5801 | TD3DRMRenderQuality = DWORD; |
||
5802 | D3DRMRENDERQUALITY = TD3DRMRenderQuality; |
||
5803 | |||
5804 | const |
||
5805 | D3DRMRENDER_WIREFRAME = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_WIREFRAME; |
||
5806 | D3DRMRENDER_UNLITFLAT = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_SOLID; |
||
5807 | D3DRMRENDER_FLAT = D3DRMSHADE_FLAT + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
||
5808 | D3DRMRENDER_GOURAUD = D3DRMSHADE_GOURAUD + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
||
5809 | D3DRMRENDER_PHONG = D3DRMSHADE_PHONG + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
||
5810 | |||
5811 | D3DRMRENDERMODE_BLENDEDTRANSPARENCY = 1; |
||
5812 | D3DRMRENDERMODE_SORTEDTRANSPARENCY = 2; |
||
5813 | D3DRMRENDERMODE_LIGHTINMODELSPACE = 8; |
||
5814 | D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR = 16; |
||
5815 | D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE = 32; |
||
5816 | |||
5817 | { TD3DRMTextureQuality } |
||
5818 | |||
5819 | type |
||
5820 | TD3DRMTextureQuality = ( |
||
5821 | D3DRMTEXTURE_NEAREST, // choose nearest texel |
||
5822 | D3DRMTEXTURE_LINEAR, // interpolate 4 texels |
||
5823 | D3DRMTEXTURE_MIPNEAREST, // nearest texel in nearest mipmap |
||
5824 | D3DRMTEXTURE_MIPLINEAR, // interpolate 2 texels from 2 mipmaps |
||
5825 | D3DRMTEXTURE_LINEARMIPNEAREST, // interpolate 4 texels in nearest mipmap |
||
5826 | D3DRMTEXTURE_LINEARMIPLINEAR // interpolate 8 texels from 2 mipmaps |
||
5827 | ); |
||
5828 | |||
5829 | D3DRMTEXTUREQUALITY = TD3DRMTextureQuality; |
||
5830 | |||
5831 | { Texture flags } |
||
5832 | |||
5833 | const |
||
5834 | D3DRMTEXTURE_FORCERESIDENT = $00000001; // texture should be kept in video memory |
||
5835 | D3DRMTEXTURE_STATIC = $00000002; // texture will not change |
||
5836 | D3DRMTEXTURE_DOWNSAMPLEPOINT = $00000004; // point filtering should be used when downsampling |
||
5837 | D3DRMTEXTURE_DOWNSAMPLEBILINEAR = $00000008; // bilinear filtering should be used when downsampling |
||
5838 | D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH = $00000010; // reduce bit depth when downsampling |
||
5839 | D3DRMTEXTURE_DOWNSAMPLENONE = $00000020; // texture should never be downsampled |
||
5840 | D3DRMTEXTURE_CHANGEDPIXELS = $00000040; // pixels have changed |
||
5841 | D3DRMTEXTURE_CHANGEDPALETTE = $00000080; // palette has changed |
||
5842 | D3DRMTEXTURE_INVALIDATEONLY = $00000100; // dirty regions are invalid |
||
5843 | |||
5844 | { Shadow flags } |
||
5845 | |||
5846 | const |
||
5847 | D3DRMSHADOW_TRUEALPHA = $00000001; // shadow should render without artifacts when true alpha is on |
||
5848 | |||
5849 | { TD3DRMCombineType } |
||
5850 | |||
5851 | type |
||
5852 | TD3DRMCombineType = ( |
||
5853 | D3DRMCOMBINE_REPLACE, |
||
5854 | D3DRMCOMBINE_BEFORE, |
||
5855 | D3DRMCOMBINE_AFTER |
||
5856 | ); |
||
5857 | |||
5858 | D3DRMCOMBINETYPE = TD3DRMCombineType; |
||
5859 | |||
5860 | { TD3DRMColorModel } |
||
5861 | |||
5862 | TD3DRMColorModel = TD3DColorModel; |
||
5863 | D3DRMCOLORMODEL = TD3DRMColorModel; |
||
5864 | |||
5865 | { TD3DRMPaletteFlags } |
||
5866 | |||
5867 | TD3DRMPaletteFlags = ( |
||
5868 | D3DRMPALETTE_FREE, // renderer may use this entry freely |
||
5869 | D3DRMPALETTE_READONLY, // fixed but may be used by renderer |
||
5870 | D3DRMPALETTE_RESERVED // may not be used by renderer |
||
5871 | ); |
||
5872 | |||
5873 | D3DRMPALETTEFLAGS = TD3DRMPaletteFlags; |
||
5874 | |||
5875 | { TD3DRMPaletteEntry structure } |
||
5876 | |||
5877 | PD3DRMPaletteEntry = ^TD3DRMPaletteEntry; |
||
5878 | TD3DRMPaletteEntry = record |
||
5879 | red: Byte; // 0 .. 255 |
||
5880 | green: Byte; // 0 .. 255 |
||
5881 | blue: Byte; // 0 .. 255 |
||
5882 | flags: Byte; // one of TD3DRMPaletteFlags |
||
5883 | end; |
||
5884 | |||
5885 | D3DRMPALETTEENTRY = TD3DRMPaletteEntry; |
||
5886 | LPD3DRMPALETTEENTRY = PD3DRMPaletteEntry; |
||
5887 | |||
5888 | { TD3DRMImage structure } |
||
5889 | |||
5890 | PD3DRMImage = ^TD3DRMImage; |
||
5891 | TD3DRMImage = record |
||
5892 | width, height: Integer; (* width and height in pixels *) |
||
5893 | aspectx, aspecty: Integer; (* aspect ratio for non-square pixels *) |
||
5894 | depth: Integer; (* bits per pixel *) |
||
5895 | rgb: Integer; (* if false, pixels are indices into a |
||
5896 | palette otherwise, pixels encode |
||
5897 | RGB values. *) |
||
5898 | bytes_per_line: Integer; (* number of bytes of memory for a |
||
5899 | scanline. This must be a multiple |
||
5900 | of 4. *) |
||
5901 | buffer1: Pointer; (* memory to render into (first buffer). *) |
||
5902 | buffer2: Pointer; (* second rendering buffer for double |
||
5903 | buffering, set to NULL for single |
||
5904 | buffering. *) |
||
5905 | red_mask: Longint; |
||
5906 | green_mask: Longint; |
||
5907 | blue_mask: Longint; |
||
5908 | alpha_mask: Longint; (* if rgb is true, these are masks for |
||
5909 | the red, green and blue parts of a |
||
5910 | pixel. Otherwise, these are masks |
||
5911 | for the significant bits of the |
||
5912 | red, green and blue elements in the |
||
5913 | palette. For instance, most SVGA |
||
5914 | displays use 64 intensities of red, |
||
5915 | green and blue, so the masks should |
||
5916 | all be set to = $fc. *) |
||
5917 | palette_size: Integer; (* number of entries in palette *) |
||
5918 | palette: PD3DRMPaletteEntry; (* description of the palette (only if |
||
5919 | rgb is false). Must be (1<<depth) |
||
5920 | elements. *) |
||
5921 | end; |
||
5922 | |||
5923 | D3DRMIMAGE = TD3DRMImage; |
||
5924 | LPD3DRMIMAGE = PD3DRMImage; |
||
5925 | |||
5926 | { TD3DRMWrapType } |
||
5927 | |||
5928 | TD3DRMWrapType = ( |
||
5929 | D3DRMWRAP_FLAT, |
||
5930 | D3DRMWRAP_CYLINDER, |
||
5931 | D3DRMWRAP_SPHERE, |
||
5932 | D3DRMWRAP_CHROME, |
||
5933 | D3DRMWRAP_SHEET, |
||
5934 | D3DRMWRAP_BOX |
||
5935 | ); |
||
5936 | |||
5937 | D3DRMWRAPTYPE = TD3DRMWrapType; |
||
5938 | |||
5939 | const |
||
5940 | D3DRMWIREFRAME_CULL = 1; // cull backfaces |
||
5941 | D3DRMWIREFRAME_HIDDENLINE = 2; // lines are obscured by closer objects |
||
5942 | |||
5943 | { TD3DRMProjectionType } |
||
5944 | |||
5945 | type |
||
5946 | TD3DRMProjectionType = ( |
||
5947 | D3DRMPROJECT_PERSPECTIVE, |
||
5948 | D3DRMPROJECT_ORTHOGRAPHIC, |
||
5949 | D3DRMPROJECT_RIGHTHANDPERSPECTIVE, // Only valid pre-DX6 |
||
5950 | D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC // Only valid pre-DX6 |
||
5951 | ); |
||
5952 | |||
5953 | D3DRMPROJECTIONTYPE = TD3DRMProjectionType; |
||
5954 | |||
5955 | const |
||
5956 | D3DRMOPTIONS_LEFTHANDED = $00000001; // Default |
||
5957 | D3DRMOPTIONS_RIGHTHANDED = $00000002; |
||
5958 | |||
5959 | { TD3DRMXOFFormat } |
||
5960 | |||
5961 | type |
||
5962 | TD3DRMXOFFormat = ( |
||
5963 | D3DRMXOF_BINARY, |
||
5964 | D3DRMXOF_COMPRESSED, |
||
5965 | D3DRMXOF_TEXT |
||
5966 | ); |
||
5967 | |||
5968 | D3DRMXOFFORMAT = TD3DRMXOFFormat; |
||
5969 | |||
5970 | { TD3DRMSaveOptions } |
||
5971 | |||
5972 | TD3DRMSaveOptions = DWORD; |
||
5973 | D3DRMSAVEOPTIONS = TD3DRMSaveOptions; |
||
5974 | |||
5975 | const |
||
5976 | D3DRMXOFSAVE_NORMALS = 1; |
||
5977 | D3DRMXOFSAVE_TEXTURECOORDINATES = 2; |
||
5978 | D3DRMXOFSAVE_MATERIALS = 4; |
||
5979 | D3DRMXOFSAVE_TEXTURENAMES = 8; |
||
5980 | D3DRMXOFSAVE_ALL = 15; |
||
5981 | D3DRMXOFSAVE_TEMPLATES = 16; |
||
5982 | D3DRMXOFSAVE_TEXTURETOPOLOGY = 32; |
||
5983 | |||
5984 | { TD3DRMColorSource } |
||
5985 | |||
5986 | type |
||
5987 | TD3DRMColorSource = ( |
||
5988 | D3DRMCOLOR_FROMFACE, |
||
5989 | D3DRMCOLOR_FROMVERTEX |
||
5990 | ); |
||
5991 | |||
5992 | D3DRMCOLORSOURCE = TD3DRMColorSource; |
||
5993 | |||
5994 | { TD3DRMFrameConstraint } |
||
5995 | |||
5996 | TD3DRMFrameConstraint = ( |
||
5997 | D3DRMCONSTRAIN_Z, // use only X and Y rotations |
||
5998 | D3DRMCONSTRAIN_Y, // use only X and Z rotations |
||
5999 | D3DRMCONSTRAIN_X // use only Y and Z rotations |
||
6000 | ); |
||
6001 | |||
6002 | D3DRMFRAMECONSTRAINT = TD3DRMFrameConstraint; |
||
6003 | |||
6004 | { TD3DRMMaterialMode } |
||
6005 | |||
6006 | TD3DRMMaterialMode = ( |
||
6007 | D3DRMMATERIAL_FROMMESH, |
||
6008 | D3DRMMATERIAL_FROMPARENT, |
||
6009 | D3DRMMATERIAL_FROMFRAME |
||
6010 | ); |
||
6011 | |||
6012 | D3DRMMATERIALMODE = TD3DRMMaterialMode; |
||
6013 | |||
6014 | { TD3DRMFogMode } |
||
6015 | |||
6016 | TD3DRMFogMode = ( |
||
6017 | D3DRMFOG_LINEAR, // linear between start and end |
||
6018 | D3DRMFOG_EXPONENTIAL, // density * exp(-distance) |
||
6019 | D3DRMFOG_EXPONENTIALSQUARED // density * exp(-distance*distance) |
||
6020 | ); |
||
6021 | |||
6022 | D3DRMFOGMODE = TD3DRMFogMode; |
||
6023 | |||
6024 | { TD3DRMZBufferMode } |
||
6025 | |||
6026 | TD3DRMZBufferMode = ( |
||
6027 | D3DRMZBUFFER_FROMPARENT, // default |
||
6028 | D3DRMZBUFFER_ENABLE, // enable zbuffering |
||
6029 | D3DRMZBUFFER_DISABLE // disable zbuffering |
||
6030 | ); |
||
6031 | |||
6032 | D3DRMZBUFFERMODE = TD3DRMZBufferMode; |
||
6033 | |||
6034 | { TD3DRMSortMode } |
||
6035 | |||
6036 | TD3DRMSortMode = ( |
||
6037 | D3DRMSORT_FROMPARENT, // default |
||
6038 | D3DRMSORT_NONE, // don't sort child frames |
||
6039 | D3DRMSORT_FRONTTOBACK, // sort child frames front-to-back |
||
6040 | D3DRMSORT_BACKTOFRONT // sort child frames back-to-front |
||
6041 | ); |
||
6042 | |||
6043 | D3DRMSORTMODE = TD3DRMSortMode; |
||
6044 | |||
6045 | { TD3DRMMaterialOverride structure } |
||
6046 | |||
6047 | PD3DRMMaterialOverride = ^TD3DRMMaterialOverride; |
||
6048 | TD3DRMMaterialOverride = record |
||
6049 | dwSize: DWORD; // Size of this structure |
||
6050 | dwFlags: DWORD; // Indicate which fields are valid |
||
6051 | dcDiffuse: TD3DColorValue; // RGBA |
||
6052 | dcAmbient: TD3DColorValue; // RGB |
||
6053 | dcEmissive: TD3DColorValue; // RGB |
||
6054 | dcSpecular: TD3DColorValue; // RGB |
||
6055 | dvPower: TD3DValue; |
||
6056 | lpD3DRMTex: IUnknown; |
||
6057 | end; |
||
6058 | |||
6059 | D3DRMMATERIALOVERRIDE = TD3DRMMaterialOverride; |
||
6060 | LPD3DRMMATERIALOVERRIDE = PD3DRMMaterialOverride; |
||
6061 | |||
6062 | const |
||
6063 | D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY = $00000001; |
||
6064 | D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY = $00000002; |
||
6065 | D3DRMMATERIALOVERRIDE_DIFFUSE = $00000003; |
||
6066 | D3DRMMATERIALOVERRIDE_AMBIENT = $00000004; |
||
6067 | D3DRMMATERIALOVERRIDE_EMISSIVE = $00000008; |
||
6068 | D3DRMMATERIALOVERRIDE_SPECULAR = $00000010; |
||
6069 | D3DRMMATERIALOVERRIDE_POWER = $00000020; |
||
6070 | D3DRMMATERIALOVERRIDE_TEXTURE = $00000040; |
||
6071 | D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY = $00000080; |
||
6072 | D3DRMMATERIALOVERRIDE_ALL = $000000FF; |
||
6073 | |||
6074 | D3DRMFPTF_ALPHA = $00000001; |
||
6075 | D3DRMFPTF_NOALPHA = $00000002; |
||
6076 | D3DRMFPTF_PALETTIZED = $00000004; |
||
6077 | D3DRMFPTF_NOTPALETTIZED = $00000008; |
||
6078 | |||
6079 | D3DRMSTATECHANGE_UPDATEONLY = $000000001; |
||
6080 | D3DRMSTATECHANGE_VOLATILE = $000000002; |
||
6081 | D3DRMSTATECHANGE_NONVOLATILE = $000000004; |
||
6082 | D3DRMSTATECHANGE_RENDER = $000000020; |
||
6083 | D3DRMSTATECHANGE_LIGHT = $000000040; |
||
6084 | |||
6085 | { Values for flags in RM3::CreateDeviceFromSurface } |
||
6086 | |||
6087 | D3DRMDEVICE_NOZBUFFER = $00000001; |
||
6088 | |||
6089 | { Values for flags in Object2::SetClientData } |
||
6090 | |||
6091 | D3DRMCLIENTDATA_NONE = $00000001; |
||
6092 | D3DRMCLIENTDATA_LOCALFREE = $00000002; |
||
6093 | D3DRMCLIENTDATA_IUNKNOWN = $00000004; |
||
6094 | |||
6095 | { Values for flags in Frame2::AddMoveCallback. } |
||
6096 | |||
6097 | D3DRMCALLBACK_PREORDER = 0; |
||
6098 | D3DRMCALLBACK_POSTORDER = 1; |
||
6099 | |||
6100 | { Values for flags in MeshBuilder2::RayPick. } |
||
6101 | |||
6102 | D3DRMRAYPICK_ONLYBOUNDINGBOXES = 1; |
||
6103 | D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES = 2; |
||
6104 | D3DRMRAYPICK_INTERPOLATEUV = 4; |
||
6105 | D3DRMRAYPICK_INTERPOLATECOLOR = 8; |
||
6106 | D3DRMRAYPICK_INTERPOLATENORMAL = $10; |
||
6107 | |||
6108 | { Values for flags in MeshBuilder3::AddFacesIndexed. } |
||
6109 | |||
6110 | D3DRMADDFACES_VERTICESONLY = 1; |
||
6111 | |||
6112 | |||
6113 | { Values for flags in MeshBuilder2::GenerateNormals. } |
||
6114 | |||
6115 | D3DRMGENERATENORMALS_PRECOMPACT = 1; |
||
6116 | D3DRMGENERATENORMALS_USECREASEANGLE = 2; |
||
6117 | |||
6118 | { Values for MeshBuilder3::GetParentMesh } |
||
6119 | |||
6120 | D3DRMMESHBUILDER_DIRECTPARENT = 1; |
||
6121 | D3DRMMESHBUILDER_ROOTMESH = 2; |
||
6122 | |||
6123 | { Flags for MeshBuilder3::Enable } |
||
6124 | D3DRMMESHBUILDER_RENDERENABLE = $00000001; |
||
6125 | D3DRMMESHBUILDER_PICKENABLE = $00000002; |
||
6126 | |||
6127 | { Flags for MeshBuilder3::AddMeshBuilder } |
||
6128 | D3DRMADDMESHBUILDER_DONTCOPYAPPDATA = 1; |
||
6129 | D3DRMADDMESHBUILDER_FLATTENSUBMESHES = 2; |
||
6130 | D3DRMADDMESHBUILDER_NOSUBMESHES = 4; |
||
6131 | |||
6132 | { Flags for Object2::GetAge when used with MeshBuilders } |
||
6133 | D3DRMMESHBUILDERAGE_GEOMETRY = $00000001; |
||
6134 | D3DRMMESHBUILDERAGE_MATERIALS = $00000002; |
||
6135 | D3DRMMESHBUILDERAGE_TEXTURES = $00000004; |
||
6136 | |||
6137 | { Format flags for MeshBuilder3::AddTriangles. } |
||
6138 | |||
6139 | D3DRMFVF_TYPE = $00000001; |
||
6140 | D3DRMFVF_NORMAL = $00000002; |
||
6141 | D3DRMFVF_COLOR = $00000004; |
||
6142 | D3DRMFVF_TEXTURECOORDS = $00000008; |
||
6143 | |||
6144 | D3DRMVERTEX_STRIP = $00000001; |
||
6145 | D3DRMVERTEX_FAN = $00000002; |
||
6146 | D3DRMVERTEX_LIST = $00000004; |
||
6147 | |||
6148 | { Values for flags in Viewport2::Clear2 } |
||
6149 | |||
6150 | D3DRMCLEAR_TARGET = $00000001; |
||
6151 | D3DRMCLEAR_ZBUFFER = $00000002; |
||
6152 | D3DRMCLEAR_DIRTYRECTS = $00000004; |
||
6153 | D3DRMCLEAR_ALL = D3DRMCLEAR_TARGET or D3DRMCLEAR_ZBUFFER or D3DRMCLEAR_DIRTYRECTS; |
||
6154 | |||
6155 | { Values for flags in Frame3::SetSceneFogMethod } |
||
6156 | |||
6157 | D3DRMFOGMETHOD_VERTEX = $00000001; |
||
6158 | D3DRMFOGMETHOD_TABLE = $00000002; |
||
6159 | D3DRMFOGMETHOD_ANY = $00000004; |
||
6160 | |||
6161 | { Values for flags in Frame3::SetTraversalOptions } |
||
6162 | |||
6163 | D3DRMFRAME_RENDERENABLE = $00000001; |
||
6164 | D3DRMFRAME_PICKENABLE = $00000002; |
||
6165 | |||
6166 | { TD3DRMAnimationOptions } |
||
6167 | |||
6168 | type |
||
6169 | TD3DRMAnimationOptions = DWORD; |
||
6170 | D3DRMANIMATIONOPTIONS = TD3DRMAnimationOptions; |
||
6171 | |||
6172 | const |
||
6173 | D3DRMANIMATION_OPEN = $01; |
||
6174 | D3DRMANIMATION_CLOSED = $02; |
||
6175 | D3DRMANIMATION_LINEARPOSITION = $04; |
||
6176 | D3DRMANIMATION_SPLINEPOSITION = $08; |
||
6177 | D3DRMANIMATION_SCALEANDROTATION = $00000010; |
||
6178 | D3DRMANIMATION_POSITION = $00000020; |
||
6179 | |||
6180 | { TD3DRMInterpolationOptions } |
||
6181 | |||
6182 | type |
||
6183 | TD3DRMInterpolationOptions = DWORD; |
||
6184 | D3DRMINTERPOLATIONOPTIONS = TD3DRMInterpolationOptions; |
||
6185 | |||
6186 | const |
||
6187 | D3DRMINTERPOLATION_OPEN = $01; |
||
6188 | D3DRMINTERPOLATION_CLOSED = $02; |
||
6189 | D3DRMINTERPOLATION_NEAREST = $0100; |
||
6190 | D3DRMINTERPOLATION_LINEAR = $04; |
||
6191 | D3DRMINTERPOLATION_SPLINE = $08; |
||
6192 | D3DRMINTERPOLATION_VERTEXCOLOR = $40; |
||
6193 | D3DRMINTERPOLATION_SLERPNORMALS = $80; |
||
6194 | |||
6195 | { TD3DRMLoadOptions } |
||
6196 | |||
6197 | type |
||
6198 | TD3DRMLoadOptions = DWORD; |
||
6199 | D3DRMLOADOPTIONS = TD3DRMLoadOptions; |
||
6200 | |||
6201 | const |
||
6202 | D3DRMLOAD_FROMFILE = $00; |
||
6203 | D3DRMLOAD_FROMRESOURCE = $01; |
||
6204 | D3DRMLOAD_FROMMEMORY = $02; |
||
6205 | D3DRMLOAD_FROMSTREAM = $04; |
||
6206 | D3DRMLOAD_FROMURL = $08; |
||
6207 | |||
6208 | D3DRMLOAD_BYNAME = $10; |
||
6209 | D3DRMLOAD_BYPOSITION = $20; |
||
6210 | D3DRMLOAD_BYGUID = $40; |
||
6211 | D3DRMLOAD_FIRST = $80; |
||
6212 | |||
6213 | D3DRMLOAD_INSTANCEBYREFERENCE = $100; |
||
6214 | D3DRMLOAD_INSTANCEBYCOPYING = $200; |
||
6215 | |||
6216 | D3DRMLOAD_ASYNCHRONOUS = $400; |
||
6217 | |||
6218 | { TD3DRMLoadReource } |
||
6219 | |||
6220 | type |
||
6221 | PD3DRMLoadReource = ^TD3DRMLoadReource; |
||
6222 | TD3DRMLoadReource = record |
||
6223 | hModule: HMODULE; |
||
6224 | lpName: PChar; |
||
6225 | lpType: PChar; |
||
6226 | end; |
||
6227 | |||
6228 | D3DRMLOADRESOURCE = TD3DRMLoadReource; |
||
6229 | LPD3DRMLOADRESOURCE = PD3DRMLoadReource; |
||
6230 | |||
6231 | { TD3DRMLoadMemory } |
||
6232 | |||
6233 | PD3DRMLoadMemory = ^TD3DRMLoadMemory; |
||
6234 | TD3DRMLoadMemory = record |
||
6235 | lpMemory: Pointer; |
||
6236 | dSize: DWORD; |
||
6237 | end; |
||
6238 | |||
6239 | D3DRMLOADMEMORY = TD3DRMLoadMemory; |
||
6240 | LPD3DRMLOADMEMORY = PD3DRMLoadMemory; |
||
6241 | |||
6242 | const |
||
6243 | D3DRMPMESHSTATUS_VALID = $01; |
||
6244 | D3DRMPMESHSTATUS_INTERRUPTED = $02; |
||
6245 | D3DRMPMESHSTATUS_BASEMESHCOMPLETE = $04; |
||
6246 | D3DRMPMESHSTATUS_COMPLETE = $08; |
||
6247 | D3DRMPMESHSTATUS_RENDERABLE = $10; |
||
6248 | |||
6249 | D3DRMPMESHEVENT_BASEMESH = $01; |
||
6250 | D3DRMPMESHEVENT_COMPLETE = $02; |
||
6251 | |||
6252 | { TD3DRMPMeshLoadStatus } |
||
6253 | |||
6254 | type |
||
6255 | PD3DRMPMeshLoadStatus = ^TD3DRMPMeshLoadStatus; |
||
6256 | TD3DRMPMeshLoadStatus = record |
||
6257 | dwSize: DWORD; // Size of this structure |
||
6258 | dwPMeshSize: DWORD; // Total Size (bytes) |
||
6259 | dwBaseMeshSize: DWORD; // Total Size of the Base Mesh |
||
6260 | dwBytesLoaded: DWORD; // Total bytes loaded |
||
6261 | dwVerticesLoaded: DWORD; // Number of vertices loaded |
||
6262 | dwFacesLoaded: DWORD; // Number of faces loaded |
||
6263 | dwLoadResult: HResult; // Result of the load operation |
||
6264 | dwFlags: DWORD; |
||
6265 | end; |
||
6266 | |||
6267 | D3DRMPMESHLOADSTATUS = TD3DRMPMeshLoadStatus; |
||
6268 | LPD3DRMPMESHLOADSTATUS = PD3DRMPMeshLoadStatus; |
||
6269 | |||
6270 | { TD3DRMUserVisualReason } |
||
6271 | |||
6272 | TD3DRMUserVisualReason = ( |
||
6273 | D3DRMUSERVISUAL_CANSEE, |
||
6274 | D3DRMUSERVISUAL_RENDER |
||
6275 | ); |
||
6276 | |||
6277 | D3DRMUSERVISUALREASON = TD3DRMUserVisualReason; |
||
6278 | |||
6279 | { TD3DRMAnimationKey } |
||
6280 | |||
6281 | PD3DRMAnimationKey = ^TD3DRMAnimationKey; |
||
6282 | TD3DRMAnimationKey = record |
||
6283 | dwSize: DWORD; |
||
6284 | dwKeyType: DWORD; |
||
6285 | dvTime: TD3DValue; |
||
6286 | dwID: DWORD; |
||
6287 | |||
6288 | case Integer of |
||
6289 | 0: (dqRotateKey: TD3DRMQuaternion); |
||
6290 | 1: (dvScaleKey: TD3DVector); |
||
6291 | 2: (dvPositionKey: TD3DVector); |
||
6292 | 3: (dvK: array[0..3] of TD3DValue); |
||
6293 | end; |
||
6294 | |||
6295 | D3DRMANIMATIONKEY = TD3DRMAnimationKey; |
||
6296 | LPD3DRMANIMATIONKEY = PD3DRMAnimationKey; |
||
6297 | |||
6298 | procedure D3DRMAnimationGetRotateKey(const rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
||
6299 | procedure D3DRMAnimationGetScaleKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
||
6300 | procedure D3DRMAnimationGetPositionKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
||
6301 | procedure D3DRMAnimationSetRotateKey(var rmKey: TD3DRMAnimationKey; const rmQuat: TD3DRMQuaternion); |
||
6302 | procedure D3DRMAnimationSetScaleKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
||
6303 | procedure D3DRMAnimationSetPositionKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
||
6304 | |||
6305 | const |
||
6306 | D3DRMANIMATION_ROTATEKEY = $01; |
||
6307 | D3DRMANIMATION_SCALEKEY = $02; |
||
6308 | D3DRMANIMATION_POSITIONKEY = $03; |
||
6309 | |||
6310 | { TD3DRMMapping } |
||
6311 | |||
6312 | type |
||
6313 | TD3DRMMapping = DWORD; |
||
6314 | D3DRMMAPPING = TD3DRMMapping; |
||
6315 | |||
6316 | { TD3DRMMappingFlag } |
||
6317 | |||
6318 | TD3DRMMappingFlag = DWORD; |
||
6319 | D3DRMMAPPINGFLAG = TD3DRMMappingFlag; |
||
6320 | |||
6321 | const |
||
6322 | D3DRMMAP_WRAPU = 1; |
||
6323 | D3DRMMAP_WRAPV = 2; |
||
6324 | D3DRMMAP_PERSPCORRECT = 4; |
||
6325 | |||
6326 | { TD3DRMVertex } |
||
6327 | |||
6328 | type |
||
6329 | PD3DRMVertex = ^TD3DRMVertex; |
||
6330 | TD3DRMVertex = record |
||
6331 | position: TD3DVector; |
||
6332 | normal: TD3DVector; |
||
6333 | tu, tv: TD3DValue; |
||
6334 | color: TD3DColor; |
||
6335 | end; |
||
6336 | |||
6337 | D3DRMVERTEX = TD3DRMVertex; |
||
6338 | LPD3DRMVERTEX = PD3DRMVertex; |
||
6339 | |||
6340 | { TD3DRMGroupIndex } |
||
6341 | |||
6342 | TD3DRMGroupIndex = Longint; |
||
6343 | D3DRMGROUPINDEX = TD3DRMGroupIndex; // group indexes begin a 0 |
||
6344 | |||
6345 | const |
||
6346 | D3DRMGROUP_ALLGROUPS = -1; |
||
6347 | |||
6348 | { Create a color from three components in the range 0-1 inclusive. } |
||
6349 | function D3DRMCreateColorRGB(red, green, blue: TD3DValue): TD3DColor; stdcall; |
||
6350 | |||
6351 | { Create a color from four components in the range 0-1 inclusive. } |
||
6352 | function D3DRMCreateColorRGBA(red, green, blue, alpha: TD3DValue): TD3DColor; stdcall; |
||
6353 | |||
6354 | { Get the red component of a color. } |
||
6355 | function D3DRMColorGetRed(d3drmc: TD3DColor): TD3DValue; stdcall; |
||
6356 | |||
6357 | { Get the green component of a color. } |
||
6358 | function D3DRMColorGetGreen(d3drmc: TD3DColor): TD3DValue; stdcall; |
||
6359 | |||
6360 | { Get the blue component of a color. } |
||
6361 | function D3DRMColorGetBlue(d3drmc: TD3DColor): TD3DValue; stdcall; |
||
6362 | |||
6363 | { Get the alpha component of a color. } |
||
6364 | function D3DRMColorGetAlpha(d3drmc: TD3DColor): TD3DValue; stdcall; |
||
6365 | |||
6366 | { Add two vectors. Returns its first argument. } |
||
6367 | function D3DRMVectorAdd(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
||
6368 | |||
6369 | { Subtract two vectors. Returns its first argument. } |
||
6370 | function D3DRMVectorSubtract(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
||
6371 | |||
6372 | { Reflect a ray about a given normal. Returns its first argument. } |
||
6373 | function D3DRMVectorReflect(var d, ray, norm: TD3DVector): PD3DVector; stdcall; |
||
6374 | |||
6375 | { Calculate the vector cross product. Returns its first argument. } |
||
6376 | function D3DRMVectorCrossProduct(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
||
6377 | |||
6378 | { Return the vector dot product. } |
||
6379 | function D3DRMVectorDotProduct(var s1, s2: TD3DVector): TD3DValue; stdcall; |
||
6380 | |||
6381 | { Scale a vector so that its modulus is 1. Returns its argument or |
||
6382 | NULL if there was an error (e.g. a zero vector was passed). } |
||
6383 | function D3DRMVectorNormalize(var lpv: TD3DVector): PD3DVector; stdcall; |
||
6384 | |||
6385 | { Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)). } |
||
6386 | function D3DRMVectorModulus(var v: TD3DVector): TD3DValue; stdcall; |
||
6387 | |||
6388 | { Set the rotation part of a matrix to be a rotation of theta radians |
||
6389 | around the given axis. } |
||
6390 | function D3DRMVectorRotate(var r, v, axis: TD3DVector; theta: TD3DValue): PD3DVector; stdcall; |
||
6391 | |||
6392 | { Scale a vector uniformly in all three axes } |
||
6393 | function D3DRMVectorScale( var d, s: TD3DVector; factor: TD3DValue): PD3DVector; stdcall; |
||
6394 | |||
6395 | { Return a random unit vector } |
||
6396 | function D3DRMVectorRandom(var d: TD3DVector): PD3DVector; stdcall; |
||
6397 | |||
6398 | { Returns a unit quaternion that represents a rotation of theta radians |
||
6399 | around the given axis. } |
||
6400 | function D3DRMQuaternionFromRotation(var quat: PD3DRMQuaternion; |
||
6401 | var v: TD3DVector; theta: TD3DValue): PD3DRMQuaternion; stdcall; |
||
6402 | |||
6403 | { Calculate the product of two quaternions } |
||
6404 | function D3DRMQuaternionMultiply(var q, a, b: TD3DRMQuaternion): PD3DRMQuaternion; stdcall; |
||
6405 | |||
6406 | { Interpolate between two quaternions } |
||
6407 | function D3DRMQuaternionSlerp(var q, a, b: TD3DRMQuaternion; alpha: TD3DValue): PD3DRMQuaternion; stdcall; |
||
6408 | |||
6409 | { Calculate the matrix for the rotation that a unit quaternion represents } |
||
6410 | procedure D3DRMMatrixFromQuaternion(dmMat: TD3DRMMatrix4D; var lpDqQuat: TD3DRMQuaternion); stdcall; |
||
6411 | |||
6412 | { Calculate the quaternion that corresponds to a rotation matrix } |
||
6413 | function D3DRMQuaternionFromMatrix(var lpQuat: TD3DRMQuaternion; Mat: TD3DRMMatrix4D): PD3DRMQuaternion; |
||
6414 | |||
6415 | (*==========================================================================; |
||
6416 | * |
||
6417 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
6418 | * |
||
6419 | * File: d3drm.h, d3drmobj.h, d3drmwin.h |
||
6420 | * Content: Direct3DRM include file |
||
6421 | * |
||
6422 | ***************************************************************************) |
||
6423 | |||
6424 | { Direct3DRM Object classes } |
||
6425 | const |
||
6426 | CLSID_CDirect3DRMDevice: TGUID = '{4FA3568E-623F-11CF-AC4A-0000C03825A1}'; |
||
6427 | CLSID_CDirect3DRMViewport: TGUID = '{4FA3568F-623F-11CF-AC4A-0000C03825A1}'; |
||
6428 | CLSID_CDirect3DRMFrame: TGUID = '{4FA35690-623F-11CF-AC4A-0000C03825A1}'; |
||
6429 | CLSID_CDirect3DRMMesh: TGUID = '{4FA35691-623F-11CF-AC4A-0000C03825A1}'; |
||
6430 | CLSID_CDirect3DRMMeshBuilder: TGUID = '{4FA35692-623F-11CF-AC4A-0000C03825A1}'; |
||
6431 | CLSID_CDirect3DRMFace: TGUID = '{4FA35693-623F-11CF-AC4A-0000C03825A1}'; |
||
6432 | CLSID_CDirect3DRMLight: TGUID = '{4FA35694-623F-11CF-AC4A-0000C03825A1}'; |
||
6433 | CLSID_CDirect3DRMTexture: TGUID = '{4FA35695-623F-11CF-AC4A-0000C03825A1}'; |
||
6434 | CLSID_CDirect3DRMWrap: TGUID = '{4FA35696-623F-11CF-AC4A-0000C03825A1}'; |
||
6435 | CLSID_CDirect3DRMMaterial: TGUID = '{4FA35697-623F-11CF-AC4A-0000C03825A1}'; |
||
6436 | CLSID_CDirect3DRMAnimation: TGUID = '{4FA35698-623F-11CF-AC4A-0000C03825A1}'; |
||
6437 | CLSID_CDirect3DRMAnimationSet: TGUID = '{4FA35699-623F-11CF-AC4A-0000C03825A1}'; |
||
6438 | CLSID_CDirect3DRMUserVisual: TGUID = '{4FA3569A-623F-11CF-AC4A-0000C03825A1}'; |
||
6439 | CLSID_CDirect3DRMShadow: TGUID = '{4FA3569B-623F-11CF-AC4A-0000C03825A1}'; |
||
6440 | CLSID_CDirect3DRMViewportInterpolator: TGUID = '{0DE9EAA1-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6441 | CLSID_CDirect3DRMFrameInterpolator: TGUID = '{0DE9EAA2-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6442 | CLSID_CDirect3DRMMeshInterpolator: TGUID = '{0DE9EAA3-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6443 | CLSID_CDirect3DRMLightInterpolator: TGUID = '{0DE9EAA6-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6444 | CLSID_CDirect3DRMMaterialInterpolator: TGUID = '{0DE9EAA7-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6445 | CLSID_CDirect3DRMTextureInterpolator: TGUID = '{0DE9EAA8-3B84-11D0-9B6D-0000C0781BC3}'; |
||
6446 | CLSID_CDirect3DRMProgressiveMesh: TGUID = '{4516EC40-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6447 | CLSID_CDirect3DRMClippedVisual: TGUID = '{5434E72D-6D66-11D1-BB0B-0000F875865A}'; |
||
6448 | |||
6449 | { Direct3DRM Object interfaces } |
||
6450 | |||
6451 | IID_IDirect3DRMObject: TGUID = '{EB16CB00-D271-11CE-AC48-0000C03825A1}'; |
||
6452 | IID_IDirect3DRMObject2: TGUID = '{4516EC7C-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6453 | IID_IDirect3DRMDevice: TGUID = '{E9E19280-6E05-11CF-AC4A-0000C03825A1}'; |
||
6454 | IID_IDirect3DRMDevice2: TGUID = '{4516EC78-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6455 | IID_IDirect3DRMDevice3: TGUID = '{549F498B-BFEB-11D1-8ED8-00A0C967A482}'; |
||
6456 | IID_IDirect3DRMViewport: TGUID = '{EB16CB02-D271-11CE-AC48-0000C03825A1}'; |
||
6457 | IID_IDirect3DRMViewport2: TGUID = '{4A1B1BE6-BFED-11D1-8ED8-00A0C967A482}'; |
||
6458 | IID_IDirect3DRMFrame: TGUID = '{EB16CB03-D271-11CE-AC48-0000C03825A1}'; |
||
6459 | IID_IDirect3DRMFrame2: TGUID = '{C3DFBD60-3988-11D0-9EC2-0000C0291AC3}'; |
||
6460 | IID_IDirect3DRMFrame3: TGUID = '{FF6B7F70-A40E-11D1-91F9-0000F8758E66}'; |
||
6461 | IID_IDirect3DRMVisual: TGUID = '{EB16CB04-D271-11CE-AC48-0000C03825A1}'; |
||
6462 | IID_IDirect3DRMMesh: TGUID = '{A3A80D01-6E12-11CF-AC4A-0000C03825A1}'; |
||
6463 | IID_IDirect3DRMMeshBuilder: TGUID = '{A3A80D02-6E12-11CF-AC4A-0000C03825A1}'; |
||
6464 | IID_IDirect3DRMMeshBuilder2: TGUID = '{4516EC77-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6465 | IID_IDirect3DRMMeshBuilder3: TGUID = '{4516EC82-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6466 | IID_IDirect3DRMFace: TGUID = '{EB16CB07-D271-11CE-AC48-0000C03825A1}'; |
||
6467 | IID_IDirect3DRMFace2: TGUID = '{4516EC81-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6468 | IID_IDirect3DRMLight: TGUID = '{EB16CB08-D271-11CE-AC48-0000C03825A1}'; |
||
6469 | IID_IDirect3DRMTexture: TGUID = '{EB16CB09-D271-11CE-AC48-0000C03825A1}'; |
||
6470 | IID_IDirect3DRMTexture2: TGUID = '{120F30C0-1629-11D0-941C-0080C80CFA7B}'; |
||
6471 | IID_IDirect3DRMTexture3: TGUID = '{FF6B7F73-A40E-11D1-91F9-0000F8758E66}'; |
||
6472 | IID_IDirect3DRMWrap: TGUID = '{EB16CB0A-D271-11CE-AC48-0000C03825A1}'; |
||
6473 | IID_IDirect3DRMMaterial: TGUID = '{EB16CB0B-D271-11CE-AC48-0000C03825A1}'; |
||
6474 | IID_IDirect3DRMMaterial2: TGUID = '{FF6B7F75-A40E-11D1-91F9-0000F8758E66}'; |
||
6475 | IID_IDirect3DRMAnimation: TGUID = '{EB16CB0D-D271-11CE-AC48-0000C03825A1}'; |
||
6476 | IID_IDirect3DRMAnimation2: TGUID = '{FF6B7F77-A40E-11D1-91F9-0000F8758E66}'; |
||
6477 | IID_IDirect3DRMAnimationSet: TGUID = '{EB16CB0E-D271-11CE-AC48-0000C03825A1}'; |
||
6478 | IID_IDirect3DRMAnimationSet2: TGUID = '{FF6B7F79-A40E-11D1-91F9-0000F8758E66}'; |
||
6479 | IID_IDirect3DRMObjectArray: TGUID = '{242F6BC2-3849-11D0-9B6D-0000C0781BC3}'; |
||
6480 | IID_IDirect3DRMDeviceArray: TGUID = '{EB16CB10-D271-11CE-AC48-0000C03825A1}'; |
||
6481 | IID_IDirect3DRMViewportArray: TGUID = '{EB16CB11-D271-11CE-AC48-0000C03825A1}'; |
||
6482 | IID_IDirect3DRMFrameArray: TGUID = '{EB16CB12-D271-11CE-AC48-0000C03825A1}'; |
||
6483 | IID_IDirect3DRMVisualArray: TGUID = '{EB16CB13-D271-11CE-AC48-0000C03825A1}'; |
||
6484 | IID_IDirect3DRMLightArray: TGUID = '{EB16CB14-D271-11CE-AC48-0000C03825A1}'; |
||
6485 | IID_IDirect3DRMPickedArray: TGUID = '{EB16CB16-D271-11CE-AC48-0000C03825A1}'; |
||
6486 | IID_IDirect3DRMFaceArray: TGUID = '{EB16CB17-D271-11CE-AC48-0000C03825A1}'; |
||
6487 | IID_IDirect3DRMAnimationArray: TGUID = '{D5F1CAE0-4BD7-11D1-B974-0060083E45F3}'; |
||
6488 | IID_IDirect3DRMUserVisual: TGUID = '{59163DE0-6D43-11CF-AC4A-0000C03825A1}'; |
||
6489 | IID_IDirect3DRMShadow: TGUID = '{AF359780-6BA3-11CF-AC4A-0000C03825A1}'; |
||
6490 | IID_IDirect3DRMShadow2: TGUID = '{86B44E25-9C82-11D1-BB0B-00A0C981A0A6}'; |
||
6491 | IID_IDirect3DRMInterpolator: TGUID = '{242F6BC1-3849-11D0-9B6D-0000C0781BC3}'; |
||
6492 | IID_IDirect3DRMProgressiveMesh: TGUID = '{4516EC79-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6493 | IID_IDirect3DRMPicked2Array: TGUID = '{4516EC7B-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6494 | IID_IDirect3DRMClippedVisual: TGUID = '{5434E733-6D66-11D1-BB0B-0000F875865A}'; |
||
6495 | |||
6496 | IID_IDirect3DRMWinDevice: TGUID = '{C5016CC0-D273-11CE-AC48-0000C03825A1}'; |
||
6497 | IID_IDirect3DRM: TGUID = '{2BC49361-8327-11CF-AC4A-0000C03825A1}'; |
||
6498 | IID_IDirect3DRM2: TGUID = '{4516ECC8-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6499 | IID_IDirect3DRM3: TGUID = '{4516EC83-8F20-11D0-9B6D-0000C0781BC3}'; |
||
6500 | |||
6501 | type |
||
6502 | IDirect3DRMObject = interface; |
||
6503 | IDirect3DRMObject2 = interface; |
||
6504 | IDirect3DRMDevice = interface; |
||
6505 | IDirect3DRMDevice2 = interface; |
||
6506 | IDirect3DRMDevice3 = interface; |
||
6507 | IDirect3DRMViewport = interface; |
||
6508 | IDirect3DRMViewport2 = interface; |
||
6509 | IDirect3DRMFrame = interface; |
||
6510 | IDirect3DRMFrame2 = interface; |
||
6511 | IDirect3DRMFrame3 = interface; |
||
6512 | IDirect3DRMVisual = interface; |
||
6513 | IDirect3DRMMesh = interface; |
||
6514 | IDirect3DRMMeshBuilder = interface; |
||
6515 | IDirect3DRMMeshBuilder2 = interface; |
||
6516 | IDirect3DRMMeshBuilder3 = interface; |
||
6517 | IDirect3DRMFace = interface; |
||
6518 | IDirect3DRMFace2 = interface; |
||
6519 | IDirect3DRMLight = interface; |
||
6520 | IDirect3DRMTexture = interface; |
||
6521 | IDirect3DRMTexture2 = interface; |
||
6522 | IDirect3DRMTexture3 = interface; |
||
6523 | IDirect3DRMWrap = interface; |
||
6524 | IDirect3DRMMaterial = interface; |
||
6525 | IDirect3DRMMaterial2 = interface; |
||
6526 | IDirect3DRMInterpolator = interface; |
||
6527 | IDirect3DRMAnimation = interface; |
||
6528 | IDirect3DRMAnimation2 = interface; |
||
6529 | IDirect3DRMAnimationSet = interface; |
||
6530 | IDirect3DRMAnimationSet2 = interface; |
||
6531 | IDirect3DRMUserVisual = interface; |
||
6532 | IDirect3DRMShadow = interface; |
||
6533 | IDirect3DRMShadow2 = interface; |
||
6534 | IDirect3DRMArray= interface; |
||
6535 | IDirect3DRMObjectArray = interface; |
||
6536 | IDirect3DRMDeviceArray = interface; |
||
6537 | IDirect3DRMFaceArray = interface; |
||
6538 | IDirect3DRMViewportArray = interface; |
||
6539 | IDirect3DRMFrameArray = interface; |
||
6540 | IDirect3DRMAnimationArray = interface; |
||
6541 | IDirect3DRMVisualArray = interface; |
||
6542 | IDirect3DRMPickedArray = interface; |
||
6543 | IDirect3DRMPicked2Array = interface; |
||
6544 | IDirect3DRMLightArray = interface; |
||
6545 | IDirect3DRMProgressiveMesh = interface; |
||
6546 | IDirect3DRMClippedVisual = interface; |
||
6547 | |||
6548 | IDirect3DRMWinDevice = interface; |
||
6549 | IDirect3DRM = interface; |
||
6550 | IDirect3DRM2 = interface; |
||
6551 | IDirect3DRM3 = interface; |
||
6552 | |||
6553 | TD3DRMObjectCallback = procedure(obj: IDirect3DRMObject; arg: Pointer); cdecl; |
||
6554 | D3DRMOBJECTCALLBACK = TD3DRMObjectCallback; |
||
6555 | |||
6556 | TD3DRMFrameMoveCallback = procedure(obj: IDirect3DRMFrame; arg: Pointer; delta: TD3DValue); cdecl; |
||
6557 | D3DRMFRAMEMOVECALLBACK = TD3DRMFrameMoveCallback; |
||
6558 | |||
6559 | TD3DRMFrame3MoveCallback = procedure(obj: IDirect3DRMFrame3; arg: Pointer; delta: TD3DValue); cdecl; |
||
6560 | D3DRMFRAME3MOVECALLBACK = TD3DRMFrame3MoveCallback; |
||
6561 | |||
6562 | TD3DRMUpdateCallback = procedure(obj: IDirect3DRMDevice; arg: Pointer; |
||
6563 | iRectCount: DWORD; d3dRectUpdate: PD3DRect); cdecl; |
||
6564 | D3DRMUPDATECALLBACK = TD3DRMUpdateCallback; |
||
6565 | |||
6566 | TD3DRMDevice3UpdateCallback = procedure(obj: IDirect3DRMDevice3; arg: Pointer; |
||
6567 | iRectCount: DWORD; d3dRectUpdate: PD3DRect); cdecl; |
||
6568 | D3DRMDEVICE3UPDATECALLBACK = TD3DRMDevice3UpdateCallback; |
||
6569 | |||
6570 | TD3DRMUserVisualCallback = function(lpD3DRMUV: IDirect3DRMUserVisual; |
||
6571 | lpArg: Pointer; lpD3DRMUVreason: TD3DRMUserVisualReason; |
||
6572 | lpD3DRMDev: IDirect3DRMDevice; |
||
6573 | lpD3DRMview: IDirect3DRMViewport): Longint; cdecl; |
||
6574 | D3DRMUSERVISUALCALLBACK = TD3DRMUserVisualCallback; |
||
6575 | |||
6576 | TD3DRMLoadTextureCallback = function(tex_name: PChar; arg: Pointer; |
||
6577 | out lpD3DRMTex: IDirect3DRMTexture): HResult; cdecl; |
||
6578 | D3DRMLOADTEXTURECALLBACK = TD3DRMLoadTextureCallback; |
||
6579 | |||
6580 | TD3DRMLoadTexture3Callback = function(tex_name: PChar; arg: Pointer; |
||
6581 | out lpD3DRMTex: IDirect3DRMTexture3): HResult; cdecl; |
||
6582 | D3DRMLOADTEXTURE3CALLBACK = TD3DRMLoadTexture3Callback; |
||
6583 | |||
6584 | TD3DRMLoadCallback = procedure(lpObject: IDirect3DRMObject; const ObjectGuid: TGUID; |
||
6585 | lpArg: Pointer); cdecl; |
||
6586 | D3DRMLOADCALLBACK = TD3DRMLoadCallback; |
||
6587 | |||
6588 | TD3DRMDownSampleCallback = function(lpDirect3DRMTexture: IDirect3DRMTexture3; |
||
6589 | pArg: Pointer; pDDSSrc, pDDSDst: IDirectDrawSurface): HResult; cdecl; |
||
6590 | D3DRMDOWNSAMPLECALLBACK = TD3DRMDownSampleCallback; |
||
6591 | |||
6592 | TD3DRMValidationCallback = function(lpDirect3DRMTexture: IDirect3DRMTexture3; |
||
6593 | pArg: Pointer; dwFlags: DWORD; dwcRects: DWORD; pRects: PRect): HResult; cdecl; |
||
6594 | D3DRMVALIDATIONCALLBACK = TD3DRMValidationCallback; |
||
6595 | |||
6596 | { TD3DRMPickDesc } |
||
6597 | |||
6598 | PD3DRMPickDesc = ^TD3DRMPickDesc; |
||
6599 | TD3DRMPickDesc = record |
||
6600 | ulFaceIdx: Longint; |
||
6601 | lGroupIdx: Longint; |
||
6602 | vPosition: TD3DVector; |
||
6603 | end; |
||
6604 | |||
6605 | D3DRMPICKDESC = TD3DRMPickDesc; |
||
6606 | LPD3DRMPICKDESC = PD3DRMPickDesc; |
||
6607 | |||
6608 | { TD3DRMPickDesc2 } |
||
6609 | |||
6610 | PD3DRMPickDesc2 = ^TD3DRMPickDesc2; |
||
6611 | TD3DRMPickDesc2 = record |
||
6612 | ulFaceIdx: Longint; |
||
6613 | lGroupIdx: Longint; |
||
6614 | dvPosition: TD3DVector; |
||
6615 | tu, tv: TD3DValue; |
||
6616 | dvNormal: TD3DVector; |
||
6617 | dcColor: TD3DColor; |
||
6618 | end; |
||
6619 | |||
6620 | D3DRMPICKDESC2 = TD3DRMPickDesc2; |
||
6621 | LPD3DRMPICKDESC2 = PD3DRMPickDesc2; |
||
6622 | |||
6623 | IDirect3DRMObject = interface(IUnknown) |
||
6624 | ['{EB16CB00-D271-11CE-AC48-0000C03825A1}'] |
||
6625 | // IDirect3DRMObject methods |
||
6626 | function Clone(pUnkOuter: IUnknown; const riid: TGUID; out ppvObj): HResult; stdcall; |
||
6627 | function AddDestroyCallback(lpCallback: TD3DRMObjectCallback; |
||
6628 | lpArg: Pointer): HResult; stdcall; |
||
6629 | function DeleteDestroyCallback(d3drmObjProc: TD3DRMObjectCallback; |
||
6630 | lpArg: Pointer): HResult; stdcall; |
||
6631 | function SetAppData(ulData: DWORD): HResult; stdcall; |
||
6632 | function GetAppData: DWORD; stdcall; |
||
6633 | function SetName(lpName: PChar): HResult; stdcall; |
||
6634 | function GetName(var lpdwSize: DWORD; lpName: PChar): HResult; stdcall; |
||
6635 | function GetClassName(var lpdwSize: DWORD; lpName: PChar): HResult; stdcall; |
||
6636 | end; |
||
6637 | |||
6638 | IDirect3DRMObject2 = interface(IUnknown) |
||
6639 | ['{EB16CB00-D271-11CE-AC48-0000C03825A1}'] |
||
6640 | // IDirect3DRMObject2 methods |
||
6641 | function AddDestroyCallback(lpCallback: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
||
6642 | function Clone(pUnkOuter: IUnknown; const riid: TGUID; |
||
6643 | out ppvObj): HResult; stdcall; |
||
6644 | function DeleteDestroyCallback(d3drmObjProc: TD3DRMObjectCallback; |
||
6645 | lpArg: Pointer): HResult; stdcall; |
||
6646 | function GetClientData(dwID: DWORD; var lplpvData: Pointer): HResult; stdcall; |
||
6647 | function GetDirect3DRM(out lplpDirect3DRM: IDirect3DRM): HResult; stdcall; |
||
6648 | function GetName(var lpdwSize: DWORD; lpName: LPSTR): HResult; stdcall; |
||
6649 | function SetClientData(dwID: DWORD; lplpvData: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
6650 | function SetName(lpName: PChar): HResult; stdcall; |
||
6651 | function GetAge(dwFlags: DWORD; var pdwAge: DWORD): HResult; stdcall; |
||
6652 | end; |
||
6653 | |||
6654 | IDirect3DRMVisual = interface(IDirect3DRMObject) |
||
6655 | ['{EB16CB04-D271-11CE-AC48-0000C03825A1}'] |
||
6656 | end; |
||
6657 | |||
6658 | IDirect3DRMDevice = interface(IDirect3DRMObject) |
||
6659 | ['{E9E19280-6E05-11CF-AC4A-0000C03825A1}'] |
||
6660 | // IDirect3DRMDevice methods |
||
6661 | function Init(width, height: DWORD): HResult; stdcall; |
||
6662 | function InitFromD3D(lpD3D: IDirect3D; lpD3DIMDev: IDirect3DDevice): HResult; stdcall; |
||
6663 | function InitFromClipper(lpDDClipper: IDirectDrawClipper; |
||
6664 | const lpGUID: TGUID; width, height: DWORD): HResult; stdcall; |
||
6665 | function Update: HResult; stdcall; |
||
6666 | function AddUpdateCallback(d3drmUpdateProc: TD3DRMUpdateCallback; |
||
6667 | arg: Pointer): HResult; stdcall; |
||
6668 | function DeleteUpdateCallback(d3drmUpdateProc: TD3DRMUpdateCallback; |
||
6669 | arg: Pointer): HResult; stdcall; |
||
6670 | function SetBufferCount(dwCount: DWORD): HResult; stdcall; |
||
6671 | function GetBufferCount: DWORD; stdcall; |
||
6672 | function SetDither(bDither: BOOL): HResult; stdcall; |
||
6673 | function SetShades(ulShades: DWORD): HResult; stdcall; |
||
6674 | function SetQuality(rqQuality: TD3DRMRenderQuality): HResult; stdcall; |
||
6675 | function SetTextureQuality(tqTextureQuality: TD3DRMTextureQuality): HResult; stdcall; |
||
6676 | function GetViewports(out lplpViewports: IDirect3DRMViewportArray): HResult; stdcall; |
||
6677 | function GetDither: BOOL; stdcall; |
||
6678 | function GetShades: DWORD; stdcall; |
||
6679 | function GetHeight: DWORD; stdcall; |
||
6680 | function GetWidth: DWORD; stdcall; |
||
6681 | function GetTrianglesDrawn: DWORD; stdcall; |
||
6682 | function GetWireframeOptions: DWORD; stdcall; |
||
6683 | function GetQuality: TD3DRMRenderQuality; stdcall; |
||
6684 | function GetColorModel: TD3DColorModel; stdcall; |
||
6685 | function GetTextureQuality: TD3DRMTextureQuality; stdcall; |
||
6686 | function GetDirect3DDevice(out lplpD3DDevice: IDirect3DDevice): HResult; stdcall; |
||
6687 | end; |
||
6688 | |||
6689 | IDirect3DRMDevice2 = interface(IDirect3DRMDevice) |
||
6690 | ['{4516EC78-8F20-11D0-9B6D-0000C0781BC3}'] |
||
6691 | // IDirect3DRMDevice2 methods |
||
6692 | function InitFromD3D2(lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2): HResult; stdcall; |
||
6693 | function InitFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
||
6694 | lpDDSBack: IDirectDrawSurface): HResult; stdcall; |
||
6695 | function SetRenderMode(dwFlags: DWORD): HResult; stdcall; |
||
6696 | function GetRenderMode: DWORD; stdcall; |
||
6697 | function GetDirect3DDevice2(out lplpD3DDevice: IDirect3DDevice2): HResult; stdcall; |
||
6698 | end; |
||
6699 | |||
6700 | IDirect3DRMDevice3 = interface(IDirect3DRMDevice2) |
||
6701 | ['{549F498B-BFEB-11D1-8ED8-00A0C967A482}'] |
||
6702 | // IDirect3DRMDevice3 methods |
||
6703 | function FindPreferredTextureFormat(dwBitDepths: DWORD; dwFlags: DWORD; |
||
6704 | var lpDDPF: TDDPixelFormat): HResult; stdcall; |
||
6705 | function RenderStateChange(drsType: TD3DRenderStateType; dwVal: DWORD; |
||
6706 | dwFlags: DWORD): HResult; stdcall; |
||
6707 | function LightStateChange(drsType: TD3DLightStateType; dwVal: DWORD; |
||
6708 | dwFlags: DWORD): HResult; stdcall; |
||
6709 | function GetStateChangeOptions(dwStateClass: DWORD; dwStateNum: DWORD; |
||
6710 | var pdwFlags: DWORD): HResult; stdcall; |
||
6711 | function SetStateChangeOptions(dwStateClass: DWORD; dwStateNum: DWORD; |
||
6712 | dwFlags: DWORD): HResult; stdcall; |
||
6713 | end; |
||
6714 | |||
6715 | IDirect3DRMViewport = interface(IDirect3DRMObject) |
||
6716 | ['{EB16CB02-D271-11CE-AC48-0000C03825A1}'] |
||
6717 | // IDirect3DRMViewport methods |
||
6718 | function Init(lpD3DRMDevice: IDirect3DRMDevice; |
||
6719 | lpD3DRMFrameCamera: IDirect3DRMFrame; xpos, ypos, width, height: DWORD): HResult; stdcall; |
||
6720 | function Clear: HResult; stdcall; |
||
6721 | function Render(lpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
||
6722 | function SetFront(rvFront: TD3DValue): HResult; stdcall; |
||
6723 | function SetBack(rvBack: TD3DValue): HResult; stdcall; |
||
6724 | function SetField(rvField: TD3DValue): HResult; stdcall; |
||
6725 | function SetUniformScaling(bScale: BOOL): HResult; stdcall; |
||
6726 | function SetCamera(lpCamera: IDirect3DRMFrame): HResult; stdcall; |
||
6727 | function SetProjection(rptType: TD3DRMProjectionType): HResult; stdcall; |
||
6728 | function Transform(var lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector): HResult; stdcall; |
||
6729 | function InverseTransform(var lprvDst: TD3DVector; |
||
6730 | var lprvSrc: TD3DRMVector4D): HResult; stdcall; |
||
6731 | function Configure(lX, lY: Longint; dwWidth, dwHeight: DWORD): HResult; stdcall; |
||
6732 | function ForceUpdate(dwX1, dwY1, dwX2, dwY2: DWORD): HResult; stdcall; |
||
6733 | function SetPlane(rvLeft, rvRight, rvBottom, rvTop: TD3DValue): HResult; stdcall; |
||
6734 | function GetCamera(out lpCamera: IDirect3DRMFrame): HResult; stdcall; |
||
6735 | function GetDevice(out lpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
||
6736 | function GetPlane(var lpd3dvLeft, lpd3dvRight, lpd3dvBottom, |
||
6737 | lpd3dvTop: TD3DValue): HResult; stdcall; |
||
6738 | function Pick(lX, lY: Longint; out lplpVisuals: IDirect3DRMPickedArray): HResult; stdcall; |
||
6739 | function GetUniformScaling: BOOL; stdcall; |
||
6740 | function GetX: Longint; stdcall; |
||
6741 | function GetY: Longint; stdcall; |
||
6742 | function GetWidth: DWORD; stdcall; |
||
6743 | function GetHeight: DWORD; stdcall; |
||
6744 | function GetField: TD3DValue; stdcall; |
||
6745 | function GetBack: TD3DValue; stdcall; |
||
6746 | function GetFront: TD3DValue; stdcall; |
||
6747 | function GetProjection: TD3DRMProjectionType; stdcall; |
||
6748 | function GetDirect3DViewport(out lplpD3DViewport: IDirect3DViewport): HResult; stdcall; |
||
6749 | end; |
||
6750 | |||
6751 | IDirect3DRMViewport2 = interface(IDirect3DRMObject) |
||
6752 | ['{4A1B1BE6-BFED-11D1-8ED8-00A0C967A482}'] |
||
6753 | // IDirect3DRMViewport2 methods |
||
6754 | function Init(dec: IDirect3DRMDevice3; camera: IDirect3DRMFrame3; |
||
6755 | xpos, ypos: DWORD; width, height: DWORD): HResult; stdcall; |
||
6756 | function Clear(dwFlags: DWORD): HResult; stdcall; |
||
6757 | function Render(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
6758 | function SetFront(rvFront: TD3DValue): HResult; stdcall; |
||
6759 | function SetBack(rvBack: TD3DValue): HResult; stdcall; |
||
6760 | function SetField(rvField: TD3DValue): HResult; stdcall; |
||
6761 | function SetUniformScaling(bScale: BOOL): HResult; stdcall; |
||
6762 | function SetCamera(lpCamera: IDirect3DRMFrame3): HResult; stdcall; |
||
6763 | function SetProjection(rptType: TD3DRMProjectionType): HResult; stdcall; |
||
6764 | function Transform(var lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector): HResult; stdcall; |
||
6765 | function InverseTransform(var lprvDst: TD3DVector; |
||
6766 | const lprvSrc: TD3DRMVector4D): HResult; stdcall; |
||
6767 | function Configure(lX, lY: Longint; dwWidth, dwHeight: DWORD): HResult; stdcall; |
||
6768 | function ForceUpdate(dwX1, dwY1, dwX2, dwY2: DWORD): HResult; stdcall; |
||
6769 | function SetPlane(rvLeft, rvRight, rvBottom, rvTop: TD3DValue): HResult; stdcall; |
||
6770 | function GetCamera(out lpCamera: IDirect3DRMFrame3): HResult; stdcall; |
||
6771 | function GetDevice(out lpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
||
6772 | function GetPlane(var lpd3dvLeft, lpd3dvRight, lpd3dvBottom, |
||
6773 | lpd3dvTop: TD3DValue): HResult; stdcall; |
||
6774 | function Pick(lX, lY: Longint; out lplpVisuals: IDirect3DRMPickedArray): HResult; stdcall; |
||
6775 | function GetUniformScaling: BOOL; stdcall; |
||
6776 | function GetX: Longint; stdcall; |
||
6777 | function GetY: Longint; stdcall; |
||
6778 | function GetWidth: DWORD; stdcall; |
||
6779 | function GetHeight: DWORD; stdcall; |
||
6780 | function GetField: TD3DValue; stdcall; |
||
6781 | function GetBack: TD3DValue; stdcall; |
||
6782 | function GetFront: TD3DValue; stdcall; |
||
6783 | function GetProjection: TD3DRMProjectionType; stdcall; |
||
6784 | function GetDirect3DViewport(out lplpD3DViewport: IDirect3DViewport): HResult; stdcall; |
||
6785 | function TransformVectors(dwNumVectors: DWORD; var lpDstVectors: TD3DRMVector4D; |
||
6786 | const lpSrcVectors: TD3DVector): HResult; stdcall; |
||
6787 | function InverseTransformVectors(dwNumVectors: DWORD; var lpDstVectors: TD3DVector; |
||
6788 | const lpSrcVectors: TD3DRMVector4D): HResult; stdcall; |
||
6789 | end; |
||
6790 | |||
6791 | IDirect3DRMFrame = interface(IDirect3DRMVisual) |
||
6792 | ['{EB16CB03-D271-11CE-AC48-0000C03825A1}'] |
||
6793 | // IDirect3DRMFrame methods |
||
6794 | function AddChild(lpD3DRMFrameChild: IDirect3DRMFrame): HResult; stdcall; |
||
6795 | function AddLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
6796 | function AddMoveCallback(d3drmFMC: TD3DRMFrameMoveCallback; |
||
6797 | lpArg: Pointer): HResult; stdcall; |
||
6798 | function AddTransform(rctCombine: TD3DRMCombineType; |
||
6799 | rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
||
6800 | function AddTranslation(rctCombine: TD3DRMCombineType; rvX, rvY, |
||
6801 | rvZ: TD3DValue): HResult; stdcall; |
||
6802 | function AddScale(rctCombine: TD3DRMCombineType; rvX, rvY, |
||
6803 | rvZ: TD3DValue): HResult; stdcall; |
||
6804 | function AddRotation(rctCombine: TD3DRMCombineType; rvX, rvY, rvZ, |
||
6805 | rvTheta: TD3DValue): HResult; stdcall; |
||
6806 | function AddVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
6807 | function GetChildren(out lplpChildren: IDirect3DRMFrameArray): HResult; stdcall; |
||
6808 | function GetColor: TD3DColor; stdcall; |
||
6809 | function GetLights(out lplpLights: IDirect3DRMLightArray): HResult; stdcall; |
||
6810 | function GetMaterialMode: TD3DRMMaterialMode; stdcall; |
||
6811 | function GetParent(out lplpParent: IDirect3DRMFrame): HResult; stdcall; |
||
6812 | function GetPosition(lpRef: IDirect3DRMFrame; var lprvPos: TD3DVector): HResult; stdcall; |
||
6813 | function GetRotation(lpRef: IDirect3DRMFrame; var lprvAxis: TD3DVector; |
||
6814 | var lprvTheta: TD3DValue): HResult; stdcall; |
||
6815 | function GetScene(out lplpRoot: IDirect3DRMFrame): HResult; stdcall; |
||
6816 | function GetSortMode: TD3DRMSortMode; stdcall; |
||
6817 | function GetTexture(out lplpTexture: IDirect3DRMTexture): HResult; stdcall; |
||
6818 | function GetTransform(var rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
||
6819 | function GetVelocity(lpRef: IDirect3DRMFrame; var lprvVel: TD3DVector; |
||
6820 | fRotVel: BOOL): HResult; stdcall; |
||
6821 | function GetOrientation(lpRef: IDirect3DRMFrame; var lprvDir: TD3DVector; |
||
6822 | var lprvUp: TD3DVector): HResult; stdcall; |
||
6823 | function GetVisuals(out lplpVisuals: IDirect3DRMVisualArray): HResult; stdcall; |
||
6824 | function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
||
6825 | function InverseTransform(var lprvDst, lprvSrc: TD3DVector): HResult; stdcall; |
||
6826 | function Load(lpvObjSource: Pointer; lpvObjID: Pointer; |
||
6827 | d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadTextureProc: |
||
6828 | TD3DRMLoadTextureCallback; lpArgLTP: Pointer): HResult; stdcall; |
||
6829 | function LookAt(lpTarget, lpRef: IDirect3DRMFrame; |
||
6830 | rfcConstraint: TD3DRMFrameConstraint ): HResult; stdcall; |
||
6831 | function Move(delta: TD3DValue): HResult; stdcall; |
||
6832 | function DeleteChild(lpChild: IDirect3DRMFrame): HResult; stdcall; |
||
6833 | function DeleteLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
6834 | function DeleteMoveCallback(d3drmFMC: TD3DRMFrameMoveCallback; |
||
6835 | lpArg: Pointer): HResult; stdcall; |
||
6836 | function DeleteVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
6837 | function GetSceneBackground: TD3DColor; stdcall; |
||
6838 | function GetSceneBackgroundDepth(out lplpDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
6839 | function GetSceneFogColor: TD3DColor; stdcall; |
||
6840 | function GetSceneFogEnable: BOOL; stdcall; |
||
6841 | function GetSceneFogMode: TD3DRMFogMode; stdcall; |
||
6842 | function GetSceneFogParams(var lprvStart, lprvEnd, lprvDensity: TD3DValue): HResult; stdcall; |
||
6843 | function SetSceneBackground(rcColor: TD3DColor): HResult; stdcall; |
||
6844 | function SetSceneBackgroundRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
||
6845 | function SetSceneBackgroundDepth(lpImage: IDirectDrawSurface): HResult; stdcall; |
||
6846 | function SetSceneBackgroundImage(lpTexture: IDirect3DRMTexture): HResult; stdcall; |
||
6847 | function SetSceneFogEnable(bEnable: BOOL): HResult; stdcall; |
||
6848 | function SetSceneFogColor(rcColor: TD3DColor): HResult; stdcall; |
||
6849 | function SetSceneFogMode(rfMode: TD3DRMFogMode): HResult; stdcall; |
||
6850 | function SetSceneFogParams(rvStart, rvEnd, rvDensity: TD3DValue): HResult; stdcall; |
||
6851 | function SetColor(rcColor: TD3DColor): HResult; stdcall; |
||
6852 | function SetColorRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
||
6853 | function GetZbufferMode: TD3DRMZBufferMode; stdcall; |
||
6854 | function SetMaterialMode(rmmMode: TD3DRMMaterialMode): HResult; stdcall; |
||
6855 | function SetOrientation(lpRef: IDirect3DRMFrame; rvDx, rvDy, rvDz, rvUx, |
||
6856 | rvUy, rvUz: TD3DValue): HResult; stdcall; |
||
6857 | function SetPosition(lpRef: IDirect3DRMFrame; rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
||
6858 | function SetRotation(lpRef: IDirect3DRMFrame; rvX, rvY, rvZ, |
||
6859 | rvTheta: TD3DValue): HResult; stdcall; |
||
6860 | function SetSortMode(d3drmSM: TD3DRMSortMode): HResult; stdcall; |
||
6861 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
||
6862 | function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
||
6863 | function SetVelocity(lpRef: IDirect3DRMFrame; rvX, rvY, rvZ: TD3DValue; |
||
6864 | fRotVel: BOOL): HResult; stdcall; |
||
6865 | function SetZbufferMode(d3drmZBM: TD3DRMZBufferMode): HResult; stdcall; |
||
6866 | function Transform(var lpd3dVDst, lpd3dVSrc: TD3DVector): HResult; stdcall; |
||
6867 | end; |
||
6868 | |||
6869 | IDirect3DRMFrame2 = interface(IDirect3DRMFrame) |
||
6870 | ['{C3DFBD60-3988-11D0-9EC2-0000C0291AC3}'] |
||
6871 | // IDirect3DRMFrame2 methods |
||
6872 | function AddMoveCallback2(d3drmFMC: TD3DRMFrameMoveCallback; lpArg: |
||
6873 | Pointer; dwFlags: DWORD): HResult; stdcall; |
||
6874 | function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6875 | function GetBoxEnable: BOOL; stdcall; |
||
6876 | function GetAxes(var dir, up: TD3DVector): HResult; stdcall; |
||
6877 | function GetMaterial(out lplpMaterial: IDirect3DRMMaterial): HResult; stdcall; |
||
6878 | function GetInheritAxes: BOOL; stdcall; |
||
6879 | function GetHierarchyBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6880 | function SetBox(const lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6881 | function SetBoxEnable(bEnableFlag: BOOL): HResult; stdcall; |
||
6882 | function SetAxes(dx, dy, dz, ux, uy, uz: TD3DValue): HResult; stdcall; |
||
6883 | function SetInheritAxes(inherit_from_parent: BOOL): HResult; stdcall; |
||
6884 | function SetMaterial(lplpMaterial: IDirect3DRMMaterial): HResult; stdcall; |
||
6885 | function SetQuaternion(lpRef: IDirect3DRMFrame2; var quat: TD3DRMQuaternion): HResult; stdcall; |
||
6886 | function RayPick(lpRefFrame: IDirect3DRMFrame; const ray: TD3DRMRay; |
||
6887 | dwFlags: DWORD; out lplpPicked2Array: IDirect3DRMPicked2Array): HResult; stdcall; |
||
6888 | function Save(lpFilename: PChar; d3dFormat: TD3DRMXOFFormat; |
||
6889 | d3dSaveFlags: TD3DRMSaveOptions): HResult; stdcall; |
||
6890 | end; |
||
6891 | |||
6892 | IDirect3DRMFrame3 = interface(IDirect3DRMVisual) |
||
6893 | ['{FF6B7F70-A40E-11D1-91F9-0000F8758E66}'] |
||
6894 | function AddChild(lpD3DRMFrameChild: IDirect3DRMFrame3): HResult; stdcall; |
||
6895 | function AddLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
6896 | function AddMoveCallback(d3drmFMC: TD3DRMFrame3MoveCallback; |
||
6897 | lpArg: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
6898 | function AddTransform(rctCombine: TD3DRMCombineType; |
||
6899 | rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
||
6900 | function AddTranslation(rctCombine: TD3DRMCombineType; rvX, rvY, |
||
6901 | rvZ: TD3DValue): HResult; stdcall; |
||
6902 | function AddScale(rctCombine: TD3DRMCombineType; rvX, rvY, |
||
6903 | rvZ: TD3DValue): HResult; stdcall; |
||
6904 | function AddRotation(rctCombine: TD3DRMCombineType; rvX, rvY, rvZ, |
||
6905 | rvTheta: TD3DValue): HResult; stdcall; |
||
6906 | function AddVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
6907 | function GetChildren(out lplpChildren: IDirect3DRMFrameArray): HResult; stdcall; |
||
6908 | function GetColor: TD3DColor; stdcall; |
||
6909 | function GetLights(out lplpLights: IDirect3DRMLightArray): HResult; stdcall; |
||
6910 | function GetMaterialMode: TD3DRMMaterialMode; stdcall; |
||
6911 | function GetParent(out lplpParent: IDirect3DRMFrame3): HResult; stdcall; |
||
6912 | function GetPosition(lpRef: IDirect3DRMFrame3; var lprvPos: TD3DVector): HResult; stdcall; |
||
6913 | function GetRotation(lpRef: IDirect3DRMFrame3; var lprvAxis: TD3DVector; |
||
6914 | var lprvTheta: TD3DValue): HResult; stdcall; |
||
6915 | function GetScene(out lplpRoot: IDirect3DRMFrame3): HResult; stdcall; |
||
6916 | function GetSortMode: TD3DRMSortMode; stdcall; |
||
6917 | function GetTexture(out lplpTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
6918 | function GetTransform(RefFrame: IDirect3DRMFrame3; var rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
||
6919 | function GetVelocity(lpRef: IDirect3DRMFrame3; var lprvVel: TD3DVector; |
||
6920 | fRotVel: BOOL): HResult; stdcall; |
||
6921 | function GetOrientation(lpRef: IDirect3DRMFrame3; var lprvDir: TD3DVector; |
||
6922 | var lprvUp: TD3DVector): HResult; stdcall; |
||
6923 | function GetVisuals(var pdwNumVisuals: DWORD; var lplpVisuals: Pointer): HResult; stdcall; |
||
6924 | function InverseTransform(var lprvDst, lprvSrc: TD3DVector): HResult; stdcall; |
||
6925 | function Load(lpvObjSource: Pointer; lpvObjID: Pointer; |
||
6926 | d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadTextureProc: |
||
6927 | TD3DRMLoadTexture3Callback; lpArgLTP: Pointer): HResult; stdcall; |
||
6928 | function LookAt(lpTarget, lpRef: IDirect3DRMFrame3; |
||
6929 | rfcConstraint: TD3DRMFrameConstraint): HResult; stdcall; |
||
6930 | function Move(delta: TD3DValue): HResult; stdcall; |
||
6931 | function DeleteChild(lpChild: IDirect3DRMFrame3): HResult; stdcall; |
||
6932 | function DeleteLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
6933 | function DeleteMoveCallback(d3drmFMC: TD3DRMFrame3MoveCallback; lpArg: Pointer): HResult; stdcall; |
||
6934 | function DeleteVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
6935 | function GetSceneBackground: TD3DColor; stdcall; |
||
6936 | function GetSceneBackgroundDepth(out lplpDDSurface: IDirectDrawSurface): HResult; stdcall; |
||
6937 | function GetSceneFogColor: TD3DColor; stdcall; |
||
6938 | function GetSceneFogEnable: BOOL; stdcall; |
||
6939 | function GetSceneFogMode: TD3DRMFogMode; stdcall; |
||
6940 | function GetSceneFogParams(var lprvStart, lprvEnd, lprvDensity: TD3DValue): HResult; stdcall; |
||
6941 | function SetSceneBackground(rcColor: TD3DColor): HResult; stdcall; |
||
6942 | function SetSceneBackgroundRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
||
6943 | function SetSceneBackgroundDepth(lpImage: IDirectDrawSurface): HResult; stdcall; |
||
6944 | function SetSceneBackgroundImage(lpTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
6945 | function SetSceneFogEnable(bEnable: BOOL): HResult; stdcall; |
||
6946 | function SetSceneFogColor(rcColor: TD3DColor): HResult; stdcall; |
||
6947 | function SetSceneFogMode(rfMode: TD3DRMFogMode): HResult; stdcall; |
||
6948 | function SetSceneFogParams(rvStart, rvEnd, rvDensity: TD3DValue): HResult; stdcall; |
||
6949 | function SetColor(rcColor: TD3DColor): HResult; stdcall; |
||
6950 | function SetColorRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
||
6951 | function GetZbufferMode: TD3DRMZBufferMode; stdcall; |
||
6952 | function SetMaterialMode(rmmMode: TD3DRMMaterialMode): HResult; stdcall; |
||
6953 | function SetOrientation(lpRef: IDirect3DRMFrame3; rvDx, rvDy, rvDz, rvUx, |
||
6954 | rvUy, rvUz: TD3DValue): HResult; stdcall; |
||
6955 | function SetPosition(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
||
6956 | function SetRotation(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ, rvTheta: TD3DValue): HResult; stdcall; |
||
6957 | function SetSortMode(d3drmSM: TD3DRMSortMode): HResult; stdcall; |
||
6958 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
6959 | function SetVelocity(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ: TD3DValue; |
||
6960 | fRotVel: BOOL): HResult; stdcall; |
||
6961 | function SetZbufferMode(d3drmZBM: TD3DRMZBufferMode): HResult; stdcall; |
||
6962 | function Transform(var lpd3dVDst, lpd3dVSrc: TD3DVector): HResult; stdcall; |
||
6963 | function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6964 | function GetBoxEnable: BOOL; stdcall; |
||
6965 | function GetAxes(var dir, up: TD3DVector): HResult; stdcall; |
||
6966 | function GetMaterial(out lplpMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
||
6967 | function GetInheritAxes: BOOL; stdcall; |
||
6968 | function GetHierarchyBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6969 | function SetBox(const lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6970 | function SetBoxEnable(bEnableFlag: BOOL): HResult; stdcall; |
||
6971 | function SetAxes(dx, dy, dz, ux, uy, uz: TD3DValue): HResult; stdcall; |
||
6972 | function SetInheritAxes(inherit_from_parent: BOOL): HResult; stdcall; |
||
6973 | function SetMaterial(lplpMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
||
6974 | function SetQuaternion(lpRef: IDirect3DRMFrame3; var quat: TD3DRMQuaternion): HResult; stdcall; |
||
6975 | function RayPick(lpRefFrame: IDirect3DRMFrame3; const ray: TD3DRMRay; |
||
6976 | dwFlags: DWORD; out lplpPicked2Array: IDirect3DRMPicked2Array): HResult; stdcall; |
||
6977 | function Save(lpFilename: PChar; d3dFormat: TD3DRMXOFFormat; |
||
6978 | d3dSaveFlags: TD3DRMSaveOptions): HResult; stdcall; |
||
6979 | function TransformVectors(reference: IDirect3DRMFrame3; dwNumVectors: DWORD; |
||
6980 | var lpDstVectors: TD3DVector; const lpSrcVectors: TD3DVector): HResult; stdcall; |
||
6981 | function InverseTransformVectors(reference: IDirect3DRMFrame3; dwNumVectors: DWORD; |
||
6982 | var lpDstVectors: TD3DVector; const lpSrcVectors: TD3DVector): HResult; stdcall; |
||
6983 | function SetTraversalOptions(dwFlags: DWORD): HResult; stdcall; |
||
6984 | function GetTraversalOptions(var lpdwFlags: DWORD): HResult; stdcall; |
||
6985 | function SetSceneFogMethod(dwFlags: DWORD): HResult; stdcall; |
||
6986 | function GetSceneFogMethod(var lpdwFlags: DWORD): HResult; stdcall; |
||
6987 | function SetMaterialOverride(lpdmOverride: TD3DRMMaterialOverride): HResult; stdcall; |
||
6988 | function GetMaterialOverride(var lplpdmOverride: TD3DRMMaterialOverride): HResult; stdcall; |
||
6989 | end; |
||
6990 | |||
6991 | IDirect3DRMMesh = interface(IDirect3DRMVisual) |
||
6992 | ['{A3A80D01-6E12-11CF-AC4A-0000C03825A1}'] |
||
6993 | // IDirect3DRMMesh methods |
||
6994 | function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
||
6995 | function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
||
6996 | function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
6997 | function AddGroup(vCount, fCount, vPerFace: DWORD; var fData: DWORD; |
||
6998 | var returnId: TD3DRMGroupIndex): HResult; stdcall; |
||
6999 | function SetVertices(id: TD3DRMGroupIndex; index, count: DWORD; |
||
7000 | var values: TD3DRMVertex): HResult; stdcall; |
||
7001 | function SetGroupColor(id: TD3DRMGroupIndex; value: TD3DColor): HResult; stdcall; |
||
7002 | function SetGroupColorRGB(id: TD3DRMGroupIndex; red, green, |
||
7003 | blue: TD3DValue): HResult; stdcall; |
||
7004 | function SetGroupMapping(id: TD3DRMGroupIndex; |
||
7005 | value: TD3DRMMapping): HResult; stdcall; |
||
7006 | function SetGroupQuality(id: TD3DRMGroupIndex; |
||
7007 | value: TD3DRMRenderQuality): HResult; stdcall; |
||
7008 | function SetGroupMaterial(id: TD3DRMGroupIndex; value: |
||
7009 | IDirect3DRMMaterial): HResult; stdcall; |
||
7010 | function SetGroupTexture(id: TD3DRMGroupIndex; value: IDirect3DRMTexture): HResult; stdcall; |
||
7011 | function GetGroupCount: DWORD; stdcall; |
||
7012 | function GetGroup(id: TD3DRMGroupIndex; var vCount, fCount, vPerFace, |
||
7013 | fDataSize, fData: DWORD): HResult; stdcall; |
||
7014 | function GetVertices(id: TD3DRMGroupIndex; index: DWORD; count: DWORD; |
||
7015 | var returnPtr: TD3DRMVertex): HResult; stdcall; |
||
7016 | function GetGroupColor(id: TD3DRMGroupIndex): TD3DColor; stdcall; |
||
7017 | function GetGroupMapping(id: TD3DRMGroupIndex): TD3DRMMapping; stdcall; |
||
7018 | function GetGroupQuality(id: TD3DRMGroupIndex): TD3DRMRenderQuality; stdcall; |
||
7019 | function GetGroupMaterial(id: TD3DRMGroupIndex; |
||
7020 | out returnPtr: IDirect3DRMMaterial): HResult; stdcall; |
||
7021 | function GetGroupTexture(id: TD3DRMGroupIndex; |
||
7022 | out returnPtr: IDirect3DRMTexture): HResult; stdcall; |
||
7023 | end; |
||
7024 | |||
7025 | IDirect3DRMProgressiveMesh = interface(IDirect3DRMVisual) |
||
7026 | ['{4516EC79-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7027 | // IDirect3DRMProgressiveMesh methods |
||
7028 | function Load(lpSource, lpObjID: pointer; dloLoadflags: TD3DRMLoadOptions; |
||
7029 | lpCallback: TD3DRMLoadTextureCallback; lpArg: pointer): HResult; stdcall; |
||
7030 | function GetLoadStatus(var lpStatus: TD3DRMPMeshLoadStatus): HResult; stdcall; |
||
7031 | function SetMinRenderDetail(d3dVal: TD3DValue): HResult; stdcall; |
||
7032 | function Abort(dwFlags: DWORD): HResult; stdcall; |
||
7033 | function GetFaceDetail(var lpdwCount: DWORD): HResult; stdcall; |
||
7034 | function GetVertexDetail(var lpdwCount: DWORD): HResult; stdcall; |
||
7035 | function SetFaceDetail(dwCount: DWORD): HResult; stdcall; |
||
7036 | function SetVertexDetail(dwCount: DWORD): HResult; stdcall; |
||
7037 | function GetFaceDetailRange(var lpdwMin, lpdwMax: DWORD): HResult; stdcall; |
||
7038 | function GetVertexDetailRange(var lpdwMin, lpdwMax: DWORD): HResult; stdcall; |
||
7039 | function GetDetail(var lpdvVal: TD3DValue): HResult; stdcall; |
||
7040 | function SetDetail(lpdvVal: TD3DValue): HResult; stdcall; |
||
7041 | function RegisterEvents(hEvent: THANDLE; dwFlags, dwReserved: DWORD): HResult; stdcall; |
||
7042 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7043 | function Duplicate(out lplpD3DRMPMesh: IDirect3DRMProgressiveMesh): HResult; stdcall; |
||
7044 | function GetBox(var lpBBox: TD3DRMBox): HResult; stdcall; |
||
7045 | function SetQuality(quality: TD3DRMRenderQuality): HResult; stdcall; |
||
7046 | function GetQuality(var lpdwquality: TD3DRMRenderQuality): HResult; stdcall; |
||
7047 | end; |
||
7048 | |||
7049 | IDirect3DRMShadow = interface(IDirect3DRMVisual) |
||
7050 | ['{AF359780-6BA3-11CF-AC4A-0000C03825A1}'] |
||
7051 | // IDirect3DRMShadow methods |
||
7052 | function Init(lpD3DRMVisual: IDirect3DRMVisual; |
||
7053 | lpD3DRMLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue): HResult; stdcall; |
||
7054 | end; |
||
7055 | |||
7056 | IDirect3DRMShadow2 = interface(IDirect3DRMShadow) |
||
7057 | ['{86B44E25-9C82-11D1-BB0B-00A0C981A0A6}'] |
||
7058 | // IDirect3DRMShadow2 methods |
||
7059 | function GetVisual(out lplpDirect3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
7060 | function SetVisual(pUNK: IUnknown; dwFlags: DWORD): HResult; stdcall; |
||
7061 | function GetLight(out lplpDirect3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7062 | function SetLight(lpDirect3DRMLight: IDirect3DRMLight; dwFlags: DWORD): HResult; stdcall; |
||
7063 | function GetPlane(var px, py, pz: TD3DValue; var nx, ny, nz: TD3DValue): HResult; stdcall; |
||
7064 | function SetPlane(px, py, pz: TD3DValue; nx, ny, nz: TD3DValue): HResult; stdcall; |
||
7065 | function GetOptions(var pdwOptions: DWORD): HResult; stdcall; |
||
7066 | function SetOptions(dwOptions: DWORD): HResult; stdcall; |
||
7067 | end; |
||
7068 | |||
7069 | IDirect3DRMFace = interface(IDirect3DRMObject) |
||
7070 | ['{EB16CB07-D271-11CE-AC48-0000C03825A1}'] |
||
7071 | // IDirect3DRMFace methods |
||
7072 | function AddVertex(x, y, z: TD3DValue): HResult; stdcall; |
||
7073 | function AddVertexAndNormalIndexed(vertex: DWORD; normal: DWORD): HResult; stdcall; |
||
7074 | function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
||
7075 | function SetColor(color: TD3DColor): HResult; stdcall; |
||
7076 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
||
7077 | function SetTextureCoordinates(vertex: DWORD; u, v: TD3DValue): HResult; stdcall; |
||
7078 | function SetMaterial(lpMat: IDirect3DRMMaterial): HResult; stdcall; |
||
7079 | function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
||
7080 | function GetVertex(index: DWORD; var lpPosition: TD3DVector; var lpNormal: TD3DVector): HResult; stdcall; |
||
7081 | function GetVertices(var lpdwVertexCount: DWORD; var lpPosition, lpNormal: TD3DVector): HResult; stdcall; |
||
7082 | function GetTextureCoordinates(index: DWORD; var lpU, lpV: TD3DValue): HResult; stdcall; |
||
7083 | function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
||
7084 | function GetNormal(var lpNormal: TD3DVector): HResult; stdcall; |
||
7085 | function GetTexture(out lplpTexture: IDirect3DRMTexture): HResult; stdcall; |
||
7086 | function GetMaterial(out lpMat: IDirect3DRMMaterial): HResult; stdcall; |
||
7087 | function GetVertexCount: Longint; stdcall; |
||
7088 | function GetVertexIndex(dwIndex: DWORD): Longint; stdcall; |
||
7089 | function GetTextureCoordinateIndex(dwIndex: DWORD): Longint; stdcall; |
||
7090 | function GetColor: TD3DColor; stdcall; |
||
7091 | end; |
||
7092 | |||
7093 | IDirect3DRMFace2 = interface(IDirect3DRMObject) |
||
7094 | ['{4516EC81-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7095 | // IDirect3DRMFace methods |
||
7096 | function AddVertex(x, y, z: TD3DValue): HResult; stdcall; |
||
7097 | function AddVertexAndNormalIndexed(vertex: DWORD; normal: DWORD): HResult; stdcall; |
||
7098 | function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
||
7099 | function SetColor(color: TD3DColor): HResult; stdcall; |
||
7100 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
7101 | function SetTextureCoordinates(vertex: DWORD; u, v: TD3DValue): HResult; stdcall; |
||
7102 | function SetMaterial(lpMat: IDirect3DRMMaterial2): HResult; stdcall; |
||
7103 | function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
||
7104 | function GetVertex(index: DWORD; var lpPosition: TD3DVector; var lpNormal: TD3DVector): HResult; stdcall; |
||
7105 | function GetVertices(var lpdwVertexCount: DWORD; var lpPosition, lpNormal: TD3DVector): HResult; stdcall; |
||
7106 | function GetTextureCoordinates(index: DWORD; var lpU, lpV: TD3DValue): HResult; stdcall; |
||
7107 | function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
||
7108 | function GetNormal(var lpNormal: TD3DVector): HResult; stdcall; |
||
7109 | function GetTexture(out lplpTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
7110 | function GetMaterial(out lpMat: IDirect3DRMMaterial2): HResult; stdcall; |
||
7111 | function GetVertexCount: Longint; stdcall; |
||
7112 | function GetVertexIndex(dwIndex: DWORD): Longint; stdcall; |
||
7113 | function GetTextureCoordinateIndex(dwIndex: DWORD): Longint; stdcall; |
||
7114 | function GetColor: TD3DColor; stdcall; |
||
7115 | end; |
||
7116 | |||
7117 | IDirect3DRMMeshBuilder = interface(IDirect3DRMVisual) |
||
7118 | ['{A3A80D02-6E12-11CF-AC4A-0000C03825A1}'] |
||
7119 | // IDirect3DRMMeshBuilder methods |
||
7120 | function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
||
7121 | d3drmLoadTextureProc: TD3DRMLoadTextureCallback; lpvArg: Pointer): HResult; stdcall; |
||
7122 | function Save(lpFilename: PChar; TD3DRMXOFFormat: TD3DRMXOFFormat; |
||
7123 | d3drmSOContents: TD3DRMSaveOptions): HResult; stdcall; |
||
7124 | function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
||
7125 | function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
||
7126 | function SetColorSource(source: TD3DRMColorSource): HResult; stdcall; |
||
7127 | function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
7128 | function GenerateNormals: HResult; stdcall; |
||
7129 | function GetColorSource: TD3DRMColorSource; stdcall; |
||
7130 | function AddMesh(lpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7131 | function AddMeshBuilder(lpD3DRMMeshBuild: IDirect3DRMMeshBuilder): HResult; stdcall; |
||
7132 | function AddFrame(lpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7133 | function AddFace(lpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
||
7134 | function AddFaces(dwVertexCount: DWORD; var lpD3DVertices: TD3DVector; |
||
7135 | normalCount: DWORD; var lpNormals: TD3DVector; var lpFaceData: DWORD; |
||
7136 | out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
||
7137 | function ReserveSpace(vertexCount, normalCount, faceCount: DWORD): HResult; stdcall; |
||
7138 | function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
||
7139 | function SetColor(color: TD3DColor): HResult; stdcall; |
||
7140 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
||
7141 | function SetMaterial(lpIDirect3DRMmaterial: IDirect3DRMMaterial): HResult; stdcall; |
||
7142 | function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
||
7143 | function SetQuality(quality: TD3DRMRenderQuality): HResult; stdcall; |
||
7144 | function SetPerspective(perspective: BOOL): HResult; stdcall; |
||
7145 | function SetVertex(index: DWORD; x, y, z: TD3DValue): HResult; stdcall; |
||
7146 | function SetNormal(index: DWORD; x, y, z: TD3DValue): HResult; stdcall; |
||
7147 | function SetTextureCoordinates(index: DWORD; u, v: TD3DValue): HResult; stdcall; |
||
7148 | function SetVertexColor(index: DWORD; color: TD3DColor): HResult; stdcall; |
||
7149 | function SetVertexColorRGB(index: DWORD; red, green, blue: TD3DValue): HResult; stdcall; |
||
7150 | function GetFaces(out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
||
7151 | function GetVertices(var vcount: DWORD; var vertices: TD3DVector; |
||
7152 | var ncount: DWORD; var normals: TD3DVector; var face_data_size: DWORD; |
||
7153 | var face_data: DWORD): HResult; stdcall; |
||
7154 | function GetTextureCoordinates(index: DWORD; var u, v: TD3DValue): HResult; stdcall; |
||
7155 | function AddVertex(x, y, z: TD3DValue): Longint; stdcall; |
||
7156 | function AddNormal(x, y, z: TD3DValue): Longint; stdcall; |
||
7157 | function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
||
7158 | function GetQuality: TD3DRMRenderQuality; stdcall; |
||
7159 | function GetPerspective: BOOL; stdcall; |
||
7160 | function GetFaceCount: Longint; stdcall; |
||
7161 | function GetVertexCount: Longint; stdcall; |
||
7162 | function GetVertexColor(index: DWORD): TD3DColor; stdcall; |
||
7163 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7164 | end; |
||
7165 | |||
7166 | IDirect3DRMMeshBuilder2 = interface(IDirect3DRMMeshBuilder) |
||
7167 | ['{4516EC77-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7168 | // IDirect3DRMMeshBuilder2 methods |
||
7169 | function GenerateNormals2(dvCreaseAngle: TD3DValue; dwFlags: DWORD): HResult; stdcall; |
||
7170 | function GetFace(dwIndex: DWORD; out lplpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
||
7171 | end; |
||
7172 | |||
7173 | IDirect3DRMMeshBuilder3 = interface(IDirect3DRMVisual) |
||
7174 | ['{4516EC82-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7175 | // IDirect3DRMMeshBuilder methods |
||
7176 | function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
||
7177 | d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; lpvArg: Pointer): HResult; stdcall; |
||
7178 | function Save(lpFilename: PChar; TD3DRMXOFFormat: TD3DRMXOFFormat; |
||
7179 | d3drmSOContents: TD3DRMSaveOptions): HResult; stdcall; |
||
7180 | function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
||
7181 | function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
||
7182 | function SetColorSource(source: TD3DRMColorSource): HResult; stdcall; |
||
7183 | function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
||
7184 | function GenerateNormals(dvCreaseAngle: TD3DValue; dwFlags: DWORD): HResult; stdcall; |
||
7185 | function GetColorSource: TD3DRMColorSource; stdcall; |
||
7186 | function AddMesh(lpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7187 | function AddMeshBuilder(lpD3DRMMeshBuild: IDirect3DRMMeshBuilder3): HResult; stdcall; |
||
7188 | function AddFrame(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
7189 | function AddFace(lpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
||
7190 | function AddFaces(dwVertexCount: DWORD; var lpD3DVertices: TD3DVector; |
||
7191 | normalCount: DWORD; var lpNormals: TD3DVector; var lpFaceData: DWORD; |
||
7192 | out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
||
7193 | function ReserveSpace(vertexCount, normalCount, faceCount: DWORD): HResult; stdcall; |
||
7194 | function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
||
7195 | function SetColor(color: TD3DColor): HResult; stdcall; |
||
7196 | function SetTexture(lpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
7197 | function SetMaterial(lpDirect3DRMMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
||
7198 | function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
||
7199 | function SetQuality(quality: TD3DRMRenderQuality): HResult; stdcall; |
||
7200 | function SetPerspective(perspective: BOOL): HResult; stdcall; |
||
7201 | function SetVertex(index: DWORD; x, y, z: TD3DValue): HResult; stdcall; |
||
7202 | function SetNormal(index: DWORD; x, y, z: TD3DValue): HResult; stdcall; |
||
7203 | function SetTextureCoordinates(index: DWORD; u, v: TD3DValue): HResult; stdcall; |
||
7204 | function SetVertexColor(index: DWORD; color: TD3DColor): HResult; stdcall; |
||
7205 | function SetVertexColorRGB(index: DWORD; red, green, blue: TD3DValue): HResult; stdcall; |
||
7206 | function GetFaces(out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
||
7207 | function GetGeometry(var vcount: DWORD; var vertices; var ncount: DWORD; var normals; |
||
7208 | var face_data_size: DWORD; var face_data): HResult; stdcall; |
||
7209 | function GetTextureCoordinates(index: DWORD; var u, v: TD3DValue): HResult; stdcall; |
||
7210 | function AddVertex(x, y, z: TD3DValue): Longint; stdcall; |
||
7211 | function AddNormal(x, y, z: TD3DValue): Longint; stdcall; |
||
7212 | function CreateFace(out lplpd3drmFace: IDirect3DRMFace2): HResult; stdcall; |
||
7213 | function GetQuality: TD3DRMRenderQuality; stdcall; |
||
7214 | function GetPerspective: BOOL; stdcall; |
||
7215 | function GetFaceCount: Longint; stdcall; |
||
7216 | function GetVertexCount: Longint; stdcall; |
||
7217 | function GetVertexColor(index: DWORD): TD3DColor; stdcall; |
||
7218 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7219 | function GetFace(dwIndex: DWORD; out lplpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
||
7220 | function GetVertex(dwIndex: DWORD; var lpVector: TD3DVector): HResult; stdcall; |
||
7221 | function GetNormal(dwIndex: DWORD; var lpVector: TD3DVector): HResult; stdcall; |
||
7222 | function DeleteVertices(dwIndexFirst: DWORD; dwCount: DWORD): HResult; stdcall; |
||
7223 | function DeleteNormals(dwIndexFirst: DWORD; dwCount: DWORD): HResult; stdcall; |
||
7224 | function DeleteFace(lpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
||
7225 | function Empty(dwFlags: DWORD): HResult; stdcall; |
||
7226 | function Optimize(dwFlags: DWORD): HResult; stdcall; |
||
7227 | function AddFacesIndexed(dwFlags: DWORD; var lpdwvIndices: DWORD; |
||
7228 | var dwIndexFirst: DWORD; var dwCount: DWORD): HResult; stdcall; |
||
7229 | function CreateSubMesh(out lplpUnk: IUnknown): HResult; stdcall; |
||
7230 | function GetParentMesh(dwFlags: DWORD; out lplpUnk: IUnknown): HResult; stdcall; |
||
7231 | function GetSubMeshes(var lpdwCount: DWORD; out lplpUnk: IUnknown): HResult; stdcall; |
||
7232 | function DeleteSubMesh(lpUnk: IUnknown): HResult; stdcall; |
||
7233 | function Enable(dwFlags: DWORD): HResult; stdcall; |
||
7234 | function GetEnable(var lpdwFlags: DWORD): HResult; stdcall; |
||
7235 | function AddTriangles(dwFlags: DWORD; dwFormat: DWORD; dwVertexCount: DWORD; |
||
7236 | lpvData: Pointer): HResult; stdcall; |
||
7237 | function SetVertices(dwIndexFirst: DWORD; dwCount: DWORD; |
||
7238 | const lpdvVector: TD3DVector): HResult; stdcall; |
||
7239 | function GetVertices(dwIndexFirst: DWORD; var lpdwCount: DWORD; |
||
7240 | var lpdvVector: TD3DVector): HResult; stdcall; |
||
7241 | function SetNormals(dwIndexFirst: DWORD; dwCount: DWORD; |
||
7242 | const lpdvVector: TD3DVector): HResult; stdcall; |
||
7243 | function GetNormals(dwIndexFirst: DWORD; var lpdwCount: DWORD; |
||
7244 | var lpdvVector: TD3DVector): HResult; stdcall; |
||
7245 | function GetNormalCount: Longint; stdcall; |
||
7246 | end; |
||
7247 | |||
7248 | IDirect3DRMLight = interface(IDirect3DRMObject) |
||
7249 | ['{EB16CB08-D271-11CE-AC48-0000C03825A1}'] |
||
7250 | // IDirect3DRMLight methods |
||
7251 | function SetType(d3drmtType: TD3DRMLightType): HResult; stdcall; |
||
7252 | function SetColor(rcColor: TD3DColor): HResult; stdcall; |
||
7253 | function SetColorRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
||
7254 | function SetRange(rvRange: TD3DValue): HResult; stdcall; |
||
7255 | function SetUmbra(rvAngle: TD3DValue): HResult; stdcall; |
||
7256 | function SetPenumbra(rvAngle: TD3DValue): HResult; stdcall; |
||
7257 | function SetConstantAttenuation(rvAtt: TD3DValue): HResult; stdcall; |
||
7258 | function SetLinearAttenuation(rvAtt: TD3DValue): HResult; stdcall; |
||
7259 | function SetQuadraticAttenuation(rvAtt: TD3DValue): HResult; stdcall; |
||
7260 | function GetRange: TD3DValue; stdcall; |
||
7261 | function GetUmbra: TD3DValue; stdcall; |
||
7262 | function GetPenumbra: TD3DValue; stdcall; |
||
7263 | function GetConstantAttenuation: TD3DValue; stdcall; |
||
7264 | function GetLinearAttenuation: TD3DValue; stdcall; |
||
7265 | function GetQuadraticAttenuation: TD3DValue; stdcall; |
||
7266 | function GetColor: TD3DColor; stdcall; |
||
7267 | function GetType: TD3DRMLightType; stdcall; |
||
7268 | function SetEnableFrame(lpEnableFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7269 | function GetEnableFrame(out lplpEnableFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7270 | end; |
||
7271 | |||
7272 | IDirect3DRMTexture = interface(IDirect3DRMVisual) |
||
7273 | ['{EB16CB09-D271-11CE-AC48-0000C03825A1}'] |
||
7274 | // IDirect3DRMTexture methods |
||
7275 | function InitFromFile(filename: PChar): HResult; stdcall; |
||
7276 | function InitFromSurface(lpDDS: IDirectDrawSurface): HResult; stdcall; |
||
7277 | function InitFromResource(rs: HRSRC): HResult; stdcall; |
||
7278 | function Changed(bPixels, bPalette: BOOL): HResult; stdcall; |
||
7279 | function SetColors(ulColors: DWORD): HResult; stdcall; |
||
7280 | function SetShades(ulShades: DWORD): HResult; stdcall; |
||
7281 | function SetDecalSize(rvWidth, rvHeight: TD3DValue): HResult; stdcall; |
||
7282 | function SetDecalOrigin(lX, lY: Longint): HResult; stdcall; |
||
7283 | function SetDecalScale(dwScale: DWORD): HResult; stdcall; |
||
7284 | function SetDecalTransparency(bTransp: BOOL): HResult; stdcall; |
||
7285 | function SetDecalTransparentColor(rcTransp: TD3DColor): HResult; stdcall; |
||
7286 | function GetDecalSize(var lprvWidth, lprvHeight: TD3DValue): HResult; stdcall; |
||
7287 | function GetDecalOrigin(var lplX, lplY: Longint): HResult; stdcall; |
||
7288 | function GetImage: PD3DRMImage; stdcall; |
||
7289 | function GetShades: DWORD; stdcall; |
||
7290 | function GetColors: DWORD; stdcall; |
||
7291 | function GetDecalScale: DWORD; stdcall; |
||
7292 | function GetDecalTransparency: BOOL; stdcall; |
||
7293 | function GetDecalTransparentColor: TD3DColor; stdcall; |
||
7294 | end; |
||
7295 | |||
7296 | IDirect3DRMTexture2 = interface(IDirect3DRMTexture) |
||
7297 | ['{120F30C0-1629-11D0-941C-0080C80CFA7B}'] |
||
7298 | // IDirect3DRMTexture2 methods |
||
7299 | function InitFromImage(const lpImage: TD3DRMImage): HResult; stdcall; |
||
7300 | function InitFromResource2(hModule: HModule; strName, strType: PChar): HResult; stdcall; |
||
7301 | function GenerateMIPMap(dwFlags: DWORD): HResult; stdcall; |
||
7302 | end; |
||
7303 | |||
7304 | IDirect3DRMTexture3 = interface(IDirect3DRMTexture2) |
||
7305 | ['{FF6B7F73-A40E-11D1-91F9-0000F8758E66}'] |
||
7306 | // IDirect3DRMTexture3 methods |
||
7307 | function GetSurface(dwFlags: DWORD; out lplpDDS: IDirectDrawSurface): HResult; stdcall; |
||
7308 | function SetCacheOptions(lImportance: Longint; dwFlags: DWORD): HResult; stdcall; |
||
7309 | function GetCacheOptions(var lplImportance: Longint; var lpdwFlags: DWORD): HResult; stdcall; |
||
7310 | function SetDownsampleCallback(pCallback: TD3DRMDownSampleCallback; pArg: Pointer): HResult; stdcall; |
||
7311 | function SetValidationCallback(pCallback: TD3DRMValidationCallback; pArg: Pointer): HResult; stdcall; |
||
7312 | end; |
||
7313 | |||
7314 | IDirect3DRMWrap = interface(IDirect3DRMObject) |
||
7315 | ['{EB16CB0A-D271-11CE-AC48-0000C03825A1}'] |
||
7316 | // IDirect3DRMWrap methods |
||
7317 | function Init(d3drmwt: TD3DRMWrapType; lpd3drmfRef: IDirect3DRMFrame; |
||
7318 | ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue): HResult; stdcall; |
||
7319 | function Apply(lpObject: IDirect3DRMObject): HResult; stdcall; |
||
7320 | function ApplyRelative(frame: IDirect3DRMFrame; mesh: IDirect3DRMObject): HResult; stdcall; |
||
7321 | end; |
||
7322 | |||
7323 | IDirect3DRMMaterial = interface(IDirect3DRMObject) |
||
7324 | ['{EB16CB0B-D271-11CE-AC48-0000C03825A1}'] |
||
7325 | // IDirect3DRMMaterial methods |
||
7326 | function SetPower(rvPower: TD3DValue): HResult; stdcall; |
||
7327 | function SetSpecular(r, g, b: TD3DValue): HResult; stdcall; |
||
7328 | function SetEmissive(r, g, b: TD3DValue): HResult; stdcall; |
||
7329 | function GetPower: TD3DValue; stdcall; |
||
7330 | function GetSpecular(var r, g, b: TD3DValue): HResult; stdcall; |
||
7331 | function GetEmissive(var r, g, b: TD3DValue): HResult; stdcall; |
||
7332 | end; |
||
7333 | |||
7334 | IDirect3DRMMaterial2 = interface(IDirect3DRMMaterial) |
||
7335 | ['{FF6B7F75-A40E-11D1-91F9-0000F8758E66}'] |
||
7336 | // IDirect3DRMMaterial2 methods |
||
7337 | function GetAmbient(var r, g, b: TD3DValue): HResult; stdcall; |
||
7338 | function SetAmbient(r, g, b: TD3DValue): HResult; stdcall; |
||
7339 | end; |
||
7340 | |||
7341 | IDirect3DRMAnimation = interface(IDirect3DRMObject) |
||
7342 | ['{EB16CB0D-D271-11CE-AC48-0000C03825A1}'] |
||
7343 | // IDirect3DRMAnimation methods |
||
7344 | function SetOptions(d3drmanimFlags: TD3DRMAnimationOptions): HResult; stdcall; |
||
7345 | function AddRotateKey(rvTime: TD3DValue; const rqQuat: TD3DRMQuaternion): HResult; stdcall; |
||
7346 | function AddPositionKey(rvTime, rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
||
7347 | function AddScaleKey(time, x, y, z: TD3DValue): HResult; stdcall; |
||
7348 | function DeleteKey(time: TD3DValue): HResult; stdcall; |
||
7349 | function SetFrame(lpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7350 | function SetTime(rvTime: TD3DValue): HResult; stdcall; |
||
7351 | function GetOptions: TD3DRMAnimationOptions; stdcall; |
||
7352 | end; |
||
7353 | |||
7354 | IDirect3DRMAnimation2 = interface(IDirect3DRMObject) |
||
7355 | ['{FF6B7F77-A40E-11D1-91F9-0000F8758E66}'] |
||
7356 | // IDirect3DRMAnimation2 methods |
||
7357 | function SetOptions(d3drmanimFlags: TD3DRMAnimationOptions): HResult; stdcall; |
||
7358 | function AddRotateKey(rvTime: TD3DValue; const rqQuat: TD3DRMQuaternion): HResult; stdcall; |
||
7359 | function AddPositionKey(rvTime, rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
||
7360 | function AddScaleKey(time, x, y, z: TD3DValue): HResult; stdcall; |
||
7361 | function DeleteKey(time: TD3DValue): HResult; stdcall; |
||
7362 | function SetFrame(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
7363 | function SetTime(rvTime: TD3DValue): HResult; stdcall; |
||
7364 | function GetOptions: TD3DRMAnimationOptions; stdcall; |
||
7365 | function GetFrame(out lpD3DFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
7366 | function DeleteKeyByID(dwID: DWORD): HResult; stdcall; |
||
7367 | function AddKey(const lpKey: TD3DRMAnimationKey): HResult; stdcall; |
||
7368 | function ModifyKey(const lpKey: TD3DRMAnimationKey): HResult; stdcall; |
||
7369 | function GetKeys(dvTimeMin, dvTimeMax: TD3DValue; var lpdwNumKeys: DWORD; |
||
7370 | var lpKey: TD3DRMAnimationKey): HResult; stdcall; |
||
7371 | end; |
||
7372 | |||
7373 | IDirect3DRMAnimationSet = interface(IDirect3DRMObject) |
||
7374 | ['{EB16CB0E-D271-11CE-AC48-0000C03825A1}'] |
||
7375 | // IDirect3DRMAnimationSet methods |
||
7376 | function AddAnimation(lpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
||
7377 | function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
||
7378 | d3drmLoadTextureProc: TD3DRMLoadTextureCallback; lpArgLTP: Pointer; |
||
7379 | lpParentFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7380 | function DeleteAnimation(lpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
||
7381 | function SetTime(rvTime: TD3DValue): HResult; stdcall; |
||
7382 | end; |
||
7383 | |||
7384 | IDirect3DRMAnimationSet2 = interface(IDirect3DRMObject) |
||
7385 | ['{FF6B7F79-A40E-11D1-91F9-0000F8758E66}'] |
||
7386 | // IDirect3DRMAnimationSet2 methods |
||
7387 | function AddAnimation(aid: IDirect3DRMAnimation2): HResult; stdcall; |
||
7388 | function Load(filename, name: Pointer; loadflags: TD3DRMLoadOptions; |
||
7389 | d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; lpArg: Pointer; |
||
7390 | lpParentFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
7391 | function DeleteAnimation(aid: IDirect3DRMAnimation2): HResult; stdcall; |
||
7392 | function SetTime(time: TD3DValue): HResult; stdcall; |
||
7393 | function GetAnimations(out lpAnimationArray: IDirect3DRMAnimationArray): HResult; stdcall; |
||
7394 | end; |
||
7395 | |||
7396 | IDirect3DRMUserVisual = interface(IDirect3DRMVisual) |
||
7397 | ['{59163DE0-6D43-11CF-AC4A-0000C03825A1}'] |
||
7398 | // IDirect3DRMUserVisual methods |
||
7399 | function Init(d3drmUVProc: TD3DRMUserVisualCallback; lpArg: Pointer): HResult; stdcall; |
||
7400 | end; |
||
7401 | |||
7402 | IDirect3DRMArray = interface(IUnknown) |
||
7403 | function GetSize: DWORD; stdcall; |
||
7404 | (* No GetElement method as it would get overloaded |
||
7405 | * in derived classes, and overloading is |
||
7406 | * a no-no in COM |
||
7407 | *) |
||
7408 | end; |
||
7409 | |||
7410 | IDirect3DRMObjectarray = interface(IDirect3DRMArray) |
||
7411 | function GetElement(index: DWORD; out lplpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
||
7412 | end; |
||
7413 | |||
7414 | IDirect3DRMDeviceArray = interface(IDirect3DRMArray) |
||
7415 | ['{EB16CB10-D271-11CE-AC48-0000C03825A1}'] |
||
7416 | // IDirect3DRMDevicearraymethods |
||
7417 | function GetElement(index: DWORD; out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
||
7418 | end; |
||
7419 | |||
7420 | IDirect3DRMFrameArray = interface(IDirect3DRMArray) |
||
7421 | ['{EB16CB12-D271-11CE-AC48-0000C03825A1}'] |
||
7422 | // IDirect3DRMFramearraymethods |
||
7423 | function GetElement(index: DWORD; out lplpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7424 | end; |
||
7425 | |||
7426 | IDirect3DRMViewportArray = interface(IDirect3DRMArray) |
||
7427 | ['{EB16CB11-D271-11CE-AC48-0000C03825A1}'] |
||
7428 | // IDirect3DRMViewportarraymethods |
||
7429 | function GetElement(index: DWORD; out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
||
7430 | end; |
||
7431 | |||
7432 | IDirect3DRMVisualArray = interface(IDirect3DRMArray) |
||
7433 | ['{EB16CB13-D271-11CE-AC48-0000C03825A1}'] |
||
7434 | // IDirect3DRMVisualarraymethods |
||
7435 | function GetElement(index: DWORD; out lplpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
7436 | end; |
||
7437 | |||
7438 | IDirect3DRMAnimationArray = interface(IDirect3DRMArray) |
||
7439 | ['{D5F1CAE0-4BD7-11D1-B974-0060083E45F3}'] |
||
7440 | function GetElement(index: DWORD; out lplpD3DRMAnimation: IDirect3DRMAnimation2): HResult; stdcall; |
||
7441 | end; |
||
7442 | |||
7443 | IDirect3DRMPickedArray = interface(IDirect3DRMArray) |
||
7444 | ['{EB16CB16-D271-11CE-AC48-0000C03825A1}'] |
||
7445 | // IDirect3DRMPickedarraymethods |
||
7446 | function GetPick(index: DWORD; out lplpVisual: IDirect3DRMVisual; |
||
7447 | out lplpFrameArray: IDirect3DRMFrameArray; |
||
7448 | var lpD3DRMPickDesc: TD3DRMPickDesc): HResult; stdcall; |
||
7449 | end; |
||
7450 | |||
7451 | IDirect3DRMLightArray = interface(IDirect3DRMArray) |
||
7452 | ['{EB16CB14-D271-11CE-AC48-0000C03825A1}'] |
||
7453 | // IDirect3DRMLightarraymethods |
||
7454 | function GetElement(index: DWORD; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7455 | end; |
||
7456 | |||
7457 | IDirect3DRMFaceArray = interface(IDirect3DRMArray) |
||
7458 | ['{EB16CB17-D271-11CE-AC48-0000C03825A1}'] |
||
7459 | // IDirect3DRMFacearraymethods |
||
7460 | function GetElement(index: DWORD; out lplpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
||
7461 | end; |
||
7462 | |||
7463 | IDirect3DRMPicked2Array = interface(IDirect3DRMArray) |
||
7464 | ['{4516EC7B-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7465 | // IDirect3DRMPicked2arraymethods |
||
7466 | function GetPick(index: DWORD; out lplpVisual: IDirect3DRMVisual; |
||
7467 | out lplpFrameArray: IDirect3DRMFrameArray; |
||
7468 | const lpD3DRMPickDesc2: D3DRMPICKDESC2): HResult; stdcall; |
||
7469 | end; |
||
7470 | |||
7471 | IDirect3DRMInterpolator = interface(IDirect3DRMObject) |
||
7472 | ['{242F6BC1-3849-11D0-9B6D-0000C0781BC3}'] |
||
7473 | // IDirect3DRMInterpolator methods |
||
7474 | function AttachObject(lpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
||
7475 | function GetAttachedObjects(lpD3DRMObjectArray: IDirect3DRMObjectArray): HResult; stdcall; |
||
7476 | function DetachObject(lpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
||
7477 | function SetIndex(d3dVal: TD3DValue): HResult; stdcall; |
||
7478 | function GetIndex: TD3DValue; stdcall; |
||
7479 | function Interpolate(d3dVal: TD3DValue; lpD3DRMObject: IDirect3DRMObject; |
||
7480 | d3drmInterpFlags: TD3DRMInterpolationOptions): HResult; stdcall; |
||
7481 | end; |
||
7482 | |||
7483 | IDirect3DRMClippedVisual = interface(IDirect3DRMVisual) |
||
7484 | ['{5434E733-6D66-11D1-BB0B-0000F875865A}'] |
||
7485 | // IDirect3DRMClippedVisual methods |
||
7486 | function Init(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
||
7487 | function AddPlane(lpRef: IDirect3DRMFrame3; const lpdvPoint, lpdvNormal: TD3DVector; |
||
7488 | dwFlags: DWORD; var lpdwReturnID: DWORD): HResult; stdcall; |
||
7489 | function DeletePlane(dwID, dwFlags: DWORD): HResult; stdcall; |
||
7490 | function GetPlaneIDs(var lpdwCount, lpdwID: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
7491 | function GetPlane (dwID: DWORD; lpRef: IDirect3DRMFrame3; |
||
7492 | var lpdvPoint, lpdvNormal: TD3DVector; dwFlags: DWORD): HResult; stdcall; |
||
7493 | function SetPlane (dwID: DWORD; lpRef: IDirect3DRMFrame3; |
||
7494 | const lpdvPoint, lpdvNormal: TD3DVector; dwFlags: DWORD): HResult; stdcall; |
||
7495 | end; |
||
7496 | |||
7497 | IDirect3DRMWinDevice = interface(IDirect3DRMObject) |
||
7498 | ['{C5016CC0-D273-11CE-AC48-0000C03825A1}'] |
||
7499 | // IDirect3DRMWinDevice methods |
||
7500 | function HandlePaint(hDC: HDC): HResult; stdcall; |
||
7501 | function HandleActivate(wparam: WORD): HResult; stdcall; |
||
7502 | end; |
||
7503 | |||
7504 | IDirect3DRM = interface(IUnknown) |
||
7505 | ['{2BC49361-8327-11CF-AC4A-0000C03825A1}'] |
||
7506 | // IDirect3DRM methods |
||
7507 | function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
||
7508 | const riid: TGUID; out ppv): HResult; stdcall; |
||
7509 | function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame; |
||
7510 | out lplpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7511 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7512 | function CreateMeshBuilder(out lplpD3DRMMeshBuilder: |
||
7513 | IDirect3DRMMeshBuilder): HResult; stdcall; |
||
7514 | function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
||
7515 | function CreateAnimation(out lplpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
||
7516 | function CreateAnimationSet(out lplpD3DRMAnimationSet: |
||
7517 | IDirect3DRMAnimationSet): HResult; stdcall; |
||
7518 | function CreateTexture(const lpImage: TD3DRMImage; |
||
7519 | out lplpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
||
7520 | function CreateLight(d3drmltLightType: TD3DRMLightType; |
||
7521 | cColor: TD3DColor; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7522 | function CreateLightRGB(ltLightType: TD3DRMLightType; vRed, vGreen, vBlue: |
||
7523 | TD3DValue; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7524 | function CreateMaterial(vPower: TD3DValue; out lplpD3DRMMaterial: |
||
7525 | IDirect3DRMMaterial): HResult; stdcall; |
||
7526 | function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
||
7527 | IDirect3DRMDevice): HResult; stdcall; |
||
7528 | function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
||
7529 | lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
||
7530 | function CreateDeviceFromD3D(lpD3D: IDirect3D; lpD3DDev: IDirect3DDevice; |
||
7531 | out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
||
7532 | function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
||
7533 | const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
||
7534 | IDirect3DRMDevice): HResult; stdcall; |
||
7535 | function CreateTextureFromSurface(lpDDS: IDirectDrawSurface; |
||
7536 | out lplpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
||
7537 | function CreateShadow(lpVisual: IDirect3DRMVisual; |
||
7538 | lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
||
7539 | out lplpShadow: IDirect3DRMVisual): HResult; stdcall; |
||
7540 | function CreateViewport(lpDev: IDirect3DRMDevice; |
||
7541 | lpCamera: IDirect3DRMFrame; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
||
7542 | out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
||
7543 | function CreateWrap(wraptype: TD3DRMWrapType; lpRef: IDirect3DRMFrame; |
||
7544 | ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue; |
||
7545 | out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
||
7546 | function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
||
7547 | out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
||
7548 | function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
||
7549 | IDirect3DRMTexture): HResult; stdcall; |
||
7550 | function LoadTextureFromResource(rs: HRSRC; out lplpD3DRMTexture: |
||
7551 | IDirect3DRMTexture): HResult; stdcall; |
||
7552 | function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7553 | function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7554 | function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
||
7555 | function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
||
7556 | function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
||
7557 | function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
||
7558 | function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
||
7559 | IDirect3DRMObject): HResult; stdcall; |
||
7560 | function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
||
7561 | function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
||
7562 | dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
||
7563 | D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
||
7564 | TD3DRMLoadTextureCallback; lpArgLTP: Pointer; |
||
7565 | lpParentFrame: IDirect3DRMFrame): HResult; stdcall; |
||
7566 | function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
||
7567 | end; |
||
7568 | |||
7569 | IDirect3DRM2 = interface(IUnknown) |
||
7570 | ['{4516ECC8-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7571 | // IDirect3DRM2 methods |
||
7572 | function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
||
7573 | const riid: TGUID; out ppv): HResult; stdcall; |
||
7574 | function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame2; |
||
7575 | out lplpD3DRMFrame: IDirect3DRMFrame2): HResult; stdcall; |
||
7576 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7577 | function CreateMeshBuilder(out lplpD3DRMMeshBuilder: |
||
7578 | IDirect3DRMMeshBuilder2): HResult; stdcall; |
||
7579 | function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
||
7580 | function CreateAnimation(out lplpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
||
7581 | function CreateAnimationSet(out lplpD3DRMAnimationSet: |
||
7582 | IDirect3DRMAnimationSet): HResult; stdcall; |
||
7583 | function CreateTexture(const lpImage: TD3DRMImage; |
||
7584 | out lplpD3DRMTexture: IDirect3DRMTexture2): HResult; stdcall; |
||
7585 | function CreateLight(d3drmltLightType: TD3DRMLightType; |
||
7586 | cColor: TD3DColor; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7587 | function CreateLightRGB(ltLightType: TD3DRMLightType; vRed, |
||
7588 | vGreen, vBlue: TD3DValue; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7589 | function CreateMaterial(vPower: TD3DValue; out lplpD3DRMMaterial: |
||
7590 | IDirect3DRMMaterial): HResult; stdcall; |
||
7591 | function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
||
7592 | IDirect3DRMDevice2): HResult; stdcall; |
||
7593 | function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
||
7594 | lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice2): HResult; stdcall; |
||
7595 | function CreateDeviceFromD3D(lpD3D: IDirect3D2; lpD3DDev: IDirect3DDevice2; |
||
7596 | out lplpD3DRMDevice: IDirect3DRMDevice2): HResult; stdcall; |
||
7597 | function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
||
7598 | const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
||
7599 | IDirect3DRMDevice2): HResult; stdcall; |
||
7600 | function CreateTextureFromSurface( lpDDS: IDirectDrawSurface; |
||
7601 | out lplpD3DRMTexture: IDirect3DRMTexture2): HResult; stdcall; |
||
7602 | function CreateShadow(lpVisual: IDirect3DRMVisual; |
||
7603 | lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
||
7604 | out lplpShadow: IDirect3DRMVisual): HResult; stdcall; |
||
7605 | function CreateViewport(lpDev: IDirect3DRMDevice; |
||
7606 | lpCamera: IDirect3DRMFrame; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
||
7607 | out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
||
7608 | function CreateWrap(wraptype: TD3DRMWrapType; lpRef: IDirect3DRMFrame; |
||
7609 | ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue; |
||
7610 | out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
||
7611 | function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
||
7612 | out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
||
7613 | function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
||
7614 | IDirect3DRMTexture2): HResult; stdcall; |
||
7615 | function LoadTextureFromResource(hModule: HModule; str: LPCSTR; out lplpD3DRMTexture: |
||
7616 | IDirect3DRMTexture2): HResult; stdcall; |
||
7617 | function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7618 | function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7619 | function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
||
7620 | function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
||
7621 | function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
||
7622 | function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
||
7623 | function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
||
7624 | IDirect3DRMObject): HResult; stdcall; |
||
7625 | function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
||
7626 | function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
||
7627 | dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
||
7628 | D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
||
7629 | TD3DRMLoadTextureCallback; lpArgLTP: Pointer; lpParentFrame: |
||
7630 | IDirect3DRMFrame): HResult; stdcall; |
||
7631 | function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
||
7632 | function CreateProgressiveMesh(out lplpD3DRMProgressiveMesh: |
||
7633 | IDirect3DRMProgressiveMesh): HResult; stdcall; |
||
7634 | end; |
||
7635 | |||
7636 | IDirect3DRM3 = interface(IUnknown) |
||
7637 | ['{4516EC83-8F20-11D0-9B6D-0000C0781BC3}'] |
||
7638 | // IDirect3DRM2 methods |
||
7639 | function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
||
7640 | const riid: TGUID; out ppv): HResult; stdcall; |
||
7641 | function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame3; |
||
7642 | out lplpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
||
7643 | function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
||
7644 | function CreateMeshBuilder(out lplpD3DRMMeshBuilder: |
||
7645 | IDirect3DRMMeshBuilder3): HResult; stdcall; |
||
7646 | function CreateFace(out lplpd3drmFace: IDirect3DRMFace2): HResult; stdcall; |
||
7647 | function CreateAnimation(out lplpD3DRMAnimation: IDirect3DRMAnimation2): HResult; stdcall; |
||
7648 | function CreateAnimationSet(out lplpD3DRMAnimationSet: |
||
7649 | IDirect3DRMAnimationSet2): HResult; stdcall; |
||
7650 | function CreateTexture(const lpImage: TD3DRMImage; |
||
7651 | out lplpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
7652 | function CreateLight(d3drmltLightType: TD3DRMLightType; |
||
7653 | cColor: TD3DColor; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7654 | function CreateLightRGB(ltLightType: TD3DRMLightType; vRed, |
||
7655 | vGreen, vBlue: TD3DValue; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
||
7656 | function CreateMaterial(vPower: TD3DValue; out lplpD3DRMMaterial: |
||
7657 | IDirect3DRMMaterial2): HResult; stdcall; |
||
7658 | function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
||
7659 | IDirect3DRMDevice3): HResult; stdcall; |
||
7660 | function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
||
7661 | lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
||
7662 | function CreateDeviceFromD3D(lpD3D: IDirect3D2; lpD3DDev: IDirect3DDevice2; |
||
7663 | out lplpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
||
7664 | function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
||
7665 | const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
||
7666 | IDirect3DRMDevice3): HResult; stdcall; |
||
7667 | function CreateTextureFromSurface( lpDDS: IDirectDrawSurface; |
||
7668 | out lplpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
||
7669 | function CreateShadow(lpVisual: IDirect3DRMVisual; |
||
7670 | lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
||
7671 | out lplpShadow: IDirect3DRMShadow): HResult; stdcall; |
||
7672 | function CreateViewport(lpDev: IDirect3DRMDevice3; |
||
7673 | lpCamera: IDirect3DRMFrame3; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
||
7674 | out lplpD3DRMViewport: IDirect3DRMViewport2): HResult; stdcall; |
||
7675 | function CreateWrap(wraptype: TD3DRMWrapType; lpRef: IDirect3DRMFrame3; |
||
7676 | ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue; |
||
7677 | out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
||
7678 | function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
||
7679 | out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
||
7680 | function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
||
7681 | IDirect3DRMTexture3): HResult; stdcall; |
||
7682 | function LoadTextureFromResource(hModule: HModule; str: LPCSTR; out lplpD3DRMTexture: |
||
7683 | IDirect3DRMTexture3): HResult; stdcall; |
||
7684 | |||
7685 | function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7686 | function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
||
7687 | function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
||
7688 | function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
||
7689 | function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
||
7690 | function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
||
7691 | function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
||
7692 | IDirect3DRMObject): HResult; stdcall; |
||
7693 | function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
||
7694 | function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
||
7695 | dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
||
7696 | D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
||
7697 | TD3DRMLoadTexture3Callback; lpArgLTP: Pointer; lpParentFrame: |
||
7698 | IDirect3DRMFrame3): HResult; stdcall; |
||
7699 | function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
||
7700 | function CreateProgressiveMesh(out lplpD3DRMProgressiveMesh: |
||
7701 | IDirect3DRMProgressiveMesh): HResult; stdcall; |
||
7702 | // IDirect3RM3 methods |
||
7703 | function RegisterClient(const rguid: TGUID; var lpdwID: DWORD): HResult; stdcall; |
||
7704 | function UnregisterClient(const rguid: TGUID): HResult; stdcall; |
||
7705 | function CreateClippedVisual(lpVisual: IDirect3DRMVisual; |
||
7706 | out lpClippedVisual: IDirect3DRMVisual): HResult; stdcall; |
||
7707 | function SetOptions(lpdwOptions: DWORD): HResult; stdcall; |
||
7708 | function GetOptions(var lpdwOptions: DWORD): HResult; stdcall; |
||
7709 | end; |
||
7710 | |||
7711 | const |
||
7712 | D3DRM_OK = HResult(DD_OK); |
||
7713 | D3DRMERR_BADOBJECT = HResult($88760000 + 781); |
||
7714 | D3DRMERR_BADTYPE = HResult($88760000 + 782); |
||
7715 | D3DRMERR_BADALLOC = HResult($88760000 + 783); |
||
7716 | D3DRMERR_FACEUSED = HResult($88760000 + 784); |
||
7717 | D3DRMERR_NOTFOUND = HResult($88760000 + 785); |
||
7718 | D3DRMERR_NOTDONEYET = HResult($88760000 + 786); |
||
7719 | D3DRMERR_FILENOTFOUND = HResult($88760000 + 787); |
||
7720 | D3DRMERR_BADFILE = HResult($88760000 + 788); |
||
7721 | D3DRMERR_BADDEVICE = HResult($88760000 + 789); |
||
7722 | D3DRMERR_BADVALUE = HResult($88760000 + 790); |
||
7723 | D3DRMERR_BADMAJORVERSION = HResult($88760000 + 791); |
||
7724 | D3DRMERR_BADMINORVERSION = HResult($88760000 + 792); |
||
7725 | D3DRMERR_UNABLETOEXECUTE = HResult($88760000 + 793); |
||
7726 | D3DRMERR_LIBRARYNOTFOUND = HResult($88760000 + 794); |
||
7727 | D3DRMERR_INVALIDLIBRARY = HResult($88760000 + 795); |
||
7728 | D3DRMERR_PENDING = HResult($88760000 + 796); |
||
7729 | D3DRMERR_NOTENOUGHDATA = HResult($88760000 + 797); |
||
7730 | D3DRMERR_REQUESTTOOLARGE = HResult($88760000 + 798); |
||
7731 | D3DRMERR_REQUESTTOOSMALL = HResult($88760000 + 799); |
||
7732 | D3DRMERR_CONNECTIONLOST = HResult($88760000 + 800); |
||
7733 | D3DRMERR_LOADABORTED = HResult($88760000 + 801); |
||
7734 | D3DRMERR_NOINTERNET = HResult($88760000 + 802); |
||
7735 | D3DRMERR_BADCACHEFILE = HResult($88760000 + 803); |
||
7736 | D3DRMERR_BOXNOTSET = HResult($88760000 + 804); |
||
7737 | D3DRMERR_BADPMDATA = HResult($88760000 + 805); |
||
7738 | D3DRMERR_CLIENTNOTREGISTERED = HResult($88760000 + 806); |
||
7739 | D3DRMERR_NOTCREATEDFROMDDS = HResult($88760000 + 807); |
||
7740 | D3DRMERR_NOSUCHKEY = HResult($88760000 + 808); |
||
7741 | D3DRMERR_INCOMPATABLEKEY = HResult($88760000 + 809); |
||
7742 | D3DRMERR_ELEMENTINUSE = HResult($88760000 + 810); |
||
7743 | D3DRMERR_TEXTUREFORMATNOTFOUND = HResult($88760000 + 811); |
||
7744 | D3DRMERR_NOTAGGREGATED = HResult($88760000 + 812); |
||
7745 | |||
7746 | { Create a Direct3DRM API } |
||
7747 | function Direct3DRMCreate(out lplpDirect3DRM: IDirect3DRM): HResult; stdcall; |
||
7748 | |||
7749 | (*************************************************************************** |
||
7750 | * |
||
7751 | * Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
||
7752 | * |
||
7753 | * File: dxfile.h |
||
7754 | * |
||
7755 | * Content: DirectX File public header file |
||
7756 | * |
||
7757 | ***************************************************************************) |
||
7758 | |||
7759 | { DirectXFile Object Class Id (for CoCreateInstance()) } |
||
7760 | |||
7761 | const |
||
7762 | CLSID_CDirectXFile: TGUID = '{4516EC43-8F20-11D0-9B6D-0000C0781BC3}'; |
||
7763 | |||
7764 | { DirectX File Interface GUIDs. } |
||
7765 | |||
7766 | IID_IDirectXFile: TGUID = '{3D82AB40-62DA-11CF-AB39-0020AF71E433}'; |
||
7767 | IID_IDirectXFileEnumObject: TGUID = '{3D82AB41-62DA-11CF-AB39-0020AF71E433}'; |
||
7768 | IID_IDirectXFileSaveObject: TGUID = '{3D82AB42-62DA-11CF-AB39-0020AF71E433}'; |
||
7769 | IID_IDirectXFileObject: TGUID = '{3D82AB43-62DA-11CF-AB39-0020AF71E433}'; |
||
7770 | IID_IDirectXFileData: TGUID = '{3D82AB44-62DA-11CF-AB39-0020AF71E433}'; |
||
7771 | IID_IDirectXFileDataReference: TGUID = '{3D82AB45-62DA-11CF-AB39-0020AF71E433}'; |
||
7772 | IID_IDirectXFileBinary: TGUID = '{3D82AB46-62DA-11CF-AB39-0020AF71E433}'; |
||
7773 | |||
7774 | type |
||
7775 | TDXFileFormat = DWORD; |
||
7776 | DXFILEFORMAT = TDXFileFormat; |
||
7777 | |||
7778 | const |
||
7779 | DXFILEFORMAT_BINARY = 0; |
||
7780 | DXFILEFORMAT_TEXT = 1; |
||
7781 | DXFILEFORMAT_COMPRESSED = 2; |
||
7782 | |||
7783 | type |
||
7784 | TDXFileLoadOptions = DWORD; |
||
7785 | DXFILELOADOPTIONS = TDXFileLoadOptions; |
||
7786 | |||
7787 | const |
||
7788 | DXFILELOAD_FROMFILE = $00; |
||
7789 | DXFILELOAD_FROMRESOURCE = $01; |
||
7790 | DXFILELOAD_FROMMEMORY = $02; |
||
7791 | DXFILELOAD_FROMSTREAM = $04; |
||
7792 | DXFILELOAD_FROMURL = $08; |
||
7793 | |||
7794 | type |
||
7795 | PDXFileLoadResource = ^TDXFileLoadResource; |
||
7796 | TDXFileLoadResource = record |
||
7797 | hModule: HModule; |
||
7798 | lpName: PChar; |
||
7799 | lpType: PChar; |
||
7800 | end; |
||
7801 | |||
7802 | DXFILELOADRESOURCE = TDXFileLoadResource; |
||
7803 | LPDXFILELOADRESOURCE = PDXFileLoadResource; |
||
7804 | |||
7805 | PDXFileLoadMemory = ^TDXFileLoadMemory; |
||
7806 | TDXFileLoadMemory = record |
||
7807 | lpMemory: Pointer; |
||
7808 | dSize: DWORD; |
||
7809 | end; |
||
7810 | |||
7811 | DXFILELOADMEMORY = TDXFileLoadMemory; |
||
7812 | LPDXFILELOADMEMORY = PDXFileLoadMemory; |
||
7813 | |||
7814 | { DirectX File object types. } |
||
7815 | |||
7816 | type |
||
7817 | IDirectXFile = interface; |
||
7818 | IDirectXFileEnumObject = interface; |
||
7819 | IDirectXFileSaveObject = interface; |
||
7820 | IDirectXFileObject = interface; |
||
7821 | IDirectXFileData = interface; |
||
7822 | IDirectXFileDataReference = interface; |
||
7823 | IDirectXFileBinary = interface; |
||
7824 | |||
7825 | IDirectXFile = interface(IUnknown) |
||
7826 | ['{3D82AB40-62DA-11CF-AB39-0020AF71E433}'] |
||
7827 | function CreateEnumObject(pvSource: Pointer; dwLoadOptions: TDXFileLoadOptions; |
||
7828 | out ppEnumObj: IDirectXFileEnumObject): HResult; stdcall; |
||
7829 | function CreateSaveObject(szFileName: PChar; dwFileFormat: TDXFileFormat; |
||
7830 | out ppSaveObj: IDirectXFileSaveObject): HResult; stdcall; |
||
7831 | function RegisterTemplates(pvData: Pointer; cbSize: DWORD): HResult; stdcall; |
||
7832 | end; |
||
7833 | |||
7834 | IDirectXFileEnumObject = interface(IUnknown) |
||
7835 | ['{3D82AB41-62DA-11CF-AB39-0020AF71E433}'] |
||
7836 | function GetNextDataObject(out ppDataObj: IDirectXFileData): HResult; stdcall; |
||
7837 | function GetDataObjectById(const rguid: TGUID; out ppDataObj: IDirectXFileData): HResult; stdcall; |
||
7838 | function GetDataObjectByName(szName: PChar; out ppDataObj: IDirectXFileData): HResult; stdcall; |
||
7839 | end; |
||
7840 | |||
7841 | IDirectXFileSaveObject = interface(IUnknown) |
||
7842 | ['{3D82AB42-62DA-11CF-AB39-0020AF71E433}'] |
||
7843 | function SaveTemplates(cTemplates: DWORD; var ppguidTemplates: PGUID): HResult; stdcall; |
||
7844 | function CreateDataObject(const rguidTemplate: TGUID; szName: PChar; |
||
7845 | const pguid: TGUID; cbSize: DWORD; pvData: Pointer; |
||
7846 | out ppDataObj: IDirectXFileData): HResult; stdcall; |
||
7847 | function SaveData(pDataObj: IDirectXFileData): HResult; stdcall; |
||
7848 | end; |
||
7849 | |||
7850 | IDirectXFileObject = interface(IUnknown) |
||
7851 | ['{3D82AB43-62DA-11CF-AB39-0020AF71E433}'] |
||
7852 | function GetName(pstrNameBuf: PChar; var dwBufLen: DWORD): HResult; stdcall; |
||
7853 | function GetId (var pGuidBuf: TGUID): HResult; stdcall; |
||
7854 | end; |
||
7855 | |||
7856 | IDirectXFileData = interface(IDirectXFileObject) |
||
7857 | ['{3D82AB44-62DA-11CF-AB39-0020AF71E433}'] |
||
7858 | function GetData(szMember: PChar; var pcbSize: DWORD; var ppvData: Pointer): HResult; stdcall; |
||
7859 | function GetType(var ppguid: PGUID): HResult; stdcall; |
||
7860 | function GetNextObject(out ppChildObj: IDirectXFileObject): HResult; stdcall; |
||
7861 | function AddDataObject(pDataObj: IDirectXFileData): HResult; stdcall; |
||
7862 | function AddDataReference(szRef: PChar; pguidRef: PGUID): HResult; stdcall; |
||
7863 | function AddBinaryObjec (szName: PChar; pguid: PGUID; szMimeType: PChar; |
||
7864 | pvData: Pointer; cbSize: DWORD): HResult; stdcall; |
||
7865 | end; |
||
7866 | |||
7867 | IDirectXFileDataReference = interface(IDirectXFileObject) |
||
7868 | ['{3D82AB45-62DA-11CF-AB39-0020AF71E433}'] |
||
7869 | function Resolve(out ppDataObj: IDirectXFileData): HResult; stdcall; |
||
7870 | end; |
||
7871 | |||
7872 | IDirectXFileBinary = interface(IDirectXFileObject) |
||
7873 | ['{3D82AB46-62DA-11CF-AB39-0020AF71E433}'] |
||
7874 | function GetSize(var pcbSize: DWORD): HResult; stdcall; |
||
7875 | function GetMimeType(var pszMimeType: PChar): HResult; stdcall; |
||
7876 | function Read(pvData: Pointer; cbSize: DWORD; var pcbRead: DWORD): HResult; stdcall; |
||
7877 | end; |
||
7878 | |||
7879 | { DirectX File Header template's GUID. } |
||
7880 | |||
7881 | const |
||
7882 | TID_DXFILEHeader: TGUID = '{3D82AB43-62DA-11CF-AB39-0020AF71E433}'; |
||
7883 | |||
7884 | { DirectX File errors. } |
||
7885 | |||
7886 | const |
||
7887 | DXFILE_OK = HResult(0); |
||
7888 | |||
7889 | DXFILEERR_BADOBJECT = HResult($88760000 + 850); |
||
7890 | DXFILEERR_BADVALUE = HResult($88760000 + 851); |
||
7891 | DXFILEERR_BADTYPE = HResult($88760000 + 852); |
||
7892 | DXFILEERR_BADSTREAMHANDLE = HResult($88760000 + 853); |
||
7893 | DXFILEERR_BADALLOC = HResult($88760000 + 854); |
||
7894 | DXFILEERR_NOTFOUND = HResult($88760000 + 855); |
||
7895 | DXFILEERR_NOTDONEYET = HResult($88760000 + 856); |
||
7896 | DXFILEERR_FILENOTFOUND = HResult($88760000 + 857); |
||
7897 | DXFILEERR_RESOURCENOTFOUND = HResult($88760000 + 858); |
||
7898 | DXFILEERR_URLNOTFOUND = HResult($88760000 + 859); |
||
7899 | DXFILEERR_BADRESOURCE = HResult($88760000 + 860); |
||
7900 | DXFILEERR_BADFILETYPE = HResult($88760000 + 861); |
||
7901 | DXFILEERR_BADFILEVERSION = HResult($88760000 + 862); |
||
7902 | DXFILEERR_BADFILEFLOATSIZE = HResult($88760000 + 863); |
||
7903 | DXFILEERR_BADFILECOMPRESSIONTYPE = HResult($88760000 + 864); |
||
7904 | DXFILEERR_BADFILE = HResult($88760000 + 865); |
||
7905 | DXFILEERR_PARSEERROR = HResult($88760000 + 866); |
||
7906 | DXFILEERR_NOTEMPLATE = HResult($88760000 + 867); |
||
7907 | DXFILEERR_BADARRAYSIZE = HResult($88760000 + 868); |
||
7908 | DXFILEERR_BADDATAREFERENCE = HResult($88760000 + 869); |
||
7909 | DXFILEERR_INTERNALERROR = HResult($88760000 + 870); |
||
7910 | DXFILEERR_NOMOREOBJECTS = HResult($88760000 + 871); |
||
7911 | DXFILEERR_BADINTRINSICS = HResult($88760000 + 872); |
||
7912 | DXFILEERR_NOMORESTREAMHANDLES = HResult($88760000 + 873); |
||
7913 | DXFILEERR_NOMOREDATA = HResult($88760000 + 874); |
||
7914 | DXFILEERR_BADCACHEFILE = HResult($88760000 + 875); |
||
7915 | DXFILEERR_NOINTERNET = HResult($88760000 + 876); |
||
7916 | |||
7917 | { API for creating IDirectXFile interface. } |
||
7918 | |||
7919 | function DirectXFileCreate(out lplpDirectXFile: IDirectXFile): HResult; stdcall; |
||
7920 | |||
7921 | (*************************************************************************** |
||
7922 | * |
||
7923 | * Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
||
7924 | * |
||
7925 | * File: rmxfguid.h |
||
7926 | * |
||
7927 | * Content: Defines GUIDs of D3DRM's templates. |
||
7928 | * |
||
7929 | ***************************************************************************) |
||
7930 | |||
7931 | const |
||
7932 | TID_D3DRMInfo: TGUID = '{2B957100-9E9A-11cf-AB39-0020AF71E433}'; |
||
7933 | TID_D3DRMMesh: TGUID = '{3D82AB44-62DA-11cf-AB39-0020AF71E433}'; |
||
7934 | TID_D3DRMVector: TGUID = '{3D82AB5E-62DA-11cf-AB39-0020AF71E433}'; |
||
7935 | TID_D3DRMMeshFace: TGUID = '{3D82AB5F-62DA-11cf-AB39-0020AF71E433}'; |
||
7936 | TID_D3DRMMaterial: TGUID = '{3D82AB4D-62DA-11cf-AB39-0020AF71E433}'; |
||
7937 | TID_D3DRMMaterialArray: TGUID = '{35FF44E1-6C7C-11cf-8F52-0040333594A3}'; |
||
7938 | TID_D3DRMFrame: TGUID = '{3D82AB46-62DA-11cf-AB39-0020AF71E433}'; |
||
7939 | TID_D3DRMFrameTransformMatrix: TGUID = '{F6F23F41-7686-11cf-8F52-0040333594A3}'; |
||
7940 | TID_D3DRMMeshMaterialList: TGUID = '{F6F23F42-7686-11cf-8F52-0040333594A3}'; |
||
7941 | TID_D3DRMMeshTextureCoords: TGUID = '{F6F23F40-7686-11cf-8F52-0040333594A3}'; |
||
7942 | TID_D3DRMMeshNormals: TGUID = '{F6F23F43-7686-11cf-8F52-0040333594A3}'; |
||
7943 | TID_D3DRMCoords2d: TGUID = '{F6F23F44-7686-11cf-8F52-0040333594A3}'; |
||
7944 | TID_D3DRMMatrix4x4: TGUID = '{F6F23F45-7686-11cf-8F52-0040333594A3}'; |
||
7945 | TID_D3DRMAnimation: TGUID = '{3D82AB4F-62DA-11cf-AB39-0020AF71E433}'; |
||
7946 | TID_D3DRMAnimationSet: TGUID = '{3D82AB50-62DA-11cf-AB39-0020AF71E433}'; |
||
7947 | TID_D3DRMAnimationKey: TGUID = '{10DD46A8-775B-11cf-8F52-0040333594A3}'; |
||
7948 | TID_D3DRMFloatKeys: TGUID = '{10DD46A9-775B-11cf-8F52-0040333594A3}'; |
||
7949 | TID_D3DRMMaterialAmbientColor: TGUID = '{01411840-7786-11cf-8F52-0040333594A3}'; |
||
7950 | TID_D3DRMMaterialDiffuseColor: TGUID = '{01411841-7786-11cf-8F52-0040333594A3}'; |
||
7951 | TID_D3DRMMaterialSpecularColor: TGUID = '{01411842-7786-11cf-8F52-0040333594A3}'; |
||
7952 | TID_D3DRMMaterialEmissiveColor: TGUID = '{D3E16E80-7835-11cf-8F52-0040333594A3}'; |
||
7953 | TID_D3DRMMaterialPower: TGUID = '{01411843-7786-11cf-8F52-0040333594A3}'; |
||
7954 | TID_D3DRMColorRGBA: TGUID = '{35FF44E0-6C7C-11cf-8F52-0040333594A3}'; |
||
7955 | TID_D3DRMColorRGB: TGUID = '{D3E16E81-7835-11cf-8F52-0040333594A3}'; |
||
7956 | TID_D3DRMGuid: TGUID = '{A42790E0-7810-11cf-8F52-0040333594A3}'; |
||
7957 | TID_D3DRMTextureFilename: TGUID = '{A42790E1-7810-11cf-8F52-0040333594A3}'; |
||
7958 | TID_D3DRMTextureReference: TGUID = '{A42790E2-7810-11cf-8F52-0040333594A3}'; |
||
7959 | TID_D3DRMIndexedColor: TGUID = '{1630B820-7842-11cf-8F52-0040333594A3}'; |
||
7960 | TID_D3DRMMeshVertexColors: TGUID = '{1630B821-7842-11cf-8F52-0040333594A3}'; |
||
7961 | TID_D3DRMMaterialWrap: TGUID = '{4885AE60-78E8-11cf-8F52-0040333594A3}'; |
||
7962 | TID_D3DRMBoolean: TGUID = '{537DA6A0-CA37-11d0-941C-0080C80CFA7B}'; |
||
7963 | TID_D3DRMMeshFaceWraps: TGUID = '{ED1EC5C0-C0A8-11d0-941C-0080C80CFA7B}'; |
||
7964 | TID_D3DRMBoolean2d: TGUID = '{4885AE63-78E8-11cf-8F52-0040333594A3}'; |
||
7965 | TID_D3DRMTimedFloatKeys: TGUID = '{F406B180-7B3B-11cf-8F52-0040333594A3}'; |
||
7966 | TID_D3DRMAnimationOptions: TGUID = '{E2BF56C0-840F-11cf-8F52-0040333594A3}'; |
||
7967 | TID_D3DRMFramePosition: TGUID = '{E2BF56C1-840F-11cf-8F52-0040333594A3}'; |
||
7968 | TID_D3DRMFrameVelocity: TGUID = '{E2BF56C2-840F-11cf-8F52-0040333594A3}'; |
||
7969 | TID_D3DRMFrameRotation: TGUID = '{E2BF56C3-840F-11cf-8F52-0040333594A3}'; |
||
7970 | TID_D3DRMLight: TGUID = '{3D82AB4A-62DA-11cf-AB39-0020AF71E433}'; |
||
7971 | TID_D3DRMCamera: TGUID = '{3D82AB51-62DA-11cf-AB39-0020AF71E433}'; |
||
7972 | TID_D3DRMAppData: TGUID = '{E5745280-B24F-11cf-9DD5-00AA00A71A2F}'; |
||
7973 | TID_D3DRMLightUmbra: TGUID = '{AED22740-B31F-11cf-9DD5-00AA00A71A2F}'; |
||
7974 | TID_D3DRMLightRange: TGUID = '{AED22742-B31F-11cf-9DD5-00AA00A71A2F}'; |
||
7975 | TID_D3DRMLightPenumbra: TGUID = '{AED22741-B31F-11cf-9DD5-00AA00A71A2F}'; |
||
7976 | TID_D3DRMLightAttenuation: TGUID = '{A8A98BA0-C5E5-11cf-B941-0080C80CFA7B}'; |
||
7977 | TID_D3DRMInlineData: TGUID = '{3A23EEA0-94B1-11d0-AB39-0020AF71E433}'; |
||
7978 | TID_D3DRMUrl: TGUID = '{3A23EEA1-94B1-11d0-AB39-0020AF71E433}'; |
||
7979 | |||
7980 | TID_D3DRMProgressiveMesh: TGUID = '{8A63C360-997D-11d0-941C-0080C80CFA7B}'; |
||
7981 | TID_D3DRMExternalVisual: TGUID = '{98116AA0-BDBA-11d1-82C0-00A0C9697271}'; |
||
7982 | TID_D3DRMStringProperty: TGUID = '{7F0F21E0-BFE1-11d1-82C0-00A0C9697271}'; |
||
7983 | TID_D3DRMPropertyBag: TGUID = '{7F0F21E1-BFE1-11d1-82C0-00A0C9697271}'; |
||
7984 | TID_D3DRMRightHanded: TGUID = '{7F5D5EA0-D53A-11d1-82C0-00A0C9697271}'; |
||
7985 | |||
7986 | (*************************************************************************** |
||
7987 | * |
||
7988 | * Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
||
7989 | * |
||
7990 | * File: rmxftmpl.h |
||
7991 | * |
||
7992 | * Content: D3DRM XFile templates in binary form. |
||
7993 | * |
||
7994 | ***************************************************************************) |
||
7995 | |||
7996 | const |
||
7997 | D3DRM_XTEMPLATES: array [0..3214] of byte = ( |
||
7998 | $78, $6f, $66, $20, $30, $33, $30, $32, $62, |
||
7999 | $69, $6e, $20, $30, $30, $36, $34, $1f, 0, $1, |
||
8000 | 0, $6, 0, 0, 0, $48, $65, $61, $64, $65, |
||
8001 | $72, $a, 0, $5, 0, $43, $ab, $82, $3d, $da, |
||
8002 | $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
||
8003 | $33, $28, 0, $1, 0, $5, 0, 0, 0, $6d, |
||
8004 | $61, $6a, $6f, $72, $14, 0, $28, 0, $1, 0, |
||
8005 | $5, 0, 0, 0, $6d, $69, $6e, $6f, $72, $14, |
||
8006 | 0, $29, 0, $1, 0, $5, 0, 0, 0, $66, |
||
8007 | $6c, $61, $67, $73, $14, 0, $b, 0, $1f, 0, |
||
8008 | $1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
||
8009 | $6f, $72, $a, 0, $5, 0, $5e, $ab, $82, $3d, |
||
8010 | $da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, |
||
8011 | $e4, $33, $2a, 0, $1, 0, $1, 0, 0, 0, |
||
8012 | $78, $14, 0, $2a, 0, $1, 0, $1, 0, 0, |
||
8013 | 0, $79, $14, 0, $2a, 0, $1, 0, $1, 0, |
||
8014 | 0, 0, $7a, $14, 0, $b, 0, $1f, 0, $1, |
||
8015 | 0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
||
8016 | $73, $32, $64, $a, 0, $5, 0, $44, $3f, $f2, |
||
8017 | $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
||
8018 | $35, $94, $a3, $2a, 0, $1, 0, $1, 0, 0, |
||
8019 | 0, $75, $14, 0, $2a, 0, $1, 0, $1, 0, |
||
8020 | 0, 0, $76, $14, 0, $b, 0, $1f, 0, $1, |
||
8021 | 0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
||
8022 | $78, $34, $78, $34, $a, 0, $5, 0, $45, $3f, |
||
8023 | $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
||
8024 | $33, $35, $94, $a3, $34, 0, $2a, 0, $1, 0, |
||
8025 | $6, 0, 0, 0, $6d, $61, $74, $72, $69, $78, |
||
8026 | $e, 0, $3, 0, $10, 0, 0, 0, $f, 0, |
||
8027 | $14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, |
||
8028 | 0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
||
8029 | $41, $a, 0, $5, 0, $e0, $44, $ff, $35, $7c, |
||
8030 | $6c, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, |
||
8031 | $a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, |
||
8032 | $65, $64, $14, 0, $2a, 0, $1, 0, $5, 0, |
||
8033 | 0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, |
||
8034 | 0, $1, 0, $4, 0, 0, 0, $62, $6c, $75, |
||
8035 | $65, $14, 0, $2a, 0, $1, 0, $5, 0, 0, |
||
8036 | 0, $61, $6c, $70, $68, $61, $14, 0, $b, 0, |
||
8037 | $1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, |
||
8038 | $6c, $6f, $72, $52, $47, $42, $a, 0, $5, 0, |
||
8039 | $81, $6e, $e1, $d3, $35, $78, $cf, $11, $8f, $52, |
||
8040 | 0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, |
||
8041 | $3, 0, 0, 0, $72, $65, $64, $14, 0, $2a, |
||
8042 | 0, $1, 0, $5, 0, 0, 0, $67, $72, $65, |
||
8043 | $65, $6e, $14, 0, $2a, 0, $1, 0, $4, 0, |
||
8044 | 0, 0, $62, $6c, $75, $65, $14, 0, $b, 0, |
||
8045 | $1f, 0, $1, 0, $c, 0, 0, 0, $49, $6e, |
||
8046 | $64, $65, $78, $65, $64, $43, $6f, $6c, $6f, $72, |
||
8047 | $a, 0, $5, 0, $20, $b8, $30, $16, $42, $78, |
||
8048 | $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
||
8049 | $29, 0, $1, 0, $5, 0, 0, 0, $69, $6e, |
||
8050 | $64, $65, $78, $14, 0, $1, 0, $9, 0, 0, |
||
8051 | 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, |
||
8052 | $1, 0, $a, 0, 0, 0, $69, $6e, $64, $65, |
||
8053 | $78, $43, $6f, $6c, $6f, $72, $14, 0, $b, 0, |
||
8054 | $1f, 0, $1, 0, $7, 0, 0, 0, $42, $6f, |
||
8055 | $6f, $6c, $65, $61, $6e, $a, 0, $5, 0, $a0, |
||
8056 | $a6, $7d, $53, $37, $ca, $d0, $11, $94, $1c, 0, |
||
8057 | $80, $c8, $c, $fa, $7b, $29, 0, $1, 0, $9, |
||
8058 | 0, 0, 0, $74, $72, $75, $65, $66, $61, $6c, |
||
8059 | $73, $65, $14, 0, $b, 0, $1f, 0, $1, 0, |
||
8060 | $9, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, |
||
8061 | $6e, $32, $64, $a, 0, $5, 0, $63, $ae, $85, |
||
8062 | $48, $e8, $78, $cf, $11, $8f, $52, 0, $40, $33, |
||
8063 | $35, $94, $a3, $1, 0, $7, 0, 0, 0, $42, |
||
8064 | $6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, |
||
8065 | 0, 0, $75, $14, 0, $1, 0, $7, 0, 0, |
||
8066 | 0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, |
||
8067 | $1, 0, 0, 0, $76, $14, 0, $b, 0, $1f, |
||
8068 | 0, $1, 0, $c, 0, 0, 0, $4d, $61, $74, |
||
8069 | $65, $72, $69, $61, $6c, $57, $72, $61, $70, $a, |
||
8070 | 0, $5, 0, $60, $ae, $85, $48, $e8, $78, $cf, |
||
8071 | $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
||
8072 | 0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, |
||
8073 | $61, $6e, $1, 0, $1, 0, 0, 0, $75, $14, |
||
8074 | 0, $1, 0, $7, 0, 0, 0, $42, $6f, $6f, |
||
8075 | $6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, |
||
8076 | $76, $14, 0, $b, 0, $1f, 0, $1, 0, $f, |
||
8077 | 0, 0, 0, $54, $65, $78, $74, $75, $72, $65, |
||
8078 | $46, $69, $6c, $65, $6e, $61, $6d, $65, $a, 0, |
||
8079 | $5, 0, $e1, $90, $27, $a4, $10, $78, $cf, $11, |
||
8080 | $8f, $52, 0, $40, $33, $35, $94, $a3, $31, 0, |
||
8081 | $1, 0, $8, 0, 0, 0, $66, $69, $6c, $65, |
||
8082 | $6e, $61, $6d, $65, $14, 0, $b, 0, $1f, 0, |
||
8083 | $1, 0, $8, 0, 0, 0, $4d, $61, $74, $65, |
||
8084 | $72, $69, $61, $6c, $a, 0, $5, 0, $4d, $ab, |
||
8085 | $82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, |
||
8086 | $af, $71, $e4, $33, $1, 0, $9, 0, 0, 0, |
||
8087 | $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $1, |
||
8088 | 0, $9, 0, 0, 0, $66, $61, $63, $65, $43, |
||
8089 | $6f, $6c, $6f, $72, $14, 0, $2a, 0, $1, 0, |
||
8090 | $5, 0, 0, 0, $70, $6f, $77, $65, $72, $14, |
||
8091 | 0, $1, 0, $8, 0, 0, 0, $43, $6f, $6c, |
||
8092 | $6f, $72, $52, $47, $42, $1, 0, $d, 0, 0, |
||
8093 | 0, $73, $70, $65, $63, $75, $6c, $61, $72, $43, |
||
8094 | $6f, $6c, $6f, $72, $14, 0, $1, 0, $8, 0, |
||
8095 | 0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
||
8096 | $1, 0, $d, 0, 0, 0, $65, $6d, $69, $73, |
||
8097 | $73, $69, $76, $65, $43, $6f, $6c, $6f, $72, $14, |
||
8098 | 0, $e, 0, $12, 0, $12, 0, $12, 0, $f, |
||
8099 | 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, |
||
8100 | 0, $4d, $65, $73, $68, $46, $61, $63, $65, $a, |
||
8101 | 0, $5, 0, $5f, $ab, $82, $3d, $da, $62, $cf, |
||
8102 | $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
||
8103 | 0, $1, 0, $12, 0, 0, 0, $6e, $46, $61, |
||
8104 | $63, $65, $56, $65, $72, $74, $65, $78, $49, $6e, |
||
8105 | $64, $69, $63, $65, $73, $14, 0, $34, 0, $29, |
||
8106 | 0, $1, 0, $11, 0, 0, 0, $66, $61, $63, |
||
8107 | $65, $56, $65, $72, $74, $65, $78, $49, $6e, $64, |
||
8108 | $69, $63, $65, $73, $e, 0, $1, 0, $12, 0, |
||
8109 | 0, 0, $6e, $46, $61, $63, $65, $56, $65, $72, |
||
8110 | $74, $65, $78, $49, $6e, $64, $69, $63, $65, $73, |
||
8111 | $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
||
8112 | $d, 0, 0, 0, $4d, $65, $73, $68, $46, $61, |
||
8113 | $63, $65, $57, $72, $61, $70, $73, $a, 0, $5, |
||
8114 | 0, $c0, $c5, $1e, $ed, $a8, $c0, $d0, $11, $94, |
||
8115 | $1c, 0, $80, $c8, $c, $fa, $7b, $29, 0, $1, |
||
8116 | 0, $f, 0, 0, 0, $6e, $46, $61, $63, $65, |
||
8117 | $57, $72, $61, $70, $56, $61, $6c, $75, $65, $73, |
||
8118 | $14, 0, $34, 0, $1, 0, $9, 0, 0, 0, |
||
8119 | $42, $6f, $6f, $6c, $65, $61, $6e, $32, $64, $1, |
||
8120 | 0, $e, 0, 0, 0, $66, $61, $63, $65, $57, |
||
8121 | $72, $61, $70, $56, $61, $6c, $75, $65, $73, $e, |
||
8122 | 0, $1, 0, $f, 0, 0, 0, $6e, $46, $61, |
||
8123 | $63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, |
||
8124 | $65, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
||
8125 | $1, 0, $11, 0, 0, 0, $4d, $65, $73, $68, |
||
8126 | $54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, |
||
8127 | $72, $64, $73, $a, 0, $5, 0, $40, $3f, $f2, |
||
8128 | $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
||
8129 | $35, $94, $a3, $29, 0, $1, 0, $e, 0, 0, |
||
8130 | 0, $6e, $54, $65, $78, $74, $75, $72, $65, $43, |
||
8131 | $6f, $6f, $72, $64, $73, $14, 0, $34, 0, $1, |
||
8132 | 0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
||
8133 | $73, $32, $64, $1, 0, $d, 0, 0, 0, $74, |
||
8134 | $65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, |
||
8135 | $64, $73, $e, 0, $1, 0, $e, 0, 0, 0, |
||
8136 | $6e, $54, $65, $78, $74, $75, $72, $65, $43, $6f, |
||
8137 | $6f, $72, $64, $73, $f, 0, $14, 0, $b, 0, |
||
8138 | $1f, 0, $1, 0, $10, 0, 0, 0, $4d, $65, |
||
8139 | $73, $68, $4d, $61, $74, $65, $72, $69, $61, $6c, |
||
8140 | $4c, $69, $73, $74, $a, 0, $5, 0, $42, $3f, |
||
8141 | $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
||
8142 | $33, $35, $94, $a3, $29, 0, $1, 0, $a, 0, |
||
8143 | 0, 0, $6e, $4d, $61, $74, $65, $72, $69, $61, |
||
8144 | $6c, $73, $14, 0, $29, 0, $1, 0, $c, 0, |
||
8145 | 0, 0, $6e, $46, $61, $63, $65, $49, $6e, $64, |
||
8146 | $65, $78, $65, $73, $14, 0, $34, 0, $29, 0, |
||
8147 | $1, 0, $b, 0, 0, 0, $66, $61, $63, $65, |
||
8148 | $49, $6e, $64, $65, $78, $65, $73, $e, 0, $1, |
||
8149 | 0, $c, 0, 0, 0, $6e, $46, $61, $63, $65, |
||
8150 | $49, $6e, $64, $65, $78, $65, $73, $f, 0, $14, |
||
8151 | 0, $e, 0, $1, 0, $8, 0, 0, 0, $4d, |
||
8152 | $61, $74, $65, $72, $69, $61, $6c, $f, 0, $b, |
||
8153 | 0, $1f, 0, $1, 0, $b, 0, 0, 0, $4d, |
||
8154 | $65, $73, $68, $4e, $6f, $72, $6d, $61, $6c, $73, |
||
8155 | $a, 0, $5, 0, $43, $3f, $f2, $f6, $86, $76, |
||
8156 | $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
||
8157 | $29, 0, $1, 0, $8, 0, 0, 0, $6e, $4e, |
||
8158 | $6f, $72, $6d, $61, $6c, $73, $14, 0, $34, 0, |
||
8159 | $1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
||
8160 | $6f, $72, $1, 0, $7, 0, 0, 0, $6e, $6f, |
||
8161 | $72, $6d, $61, $6c, $73, $e, 0, $1, 0, $8, |
||
8162 | 0, 0, 0, $6e, $4e, $6f, $72, $6d, $61, $6c, |
||
8163 | $73, $f, 0, $14, 0, $29, 0, $1, 0, $c, |
||
8164 | 0, 0, 0, $6e, $46, $61, $63, $65, $4e, $6f, |
||
8165 | $72, $6d, $61, $6c, $73, $14, 0, $34, 0, $1, |
||
8166 | 0, $8, 0, 0, 0, $4d, $65, $73, $68, $46, |
||
8167 | $61, $63, $65, $1, 0, $b, 0, 0, 0, $66, |
||
8168 | $61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
||
8169 | $e, 0, $1, 0, $c, 0, 0, 0, $6e, $46, |
||
8170 | $61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
||
8171 | $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
||
8172 | $10, 0, 0, 0, $4d, $65, $73, $68, $56, $65, |
||
8173 | $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, $73, |
||
8174 | $a, 0, $5, 0, $21, $b8, $30, $16, $42, $78, |
||
8175 | $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
||
8176 | $29, 0, $1, 0, $d, 0, 0, 0, $6e, $56, |
||
8177 | $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
||
8178 | $73, $14, 0, $34, 0, $1, 0, $c, 0, 0, |
||
8179 | 0, $49, $6e, $64, $65, $78, $65, $64, $43, $6f, |
||
8180 | $6c, $6f, $72, $1, 0, $c, 0, 0, 0, $76, |
||
8181 | $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
||
8182 | $73, $e, 0, $1, 0, $d, 0, 0, 0, $6e, |
||
8183 | $56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, |
||
8184 | $72, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
||
8185 | $1, 0, $4, 0, 0, 0, $4d, $65, $73, $68, |
||
8186 | $a, 0, $5, 0, $44, $ab, $82, $3d, $da, $62, |
||
8187 | $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
||
8188 | $29, 0, $1, 0, $9, 0, 0, 0, $6e, $56, |
||
8189 | $65, $72, $74, $69, $63, $65, $73, $14, 0, $34, |
||
8190 | 0, $1, 0, $6, 0, 0, 0, $56, $65, $63, |
||
8191 | $74, $6f, $72, $1, 0, $8, 0, 0, 0, $76, |
||
8192 | $65, $72, $74, $69, $63, $65, $73, $e, 0, $1, |
||
8193 | 0, $9, 0, 0, 0, $6e, $56, $65, $72, $74, |
||
8194 | $69, $63, $65, $73, $f, 0, $14, 0, $29, 0, |
||
8195 | $1, 0, $6, 0, 0, 0, $6e, $46, $61, $63, |
||
8196 | $65, $73, $14, 0, $34, 0, $1, 0, $8, 0, |
||
8197 | 0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, |
||
8198 | $1, 0, $5, 0, 0, 0, $66, $61, $63, $65, |
||
8199 | $73, $e, 0, $1, 0, $6, 0, 0, 0, $6e, |
||
8200 | $46, $61, $63, $65, $73, $f, 0, $14, 0, $e, |
||
8201 | 0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
||
8202 | 0, $1f, 0, $1, 0, $14, 0, 0, 0, $46, |
||
8203 | $72, $61, $6d, $65, $54, $72, $61, $6e, $73, $66, |
||
8204 | $6f, $72, $6d, $4d, $61, $74, $72, $69, $78, $a, |
||
8205 | 0, $5, 0, $41, $3f, $f2, $f6, $86, $76, $cf, |
||
8206 | $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
||
8207 | 0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
||
8208 | $78, $34, $78, $34, $1, 0, $b, 0, 0, 0, |
||
8209 | $66, $72, $61, $6d, $65, $4d, $61, $74, $72, $69, |
||
8210 | $78, $14, 0, $b, 0, $1f, 0, $1, 0, $5, |
||
8211 | 0, 0, 0, $46, $72, $61, $6d, $65, $a, 0, |
||
8212 | $5, 0, $46, $ab, $82, $3d, $da, $62, $cf, $11, |
||
8213 | $ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, |
||
8214 | $12, 0, $12, 0, $12, 0, $f, 0, $b, 0, |
||
8215 | $1f, 0, $1, 0, $9, 0, 0, 0, $46, $6c, |
||
8216 | $6f, $61, $74, $4b, $65, $79, $73, $a, 0, $5, |
||
8217 | 0, $a9, $46, $dd, $10, $5b, $77, $cf, $11, $8f, |
||
8218 | $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, |
||
8219 | 0, $7, 0, 0, 0, $6e, $56, $61, $6c, $75, |
||
8220 | $65, $73, $14, 0, $34, 0, $2a, 0, $1, 0, |
||
8221 | $6, 0, 0, 0, $76, $61, $6c, $75, $65, $73, |
||
8222 | $e, 0, $1, 0, $7, 0, 0, 0, $6e, $56, |
||
8223 | $61, $6c, $75, $65, $73, $f, 0, $14, 0, $b, |
||
8224 | 0, $1f, 0, $1, 0, $e, 0, 0, 0, $54, |
||
8225 | $69, $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, |
||
8226 | $65, $79, $73, $a, 0, $5, 0, $80, $b1, $6, |
||
8227 | $f4, $3b, $7b, $cf, $11, $8f, $52, 0, $40, $33, |
||
8228 | $35, $94, $a3, $29, 0, $1, 0, $4, 0, 0, |
||
8229 | 0, $74, $69, $6d, $65, $14, 0, $1, 0, $9, |
||
8230 | 0, 0, 0, $46, $6c, $6f, $61, $74, $4b, $65, |
||
8231 | $79, $73, $1, 0, $6, 0, 0, 0, $74, $66, |
||
8232 | $6b, $65, $79, $73, $14, 0, $b, 0, $1f, 0, |
||
8233 | $1, 0, $c, 0, 0, 0, $41, $6e, $69, $6d, |
||
8234 | $61, $74, $69, $6f, $6e, $4b, $65, $79, $a, 0, |
||
8235 | $5, 0, $a8, $46, $dd, $10, $5b, $77, $cf, $11, |
||
8236 | $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, |
||
8237 | $1, 0, $7, 0, 0, 0, $6b, $65, $79, $54, |
||
8238 | $79, $70, $65, $14, 0, $29, 0, $1, 0, $5, |
||
8239 | 0, 0, 0, $6e, $4b, $65, $79, $73, $14, 0, |
||
8240 | $34, 0, $1, 0, $e, 0, 0, 0, $54, $69, |
||
8241 | $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, $65, |
||
8242 | $79, $73, $1, 0, $4, 0, 0, 0, $6b, $65, |
||
8243 | $79, $73, $e, 0, $1, 0, $5, 0, 0, 0, |
||
8244 | $6e, $4b, $65, $79, $73, $f, 0, $14, 0, $b, |
||
8245 | 0, $1f, 0, $1, 0, $10, 0, 0, 0, $41, |
||
8246 | $6e, $69, $6d, $61, $74, $69, $6f, $6e, $4f, $70, |
||
8247 | $74, $69, $6f, $6e, $73, $a, 0, $5, 0, $c0, |
||
8248 | $56, $bf, $e2, $f, $84, $cf, $11, $8f, $52, 0, |
||
8249 | $40, $33, $35, $94, $a3, $29, 0, $1, 0, $a, |
||
8250 | 0, 0, 0, $6f, $70, $65, $6e, $63, $6c, $6f, |
||
8251 | $73, $65, $64, $14, 0, $29, 0, $1, 0, $f, |
||
8252 | 0, 0, 0, $70, $6f, $73, $69, $74, $69, $6f, |
||
8253 | $6e, $71, $75, $61, $6c, $69, $74, $79, $14, 0, |
||
8254 | $b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, |
||
8255 | $41, $6e, $69, $6d, $61, $74, $69, $6f, $6e, $a, |
||
8256 | 0, $5, 0, $4f, $ab, $82, $3d, $da, $62, $cf, |
||
8257 | $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, |
||
8258 | 0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
||
8259 | 0, $1f, 0, $1, 0, $c, 0, 0, 0, $41, |
||
8260 | $6e, $69, $6d, $61, $74, $69, $6f, $6e, $53, $65, |
||
8261 | $74, $a, 0, $5, 0, $50, $ab, $82, $3d, $da, |
||
8262 | $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
||
8263 | $33, $e, 0, $1, 0, $9, 0, 0, 0, $41, |
||
8264 | $6e, $69, $6d, $61, $74, $69, $6f, $6e, $f, 0, |
||
8265 | $b, 0, $1f, 0, $1, 0, $a, 0, 0, 0, |
||
8266 | $49, $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, |
||
8267 | $a, 0, $5, 0, $a0, $ee, $23, $3a, $b1, $94, |
||
8268 | $d0, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
||
8269 | $e, 0, $1, 0, $6, 0, 0, 0, $42, $49, |
||
8270 | $4e, $41, $52, $59, $f, 0, $b, 0, $1f, 0, |
||
8271 | $1, 0, $3, 0, 0, 0, $55, $72, $6c, $a, |
||
8272 | 0, $5, 0, $a1, $ee, $23, $3a, $b1, $94, $d0, |
||
8273 | $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
||
8274 | 0, $1, 0, $5, 0, 0, 0, $6e, $55, $72, |
||
8275 | $6c, $73, $14, 0, $34, 0, $31, 0, $1, 0, |
||
8276 | $4, 0, 0, 0, $75, $72, $6c, $73, $e, 0, |
||
8277 | $1, 0, $5, 0, 0, 0, $6e, $55, $72, $6c, |
||
8278 | $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, |
||
8279 | 0, $f, 0, 0, 0, $50, $72, $6f, $67, $72, |
||
8280 | $65, $73, $73, $69, $76, $65, $4d, $65, $73, $68, |
||
8281 | $a, 0, $5, 0, $60, $c3, $63, $8a, $7d, $99, |
||
8282 | $d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, |
||
8283 | $e, 0, $1, 0, $3, 0, 0, 0, $55, $72, |
||
8284 | $6c, $13, 0, $1, 0, $a, 0, 0, 0, $49, |
||
8285 | $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, $f, |
||
8286 | 0, $b, 0, $1f, 0, $1, 0, $4, 0, 0, |
||
8287 | 0, $47, $75, $69, $64, $a, 0, $5, 0, $e0, |
||
8288 | $90, $27, $a4, $10, $78, $cf, $11, $8f, $52, 0, |
||
8289 | $40, $33, $35, $94, $a3, $29, 0, $1, 0, $5, |
||
8290 | 0, 0, 0, $64, $61, $74, $61, $31, $14, 0, |
||
8291 | $28, 0, $1, 0, $5, 0, 0, 0, $64, $61, |
||
8292 | $74, $61, $32, $14, 0, $28, 0, $1, 0, $5, |
||
8293 | 0, 0, 0, $64, $61, $74, $61, $33, $14, 0, |
||
8294 | $34, 0, $2d, 0, $1, 0, $5, 0, 0, 0, |
||
8295 | $64, $61, $74, $61, $34, $e, 0, $3, 0, $8, |
||
8296 | 0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, |
||
8297 | 0, $1, 0, $e, 0, 0, 0, $53, $74, $72, |
||
8298 | $69, $6e, $67, $50, $72, $6f, $70, $65, $72, $74, |
||
8299 | $79, $a, 0, $5, 0, $e0, $21, $f, $7f, $e1, |
||
8300 | $bf, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, |
||
8301 | $71, $31, 0, $1, 0, $3, 0, 0, 0, $6b, |
||
8302 | $65, $79, $14, 0, $31, 0, $1, 0, $5, 0, |
||
8303 | 0, 0, $76, $61, $6c, $75, $65, $14, 0, $b, |
||
8304 | 0, $1f, 0, $1, 0, $b, 0, 0, 0, $50, |
||
8305 | $72, $6f, $70, $65, $72, $74, $79, $42, $61, $67, |
||
8306 | $a, 0, $5, 0, $e1, $21, $f, $7f, $e1, $bf, |
||
8307 | $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, |
||
8308 | $e, 0, $1, 0, $e, 0, 0, 0, $53, $74, |
||
8309 | $72, $69, $6e, $67, $50, $72, $6f, $70, $65, $72, |
||
8310 | $74, $79, $f, 0, $b, 0, $1f, 0, $1, 0, |
||
8311 | $e, 0, 0, 0, $45, $78, $74, $65, $72, $6e, |
||
8312 | $61, $6c, $56, $69, $73, $75, $61, $6c, $a, 0, |
||
8313 | $5, 0, $a0, $6a, $11, $98, $ba, $bd, $d1, $11, |
||
8314 | $82, $c0, 0, $a0, $c9, $69, $72, $71, $1, 0, |
||
8315 | $4, 0, 0, 0, $47, $75, $69, $64, $1, 0, |
||
8316 | $12, 0, 0, 0, $67, $75, $69, $64, $45, $78, |
||
8317 | $74, $65, $72, $6e, $61, $6c, $56, $69, $73, $75, |
||
8318 | $61, $6c, $14, 0, $e, 0, $12, 0, $12, 0, |
||
8319 | $12, 0, $f, 0, $b, 0); |
||
8320 | |||
8321 | D3DRM_XTEMPLATE_BYTES = 3278; |
||
8322 | |||
8323 | (*==========================================================================; |
||
8324 | * |
||
8325 | * Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
||
8326 | * |
||
8327 | * File: dinput.h |
||
8328 | * Content: DirectInput include file |
||
8329 | * |
||
8330 | ****************************************************************************) |
||
8331 | |||
8332 | const |
||
8333 | {$IFDEF DirectX3} |
||
8334 | DIRECTINPUT_VERSION = $0300; |
||
8335 | {$ENDIF}{$IFDEF DirectX5} |
||
8336 | DIRECTINPUT_VERSION = $0500; |
||
8337 | {$ENDIF}{$IFDEF DirectX6} |
||
8338 | DIRECTINPUT_VERSION = $0500; |
||
8339 | {$ENDIF}{$IFDEF DirectX7} |
||
8340 | DIRECTINPUT_VERSION = $0700; |
||
8341 | {$ENDIF} |
||
8342 | |||
8343 | { Class IDs } |
||
8344 | |||
8345 | const |
||
8346 | CLSID_DirectInput: TGUID = '{25E609E0-B259-11CF-BFC7-444553540000}'; |
||
8347 | CLSID_DirectInputDevice: TGUID = '{25E609E1-B259-11CF-BFC7-444553540000}'; |
||
8348 | |||
8349 | { Interfaces } |
||
8350 | |||
8351 | const |
||
8352 | IID_IDirectInputA: TGUID = '{89521360-AA8A-11CF-BFC7-444553540000}'; |
||
8353 | IID_IDirectInputW: TGUID = '{89521361-AA8A-11CF-BFC7-444553540000}'; |
||
8354 | IID_IDirectInput2A: TGUID = '{5944E662-AA8A-11CF-BFC7-444553540000}'; |
||
8355 | IID_IDirectInput2W: TGUID = '{5944E663-AA8A-11CF-BFC7-444553540000}'; |
||
8356 | IID_IDirectInput7A: TGUID = '{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'; |
||
8357 | IID_IDirectInput7W: TGUID = '{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'; |
||
8358 | IID_IDirectInputDeviceA: TGUID = '{5944E680-C92E-11CF-BFC7-444553540000}'; |
||
8359 | IID_IDirectInputDeviceW: TGUID = '{5944E681-C92E-11CF-BFC7-444553540000}'; |
||
8360 | IID_IDirectInputDevice2A: TGUID = '{5944E682-C92E-11CF-BFC7-444553540000}'; |
||
8361 | IID_IDirectInputDevice2W: TGUID = '{5944E683-C92E-11CF-BFC7-444553540000}'; |
||
8362 | IID_IDirectInputDevice7A: TGUID = '{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'; |
||
8363 | IID_IDirectInputDevice7W: TGUID = '{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'; |
||
8364 | IID_IDirectInputEffect: TGUID = '{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'; |
||
8365 | |||
8366 | { Predefined object types } |
||
8367 | |||
8368 | GUID_XAxis: TGUID = '{A36D02E0-C9F3-11CF-BFC7-444553540000}'; |
||
8369 | GUID_YAxis: TGUID = '{A36D02E1-C9F3-11CF-BFC7-444553540000}'; |
||
8370 | GUID_ZAxis: TGUID = '{A36D02E2-C9F3-11CF-BFC7-444553540000}'; |
||
8371 | GUID_RxAxis: TGUID = '{A36D02F4-C9F3-11CF-BFC7-444553540000}'; |
||
8372 | GUID_RyAxis: TGUID = '{A36D02F5-C9F3-11CF-BFC7-444553540000}'; |
||
8373 | GUID_RzAxis: TGUID = '{A36D02E3-C9F3-11CF-BFC7-444553540000}'; |
||
8374 | GUID_Slider: TGUID = '{A36D02E4-C9F3-11CF-BFC7-444553540000}'; |
||
8375 | GUID_Button: TGUID = '{A36D02F0-C9F3-11CF-BFC7-444553540000}'; |
||
8376 | GUID_Key: TGUID = '{55728220-D33C-11CF-BFC7-444553540000}'; |
||
8377 | GUID_POV: TGUID = '{A36D02F2-C9F3-11CF-BFC7-444553540000}'; |
||
8378 | GUID_Unknown: TGUID = '{A36D02F3-C9F3-11CF-BFC7-444553540000}'; |
||
8379 | |||
8380 | { Predefined product GUIDs } |
||
8381 | |||
8382 | GUID_SysMouse: TGUID = '{6F1D2B60-D5A0-11CF-BFC7-444553540000}'; |
||
8383 | GUID_SysKeyboard: TGUID = '{6F1D2B61-D5A0-11CF-BFC7-444553540000}'; |
||
8384 | GUID_Joystick: TGUID = '{6F1D2B70-D5A0-11CF-BFC7-444553540000}'; |
||
8385 | GUID_SysMouseEm: TGUID = '{6F1D2B80-D5A0-11CF-BFC7-444553540000}'; |
||
8386 | GUID_SysMouseEm2: TGUID = '{6F1D2B81-D5A0-11CF-BFC7-444553540000}'; |
||
8387 | GUID_SysKeyboardEm: TGUID = '{6F1D2B82-D5A0-11CF-BFC7-444553540000}'; |
||
8388 | GUID_SysKeyboardEm2: TGUID = '{6F1D2B83-D5A0-11CF-BFC7-444553540000}'; |
||
8389 | |||
8390 | { Predefined force feedback effects } |
||
8391 | |||
8392 | GUID_ConstantForce: TGUID = '{13541C20-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8393 | GUID_RampForce: TGUID = '{13541C21-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8394 | GUID_Square: TGUID = '{13541C22-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8395 | GUID_Sine: TGUID = '{13541C23-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8396 | GUID_Triangle: TGUID = '{13541C24-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8397 | GUID_SawtoothUp: TGUID = '{13541C25-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8398 | GUID_SawtoothDown: TGUID = '{13541C26-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8399 | GUID_Spring: TGUID = '{13541C27-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8400 | GUID_Damper: TGUID = '{13541C28-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8401 | GUID_Inertia: TGUID = '{13541C29-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8402 | GUID_Friction: TGUID = '{13541C2A-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8403 | GUID_CustomForce: TGUID = '{13541C2B-8E33-11D0-9AD0-00A0C9A06E35}'; |
||
8404 | |||
8405 | { IDirectInputEffect } |
||
8406 | |||
8407 | const |
||
8408 | DIEFT_ALL = $00000000; |
||
8409 | |||
8410 | DIEFT_CONSTANTFORCE = $00000001; |
||
8411 | DIEFT_RAMPFORCE = $00000002; |
||
8412 | DIEFT_PERIODIC = $00000003; |
||
8413 | DIEFT_CONDITION = $00000004; |
||
8414 | DIEFT_CUSTOMFORCE = $00000005; |
||
8415 | DIEFT_HARDWARE = $000000FF; |
||
8416 | |||
8417 | DIEFT_FFATTACK = $00000200; |
||
8418 | DIEFT_FFFADE = $00000400; |
||
8419 | DIEFT_SATURATION = $00000800; |
||
8420 | DIEFT_POSNEGCOEFFICIENTS = $00001000; |
||
8421 | DIEFT_POSNEGSATURATION = $00002000; |
||
8422 | DIEFT_DEADBAND = $00004000; |
||
8423 | DIEFT_STARTDELAY = $00008000; |
||
8424 | |||
8425 | function DIEFT_GETTYPE(n: DWORD): DWORD; |
||
8426 | |||
8427 | const |
||
8428 | DI_DEGREES = 100; |
||
8429 | DI_FFNOMINALMAX = 10000; |
||
8430 | DI_SECONDS = 1000000; |
||
8431 | |||
8432 | type |
||
8433 | PDIConstantForce = ^TDIConstantForce; |
||
8434 | TDIConstantForce = record |
||
8435 | lMagnitude: Longint; |
||
8436 | end; |
||
8437 | |||
8438 | DICONSTANTFORCE = TDIConstantForce; |
||
8439 | LPDICONSTANTFORCE = PDIConstantForce; |
||
8440 | |||
8441 | PDIRampForce = ^TDIRampForce; |
||
8442 | TDIRampForce = record |
||
8443 | lStart: Longint; |
||
8444 | lEnd: Longint; |
||
8445 | end; |
||
8446 | |||
8447 | DIRAMPFORCE = TDIRampForce; |
||
8448 | LPDIRAMPFORCE = PDIRampForce; |
||
8449 | |||
8450 | PDIPeriodic = ^TDIPeriodic; |
||
8451 | TDIPeriodic = record |
||
8452 | dwMagnitude: DWORD; |
||
8453 | lOffset: Longint; |
||
8454 | dwPhase: DWORD; |
||
8455 | dwPeriod: DWORD; |
||
8456 | end; |
||
8457 | |||
8458 | DIPERIODIC = TDIPeriodic; |
||
8459 | LPDIPERIODIC = PDIPeriodic; |
||
8460 | |||
8461 | PDICondition = ^TDICondition; |
||
8462 | TDICondition = record |
||
8463 | lOffset: Longint; |
||
8464 | lPositiveCoefficient: Longint; |
||
8465 | lNegativeCoefficient: Longint; |
||
8466 | dwPositiveSaturation: DWORD; |
||
8467 | dwNegativeSaturation: DWORD; |
||
8468 | lDeadBand: Longint; |
||
8469 | end; |
||
8470 | |||
8471 | DICONDITION = TDICondition; |
||
8472 | LPDICONDITION = PDICondition; |
||
8473 | |||
8474 | PDICustomForce = ^TDICustomForce; |
||
8475 | TDICustomForce = record |
||
8476 | cChannels: DWORD; |
||
8477 | dwSamplePeriod: DWORD; |
||
8478 | cSamples: DWORD; |
||
8479 | rglForceData: PLongint; |
||
8480 | end; |
||
8481 | |||
8482 | DICUSTOMFORCE = TDICustomForce; |
||
8483 | LPDICUSTOMFORCE = PDICustomForce; |
||
8484 | |||
8485 | PDIEnvelope = ^TDIEnvelope; |
||
8486 | TDIEnvelope = record |
||
8487 | dwSize: DWORD; // sizeof(DIENVELOPE) |
||
8488 | dwAttackLevel: DWORD; |
||
8489 | dwAttackTime: DWORD; // Microseconds |
||
8490 | dwFadeLevel: DWORD; |
||
8491 | dwFadeTime: DWORD; // Microseconds |
||
8492 | end; |
||
8493 | |||
8494 | DIENVELOPE = TDIEnvelope; |
||
8495 | LPDIENVELOPE = PDIEnvelope; |
||
8496 | |||
8497 | PDIEffect_DX5 = ^TDIEffect_DX5; |
||
8498 | TDIEffect_DX5 = record |
||
8499 | dwSize: DWORD; // sizeof(DIEFFECT) |
||
8500 | dwFlags: DWORD; // DIEFF_* |
||
8501 | dwDuration: DWORD; // Microseconds |
||
8502 | dwSamplePeriod: DWORD; // Microseconds |
||
8503 | dwGain: DWORD; |
||
8504 | dwTriggerButton: DWORD; // or DIEB_NOTRIGGER |
||
8505 | dwTriggerRepeatInterval: DWORD; // Microseconds |
||
8506 | cAxes: DWORD; // Number of axes |
||
8507 | rgdwAxes: PDWORD; // arrayof axes |
||
8508 | rglDirection: PLongint; // arrayof directions |
||
8509 | lpEnvelope: PDIEnvelope; // Optional |
||
8510 | cbTypeSpecificParams: DWORD; // Size of params |
||
8511 | lpvTypeSpecificParams: Pointer; // Pointer to params |
||
8512 | end; |
||
8513 | |||
8514 | PDIEffect_DX6 = ^TDIEffect_DX6; |
||
8515 | TDIEffect_DX6 = record |
||
8516 | dwSize: DWORD; // sizeof(DIEFFECT) |
||
8517 | dwFlags: DWORD; // DIEFF_* |
||
8518 | dwDuration: DWORD; // Microseconds |
||
8519 | dwSamplePeriod: DWORD; // Microseconds |
||
8520 | dwGain: DWORD; |
||
8521 | dwTriggerButton: DWORD; // or DIEB_NOTRIGGER |
||
8522 | dwTriggerRepeatInterval: DWORD; // Microseconds |
||
8523 | cAxes: DWORD; // Number of axes |
||
8524 | rgdwAxes: PDWORD; // arrayof axes |
||
8525 | rglDirection: PLongint; // arrayof directions |
||
8526 | lpEnvelope: PDIEnvelope; // Optional |
||
8527 | cbTypeSpecificParams: DWORD; // Size of params |
||
8528 | lpvTypeSpecificParams: Pointer; // Pointer to params |
||
8529 | dwStartDelay: DWORD; // Microseconds |
||
8530 | end; |
||
8531 | |||
8532 | {$IFDEF SupportDirectX6} |
||
8533 | PDIEffect = PDIEffect_DX6; |
||
8534 | TDIEffect = TDIEffect_DX6; |
||
8535 | {$ELSE} |
||
8536 | PDIEffect = PDIEffect_DX5; |
||
8537 | TDIEffect = TDIEffect_DX5; |
||
8538 | {$ENDIF} |
||
8539 | |||
8540 | DIEFFECT = TDIEFFECT; |
||
8541 | LPDIEFFECT = PDIEFFECT; |
||
8542 | |||
8543 | PDIFileEffect = ^TDIFileEffect; |
||
8544 | TDIFileEffect = record |
||
8545 | dwSize: DWORD; |
||
8546 | GuidEffect: TGUID; |
||
8547 | lpDiEffect: PDIEffect; |
||
8548 | szFriendlyName: array[0..MAX_PATH-1] of Char; |
||
8549 | end; |
||
8550 | |||
8551 | DIFILEEFFECT = TDIFileEffect; |
||
8552 | LPDIFILEEFFECT = PDIFileEffect; |
||
8553 | |||
8554 | TDIEnumEffectsInFileCallback = function(const lpDiFileEf: TDIFileEffect; pvRef: Pointer): BOOL; far pascal; |
||
8555 | LPDIENUMEFFECTSINFILECALLBACK = TDIEnumEffectsInFileCallback; |
||
8556 | |||
8557 | const |
||
8558 | DIEFF_OBJECTIDS = $00000001; |
||
8559 | DIEFF_OBJECTOFFSETS = $00000002; |
||
8560 | DIEFF_CARTESIAN = $00000010; |
||
8561 | DIEFF_POLAR = $00000020; |
||
8562 | DIEFF_SPHERICAL = $00000040; |
||
8563 | |||
8564 | DIEP_DURATION = $00000001; |
||
8565 | DIEP_SAMPLEPERIOD = $00000002; |
||
8566 | DIEP_GAIN = $00000004; |
||
8567 | DIEP_TRIGGERBUTTON = $00000008; |
||
8568 | DIEP_TRIGGERREPEATINTERVAL = $00000010; |
||
8569 | DIEP_AXES = $00000020; |
||
8570 | DIEP_DIRECTION = $00000040; |
||
8571 | DIEP_ENVELOPE = $00000080; |
||
8572 | DIEP_TYPESPECIFICPARAMS = $00000100; |
||
8573 | DIEP_STARTDELAY = $00000200; |
||
8574 | DIEP_ALLPARAMS_DX5 = $000001FF; |
||
8575 | {$IFDEF SupportDirectX6} |
||
8576 | DIEP_ALLPARAMS = $000003FF; |
||
8577 | {$ELSE} |
||
8578 | DIEP_ALLPARAMS = $000001FF; |
||
8579 | {$ENDIF} |
||
8580 | DIEP_START = $20000000; |
||
8581 | DIEP_NORESTART = $40000000; |
||
8582 | DIEP_NODOWNLOAD = $80000000; |
||
8583 | DIEB_NOTRIGGER = $FFFFFFFF; |
||
8584 | |||
8585 | DIES_SOLO = $00000001; |
||
8586 | DIES_NODOWNLOAD = $80000000; |
||
8587 | |||
8588 | DIEGES_PLAYING = $00000001; |
||
8589 | DIEGES_EMULATED = $00000002; |
||
8590 | |||
8591 | type |
||
8592 | PDIEffEscape = ^TDIEffEscape; |
||
8593 | TDIEffEscape = record |
||
8594 | dwSize: DWORD; |
||
8595 | dwCommand: DWORD; |
||
8596 | lpvInBuffer: Pointer; |
||
8597 | cbInBuffer: DWORD; |
||
8598 | lpvOutBuffer: Pointer; |
||
8599 | cbOutBuffer: DWORD; |
||
8600 | end; |
||
8601 | |||
8602 | DIEFFESCAPE = TDIEffEscape; |
||
8603 | LPDIEFFESCAPE = PDIEffEscape; |
||
8604 | |||
8605 | IDirectInputEffect = interface(IUnknown) |
||
8606 | ['{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'] |
||
8607 | // IDirectInputEffect methods |
||
8608 | function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
||
8609 | function GetEffectGuid(var pguid: TGUID): HResult; stdcall; |
||
8610 | function GetParameters(var peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; |
||
8611 | function SetParameters(const peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; |
||
8612 | function Start(dwIterations: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
8613 | function Stop: HResult; stdcall; |
||
8614 | function GetEffectStatus(var pdwFlags: DWORD): HResult; stdcall; |
||
8615 | function DownLoad: HResult; stdcall; |
||
8616 | function Unload: HResult; stdcall; |
||
8617 | function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
||
8618 | end; |
||
8619 | |||
8620 | { IDirectInputDevice } |
||
8621 | |||
8622 | const |
||
8623 | DIDEVTYPE_DEVICE = 1; |
||
8624 | DIDEVTYPE_MOUSE = 2; |
||
8625 | DIDEVTYPE_KEYBOARD = 3; |
||
8626 | DIDEVTYPE_JOYSTICK = 4; |
||
8627 | DIDEVTYPE_HID = $00010000; |
||
8628 | |||
8629 | DIDEVTYPEMOUSE_UNKNOWN = 1; |
||
8630 | DIDEVTYPEMOUSE_TRADITIONAL = 2; |
||
8631 | DIDEVTYPEMOUSE_FINGERSTICK = 3; |
||
8632 | DIDEVTYPEMOUSE_TOUCHPAD = 4; |
||
8633 | DIDEVTYPEMOUSE_TRACKBALL = 5; |
||
8634 | |||
8635 | DIDEVTYPEKEYBOARD_UNKNOWN = 0; |
||
8636 | DIDEVTYPEKEYBOARD_PCXT = 1; |
||
8637 | DIDEVTYPEKEYBOARD_OLIVETTI = 2; |
||
8638 | DIDEVTYPEKEYBOARD_PCAT = 3; |
||
8639 | DIDEVTYPEKEYBOARD_PCENH = 4; |
||
8640 | DIDEVTYPEKEYBOARD_NOKIA1050 = 5; |
||
8641 | DIDEVTYPEKEYBOARD_NOKIA9140 = 6; |
||
8642 | DIDEVTYPEKEYBOARD_NEC98 = 7; |
||
8643 | DIDEVTYPEKEYBOARD_NEC98LAPTOP = 8; |
||
8644 | DIDEVTYPEKEYBOARD_NEC98106 = 9; |
||
8645 | DIDEVTYPEKEYBOARD_JAPAN106 = 10; |
||
8646 | DIDEVTYPEKEYBOARD_JAPANAX = 11; |
||
8647 | DIDEVTYPEKEYBOARD_J3100 = 12; |
||
8648 | |||
8649 | DIDEVTYPEJOYSTICK_UNKNOWN = 1; |
||
8650 | DIDEVTYPEJOYSTICK_TRADITIONAL = 2; |
||
8651 | DIDEVTYPEJOYSTICK_FLIGHTSTICK = 3; |
||
8652 | DIDEVTYPEJOYSTICK_GAMEPAD = 4; |
||
8653 | DIDEVTYPEJOYSTICK_RUDDER = 5; |
||
8654 | DIDEVTYPEJOYSTICK_WHEEL = 6; |
||
8655 | DIDEVTYPEJOYSTICK_HEADTRACKER = 7; |
||
8656 | |||
8657 | function GET_DIDEVICE_TYPE(dwDevType: DWORD): DWORD; |
||
8658 | function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): DWORD; |
||
8659 | |||
8660 | type |
||
8661 | PDIDevCaps_DX3 = ^TDIDevCaps_DX3; |
||
8662 | TDIDevCaps_DX3 = record |
||
8663 | dwSize: DWORD; |
||
8664 | dwFlags: DWORD; |
||
8665 | dwDevType: DWORD; |
||
8666 | dwAxes: DWORD; |
||
8667 | dwButtons: DWORD; |
||
8668 | dwPOVs: DWORD; |
||
8669 | end; |
||
8670 | |||
8671 | PDIDevCaps_DX5 = ^TDIDevCaps_DX5; |
||
8672 | TDIDevCaps_DX5 = record |
||
8673 | dwSize: DWORD; |
||
8674 | dwFlags: DWORD; |
||
8675 | dwDevType: DWORD; |
||
8676 | dwAxes: DWORD; |
||
8677 | dwButtons: DWORD; |
||
8678 | dwPOVs: DWORD; |
||
8679 | dwFFSamplePeriod: DWORD; |
||
8680 | dwFFMinTimeResolution: DWORD; |
||
8681 | dwFirmwareRevision: DWORD; |
||
8682 | dwHardwareRevision: DWORD; |
||
8683 | dwFFDriverVersion: DWORD; |
||
8684 | end; |
||
8685 | |||
8686 | {$IFDEF DirectX3} |
||
8687 | TDIDevCaps = TDIDevCaps_DX3; |
||
8688 | PDIDevCaps = PDIDevCaps_DX3; |
||
8689 | {$ENDIF}{$IFDEF DirectX5} |
||
8690 | TDIDevCaps = TDIDevCaps_DX5; |
||
8691 | PDIDevCaps = PDIDevCaps_DX5; |
||
8692 | {$ENDIF}{$IFDEF DirectX6} |
||
8693 | TDIDevCaps = TDIDevCaps_DX5; |
||
8694 | PDIDevCaps = PDIDevCaps_DX5; |
||
8695 | {$ENDIF}{$IFDEF DirectX7} |
||
8696 | TDIDevCaps = TDIDevCaps_DX5; |
||
8697 | PDIDevCaps = PDIDevCaps_DX5; |
||
8698 | {$ENDIF} |
||
8699 | |||
8700 | DIDEVCAPS = TDIDevCaps; |
||
8701 | LPDIDEVCAPS = PDIDevCaps; |
||
8702 | |||
8703 | const |
||
8704 | DIDC_ATTACHED = $00000001; |
||
8705 | DIDC_POLLEDDEVICE = $00000002; |
||
8706 | DIDC_EMULATED = $00000004; |
||
8707 | DIDC_POLLEDDATAFORMAT = $00000008; |
||
8708 | |||
8709 | DIDC_FORCEFEEDBACK = $00000100; |
||
8710 | DIDC_FFATTACK = $00000200; |
||
8711 | DIDC_FFFADE = $00000400; |
||
8712 | DIDC_SATURATION = $00000800; |
||
8713 | DIDC_POSNEGCOEFFICIENTS = $00001000; |
||
8714 | DIDC_POSNEGSATURATION = $00002000; |
||
8715 | DIDC_DEADBAND = $00004000; |
||
8716 | DIDC_STARTDELAY = $00008000; |
||
8717 | DIDC_ALIAS = $00010000; |
||
8718 | DIDC_PHANTOM = $00020000; |
||
8719 | |||
8720 | DIDFT_ALL = $00000000; |
||
8721 | |||
8722 | DIDFT_RELAXIS = $00000001; |
||
8723 | DIDFT_ABSAXIS = $00000002; |
||
8724 | DIDFT_AXIS = $00000003; |
||
8725 | |||
8726 | DIDFT_PSHBUTTON = $00000004; |
||
8727 | DIDFT_TGLBUTTON = $00000008; |
||
8728 | DIDFT_BUTTON = $0000000C; |
||
8729 | |||
8730 | DIDFT_POV = $00000010; |
||
8731 | DIDFT_COLLECTION = $00000040; |
||
8732 | DIDFT_NODATA = $00000080; |
||
8733 | |||
8734 | DIDFT_ANYINSTANCE = $00FFFF00; |
||
8735 | DIDFT_INSTANCEMASK = DIDFT_ANYINSTANCE; |
||
8736 | |||
8737 | DIDFT_FFACTUATOR = $01000000; |
||
8738 | DIDFT_FFEFFECTTRIGGER = $02000000; |
||
8739 | DIDFT_OUTPUT = $10000000; |
||
8740 | DIDFT_VENDORDEFINED = $04000000; |
||
8741 | DIDFT_ALIAS = $08000000; |
||
8742 | DIDFT_NOCOLLECTION = $00FFFF00; |
||
8743 | |||
8744 | function DIDFT_MAKEINSTANCE(n: WORD): DWORD; |
||
8745 | function DIDFT_GETTYPE(n: DWORD): DWORD; |
||
8746 | function DIDFT_GETINSTANCE(n: DWORD): WORD; |
||
8747 | function DIDFT_ENUMCOLLECTION(n: WORD): DWORD; |
||
8748 | |||
8749 | type |
||
8750 | PDIObjectDataFormat = ^TDIObjectDataFormat; |
||
8751 | TDIObjectDataFormat = record |
||
8752 | pguid: PGUID; |
||
8753 | dwOfs: DWORD; |
||
8754 | dwType: DWORD; |
||
8755 | dwFlags: DWORD; |
||
8756 | end; |
||
8757 | |||
8758 | DIOBJECTDATAFORMAT = TDIObjectDataFormat; |
||
8759 | LPDIOBJECTDATAFORMAT = PDIObjectDataFormat; |
||
8760 | |||
8761 | PDIDataFormat = ^TDIDataFormat; |
||
8762 | TDIDataFormat = record |
||
8763 | dwSize: DWORD; |
||
8764 | dwObjSize: DWORD; |
||
8765 | dwFlags: DWORD; |
||
8766 | dwDataSize: DWORD; |
||
8767 | dwNumObjs: DWORD; |
||
8768 | rgodf: PDIObjectDataFormat; |
||
8769 | end; |
||
8770 | |||
8771 | DIDATAFORMAT = TDIDataFormat; |
||
8772 | LPDIDATAFORMAT = PDIDataFormat; |
||
8773 | |||
8774 | const |
||
8775 | DIDF_ABSAXIS = $00000001; |
||
8776 | DIDF_RELAXIS = $00000002; |
||
8777 | |||
8778 | type |
||
8779 | PDIDeviceObjectInstanceA_DX3 = ^TDIDeviceObjectInstanceA_DX3; |
||
8780 | TDIDeviceObjectInstanceA_DX3 = record |
||
8781 | dwSize: DWORD; |
||
8782 | guidType: TGUID; |
||
8783 | dwOfs: DWORD; |
||
8784 | dwType: DWORD; |
||
8785 | dwFlags: DWORD; |
||
8786 | tszName: array[0..MAX_PATH-1] of CHAR; |
||
8787 | end; |
||
8788 | |||
8789 | PDIDeviceObjectInstanceA_DX5 = ^TDIDeviceObjectInstanceA_DX5; |
||
8790 | TDIDeviceObjectInstanceA_DX5 = record |
||
8791 | dwSize: DWORD; |
||
8792 | guidType: TGUID; |
||
8793 | dwOfs: DWORD; |
||
8794 | dwType: DWORD; |
||
8795 | dwFlags: DWORD; |
||
8796 | tszName: array[0..MAX_PATH-1] of CHAR; |
||
8797 | dwFFMaxForce: DWORD; |
||
8798 | dwFFForceResolution: DWORD; |
||
8799 | wCollectionNumber: WORD; |
||
8800 | wDesignatorIndex: WORD; |
||
8801 | wUsagePage: WORD; |
||
8802 | wUsage: WORD; |
||
8803 | dwDimension: DWORD; |
||
8804 | wExponent: WORD; |
||
8805 | wReserved: WORD; |
||
8806 | end; |
||
8807 | |||
8808 | {$IFDEF DirectX3} |
||
8809 | TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX3; |
||
8810 | PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX3; |
||
8811 | {$ENDIF}{$IFDEF DirectX5} |
||
8812 | TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
||
8813 | PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
||
8814 | {$ENDIF}{$IFDEF DirectX6} |
||
8815 | TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
||
8816 | PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
||
8817 | {$ENDIF}{$IFDEF DirectX7} |
||
8818 | TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
||
8819 | PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
||
8820 | {$ENDIF} |
||
8821 | |||
8822 | DIDEVICEOBJECTINSTANCEA = TDIDeviceObjectInstanceA; |
||
8823 | LPDIDEVICEOBJECTINSTANCEA = PDIDeviceObjectInstanceA; |
||
8824 | |||
8825 | PDIDeviceObjectInstanceW_DX3 = ^TDIDeviceObjectInstanceW_DX3; |
||
8826 | TDIDeviceObjectInstanceW_DX3 = record |
||
8827 | dwSize: DWORD; |
||
8828 | guidType: TGUID; |
||
8829 | dwOfs: DWORD; |
||
8830 | dwType: DWORD; |
||
8831 | dwFlags: DWORD; |
||
8832 | tszName: array[0..MAX_PATH-1] of WCHAR; |
||
8833 | end; |
||
8834 | |||
8835 | PDIDeviceObjectInstanceW_DX5 = ^TDIDeviceObjectInstanceW_DX5; |
||
8836 | TDIDeviceObjectInstanceW_DX5 = record |
||
8837 | dwSize: DWORD; |
||
8838 | guidType: TGUID; |
||
8839 | dwOfs: DWORD; |
||
8840 | dwType: DWORD; |
||
8841 | dwFlags: DWORD; |
||
8842 | tszName: array[0..MAX_PATH-1] of WCHAR; |
||
8843 | dwFFMaxForce: DWORD; |
||
8844 | dwFFForceResolution: DWORD; |
||
8845 | wCollectionNumber: WORD; |
||
8846 | wDesignatorIndex: WORD; |
||
8847 | wUsagePage: WORD; |
||
8848 | wUsage: WORD; |
||
8849 | dwDimension: DWORD; |
||
8850 | wExponent: WORD; |
||
8851 | wReserved: WORD; |
||
8852 | end; |
||
8853 | |||
8854 | {$IFDEF DirectX3} |
||
8855 | TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX3; |
||
8856 | PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX3; |
||
8857 | {$ENDIF}{$IFDEF DirectX5} |
||
8858 | TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
||
8859 | PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
||
8860 | {$ENDIF}{$IFDEF DirectX6} |
||
8861 | TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
||
8862 | PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
||
8863 | {$ENDIF}{$IFDEF DirectX7} |
||
8864 | TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
||
8865 | PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
||
8866 | {$ENDIF} |
||
8867 | |||
8868 | DIDEVICEOBJECTINSTANCEW = TDIDeviceObjectInstanceW; |
||
8869 | LPDIDEVICEOBJECTINSTANCEW = PDIDeviceObjectInstanceW; |
||
8870 | |||
8871 | TDIDeviceObjectInstance = TDIDeviceObjectInstanceA; |
||
8872 | PDIDeviceObjectInstance = PDIDeviceObjectInstanceA; |
||
8873 | |||
8874 | DIDEVICEOBJECTINSTANCE = TDIDeviceObjectInstance; |
||
8875 | LPDIDEVICEOBJECTINSTANCE = PDIDeviceObjectInstance; |
||
8876 | |||
8877 | TDIEnumDeviceObjectsCallbackA = function(const peff: TDIDeviceObjectInstanceA; |
||
8878 | pvRef: Pointer): HResult; stdcall; |
||
8879 | LPDIENUMDEVICEOBJECTSCALLBACKA = TDIEnumDeviceObjectsCallbackA; |
||
8880 | |||
8881 | TDIEnumDeviceObjectsCallbackW = function(const peff: TDIDeviceObjectInstanceW; |
||
8882 | pvRef: Pointer): HResult; stdcall; |
||
8883 | LPDIENUMDEVICEOBJECTSCALLBACKW = TDIEnumDeviceObjectsCallbackW; |
||
8884 | |||
8885 | TDIEnumDeviceObjectsCallback = TDIEnumDeviceObjectsCallbackA; |
||
8886 | LPDIENUMDEVICEOBJECTSCALLBACK = TDIEnumDeviceObjectsCallback; |
||
8887 | |||
8888 | const |
||
8889 | DIDOI_FFACTUATOR = $00000001; |
||
8890 | DIDOI_FFEFFECTTRIGGER = $00000002; |
||
8891 | DIDOI_POLLED = $00008000; |
||
8892 | DIDOI_ASPECTPOSITION = $00000100; |
||
8893 | DIDOI_ASPECTVELOCITY = $00000200; |
||
8894 | DIDOI_ASPECTACCEL = $00000300; |
||
8895 | DIDOI_ASPECTFORCE = $00000400; |
||
8896 | DIDOI_ASPECTMASK = $00000F00; |
||
8897 | DIDOI_GUIDISUSAGE = $00010000; |
||
8898 | |||
8899 | type |
||
8900 | PDIPropHeader = ^TDIPropHeader; |
||
8901 | TDIPropHeader = record |
||
8902 | dwSize: DWORD; |
||
8903 | dwHeaderSize: DWORD; |
||
8904 | dwObj: DWORD; |
||
8905 | dwHow: DWORD; |
||
8906 | end; |
||
8907 | |||
8908 | DIPROPHEADER = TDIPropHeader; |
||
8909 | LPDIPROPHEADER = PDIPropHeader; |
||
8910 | |||
8911 | const |
||
8912 | DIPH_DEVICE = 0; |
||
8913 | DIPH_BYOFFSET = 1; |
||
8914 | DIPH_BYID = 2; |
||
8915 | DIPH_BYUSAGE = 3; |
||
8916 | |||
8917 | function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; |
||
8918 | |||
8919 | type |
||
8920 | PDIPropDWORD = ^TDIPropDWORD; |
||
8921 | TDIPropDWORD = record |
||
8922 | diph: TDIPropHeader; |
||
8923 | dwData: DWORD; |
||
8924 | end; |
||
8925 | |||
8926 | DIPROPDWORD = TDIPropDWORD; |
||
8927 | LPDIPROPDWORD = PDIPropDWORD; |
||
8928 | |||
8929 | PDIPropRange = ^TDIPropRange; |
||
8930 | TDIPropRange = record |
||
8931 | diph: TDIPropHeader; |
||
8932 | lMin: Longint; |
||
8933 | lMax: Longint; |
||
8934 | end; |
||
8935 | |||
8936 | DIPROPRANGE = TDIPropRange; |
||
8937 | LPDIPROPRANGE = PDIPropRange; |
||
8938 | |||
8939 | PDIPropCal = ^TDIPropCal; |
||
8940 | TDIPropCal = record |
||
8941 | diph: TDIPropHeader; |
||
8942 | lMin: Longint; |
||
8943 | lCenter: Longint; |
||
8944 | lMax: Longint; |
||
8945 | end; |
||
8946 | |||
8947 | DIPROPCAL = TDIPropCal; |
||
8948 | LPDIPROPCAL = PDIPropCal; |
||
8949 | |||
8950 | PDIPropGUIDAndPath = ^TDIPropGUIDAndPath; |
||
8951 | TDIPropGUIDAndPath = record |
||
8952 | diph: TDIPropHeader; |
||
8953 | guidClass: TGUID; |
||
8954 | wszPath: array[0..MAX_PATH-1] of WCHAR; |
||
8955 | end; |
||
8956 | |||
8957 | DIPROPGUIDANDPATH = TDIPropGUIDAndPath; |
||
8958 | LPDIPROPGUIDANDPATH = PDIPropGUIDAndPath; |
||
8959 | |||
8960 | PDIPropString = ^TDIPropString; |
||
8961 | TDIPropString = record |
||
8962 | diph: TDIPropHeader; |
||
8963 | wsz: array[0..MAX_PATH-1] of WCHAR; |
||
8964 | end; |
||
8965 | |||
8966 | DIPROPSTRING = TDIPropString; |
||
8967 | LPDIPROPSTRING = PDIPropString; |
||
8968 | |||
8969 | const |
||
8970 | DIPROPRANGE_NOMIN = $80000000; |
||
8971 | DIPROPRANGE_NOMAX = $7FFFFFFF; |
||
8972 | |||
8973 | DIPROP_BUFFERSIZE = PGUID(1); |
||
8974 | DIPROP_AXISMODE = PGUID(2); |
||
8975 | |||
8976 | DIPROPAXISMODE_ABS = 0; |
||
8977 | DIPROPAXISMODE_REL = 1; |
||
8978 | |||
8979 | DIPROP_GRANULARITY = PGUID(3); |
||
8980 | DIPROP_RANGE = PGUID(4); |
||
8981 | DIPROP_DEADZONE = PGUID(5); |
||
8982 | DIPROP_SATURATION = PGUID(6); |
||
8983 | DIPROP_FFGAIN = PGUID(7); |
||
8984 | DIPROP_FFLOAD = PGUID(8); |
||
8985 | DIPROP_AUTOCENTER = PGUID(9); |
||
8986 | |||
8987 | DIPROPAUTOCENTER_OFF = 0; |
||
8988 | DIPROPAUTOCENTER_ON = 1; |
||
8989 | |||
8990 | DIPROP_CALIBRATIONMODE = PGUID(10); |
||
8991 | |||
8992 | DIPROPCALIBRATIONMODE_COOKED = 0; |
||
8993 | DIPROPCALIBRATIONMODE_RAW = 1; |
||
8994 | |||
8995 | DIPROP_CALIBRATION = PGUID(11); |
||
8996 | DIPROP_GUIDANDPATH = PGUID(12); |
||
8997 | DIPROP_INSTANCENAME = PGUID(13); |
||
8998 | DIPROP_PRODUCTNAME = PGUID(14); |
||
8999 | DIPROP_JOYSTICKID = PGUID(15); |
||
9000 | DIPROP_GETPORTDISPLAYNAME = PGUID(16); |
||
9001 | DIPROP_ENABLEREPORTID = PGUID(17); |
||
9002 | DIPROP_GETPHYSICALRANGE = PGUID(18); |
||
9003 | DIPROP_GETLOGICALRANGE = PGUID(19); |
||
9004 | |||
9005 | type |
||
9006 | PDIDeviceObjectData = ^TDIDeviceObjectData; |
||
9007 | TDIDeviceObjectData = record |
||
9008 | dwOfs: DWORD; |
||
9009 | dwData: DWORD; |
||
9010 | dwTimeStamp: DWORD; |
||
9011 | dwSequence: DWORD; |
||
9012 | end; |
||
9013 | |||
9014 | DIDEVICEOBJECTDATA = TDIDeviceObjectData; |
||
9015 | LPDIDEVICEOBJECTDATA = PDIDeviceObjectData; |
||
9016 | |||
9017 | const |
||
9018 | DIGDD_PEEK = $00000001; |
||
9019 | |||
9020 | DISCL_EXCLUSIVE = $00000001; |
||
9021 | DISCL_NONEXCLUSIVE = $00000002; |
||
9022 | DISCL_FOREGROUND = $00000004; |
||
9023 | DISCL_BACKGROUND = $00000008; |
||
9024 | DISCL_NOWINKEY = $00000010; |
||
9025 | |||
9026 | type |
||
9027 | PDIDeviceInstanceA_DX3 = ^TDIDeviceInstanceA_DX3; |
||
9028 | TDIDeviceInstanceA_DX3 = record |
||
9029 | dwSize: DWORD; |
||
9030 | guidInstance: TGUID; |
||
9031 | guidProduct: TGUID; |
||
9032 | dwDevType: DWORD; |
||
9033 | tszInstanceName: array[0..MAX_PATH-1] of CHAR; |
||
9034 | tszProductName: array[0..MAX_PATH-1] of CHAR; |
||
9035 | end; |
||
9036 | |||
9037 | PDIDeviceInstanceA_DX5 = ^TDIDeviceInstanceA_DX5; |
||
9038 | TDIDeviceInstanceA_DX5 = record |
||
9039 | dwSize: DWORD; |
||
9040 | guidInstance: TGUID; |
||
9041 | guidProduct: TGUID; |
||
9042 | dwDevType: DWORD; |
||
9043 | tszInstanceName: array[0..MAX_PATH-1] of CHAR; |
||
9044 | tszProductName: array[0..MAX_PATH-1] of CHAR; |
||
9045 | guidFFDriver: TGUID; |
||
9046 | wUsagePage: WORD; |
||
9047 | wUsage: WORD; |
||
9048 | end; |
||
9049 | |||
9050 | {$IFDEF DirectX3} |
||
9051 | TDIDeviceInstanceA = TDIDeviceInstanceA_DX3; |
||
9052 | PDIDeviceInstanceA = PDIDeviceInstanceA_DX3; |
||
9053 | {$ENDIF}{$IFDEF DirectX5} |
||
9054 | TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
||
9055 | PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
||
9056 | {$ENDIF}{$IFDEF DirectX6} |
||
9057 | TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
||
9058 | PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
||
9059 | {$ENDIF}{$IFDEF DirectX7} |
||
9060 | TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
||
9061 | PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
||
9062 | {$ENDIF} |
||
9063 | |||
9064 | DIDEVICEINSTANCEA = TDIDeviceInstanceA; |
||
9065 | LPDIDEVICEINSTANCEA = PDIDeviceInstanceA; |
||
9066 | |||
9067 | PDIDeviceInstanceW_DX3 = ^TDIDeviceInstanceW_DX3; |
||
9068 | TDIDeviceInstanceW_DX3 = record |
||
9069 | dwSize: DWORD; |
||
9070 | guidInstance: TGUID; |
||
9071 | guidProduct: TGUID; |
||
9072 | dwDevType: DWORD; |
||
9073 | tszInstanceName: array[0..MAX_PATH-1] of WCHAR; |
||
9074 | tszProductName: array[0..MAX_PATH-1] of WCHAR; |
||
9075 | end; |
||
9076 | |||
9077 | PDIDeviceInstanceW_DX5 = ^TDIDeviceInstanceW_DX5; |
||
9078 | TDIDeviceInstanceW_DX5 = record |
||
9079 | dwSize: DWORD; |
||
9080 | guidInstance: TGUID; |
||
9081 | guidProduct: TGUID; |
||
9082 | dwDevType: DWORD; |
||
9083 | tszInstanceName: array[0..MAX_PATH-1] of WCHAR; |
||
9084 | tszProductName: array[0..MAX_PATH-1] of WCHAR; |
||
9085 | guidFFDriver: TGUID; |
||
9086 | wUsagePage: WORD; |
||
9087 | wUsage: WORD; |
||
9088 | end; |
||
9089 | |||
9090 | {$IFDEF DirectX3} |
||
9091 | TDIDeviceInstanceW = TDIDeviceInstanceW_DX3; |
||
9092 | PDIDeviceInstanceW = PDIDeviceInstanceW_DX3; |
||
9093 | {$ENDIF}{$IFDEF DirectX5} |
||
9094 | TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
||
9095 | PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
||
9096 | {$ENDIF}{$IFDEF DirectX6} |
||
9097 | TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
||
9098 | PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
||
9099 | {$ENDIF}{$IFDEF DirectX7} |
||
9100 | TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
||
9101 | PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
||
9102 | {$ENDIF} |
||
9103 | |||
9104 | DIDEVICEINSTANCEW = TDIDeviceInstanceW; |
||
9105 | LPDIDEVICEINSTANCEW = PDIDeviceInstanceW; |
||
9106 | |||
9107 | TDIDeviceInstance = TDIDeviceInstanceA; |
||
9108 | PDIDeviceInstance = PDIDeviceInstanceA; |
||
9109 | |||
9110 | DIDEVICEINSTANCE = TDIDeviceInstance; |
||
9111 | LPDIDEVICEINSTANCE = PDIDeviceInstance; |
||
9112 | |||
9113 | IDirectInputDeviceW = interface(IUnknown) |
||
9114 | ['{5944E681-C92E-11CF-BFC7-444553540000}'] |
||
9115 | // IDirectInputDeviceW methods |
||
9116 | function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; |
||
9117 | function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackW; |
||
9118 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9119 | function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; |
||
9120 | function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; |
||
9121 | function Acquire: HResult; stdcall; |
||
9122 | function Unacquire: HResult; stdcall; |
||
9123 | function GetDeviceState(cbData: DWORD; var lpvData): HResult; stdcall; |
||
9124 | function GetDeviceData(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
||
9125 | var pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
9126 | function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; |
||
9127 | function SetEventNotification(hEvent: THandle): HResult; stdcall; |
||
9128 | function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9129 | function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceW; dwObj: DWORD; |
||
9130 | dwHow: DWORD): HResult; stdcall; |
||
9131 | function GetDeviceInfo(var pdidi: TDIDeviceInstanceW): HResult; stdcall; |
||
9132 | function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9133 | function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
||
9134 | end; |
||
9135 | |||
9136 | IDirectInputDeviceA = interface(IUnknown) |
||
9137 | ['{5944E680-C92E-11CF-BFC7-444553540000}'] |
||
9138 | // IDirectInputDeviceA methods |
||
9139 | function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; |
||
9140 | function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackA; |
||
9141 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9142 | function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; |
||
9143 | function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; |
||
9144 | function Acquire: HResult; stdcall; |
||
9145 | function Unacquire: HResult; stdcall; |
||
9146 | function GetDeviceState(cbData: DWORD; var lpvData): HResult; stdcall; |
||
9147 | function GetDeviceData(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
||
9148 | var pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
9149 | function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; |
||
9150 | function SetEventNotification(hEvent: THandle): HResult; stdcall; |
||
9151 | function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9152 | function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceA; dwObj: DWORD; |
||
9153 | dwHow: DWORD): HResult; stdcall; |
||
9154 | function GetDeviceInfo(var pdidi: TDIDeviceInstanceA): HResult; stdcall; |
||
9155 | function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9156 | function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
||
9157 | end; |
||
9158 | |||
9159 | IDirectInputDevice = IDirectInputDeviceA; |
||
9160 | |||
9161 | const |
||
9162 | DISFFC_RESET = $00000001; |
||
9163 | DISFFC_STOPALL = $00000002; |
||
9164 | DISFFC_PAUSE = $00000004; |
||
9165 | DISFFC_CONTINUE = $00000008; |
||
9166 | DISFFC_SETACTUATORSON = $00000010; |
||
9167 | DISFFC_SETACTUATORSOFF = $00000020; |
||
9168 | |||
9169 | DIGFFS_EMPTY = $00000001; |
||
9170 | DIGFFS_STOPPED = $00000002; |
||
9171 | DIGFFS_PAUSED = $00000004; |
||
9172 | DIGFFS_ACTUATORSON = $00000010; |
||
9173 | DIGFFS_ACTUATORSOFF = $00000020; |
||
9174 | DIGFFS_POWERON = $00000040; |
||
9175 | DIGFFS_POWEROFF = $00000080; |
||
9176 | DIGFFS_SAFETYSWITCHON = $00000100; |
||
9177 | DIGFFS_SAFETYSWITCHOFF = $00000200; |
||
9178 | DIGFFS_USERFFSWITCHON = $00000400; |
||
9179 | DIGFFS_USERFFSWITCHOFF = $00000800; |
||
9180 | DIGFFS_DEVICELOST = $80000000; |
||
9181 | |||
9182 | DISDD_CONTINUE = 1; |
||
9183 | |||
9184 | DIFEF_DEFAULT = $00000000; |
||
9185 | DIFEF_INCLUDENONSTANDARD = $00000001; |
||
9186 | DIFEF_MODIFYIFNEEDED = $00000010; |
||
9187 | |||
9188 | type |
||
9189 | PDIEffectInfoA = ^TDIEffectInfoA; |
||
9190 | TDIEffectInfoA = record |
||
9191 | dwSize: DWORD; |
||
9192 | guid: TGUID; |
||
9193 | dwEffType: DWORD; |
||
9194 | dwStaticParams: DWORD; |
||
9195 | dwDynamicParams: DWORD; |
||
9196 | tszName: array[0..MAX_PATH-1] of CHAR; |
||
9197 | end; |
||
9198 | |||
9199 | DIEFFECTINFOA = TDIEffectInfoA; |
||
9200 | LPDIEFFECTINFOA = PDIEffectInfoA; |
||
9201 | |||
9202 | PDIEffectInfoW = ^TDIEffectInfoW; |
||
9203 | TDIEffectInfoW = record |
||
9204 | dwSize: DWORD; |
||
9205 | guid: TGUID; |
||
9206 | dwEffType: DWORD; |
||
9207 | dwStaticParams: DWORD; |
||
9208 | dwDynamicParams: DWORD; |
||
9209 | tszName: array[0..MAX_PATH-1] of WCHAR; |
||
9210 | end; |
||
9211 | |||
9212 | DIEFFECTINFOW = TDIEffectInfoW; |
||
9213 | LPDIEFFECTINFOW = PDIEffectInfoW; |
||
9214 | |||
9215 | DIEFFECTINFO = TDIEffectInfoA; |
||
9216 | LPDIEFFECTINFO = PDIEffectInfoA; |
||
9217 | |||
9218 | TDIEnumEffectsCallbackA = function(const pdei: TDIEffectInfoA; |
||
9219 | pvRef: Pointer): HResult; stdcall; |
||
9220 | LPDIENUMEFFECTSCALLBACKA = TDIEnumEffectsCallbackA; |
||
9221 | |||
9222 | TDIEnumEffectsCallbackW = function(const pdei: TDIEffectInfoW; |
||
9223 | pvRef: Pointer): HResult; stdcall; |
||
9224 | LPDIENUMEFFECTSCALLBACKW = TDIEnumEffectsCallbackW; |
||
9225 | |||
9226 | TDIEnumEffectsCallback = TDIEnumEffectsCallbackA; |
||
9227 | LPDIENUMEFFECTSCALLBACK = TDIEnumEffectsCallback; |
||
9228 | |||
9229 | LPDIENUMCREATEDEFFECTOBJECTSCALLBACK = function(const peff: |
||
9230 | IDirectInputEffect; pvRef: Pointer): HResult; stdcall; |
||
9231 | |||
9232 | IDirectInputDevice2W = interface(IDirectInputDeviceW) |
||
9233 | ['{5944E683-C92E-11CF-BFC7-444553540000}'] |
||
9234 | // IDirectInputDevice2W methods |
||
9235 | function CreateEffect(const rguid: TGUID; const lpeff: TDIEffect; |
||
9236 | out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; |
||
9237 | function EnumEffects(lpCallback: TDIEnumEffectsCallbackW; pvRef: Pointer; |
||
9238 | dwEffType: DWORD): HResult; stdcall; |
||
9239 | function GetEffectInfo(var pdei: TDIEffectInfoW; const rguid: TGUID): HResult; stdcall; |
||
9240 | function GetForceFeedbackState(var pdwOut: DWORD): HResult; stdcall; |
||
9241 | function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; |
||
9242 | function EnumCreatedEffectObjects(lpCallback: |
||
9243 | LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; pvRef: Pointer; fl: DWORD): HResult; stdcall; |
||
9244 | function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
||
9245 | function Poll: HResult; stdcall; |
||
9246 | function SendDeviceData(cbObjectData: DWORD; const rgdod: TDIDeviceObjectData; |
||
9247 | var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; |
||
9248 | end; |
||
9249 | |||
9250 | IDirectInputDevice2A = interface(IDirectInputDeviceA) |
||
9251 | ['{5944E682-C92E-11CF-BFC7-444553540000}'] |
||
9252 | // IDirectInputDevice2A methods |
||
9253 | function CreateEffect(const rguid: TGUID; const lpeff: TDIEffect; |
||
9254 | out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; |
||
9255 | function EnumEffects(lpCallback: TDIEnumEffectsCallbackA; pvRef: Pointer; |
||
9256 | dwEffType: DWORD): HResult; stdcall; |
||
9257 | function GetEffectInfo(var pdei: TDIEffectInfoA; const rguid: TGUID): HResult; stdcall; |
||
9258 | function GetForceFeedbackState(var pdwOut: DWORD): HResult; stdcall; |
||
9259 | function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; |
||
9260 | function EnumCreatedEffectObjects(lpCallback: |
||
9261 | LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; pvRef: Pointer; fl: DWORD): HResult; stdcall; |
||
9262 | function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
||
9263 | function Poll: HResult; stdcall; |
||
9264 | function SendDeviceData(cbObjectData: DWORD; const rgdod: TDIDeviceObjectData; |
||
9265 | var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; |
||
9266 | end; |
||
9267 | |||
9268 | IDirectInputDevice2 = IDirectInputDevice2A; |
||
9269 | |||
9270 | IDirectInputDevice7W = interface(IDirectInputDevice2W) |
||
9271 | ['{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'] |
||
9272 | // IDirectInputDevice7W methods |
||
9273 | function EnumEffectsInFile(lpszFileName: LPCWSTR; pec: TDIEnumEffectsInFileCallback; |
||
9274 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9275 | function WriteEffectToFile(lpszFileName: LPCWSTR; dwEntries: DWORD; |
||
9276 | const rgDiFileEft: TDIFileEffect; dwFlags: DWORD): HResult; stdcall; |
||
9277 | end; |
||
9278 | |||
9279 | IDirectInputDevice7A = interface(IDirectInputDevice2A) |
||
9280 | ['{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'] |
||
9281 | // IDirectInputDevice7A methods |
||
9282 | function EnumEffectsInFile(lpszFileName: LPCSTR; pec: TDIEnumEffectsInFileCallback; |
||
9283 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9284 | function WriteEffectToFile(lpszFileName: LPCSTR; dwEntries: DWORD; |
||
9285 | const rgDiFileEft: TDIFileEffect; dwFlags: DWORD): HResult; stdcall; |
||
9286 | end; |
||
9287 | |||
9288 | IDirectInputDevice7 = IDirectInputDevice7A; |
||
9289 | |||
9290 | { Mouse } |
||
9291 | |||
9292 | type |
||
9293 | TDIMouseState = record |
||
9294 | lX: Longint; |
||
9295 | lY: Longint; |
||
9296 | lZ: Longint; |
||
9297 | rgbButtons: array[0..3] of BYTE; |
||
9298 | end; |
||
9299 | |||
9300 | DIMOUSESTATE = TDIMouseState; |
||
9301 | |||
9302 | TDIMouseState2 = record |
||
9303 | lX: Longint; |
||
9304 | lY: Longint; |
||
9305 | lZ: Longint; |
||
9306 | rgbButtons: array[0..7] of BYTE; |
||
9307 | end; |
||
9308 | |||
9309 | DIMOUSESTATE2 = TDIMouseState2; |
||
9310 | |||
9311 | const |
||
9312 | _c_dfDIMouse_Objects: array[0..1] of TDIObjectDataFormat = ( |
||
9313 | (pguid: nil; dwOfs: 0; dwType: DIDFT_RELAXIS or DIDFT_ANYINSTANCE; dwFlags: 0), |
||
9314 | (pguid: @GUID_Button; dwOfs: 12; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0) |
||
9315 | ); |
||
9316 | |||
9317 | c_dfDIMouse: TDIDataFormat = ( |
||
9318 | dwSize: Sizeof(c_dfDIMouse); |
||
9319 | dwObjSize: Sizeof(TDIObjectDataFormat); |
||
9320 | dwFlags: DIDF_RELAXIS; |
||
9321 | dwDataSize: Sizeof(TDIMouseState); |
||
9322 | dwNumObjs: High(_c_dfDIMouse_Objects)+1; |
||
9323 | rgodf: @_c_dfDIMouse_Objects |
||
9324 | ); |
||
9325 | |||
9326 | { Keyboard } |
||
9327 | |||
9328 | type |
||
9329 | TDIKeyboardState = array[0..255] of Byte; |
||
9330 | DIKEYBOARDSTATE = TDIKeyboardState; |
||
9331 | |||
9332 | const |
||
9333 | _c_dfDIKeyboard_Objects: array[0..0] of TDIObjectDataFormat = ( |
||
9334 | (pguid: @GUID_Key; dwOfs: 1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0) |
||
9335 | ); |
||
9336 | |||
9337 | c_dfDIKeyboard: TDIDataFormat = ( |
||
9338 | dwSize: Sizeof(c_dfDIKeyboard); |
||
9339 | dwObjSize: Sizeof(TDIObjectDataFormat); |
||
9340 | dwFlags: 0; |
||
9341 | dwDataSize: SizeOf(TDIKeyboardState); |
||
9342 | dwNumObjs: High(_c_dfDIKeyboard_Objects)+1; |
||
9343 | rgodf: @_c_dfDIKeyboard_Objects |
||
9344 | ); |
||
9345 | |||
9346 | { DirectInput keyboard scan codes } |
||
9347 | |||
9348 | const |
||
9349 | DIK_ESCAPE = $01; |
||
9350 | DIK_1 = $02; |
||
9351 | DIK_2 = $03; |
||
9352 | DIK_3 = $04; |
||
9353 | DIK_4 = $05; |
||
9354 | DIK_5 = $06; |
||
9355 | DIK_6 = $07; |
||
9356 | DIK_7 = $08; |
||
9357 | DIK_8 = $09; |
||
9358 | DIK_9 = $0A; |
||
9359 | DIK_0 = $0B; |
||
9360 | DIK_MINUS = $0C; // - on main keyboard |
||
9361 | DIK_EQUALS = $0D; |
||
9362 | DIK_BACK = $0E; // backspace |
||
9363 | DIK_TAB = $0F; |
||
9364 | DIK_Q = $10; |
||
9365 | DIK_W = $11; |
||
9366 | DIK_E = $12; |
||
9367 | DIK_R = $13; |
||
9368 | DIK_T = $14; |
||
9369 | DIK_Y = $15; |
||
9370 | DIK_U = $16; |
||
9371 | DIK_I = $17; |
||
9372 | DIK_O = $18; |
||
9373 | DIK_P = $19; |
||
9374 | DIK_LBRACKET = $1A; |
||
9375 | DIK_RBRACKET = $1B; |
||
9376 | DIK_RETURN = $1C; // Enter on main keyboard |
||
9377 | DIK_LCONTROL = $1D; |
||
9378 | DIK_A = $1E; |
||
9379 | DIK_S = $1F; |
||
9380 | DIK_D = $20; |
||
9381 | DIK_F = $21; |
||
9382 | DIK_G = $22; |
||
9383 | DIK_H = $23; |
||
9384 | DIK_J = $24; |
||
9385 | DIK_K = $25; |
||
9386 | DIK_L = $26; |
||
9387 | DIK_SEMICOLON = $27; |
||
9388 | DIK_APOSTROPHE = $28; |
||
9389 | DIK_GRAVE = $29; // accent grave |
||
9390 | DIK_LSHIFT = $2A; |
||
9391 | DIK_BACKSLASH = $2B; |
||
9392 | DIK_Z = $2C; |
||
9393 | DIK_X = $2D; |
||
9394 | DIK_C = $2E; |
||
9395 | DIK_V = $2F; |
||
9396 | DIK_B = $30; |
||
9397 | DIK_N = $31; |
||
9398 | DIK_M = $32; |
||
9399 | DIK_COMMA = $33; |
||
9400 | DIK_PERIOD = $34; // . on main keyboard |
||
9401 | DIK_SLASH = $35; // / on main keyboard |
||
9402 | DIK_RSHIFT = $36; |
||
9403 | DIK_MULTIPLY = $37; // * on numeric keypad |
||
9404 | DIK_LMENU = $38; // left Alt |
||
9405 | DIK_SPACE = $39; |
||
9406 | DIK_CAPITAL = $3A; |
||
9407 | DIK_F1 = $3B; |
||
9408 | DIK_F2 = $3C; |
||
9409 | DIK_F3 = $3D; |
||
9410 | DIK_F4 = $3E; |
||
9411 | DIK_F5 = $3F; |
||
9412 | DIK_F6 = $40; |
||
9413 | DIK_F7 = $41; |
||
9414 | DIK_F8 = $42; |
||
9415 | DIK_F9 = $43; |
||
9416 | DIK_F10 = $44; |
||
9417 | DIK_NUMLOCK = $45; |
||
9418 | DIK_SCROLL = $46; // Scroll Lock |
||
9419 | DIK_NUMPAD7 = $47; |
||
9420 | DIK_NUMPAD8 = $48; |
||
9421 | DIK_NUMPAD9 = $49; |
||
9422 | DIK_SUBTRACT = $4A; // - on numeric keypad |
||
9423 | DIK_NUMPAD4 = $4B; |
||
9424 | DIK_NUMPAD5 = $4C; |
||
9425 | DIK_NUMPAD6 = $4D; |
||
9426 | DIK_ADD = $4E; // + on numeric keypad |
||
9427 | DIK_NUMPAD1 = $4F; |
||
9428 | DIK_NUMPAD2 = $50; |
||
9429 | DIK_NUMPAD3 = $51; |
||
9430 | DIK_NUMPAD0 = $52; |
||
9431 | DIK_DECIMAL = $53; // . on numeric keypad |
||
9432 | DIK_F11 = $57; |
||
9433 | DIK_F12 = $58; |
||
9434 | |||
9435 | DIK_F13 = $64; // (NEC PC98) |
||
9436 | DIK_F14 = $65; // (NEC PC98) |
||
9437 | DIK_F15 = $66; // (NEC PC98) |
||
9438 | |||
9439 | DIK_KANA = $70; // (Japanese keyboard) |
||
9440 | DIK_CONVERT = $79; // (Japanese keyboard) |
||
9441 | DIK_NOCONVERT = $7B; // (Japanese keyboard) |
||
9442 | DIK_YEN = $7D; // (Japanese keyboard) |
||
9443 | DIK_NUMPADEQUALS = $8D; // = on numeric keypad (NEC PC98) |
||
9444 | DIK_CIRCUMFLEX = $90; // (Japanese keyboard) |
||
9445 | DIK_AT = $91; // (NEC PC98) |
||
9446 | DIK_COLON = $92; // (NEC PC98) |
||
9447 | DIK_UNDERLINE = $93; // (NEC PC98) |
||
9448 | DIK_KANJI = $94; // (Japanese keyboard) |
||
9449 | DIK_STOP = $95; // (NEC PC98) |
||
9450 | DIK_AX = $96; // (Japan AX) |
||
9451 | DIK_UNLABELED = $97; // (J3100) |
||
9452 | DIK_NUMPADENTER = $9C; // Enter on numeric keypad |
||
9453 | DIK_RCONTROL = $9D; |
||
9454 | DIK_NUMPADCOMMA = $B3; // , on numeric keypad (NEC PC98) |
||
9455 | DIK_DIVIDE = $B5; // / on numeric keypad |
||
9456 | DIK_SYSRQ = $B7; |
||
9457 | DIK_RMENU = $B8; // right Alt |
||
9458 | DIK_HOME = $C7; // Home on arrow keypad |
||
9459 | DIK_UP = $C8; // UpArrow on arrow keypad |
||
9460 | DIK_PRIOR = $C9; // PgUp on arrow keypad |
||
9461 | DIK_LEFT = $CB; // LeftArrow on arrow keypad |
||
9462 | DIK_RIGHT = $CD; // RightArrow on arrow keypad |
||
9463 | DIK_END = $CF; // End on arrow keypad |
||
9464 | DIK_DOWN = $D0; // DownArrow on arrow keypad |
||
9465 | DIK_NEXT = $D1; // PgDn on arrow keypad |
||
9466 | DIK_INSERT = $D2; // Insert on arrow keypad |
||
9467 | DIK_DELETE = $D3; // Delete on arrow keypad |
||
9468 | DIK_LWIN = $DB; // Left Windows key |
||
9469 | DIK_RWIN = $DC; // Right Windows key |
||
9470 | DIK_APPS = $DD; // AppMenu key |
||
9471 | |||
9472 | // |
||
9473 | // Alternate names for keys, to facilitate transition from DOS. |
||
9474 | // |
||
9475 | DIK_BACKSPACE = DIK_BACK; // backspace |
||
9476 | DIK_NUMPADSTAR = DIK_MULTIPLY; // * on numeric keypad |
||
9477 | DIK_LALT = DIK_LMENU; // left Alt |
||
9478 | DIK_CAPSLOCK = DIK_CAPITAL; // CapsLock |
||
9479 | DIK_NUMPADMINUS = DIK_SUBTRACT; // - on numeric keypad |
||
9480 | DIK_NUMPADPLUS = DIK_ADD; // + on numeric keypad |
||
9481 | DIK_NUMPADPERIOD = DIK_DECIMAL; // . on numeric keypad |
||
9482 | DIK_NUMPADSLASH = DIK_DIVIDE; // / on numeric keypad |
||
9483 | DIK_RALT = DIK_RMENU; // right Alt |
||
9484 | DIK_UPARROW = DIK_UP; // UpArrow on arrow keypad |
||
9485 | DIK_PGUP = DIK_PRIOR; // PgUp on arrow keypad |
||
9486 | DIK_LEFTARROW = DIK_LEFT; // LeftArrow on arrow keypad |
||
9487 | DIK_RIGHTARROW = DIK_RIGHT; // RightArrow on arrow keypad |
||
9488 | DIK_DOWNARROW = DIK_DOWN; // DownArrow on arrow keypad |
||
9489 | DIK_PGDN = DIK_NEXT; // PgDn on arrow keypad |
||
9490 | |||
9491 | { Joystick } |
||
9492 | |||
9493 | type |
||
9494 | PDIJoyState = ^TDIJoyState; |
||
9495 | TDIJoyState = record |
||
9496 | lX: Longint; // x-axis position |
||
9497 | lY: Longint; // y-axis position |
||
9498 | lZ: Longint; // z-axis position |
||
9499 | lRx: Longint; // x-axis rotation |
||
9500 | lRy: Longint; // y-axis rotation |
||
9501 | lRz: Longint; // z-axis rotation |
||
9502 | rglSlider: array[0..1] of Longint; // extra axes positions |
||
9503 | rgdwPOV: array[0..3] of DWORD; // POV directions |
||
9504 | rgbButtons: array[0..31] of BYTE; // 32 buttons |
||
9505 | end; |
||
9506 | |||
9507 | DIJOYSTATE = TDIJoyState; |
||
9508 | |||
9509 | PDIJOYSTATE2 = ^TDIJoyState2; |
||
9510 | TDIJoyState2 = record |
||
9511 | lX: Longint; // x-axis position |
||
9512 | lY: Longint; // y-axis position |
||
9513 | lZ: Longint; // z-axis position |
||
9514 | lRx: Longint; // x-axis rotation |
||
9515 | lRy: Longint; // y-axis rotation |
||
9516 | lRz: Longint; // z-axis rotation |
||
9517 | rglSlider: array[0..1] of Longint; // extra axes positions |
||
9518 | rgdwPOV: array[0..3] of DWORD; // POV directions |
||
9519 | rgbButtons: array[0..127] of BYTE; // 128 buttons |
||
9520 | lVX: Longint; // x-axis velocity |
||
9521 | lVY: Longint; // y-axis velocity |
||
9522 | lVZ: Longint; // z-axis velocity |
||
9523 | lVRx: Longint; // x-axis angular velocity |
||
9524 | lVRy: Longint; // y-axis angular velocity |
||
9525 | lVRz: Longint; // z-axis angular velocity |
||
9526 | rglVSlider: array[0..1] of Longint; // extra axes velocities |
||
9527 | lAX: Longint; // x-axis acceleration |
||
9528 | lAY: Longint; // y-axis acceleration |
||
9529 | lAZ: Longint; // z-axis acceleration |
||
9530 | lARx: Longint; // x-axis angular acceleration |
||
9531 | lARy: Longint; // y-axis angular acceleration |
||
9532 | lARz: Longint; // z-axis angular acceleration |
||
9533 | rglASlider: array[0..1] of Longint; // extra axes accelerations |
||
9534 | lFX: Longint; // x-axis force |
||
9535 | lFY: Longint; // y-axis force |
||
9536 | lFZ: Longint; // z-axis force |
||
9537 | lFRx: Longint; // x-axis torque |
||
9538 | lFRy: Longint; // y-axis torque |
||
9539 | lFRz: Longint; // z-axis torque |
||
9540 | rglFSlider: array[0..1] of Longint; // extra axes forces |
||
9541 | end; |
||
9542 | |||
9543 | DIJOYSTATE2 = TDIJoyState2; |
||
9544 | |||
9545 | {const |
||
9546 | _c_dfDIJoystick_Objects: array[0..1] of TDIObjectDataFormat = ( |
||
9547 | ( pguid: nil; |
||
9548 | dwOfs: 0; |
||
9549 | dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; |
||
9550 | dwFlags: 0), |
||
9551 | ( pguid: nil; |
||
9552 | dwOfs: 48; |
||
9553 | dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; |
||
9554 | dwFlags: 0) |
||
9555 | ); |
||
9556 | |||
9557 | c_dfDIJoystick: TDIDataFormat = ( |
||
9558 | dwSize: Sizeof(c_dfDIJoystick); |
||
9559 | dwObjSize: Sizeof(TDIObjectDataFormat); |
||
9560 | dwFlags: DIDF_ABSAXIS; |
||
9561 | dwDataSize: SizeOf(DIJOYSTATE); |
||
9562 | dwNumObjs: High(_c_dfDIJoystick_Objects)+1; |
||
9563 | rgodf: @_c_dfDIJoystick_Objects); |
||
9564 | } |
||
9565 | const |
||
9566 | DIJOFS_X = 0; |
||
9567 | DIJOFS_Y = 4; |
||
9568 | DIJOFS_Z = 8; |
||
9569 | DIJOFS_RX = 12; |
||
9570 | DIJOFS_RY = 16; |
||
9571 | DIJOFS_RZ = 20; |
||
9572 | DIJOFS_SLIDER = 24; |
||
9573 | DIJOFS_POV = 32; |
||
9574 | DIJOFS_BUTTON = 48; |
||
9575 | |||
9576 | { IDirectInput } |
||
9577 | |||
9578 | const |
||
9579 | DIENUM_STOP = 0; |
||
9580 | DIENUM_CONTINUE = 1; |
||
9581 | |||
9582 | type |
||
9583 | |||
9584 | TDIEnumDevicesCallbackA = function(const lpddi: TDIDeviceInstanceA; |
||
9585 | pvRef: Pointer): HResult; stdcall; |
||
9586 | LPDIENUMDEVICESCALLBACKA = TDIEnumDevicesCallbackA; |
||
9587 | |||
9588 | TDIEnumDevicesCallbackW = function(const lpddi: TDIDeviceInstanceW; |
||
9589 | pvRef: Pointer): HResult; stdcall; |
||
9590 | LPDIENUMDEVICESCALLBACKW = TDIEnumDevicesCallbackW; |
||
9591 | |||
9592 | TDIEnumDevicesCallback = TDIEnumDevicesCallbackA; |
||
9593 | LPDIENUMDEVICESCALLBACK = TDIEnumDevicesCallback; |
||
9594 | |||
9595 | const |
||
9596 | DIEDFL_ALLDEVICES = $00000000; |
||
9597 | DIEDFL_ATTACHEDONLY = $00000001; |
||
9598 | DIEDFL_FORCEFEEDBACK = $00000100; |
||
9599 | DIEDFL_INCLUDEALIASES = $00010000; |
||
9600 | DIEDFL_INCLUDEPHANTOMS = $00020000; |
||
9601 | |||
9602 | type |
||
9603 | IDirectInputW = interface(IUnknown) |
||
9604 | ['{89521361-AA8A-11CF-BFC7-444553540000}'] |
||
9605 | // IDirectInputW methods |
||
9606 | function CreateDevice(const rguid: TGUID; |
||
9607 | out lplpDirectInputDevice: IDirectInputDeviceW; pUnkOuter: IUnknown): HResult; stdcall; |
||
9608 | function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackW; |
||
9609 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9610 | function GetDeviceStatus(var rguidInstance: TGUID): HResult; stdcall; |
||
9611 | function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9612 | function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; |
||
9613 | end; |
||
9614 | |||
9615 | IDirectInputA = interface(IUnknown) |
||
9616 | ['{89521360-AA8A-11CF-BFC7-444553540000}'] |
||
9617 | // IDirectInputA methods |
||
9618 | function CreateDevice(const rguid: TGUID; |
||
9619 | out lplpDirectInputDevice: IDirectInputDeviceA; pUnkOuter: IUnknown): HResult; stdcall; |
||
9620 | function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackA; |
||
9621 | pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
9622 | function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; |
||
9623 | function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
||
9624 | function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; |
||
9625 | end; |
||
9626 | |||
9627 | IDirectInput = IDirectInputA; |
||
9628 | |||
9629 | IDirectInput2W = interface(IDirectInputW) |
||
9630 | ['{5944E663-AA8A-11CF-BFC7-444553540000}'] |
||
9631 | // IDirectInput2W methods |
||
9632 | function FindDevice(Arg1: PGUID; Arg2: PWideChar; Arg3: PGUID): HResult; stdcall; |
||
9633 | end; |
||
9634 | |||
9635 | IDirectInput2A = interface(IDirectInputA) |
||
9636 | ['{5944E662-AA8A-11CF-BFC7-444553540000}'] |
||
9637 | // IDirectInput2A methods |
||
9638 | function FindDevice(Arg1: PGUID; Arg2: PAnsiChar; Arg3: PGUID): HResult; stdcall; |
||
9639 | end; |
||
9640 | |||
9641 | IDirectInput2 = IDirectInput2A; |
||
9642 | |||
9643 | IDirectInput7W = interface(IDirectInput2W) |
||
9644 | ['{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'] |
||
9645 | // IDirectInput7W methods |
||
9646 | function CreateDeviceEx(const rguid: TGUID; const riid: TGUID; |
||
9647 | out pvOut; pUnkOuter: IUnknown): HResult; stdcall; |
||
9648 | end; |
||
9649 | |||
9650 | IDirectInput7A = interface(IDirectInput2A) |
||
9651 | ['{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'] |
||
9652 | // IDirectInput7A methods |
||
9653 | function CreateDeviceEx(const rguid: TGUID; const riid: TGUID; |
||
9654 | out pvOut; pUnkOuter: IUnknown): HResult; stdcall; |
||
9655 | end; |
||
9656 | |||
9657 | IDirectInput7 = IDirectInput7A; |
||
9658 | |||
9659 | { Return Codes } |
||
9660 | |||
9661 | const |
||
9662 | DI_OK = HResult(S_OK); |
||
9663 | DI_NOTATTACHED = HResult(S_FALSE); |
||
9664 | DI_BUFFEROVERFLOW = HResult(S_FALSE); |
||
9665 | DI_PROPNOEFFECT = HResult(S_FALSE); |
||
9666 | DI_NOEFFECT = HResult(S_FALSE); |
||
9667 | DI_POLLEDDEVICE = HResult($00000002); |
||
9668 | DI_DOWNLOADSKIPPED = HResult($00000003); |
||
9669 | DI_EFFECTRESTARTED = HResult($00000004); |
||
9670 | DI_TRUNCATED = HResult($00000008); |
||
9671 | DI_TRUNCATEDANDRESTARTED = HResult($0000000C); |
||
9672 | |||
9673 | DIERR_OLDDIRECTINPUTVERSION = HResult($8007047E); |
||
9674 | DIERR_BETADIRECTINPUTVERSION = HResult($80070481); |
||
9675 | DIERR_BADDRIVERVER = HResult($80070077); |
||
9676 | DIERR_DEVICENOTREG = HResult(REGDB_E_CLASSNOTREG); |
||
9677 | DIERR_NOTFOUND = HResult($80070002); |
||
9678 | DIERR_OBJECTNOTFOUND = HResult($80070002); |
||
9679 | DIERR_INVALIDPARAM = HResult(E_INVALIDARG); |
||
9680 | DIERR_NOINTERFACE = HResult(E_NOINTERFACE); |
||
9681 | DIERR_GENERIC = HResult(E_FAIL); |
||
9682 | DIERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
||
9683 | DIERR_UNSUPPORTED = HResult(E_NOTIMPL); |
||
9684 | DIERR_NOTINITIALIZED = HResult($80070015); |
||
9685 | DIERR_ALREADYINITIALIZED = HResult($800704DF); |
||
9686 | DIERR_NOAGGREGATION = HResult(CLASS_E_NOAGGREGATION); |
||
9687 | DIERR_OTHERAPPHASPRIO = HResult(E_ACCESSDENIED); |
||
9688 | DIERR_INPUTLOST = HResult($8007001E); |
||
9689 | DIERR_ACQUIRED = HResult($800700AA); |
||
9690 | DIERR_NOTACQUIRED = HResult($8007000C); |
||
9691 | DIERR_READONLY = HResult(E_ACCESSDENIED); |
||
9692 | DIERR_HANDLEEXISTS = HResult(E_ACCESSDENIED); |
||
9693 | DIERR_PENDING = HResult($80070007); |
||
9694 | DIERR_INSUFFICIENTPRIVS = HResult($80040200); |
||
9695 | DIERR_DEVICEFULL = HResult($80040201); |
||
9696 | DIERR_MOREDATA = HResult($80040202); |
||
9697 | DIERR_NOTDOWNLOADED = HResult($80040203); |
||
9698 | DIERR_HASEFFECTS = HResult($80040204); |
||
9699 | DIERR_NOTEXCLUSIVEACQUIRED = HResult($80040205); |
||
9700 | DIERR_INCOMPLETEEFFECT = HResult($80040206); |
||
9701 | DIERR_NOTBUFFERED = HResult($80040207); |
||
9702 | DIERR_EFFECTPLAYING = HResult($80040208); |
||
9703 | DIERR_UNPLUGGED = HResult($80040209); |
||
9704 | DIERR_REPORTFULL = HResult($8004020A); |
||
9705 | |||
9706 | |||
9707 | { Definitions for non-IDirectInput (VJoyD) features defined more recently |
||
9708 | than the current sdk files } |
||
9709 | |||
9710 | JOY_PASSDRIVERDATA = $10000000; |
||
9711 | JOY_HWS_ISHEADTRACKER = $02000000; |
||
9712 | JOY_HWS_ISGAMEPORTDRIVER = $04000000; |
||
9713 | JOY_HWS_ISANALOGPORTDRIVER = $08000000; |
||
9714 | JOY_HWS_AUTOLOAD = $10000000; |
||
9715 | JOY_HWS_NODEVNODE = $20000000; |
||
9716 | JOY_HWS_ISGAMEPORTEMULATOR = $40000000; |
||
9717 | JOY_US_VOLATILE = $00000008; |
||
9718 | |||
9719 | { Definitions for non-IDirectInput (VJoyD) features defined more recently |
||
9720 | than the current ddk files } |
||
9721 | |||
9722 | JOY_OEMPOLL_PASSDRIVERDATA = 7; |
||
9723 | |||
9724 | function DirectInputCreate(hinst: THandle; dwVersion: DWORD; |
||
9725 | out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; |
||
9726 | function DirectInputCreateEx(hinst: THandle; dwVersion: DWORD; |
||
9727 | const riidltf: TGUID; out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; |
||
9728 | |||
9729 | (*==========================================================================; |
||
9730 | * |
||
9731 | * Copyright (C) Microsoft Corporation. All Rights Reserved. |
||
9732 | * |
||
9733 | * File: dplay.h |
||
9734 | * Content: DirectPlay include file |
||
9735 | * |
||
9736 | ***************************************************************************) |
||
9737 | |||
9738 | const |
||
9739 | { GUIDS used by DirectPlay objects } |
||
9740 | |||
9741 | CLSID_DirectPlay: TGUID = '{D1EB6D20-8923-11D0-9D97-00A0C90A43CB}'; |
||
9742 | |||
9743 | IID_IDirectPlay: TGUID = '{5454E9A0-DB65-11CE-921C-00AA006C4972}'; |
||
9744 | IID_IDirectPlay2: TGUID = '{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'; |
||
9745 | IID_IDirectPlay2A: TGUID = '{9D460580-A822-11CF-960C-0080C7534E82}'; |
||
9746 | IID_IDirectPlay3: TGUID = '{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'; |
||
9747 | IID_IDirectPlay3A: TGUID = '{133EFE41-32DC-11D0-9CFB-00A0C90A43CB}'; |
||
9748 | IID_IDirectPlay4: TGUID = '{0AB1C530-4745-11D1-A7A1-0000F803ABFC}'; |
||
9749 | IID_IDirectPlay4A: TGUID = '{0AB1C531-4745-11D1-A7A1-0000F803ABFC}'; |
||
9750 | |||
9751 | { GUIDS used by Service Providers shipped with DirectPlay |
||
9752 | Use these to identify Service Provider returned by EnumConnections } |
||
9753 | |||
9754 | DPSPGUID_IPX: TGUID = '{685BC400-9D2C-11CF-A9CD-00AA006886E3}'; |
||
9755 | DPSPGUID_TCPIP: TGUID = '{36E95EE0-8577-11CF-960C-0080C7534E82}'; |
||
9756 | DPSPGUID_SERIAL: TGUID = '{0F1D6860-88D9-11CF-9C4E-00A0C905425E}'; |
||
9757 | DPSPGUID_MODEM: TGUID = '{44EAA760-CB68-11CF-9C4E-00A0C905425E}'; |
||
9758 | |||
9759 | { DirectPlay Structures } |
||
9760 | |||
9761 | type |
||
9762 | PDPID = ^TDPID; |
||
9763 | TDPID = DWORD; |
||
9764 | |||
9765 | DPID = TDPID; |
||
9766 | LPDPID = PDPID; |
||
9767 | |||
9768 | const |
||
9769 | DPID_SYSMSG = 0; // DPID that system messages come from |
||
9770 | DPID_ALLPLAYERS = 0; // DPID representing all players in the session |
||
9771 | DPID_SERVERPLAYER = 1; // DPID representing the server player |
||
9772 | DPID_RESERVEDRANGE = 100; // DPID representing the maxiumum ID in the range of DPID's reserved for |
||
9773 | // use by DirectPlay. |
||
9774 | DPID_UNKNOWN = $FFFFFFFF; // The player ID is unknown (used with e.g. DPSESSION_NOMESSAGEID) |
||
9775 | |||
9776 | type |
||
9777 | PDPCaps = ^TDPCaps; |
||
9778 | TDPCaps = record |
||
9779 | dwSize: DWORD; // Size of structure, in bytes |
||
9780 | dwFlags: DWORD; // DPCAPS_xxx flags |
||
9781 | dwMaxBufferSize: DWORD; // Maximum message size, in bytes, for this service provider |
||
9782 | dwMaxQueueSize: DWORD; // Obsolete. |
||
9783 | dwMaxPlayers: DWORD; // Maximum players/groups (local + remote) |
||
9784 | dwHundredBaud: DWORD; // Bandwidth in 100 bits per second units; |
||
9785 | // i.e. 24 is 2400, 96 is 9600, etc. |
||
9786 | dwLatency: DWORD; // Estimated latency; 0 = unknown |
||
9787 | dwMaxLocalPlayers: DWORD; // Maximum # of locally created players allowed |
||
9788 | dwHeaderLength: DWORD; // Maximum header length, in bytes, on messages |
||
9789 | // added by the service provider |
||
9790 | dwTimeout: DWORD; // Service provider's suggested timeout value |
||
9791 | // This is how long DirectPlay will wait for |
||
9792 | // responses to system messages |
||
9793 | end; |
||
9794 | |||
9795 | DPCAPS = TDPCaps; |
||
9796 | LPDPCAPS = PDPCaps; |
||
9797 | |||
9798 | const |
||
9799 | DPCAPS_ISHOST = $00000002; |
||
9800 | DPCAPS_GROUPOPTIMIZED = $00000008; |
||
9801 | DPCAPS_KEEPALIVEOPTIMIZED = $00000010; |
||
9802 | DPCAPS_GUARANTEEDOPTIMIZED = $00000020; |
||
9803 | DPCAPS_GUARANTEEDSUPPORTED = $00000040; |
||
9804 | DPCAPS_SIGNINGSUPPORTED = $00000080; |
||
9805 | DPCAPS_ENCRYPTIONSUPPORTED = $00000100; |
||
9806 | DPPLAYERCAPS_LOCAL = $00000800; |
||
9807 | DPCAPS_ASYNCCANCELSUPPORTED = $00001000; |
||
9808 | DPCAPS_ASYNCCANCELALLSUPPORTED = $00002000; |
||
9809 | DPCAPS_SENDTIMEOUTSUPPORTED = $00004000; |
||
9810 | DPCAPS_SENDPRIORITYSUPPORTED = $00008000; |
||
9811 | DPCAPS_ASYNCSUPPORTED = $00010000; |
||
9812 | |||
9813 | type |
||
9814 | PDPSessionDesc2 = ^TDPSessionDesc2; |
||
9815 | TDPSessionDesc2 = record |
||
9816 | dwSize: DWORD; // Size of structure |
||
9817 | dwFlags: DWORD; // DPSESSION_xxx flags |
||
9818 | guidInstance: TGUID; // ID for the session instance |
||
9819 | guidApplication: TGUID; // GUID of the DirectPlay application. |
||
9820 | // GUID_NULL for all applications. |
||
9821 | dwMaxPlayers: DWORD; // Maximum # players allowed in session |
||
9822 | dwCurrentPlayers: DWORD; // Current # players in session (read only) |
||
9823 | |||
9824 | case Integer of |
||
9825 | 0: ( |
||
9826 | lpszSessionName: LPWSTR; // Name of the session - Unicode |
||
9827 | lpszPassword: LPWSTR; // Password of the session (optional) - Unicode |
||
9828 | dwReserved1: DWORD; // Reserved for future MS use. |
||
9829 | dwReserved2: DWORD; |
||
9830 | dwUser1: DWORD; // For use by the application |
||
9831 | dwUser2: DWORD; |
||
9832 | dwUser3: DWORD; |
||
9833 | dwUser4: DWORD; |
||
9834 | ); |
||
9835 | 1: ( |
||
9836 | lpszSessionNameA: LPSTR; // Name of the session - ANSI |
||
9837 | lpszPasswordA: LPSTR; // Password of the session (optional) - ANSI |
||
9838 | ); |
||
9839 | end; |
||
9840 | |||
9841 | DPSESSIONDESC2 = TDPSessionDesc2; |
||
9842 | LPDPSESSIONDESC2 = PDPSessionDesc2; |
||
9843 | |||
9844 | const |
||
9845 | DPSESSION_NEWPLAYERSDISABLED = $00000001; |
||
9846 | DPSESSION_MIGRATEHOST = $00000004; |
||
9847 | DPSESSION_NOMESSAGEID = $00000008; |
||
9848 | DPSESSION_JOINDISABLED = $00000020; |
||
9849 | DPSESSION_KEEPALIVE = $00000040; |
||
9850 | DPSESSION_NODATAMESSAGES = $00000080; |
||
9851 | DPSESSION_SECURESERVER = $00000100; |
||
9852 | DPSESSION_PRIVATE = $00000200; |
||
9853 | DPSESSION_PASSWORDREQUIRED = $00000400; |
||
9854 | DPSESSION_MULTICASTSERVER = $00000800; |
||
9855 | DPSESSION_CLIENTSERVER = $00001000; |
||
9856 | DPSESSION_DIRECTPLAYPROTOCOL = $00002000; |
||
9857 | DPSESSION_NOPRESERVEORDER = $00004000; |
||
9858 | DPSESSION_OPTIMIZELATENCY = $00008000; |
||
9859 | |||
9860 | type |
||
9861 | PDPName = ^TDPName; |
||
9862 | TDPName = record |
||
9863 | dwSize: DWORD; // Size of structure |
||
9864 | dwFlags: DWORD; // Not used. Must be zero. |
||
9865 | case Integer of |
||
9866 | 0: ( |
||
9867 | lpszShortName: LPWSTR; // The short or friendly name - Unicode |
||
9868 | lpszLongName: LPWSTR // The long or formal name - Unicode |
||
9869 | ); |
||
9870 | 1: ( |
||
9871 | lpszShortNameA: LPSTR; // The short or friendly name - ANSI |
||
9872 | lpszLongNameA: LPSTR // The long or formal name - ANSI |
||
9873 | ); |
||
9874 | end; |
||
9875 | |||
9876 | DPNAME = TDPName; |
||
9877 | LPDPNAME = PDPName; |
||
9878 | |||
9879 | (* |
||
9880 | * TDPCredentials |
||
9881 | * Used to hold the user name and password of a DirectPlay user |
||
9882 | *) |
||
9883 | |||
9884 | PDPCredentials = ^TDPCredentials; |
||
9885 | TDPCredentials = record |
||
9886 | dwSize: DWORD; // Size of structure |
||
9887 | dwFlags: DWORD; // Not used. Must be zero. |
||
9888 | case Integer of |
||
9889 | 0: ( |
||
9890 | lpszUsername: LPWSTR; // User name of the account - Unicode |
||
9891 | lpszPassword: LPWSTR; // Password of the account - Unicode |
||
9892 | lpszDomain: LPWSTR; // Domain name of the account - Unicode |
||
9893 | ); |
||
9894 | 1: ( |
||
9895 | lpszUsernameA: LPSTR; // User name of the account - ANSI |
||
9896 | lpszPasswordA: LPSTR; // Password of the account - ANSI |
||
9897 | lpszDomainA: LPSTR // Domain name of the account - ANSI |
||
9898 | ); |
||
9899 | end; |
||
9900 | |||
9901 | DPCREDENTIALS = TDPCredentials; |
||
9902 | LPDPCREDENTIALS = PDPCredentials; |
||
9903 | |||
9904 | (* |
||
9905 | * DPSECURITYDESC |
||
9906 | * Used to describe the security properties of a DirectPlay |
||
9907 | * session instance |
||
9908 | *) |
||
9909 | |||
9910 | PDPSecurityDesc = ^TDPSecurityDesc; |
||
9911 | TDPSecurityDesc = record |
||
9912 | dwSize: DWORD; // Size of structure |
||
9913 | dwFlags: DWORD; // Not used. Must be zero. |
||
9914 | case Integer of |
||
9915 | 0: ( |
||
9916 | lpszSSPIProvider: LPWSTR; // SSPI provider name - Unicode |
||
9917 | lpszCAPIProvider: LPWSTR; // CAPI provider name - Unicode |
||
9918 | dwCAPIProviderType: DWORD; // Crypto Service Provider type |
||
9919 | dwEncryptionAlgorithm: DWORD; // Encryption Algorithm type |
||
9920 | ); |
||
9921 | 1: ( |
||
9922 | lpszSSPIProviderA: LPSTR; // SSPI provider name - ANSI |
||
9923 | lpszCAPIProviderA: LPSTR; // CAPI provider name - ANSI |
||
9924 | ); |
||
9925 | end; |
||
9926 | |||
9927 | DPSECURITYDESC = TDPSecurityDesc; |
||
9928 | LPDPSECURITYDESC = PDPSecurityDesc; |
||
9929 | |||
9930 | (* |
||
9931 | * TDPAccountDesc |
||
9932 | * Used to describe a user membership account |
||
9933 | *) |
||
9934 | PDPAccountDesc = ^TDPAccountDesc; |
||
9935 | TDPAccountDesc = record |
||
9936 | dwSize: DWORD; // Size of structure |
||
9937 | dwFlags: DWORD; // Not used. Must be zero. |
||
9938 | case Integer of |
||
9939 | 0: ( |
||
9940 | lpszAccountID: LPWSTR; // Account identifier - Unicode |
||
9941 | ); |
||
9942 | 1: ( |
||
9943 | lpszAccountIDA: LPSTR; // Account identifier - ANSI |
||
9944 | ); |
||
9945 | end; |
||
9946 | |||
9947 | DPACCOUNTDESC = TDPAccountDesc; |
||
9948 | LPDPACCOUNTDESC = PDPAccountDesc; |
||
9949 | |||
9950 | (* |
||
9951 | * TDPLConnection |
||
9952 | * Used to hold all in the informaion needed to connect |
||
9953 | * an application to a session or create a session |
||
9954 | *) |
||
9955 | |||
9956 | PDPLConnection = ^TDPLConnection; |
||
9957 | TDPLConnection = record |
||
9958 | dwSize: DWORD; // Size of this structure |
||
9959 | dwFlags: DWORD; // Flags specific to this structure |
||
9960 | lpSessionDesc: PDPSessionDesc2; // Pointer to session desc to use on connect |
||
9961 | lpPlayerName: PDPName; // Pointer to Player name structure |
||
9962 | guidSP: TGUID; // GUID of the DPlay SP to use |
||
9963 | lpAddress: Pointer; // Address for service provider |
||
9964 | dwAddressSize: DWORD; // Size of address data |
||
9965 | end; |
||
9966 | |||
9967 | DPLCONNECTION = TDPLConnection; |
||
9968 | LPDPLCONNECTION = PDPLConnection; |
||
9969 | |||
9970 | (* |
||
9971 | * TDPChat |
||
9972 | * Used to hold the a DirectPlay chat message |
||
9973 | *) |
||
9974 | |||
9975 | PDPChat = ^TDPChat; |
||
9976 | TDPChat = record |
||
9977 | dwSize: DWORD; |
||
9978 | dwFlags: DWORD; |
||
9979 | case Integer of |
||
9980 | 0: ( |
||
9981 | lpszMessage: LPWSTR; // Message string - Unicode |
||
9982 | ); |
||
9983 | 1: ( |
||
9984 | lpszMessageA: LPSTR; // Message string - ANSI |
||
9985 | ); |
||
9986 | end; |
||
9987 | |||
9988 | DPCHAT = TDPChat; |
||
9989 | LPDPCHAT = PDPChat; |
||
9990 | |||
9991 | (* |
||
9992 | * SGBUFFER |
||
9993 | * Scatter Gather Buffer used for SendEx |
||
9994 | *) |
||
9995 | |||
9996 | PSGBuffer = ^TSGBuffer; |
||
9997 | TSGBuffer = record |
||
9998 | len: UINT; // length of buffer data |
||
9999 | pData: PUChar; // pointer to buffer data |
||
10000 | end; |
||
10001 | |||
10002 | SGBUFFER = TSGBuffer; |
||
10003 | LPSGBUFFER = PSGBuffer; |
||
10004 | |||
10005 | { Prototypes for DirectPlay callback functions } |
||
10006 | |||
10007 | { Callback for IDirectPlay2::EnumSessions } |
||
10008 | |||
10009 | TDPEnumSessionsCallback2 = function(const lpThisSD: TDPSessionDesc2; |
||
10010 | var lpdwTimeOut: DWORD; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10011 | LPDPENUMSESSIONSCALLBACK2 = TDPEnumSessionsCallback2; |
||
10012 | |||
10013 | const |
||
10014 | DPESC_TIMEDOUT = $00000001; |
||
10015 | |||
10016 | type |
||
10017 | TDPEnumPlayersCallback2 = function(dpId: TDPID; dwPlayerType: DWORD; |
||
10018 | const lpName: TDPName; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10019 | LPDPENUMPLAYERSCALLBACK2 = TDPEnumPlayersCallback2; |
||
10020 | |||
10021 | TDPEnumDPCallback = function(const lpguidSP: TGUID; lpSPName: LPWSTR; |
||
10022 | dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10023 | LPDPENUMDPCALLBACK = TDPEnumDPCallback; |
||
10024 | |||
10025 | TDPEnumDPCallbackA = function(const lpguidSP: TGUID; lpSPName: LPSTR; |
||
10026 | dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10027 | LPDPENUMDPCALLBACKA = TDPEnumDPCallbackA; |
||
10028 | |||
10029 | TDPEnumConnectionsCallback = function(const lpguidSP: TGUID; |
||
10030 | lpConnection: Pointer; dwConnectionSize: DWORD; const lpName: TDPName; |
||
10031 | dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10032 | LPDPENUMCONNECTIONSCALLBACK = TDPEnumConnectionsCallback; |
||
10033 | |||
10034 | { API's } |
||
10035 | |||
10036 | function DirectPlayEnumerateA(lpEnumDPCallback: TDPEnumDPCallbackA; |
||
10037 | lpContext: Pointer): HResult; stdcall; |
||
10038 | function DirectPlayEnumerateW(lpEnumDPCallback: TDPEnumDPCallback; |
||
10039 | lpContext: Pointer): HResult; stdcall; |
||
10040 | function DirectPlayEnumerate(lpEnumDPCallback: TDPEnumDPCallbackA; |
||
10041 | lpContext: Pointer): HResult; stdcall; |
||
10042 | |||
10043 | |||
10044 | { IDirectPlay2 (and IDirectPlay2A) Interface } |
||
10045 | |||
10046 | type |
||
10047 | IDirectPlay2 = interface(IUnknown) |
||
10048 | ['{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'] |
||
10049 | // IDirectPlay2 methods |
||
10050 | function AddPlayerToGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
||
10051 | function Close: HResult; stdcall; |
||
10052 | function CreateGroup(var lpidGroup: TDPID; const lpGroupName: TDPName; |
||
10053 | const lpData; dwDataSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
10054 | function CreatePlayer(var lpidPlayer: TDPID; const pPlayerName: TDPName; |
||
10055 | hEvent: THandle; const lpData; dwDataSize: DWORD; dwFliags: DWORD): HResult; stdcall; |
||
10056 | function DeletePlayerFromGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
||
10057 | function DestroyGroup(idGroup: TDPID): HResult; stdcall; |
||
10058 | function DestroyPlayer(idPlayer: TDPID): HResult; stdcall; |
||
10059 | function EnumGroupPlayers(idGroup: TDPID; const lpguidInstance: TGUID; |
||
10060 | lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
||
10061 | dwFlags: DWORD): HResult; stdcall; |
||
10062 | function EnumGroups(const lpguidInstance: TGUID; lpEnumPlayersCallback2: |
||
10063 | LPDPENUMPLAYERSCALLBACK2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10064 | function EnumPlayers(const lpguidInstance: TGUID; lpEnumPlayersCallback2: |
||
10065 | LPDPENUMPLAYERSCALLBACK2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10066 | function EnumSessions(const lpsd: TDPSessionDesc2; dwTimeout: DWORD; |
||
10067 | lpEnumSessionsCallback2: TDPEnumSessionsCallback2; lpContext: Pointer; |
||
10068 | dwFlags: DWORD): HResult; stdcall; |
||
10069 | function GetCaps(var lpDPCaps: TDPCaps; dwFlags: DWORD): HResult; stdcall; |
||
10070 | function GetGroupData(idGroup: TDPID; var lpData; var lpdwDataSize: DWORD; |
||
10071 | dwFlags: DWORD): HResult; stdcall; |
||
10072 | function GetGroupName(idGroup: TDPID; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10073 | function GetMessageCount(idPlayer: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
||
10074 | function GetPlayerAddress(idPlayer: TDPID; var lpAddress; |
||
10075 | var lpdwAddressSize: DWORD): HResult; stdcall; |
||
10076 | function GetPlayerCaps(idPlayer: TDPID; var lpPlayerCaps: TDPCaps; |
||
10077 | dwFlags: DWORD): HResult; stdcall; |
||
10078 | function GetPlayerData(idPlayer: TDPID; var lpData; var lpdwDataSize: DWORD; |
||
10079 | dwFlags: DWORD): HResult; stdcall; |
||
10080 | function GetPlayerName(idPlayer: TDPID; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10081 | function GetSessionDesc(var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10082 | function Initialize(const lpGUID: TGUID): HResult; stdcall; |
||
10083 | function Open(var lpsd: TDPSessionDesc2; dwFlags: DWORD): HResult; stdcall; |
||
10084 | function Receive(var lpidFrom: TDPID; var lpidTo: TDPID; dwFlags: DWORD; |
||
10085 | var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10086 | function Send(idFrom: TDPID; lpidTo: TDPID; dwFlags: DWORD; const lpData; |
||
10087 | lpdwDataSize: DWORD): HResult; stdcall; |
||
10088 | function SetGroupData(idGroup: TDPID; const lpData; dwDataSize: DWORD; |
||
10089 | dwFlags: DWORD): HResult; stdcall; |
||
10090 | function SetGroupName(idGroup: TDPID; const lpGroupName: TDPName; |
||
10091 | dwFlags: DWORD): HResult; stdcall; |
||
10092 | function SetPlayerData(idPlayer: TDPID; const lpData; dwDataSize: DWORD; |
||
10093 | dwFlags: DWORD): HResult; stdcall; |
||
10094 | function SetPlayerName(idPlayer: TDPID; const lpPlayerName: TDPName; |
||
10095 | dwFlags: DWORD): HResult; stdcall; |
||
10096 | function SetSessionDesc(const lpSessDesc: TDPSessionDesc2; dwFlags: DWORD): HResult; stdcall; |
||
10097 | end; |
||
10098 | |||
10099 | IDirectPlay2A = interface(IDirectPlay2) |
||
10100 | ['{9D460580-A822-11CF-960C-0080C7534E82}'] |
||
10101 | end; |
||
10102 | |||
10103 | { IDirectPlay3 (and IDirectPlay3A) Interface } |
||
10104 | |||
10105 | IDirectPlay3 = interface(IDirectPlay2) |
||
10106 | ['{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'] |
||
10107 | // IDirectPlay3 methods |
||
10108 | function AddGroupToGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
||
10109 | function CreateGroupInGroup(idParentGroup: TDPID; var lpidGroup: TDPID; |
||
10110 | var lpGroupName: TDPName; const lpData; dwDataSize: DWORD; |
||
10111 | dwFlags: DWORD): HResult; stdcall; |
||
10112 | function DeleteGroupFromGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
||
10113 | function EnumConnections(const lpguidApplication: TGUID; |
||
10114 | lpEnumCallback: TDPEnumConnectionsCallback; lpContext: Pointer; |
||
10115 | dwFlags: DWORD): HResult; stdcall; |
||
10116 | function EnumGroupsInGroup(idGroup: TDPID; const lpguidInstance: TGUID; |
||
10117 | lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
||
10118 | dwFlags: DWORD): HResult; stdcall; |
||
10119 | function GetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
||
10120 | var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10121 | function InitializeConnection(lpConnection: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10122 | function SecureOpen(const lpsd: TDPSessionDesc2; dwFlags: DWORD; |
||
10123 | const lpSecurity: TDPSecurityDesc; const lpCredentials: TDPCredentials): HResult; stdcall; |
||
10124 | function SendChatMessage(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
||
10125 | const lpChatMessage: TDPChat): HResult; stdcall; |
||
10126 | function SetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
||
10127 | const lpConnection: TDPLConnection): HResult; stdcall; |
||
10128 | function StartSession(dwFlags: DWORD; idGroup: TDPID): HResult; stdcall; |
||
10129 | function GetGroupFlags(idGroup: TDPID; var lpdwFlags: DWORD): HResult; stdcall; |
||
10130 | function GetGroupParent(idGroup: TDPID; var lpidParent: TDPID): HResult; stdcall; |
||
10131 | function GetPlayerAccount(idPlayer: TDPID; dwFlags: DWORD; var lpData; |
||
10132 | var lpdwDataSize: DWORD): HResult; stdcall; |
||
10133 | function GetPlayerFlags(idPlayer: TDPID; var lpdwFlags: DWORD): HResult; stdcall; |
||
10134 | end; |
||
10135 | |||
10136 | IDirectPlay3A = interface(IDirectPlay3) |
||
10137 | ['{133EFE41-32DC-11D0-9CFB-00A0C90A43CB}'] |
||
10138 | end; |
||
10139 | |||
10140 | { IDirectPlay4 (and IDirectPlay4A) Interface } |
||
10141 | |||
10142 | IDirectPlay4 = interface(IDirectPlay3) |
||
10143 | ['{0AB1C530-4745-11D1-A7A1-0000F803ABFC}'] |
||
10144 | // IDirectPlay4 methods |
||
10145 | function GetGroupOwner(idGroup: TDPID; var idOwner: TDPID): HResult; stdcall; |
||
10146 | function SetGroupOwner(idGroup: TDPID; idOwner: TDPID): HResult; stdcall; |
||
10147 | function SendEx(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; const pData; |
||
10148 | dwDataSize: DWORD; dwPriority: DWORD; dwTimeout: DWORD; |
||
10149 | lpContext: Pointer; lpdwMsgId: PDWORD): HResult; stdcall; |
||
10150 | function GetMessageQueue(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
||
10151 | var lpdwNumMsgs: DWORD; var lpdwNumBytes: DWORD): HResult; stdcall; |
||
10152 | function CancelMessage(dwMessageID: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
10153 | function CancelPriority(dwMinPriority: DWORD; dwMaxPriority: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
10154 | end; |
||
10155 | |||
10156 | IDirectPlay4A = interface(IDirectPlay4) |
||
10157 | ['{0AB1C531-4745-11D1-A7A1-0000F803ABFC}'] |
||
10158 | end; |
||
10159 | |||
10160 | const |
||
10161 | { EnumConnections API flags } |
||
10162 | |||
10163 | DPCONNECTION_DIRECTPLAY = $00000001; |
||
10164 | DPCONNECTION_DIRECTPLAYLOBBY = $00000002; |
||
10165 | |||
10166 | { EnumPlayers API flags } |
||
10167 | |||
10168 | DPENUMPLAYERS_ALL = $00000000; |
||
10169 | DPENUMGROUPS_ALL = DPENUMPLAYERS_ALL; |
||
10170 | DPENUMPLAYERS_LOCAL = $00000008; |
||
10171 | DPENUMGROUPS_LOCAL = DPENUMPLAYERS_LOCAL; |
||
10172 | DPENUMPLAYERS_REMOTE = $00000010; |
||
10173 | DPENUMGROUPS_REMOTE = DPENUMPLAYERS_REMOTE; |
||
10174 | DPENUMPLAYERS_GROUP = $00000020; |
||
10175 | DPENUMPLAYERS_SESSION = $00000080; |
||
10176 | DPENUMGROUPS_SESSION = DPENUMPLAYERS_SESSION; |
||
10177 | DPENUMPLAYERS_SERVERPLAYER = $00000100; |
||
10178 | DPENUMPLAYERS_SPECTATOR = $00000200; |
||
10179 | DPENUMGROUPS_SHORTCUT = $00000400; |
||
10180 | DPENUMGROUPS_STAGINGAREA = $00000800; |
||
10181 | DPENUMGROUPS_HIDDEN = $00001000; |
||
10182 | DPENUMPLAYERS_OWNER = $00002000; |
||
10183 | |||
10184 | { CreatePlayer API flags } |
||
10185 | |||
10186 | DPPLAYER_SERVERPLAYER = DPENUMPLAYERS_SERVERPLAYER; |
||
10187 | DPPLAYER_SPECTATOR = DPENUMPLAYERS_SPECTATOR; |
||
10188 | DPPLAYER_LOCAL = DPENUMPLAYERS_LOCAL; |
||
10189 | DPPLAYER_OWNER = DPENUMPLAYERS_OWNER; |
||
10190 | |||
10191 | { CreateGroup API flags } |
||
10192 | |||
10193 | DPGROUP_STAGINGAREA = DPENUMGROUPS_STAGINGAREA; |
||
10194 | DPGROUP_LOCAL = DPENUMGROUPS_LOCAL; |
||
10195 | DPGROUP_HIDDEN = DPENUMGROUPS_HIDDEN; |
||
10196 | |||
10197 | { EnumSessions API flags } |
||
10198 | |||
10199 | DPENUMSESSIONS_AVAILABLE = $00000001; |
||
10200 | DPENUMSESSIONS_ALL = $00000002; |
||
10201 | DPENUMSESSIONS_ASYNC = $00000010; |
||
10202 | DPENUMSESSIONS_STOPASYNC = $00000020; |
||
10203 | DPENUMSESSIONS_PASSWORDREQUIRED = $00000040; |
||
10204 | DPENUMSESSIONS_RETURNSTATUS = $00000080; |
||
10205 | |||
10206 | { GetCaps and GetPlayerCaps API flags } |
||
10207 | |||
10208 | DPGETCAPS_GUARANTEED = $00000001; |
||
10209 | |||
10210 | { GetGroupData, GetPlayerData API flags } |
||
10211 | |||
10212 | DPGET_REMOTE = $00000000; |
||
10213 | DPGET_LOCAL = $00000001; |
||
10214 | |||
10215 | { Open API flags } |
||
10216 | |||
10217 | DPOPEN_JOIN = $00000001; |
||
10218 | DPOPEN_CREATE = $00000002; |
||
10219 | DPOPEN_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
||
10220 | |||
10221 | { TDPLConnection flags } |
||
10222 | |||
10223 | DPLCONNECTION_CREATESESSION = DPOPEN_CREATE; |
||
10224 | DPLCONNECTION_JOINSESSION = DPOPEN_JOIN; |
||
10225 | |||
10226 | { Receive API flags } |
||
10227 | |||
10228 | DPRECEIVE_ALL = $00000001; |
||
10229 | DPRECEIVE_TOPLAYER = $00000002; |
||
10230 | DPRECEIVE_FROMPLAYER = $00000004; |
||
10231 | DPRECEIVE_PEEK = $00000008; |
||
10232 | |||
10233 | { Send API flags } |
||
10234 | |||
10235 | DPSEND_GUARANTEED = $00000001; |
||
10236 | DPSEND_HIGHPRIORITY = $00000002; |
||
10237 | DPSEND_OPENSTREAM = $00000008; |
||
10238 | DPSEND_CLOSESTREAM = $00000010; |
||
10239 | DPSEND_SIGNED = $00000020; |
||
10240 | DPSEND_ENCRYPTED = $00000040; |
||
10241 | DPSEND_LOBBYSYSTEMMESSAGE = $00000080; |
||
10242 | DPSEND_ASYNC = $00000200; |
||
10243 | DPSEND_NOSENDCOMPLETEMSG = $00000400; |
||
10244 | DPSEND_MAX_PRI = $0000FFFF; |
||
10245 | DPSEND_MAX_PRIORITY = DPSEND_MAX_PRI; |
||
10246 | |||
10247 | { SetGroupData, SetGroupName, SetPlayerData, SetPlayerName, |
||
10248 | SetSessionDesc API flags. } |
||
10249 | |||
10250 | DPSET_REMOTE = $00000000; |
||
10251 | DPSET_LOCAL = $00000001; |
||
10252 | DPSET_GUARANTEED = $00000002; |
||
10253 | |||
10254 | { GetMessageQueue API flags. } |
||
10255 | |||
10256 | DPMESSAGEQUEUE_SEND = $00000001; // Default |
||
10257 | DPMESSAGEQUEUE_RECEIVE = $00000002; // Default |
||
10258 | |||
10259 | { Connect API flags } |
||
10260 | |||
10261 | DPCONNECT_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
||
10262 | |||
10263 | { DirectPlay system messages and message data structures } |
||
10264 | |||
10265 | DPSYS_CREATEPLAYERORGROUP = $0003; |
||
10266 | DPSYS_DESTROYPLAYERORGROUP = $0005; |
||
10267 | DPSYS_ADDPLAYERTOGROUP = $0007; |
||
10268 | DPSYS_DELETEPLAYERFROMGROUP = $0021; |
||
10269 | DPSYS_SESSIONLOST = $0031; |
||
10270 | DPSYS_HOST = $0101; |
||
10271 | DPSYS_SETPLAYERORGROUPDATA = $0102; |
||
10272 | DPSYS_SETPLAYERORGROUPNAME = $0103; |
||
10273 | DPSYS_SETSESSIONDESC = $0104; |
||
10274 | DPSYS_ADDGROUPTOGROUP = $0105; |
||
10275 | DPSYS_DELETEGROUPFROMGROUP = $0106; |
||
10276 | DPSYS_SECUREMESSAGE = $0107; |
||
10277 | DPSYS_STARTSESSION = $0108; |
||
10278 | DPSYS_CHAT = $0109; |
||
10279 | DPSYS_SETGROUPOWNER = $010A; |
||
10280 | DPSYS_SENDCOMPLETE = $010d; |
||
10281 | |||
10282 | |||
10283 | { Used in the dwPlayerType field to indicate if it applies to a group or a player} |
||
10284 | |||
10285 | DPPLAYERTYPE_GROUP = $00000000; |
||
10286 | DPPLAYERTYPE_PLAYER = $00000001; |
||
10287 | |||
10288 | { TDPMsg_Generic } |
||
10289 | |||
10290 | type |
||
10291 | PDPMsg_Generic = ^TDPMsg_Generic; |
||
10292 | TDPMsg_Generic = record |
||
10293 | dwType: DWORD; // Message type |
||
10294 | end; |
||
10295 | |||
10296 | DPMSG_GENERIC = TDPMsg_Generic; |
||
10297 | LPDPMSG_GENERIC = PDPMsg_Generic; |
||
10298 | |||
10299 | { TDPMsg_CreatePlayerOrGroup } |
||
10300 | |||
10301 | PDPMsg_CreatePlayerOrGroup = ^TDPMsg_CreatePlayerOrGroup; |
||
10302 | TDPMsg_CreatePlayerOrGroup = record |
||
10303 | dwType: DWORD; // Message type |
||
10304 | dwPlayerType: DWORD; // Is it a player or group |
||
10305 | dpId: TDPID; // ID of the player or group |
||
10306 | dwCurrentPlayers: DWORD; // current # players & groups in session |
||
10307 | lpData: Pointer; // pointer to remote data |
||
10308 | dwDataSize: DWORD; // size of remote data |
||
10309 | dpnName: TDPName; // structure with name info |
||
10310 | // the following fields are only available when using |
||
10311 | // the IDirectPlay3 interface or greater |
||
10312 | dpIdParent: TDPID; // id of parent group |
||
10313 | dwFlags: DWORD; // player or group flags |
||
10314 | end; |
||
10315 | |||
10316 | DPMSG_CREATEPLAYERORGROUP = TDPMsg_CreatePlayerOrGroup; |
||
10317 | LPDPMSG_CREATEPLAYERORGROUP = PDPMsg_CreatePlayerOrGroup; |
||
10318 | |||
10319 | { TDPMsg_DestroyPlayerOrGroup } |
||
10320 | |||
10321 | PDPMsg_DestroyPlayerOrGroup = ^TDPMsg_DestroyPlayerOrGroup; |
||
10322 | TDPMsg_DestroyPlayerOrGroup = record |
||
10323 | dwType: DWORD; // Message type |
||
10324 | dwPlayerType: DWORD; // Is it a player or group |
||
10325 | dpId: TDPID; // player ID being deleted |
||
10326 | lpLocalData: Pointer; // copy of players local data |
||
10327 | dwLocalDataSize: DWORD; // sizeof local data |
||
10328 | lpRemoteData: Pointer; // copy of players remote data |
||
10329 | dwRemoteDataSize: DWORD; // sizeof remote data |
||
10330 | // the following fields are only available when using |
||
10331 | // the IDirectPlay3 interface or greater |
||
10332 | dpnName: TDPName; // structure with name info |
||
10333 | dpIdParent: TDPID; // id of parent group |
||
10334 | dwFlags: DWORD; // player or group flags |
||
10335 | end; |
||
10336 | |||
10337 | DPMSG_DESTROYPLAYERORGROUP = TDPMsg_DestroyPlayerOrGroup; |
||
10338 | LPDPMSG_DESTROYPLAYERORGROUP = PDPMsg_DestroyPlayerOrGroup; |
||
10339 | |||
10340 | { TDPMsg_AddPlayerOrGroup } |
||
10341 | |||
10342 | PDPMsg_AddPlayerOrGroup = ^TDPMsg_AddPlayerOrGroup; |
||
10343 | TDPMsg_AddPlayerOrGroup = record |
||
10344 | dwType: DWORD; // Message type |
||
10345 | dpIdGroup: TDPID; // group ID being added to |
||
10346 | dpIdPlayer: TDPID; // player ID being added |
||
10347 | end; |
||
10348 | |||
10349 | DPMSG_ADDPLAYERTOGROUP = TDPMsg_AddPlayerOrGroup; |
||
10350 | LPDPMSG_ADDPLAYERTOGROUP = PDPMsg_AddPlayerOrGroup; |
||
10351 | |||
10352 | { TDPMsg_DeletePlayerFromGroup } |
||
10353 | |||
10354 | TDPMsg_DeletePlayerFromGroup = TDPMsg_AddPlayerOrGroup; |
||
10355 | PDPMsg_DeletePlayerFromGroup = PDPMsg_AddPlayerOrGroup; |
||
10356 | |||
10357 | DPMSG_DELETEPLAYERFROMGROUP = TDPMsg_DeletePlayerFromGroup; |
||
10358 | LPDPMSG_DELETEPLAYERFROMGROUP = PDPMsg_DeletePlayerFromGroup; |
||
10359 | |||
10360 | { TDPMsg_AddGroupToGroup } |
||
10361 | |||
10362 | PDPMsg_AddGroupToGroup = ^TDPMsg_AddGroupToGroup; |
||
10363 | TDPMsg_AddGroupToGroup = record |
||
10364 | dwType: DWORD; // Message type |
||
10365 | dpIdParentGroup: TDPID; // group ID being added to |
||
10366 | dpIdGroup: TDPID; // group ID being added |
||
10367 | end; |
||
10368 | |||
10369 | DPMSG_ADDGROUPTOGROUP = TDPMsg_AddGroupToGroup; |
||
10370 | LPDPMSG_ADDGROUPTOGROUP = PDPMsg_AddGroupToGroup; |
||
10371 | |||
10372 | { TDPMsg_DeleteGroupFromGroup } |
||
10373 | |||
10374 | TDPMsg_DeleteGroupFromGroup = TDPMsg_AddGroupToGroup; |
||
10375 | PDPMsg_DeleteGroupFromGroup = PDPMsg_AddGroupToGroup; |
||
10376 | |||
10377 | DPMSG_DELETEGROUPFROMGROUP = TDPMsg_DeleteGroupFromGroup; |
||
10378 | LPDPMSG_DELETEGROUPFROMGROUP = PDPMsg_DeleteGroupFromGroup; |
||
10379 | |||
10380 | { TDPMsg_SetPlayerOrGroupData } |
||
10381 | |||
10382 | PDPMsg_SetPlayerOrGroupData = ^TDPMsg_SetPlayerOrGroupData; |
||
10383 | TDPMsg_SetPlayerOrGroupData = record |
||
10384 | dwType: DWORD; // Message type |
||
10385 | dwPlayerType: DWORD; // Is it a player or group |
||
10386 | dpId: TDPID; // ID of player or group |
||
10387 | lpData: Pointer; // pointer to remote data |
||
10388 | dwDataSize: DWORD; // size of remote data |
||
10389 | end; |
||
10390 | |||
10391 | DPMSG_SETPLAYERORGROUPDATA = TDPMsg_SetPlayerOrGroupData; |
||
10392 | LPDPMSG_SETPLAYERORGROUPDATA = PDPMsg_SetPlayerOrGroupData; |
||
10393 | |||
10394 | { TDPMsg_SetPlayerOrGroupName } |
||
10395 | |||
10396 | PDPMsg_SetPlayerOrGroupName = ^TDPMsg_SetPlayerOrGroupName; |
||
10397 | TDPMsg_SetPlayerOrGroupName = record |
||
10398 | dwType: DWORD; // Message type |
||
10399 | dwPlayerType: DWORD; // Is it a player or group |
||
10400 | dpId: TDPID; // ID of player or group |
||
10401 | dpnName: TDPName; // structure with new name info |
||
10402 | end; |
||
10403 | |||
10404 | DPMSG_SETPLAYERORGROUPNAME = TDPMsg_SetPlayerOrGroupName; |
||
10405 | LPDPMSG_SETPLAYERORGROUPNAME = PDPMsg_SetPlayerOrGroupName; |
||
10406 | |||
10407 | { TDPMsg_SetSessionDesc } |
||
10408 | |||
10409 | PDPMsg_SetSessionDesc = ^TDPMsg_SetSessionDesc; |
||
10410 | TDPMsg_SetSessionDesc = record |
||
10411 | dwType: DWORD; // Message type |
||
10412 | dpDesc: TDPSessionDesc2; // Session desc |
||
10413 | end; |
||
10414 | |||
10415 | DPMSG_SETSESSIONDESC = TDPMsg_SetSessionDesc; |
||
10416 | LPDPMSG_SETSESSIONDESC = PDPMsg_SetSessionDesc; |
||
10417 | |||
10418 | { TDPMsg_Host } |
||
10419 | |||
10420 | PDPMsg_Host = ^TDPMsg_Host; |
||
10421 | TDPMsg_Host = TDPMsg_Generic; |
||
10422 | |||
10423 | DPMSG_HOST = TDPMsg_Host; |
||
10424 | LPDPMSG_HOST = PDPMsg_Host; |
||
10425 | |||
10426 | { TDPMsg_SessionLost } |
||
10427 | |||
10428 | PDPMsg_SessionLost = ^TDPMsg_SessionLost; |
||
10429 | TDPMsg_SessionLost = TDPMsg_Generic; |
||
10430 | |||
10431 | DPMSG_SESSIONLOST = TDPMsg_SessionLost; |
||
10432 | LPDPMSG_SESSIONLOST = PDPMsg_SessionLost; |
||
10433 | |||
10434 | { TDPMsg_SecureMessage } |
||
10435 | |||
10436 | PDPMsg_SecureMessage = ^TDPMsg_SecureMessage; |
||
10437 | TDPMsg_SecureMessage = record |
||
10438 | dwType: DWORD; // Message Type |
||
10439 | dwFlags: DWORD; // Signed/Encrypted |
||
10440 | dpIdFrom: TDPID; // ID of Sending Player |
||
10441 | lpData: Pointer; // Player message |
||
10442 | dwDataSize: DWORD; // Size of player message |
||
10443 | end; |
||
10444 | |||
10445 | DPMSG_SECUREMESSAGE = TDPMsg_SecureMessage; |
||
10446 | LPDPMSG_SECUREMESSAGE = PDPMsg_SecureMessage; |
||
10447 | |||
10448 | { TDPMsg_StartSession } |
||
10449 | |||
10450 | PDPMsg_StartSession = ^TDPMsg_StartSession; |
||
10451 | TDPMsg_StartSession = record |
||
10452 | dwType: DWORD; // Message type |
||
10453 | lpConn: PDPLConnection; // TDPLConnection structure |
||
10454 | end; |
||
10455 | |||
10456 | DPMSG_STARTSESSION = TDPMsg_StartSession; |
||
10457 | LPDPMSG_STARTSESSION = PDPMsg_StartSession; |
||
10458 | |||
10459 | { TDPMsg_Chat } |
||
10460 | |||
10461 | PDPMsg_Chat = ^TDPMsg_Chat; |
||
10462 | TDPMsg_Chat = record |
||
10463 | dwType: DWORD; // Message type |
||
10464 | dwFlags: DWORD; // Message flags |
||
10465 | idFromPlayer: TDPID; // ID of the Sending Player |
||
10466 | idToPlayer: TDPID; // ID of the To Player |
||
10467 | idToGroup: TDPID; // ID of the To Group |
||
10468 | lpChat: PDPChat; // Pointer to a structure containing the chat message |
||
10469 | end; |
||
10470 | |||
10471 | DPMSG_CHAT = TDPMsg_Chat; |
||
10472 | LPDPMSG_CHAT = PDPMsg_Chat; |
||
10473 | |||
10474 | { TDPMsg_SetGroupOwner } |
||
10475 | |||
10476 | PDPMsg_SetGroupOwner = ^TDPMsg_SetGroupOwner; |
||
10477 | TDPMsg_SetGroupOwner = record |
||
10478 | dwType: DWORD; // Message type |
||
10479 | idGroup: TDPID; // ID of the group |
||
10480 | idNewOwner: TDPID; // ID of the player that is the new owner |
||
10481 | idOldOwner: TDPID; // ID of the player that used to be the owner |
||
10482 | end; |
||
10483 | |||
10484 | DPMSG_SETGROUPOWNER = TDPMsg_SetGroupOwner; |
||
10485 | LPDPMSG_SETGROUPOWNER = PDPMsg_SetGroupOwner; |
||
10486 | |||
10487 | { TDPMsg_SendComplete } |
||
10488 | |||
10489 | PDPMsg_SendComplete= ^TDPMsg_SendComplete; |
||
10490 | TDPMsg_SendComplete = record |
||
10491 | dwType: DWORD; // Message type |
||
10492 | idFrom: TDPID; |
||
10493 | idTo: TDPID; |
||
10494 | dwFlags: DWORD; |
||
10495 | dwPriority: DWORD; |
||
10496 | dwTimeout: DWORD; |
||
10497 | lpvContext: Pointer; |
||
10498 | dwMsgID: DWORD; |
||
10499 | hr: HRESULT; |
||
10500 | dwSendTime: DWORD; |
||
10501 | end; |
||
10502 | |||
10503 | DPMSG_SENDCOMPLETE = TDPMsg_SendComplete; |
||
10504 | LPDPMSG_SENDCOMPLETE = PDPMsg_SendComplete; |
||
10505 | |||
10506 | { DIRECTPLAY ERRORS } |
||
10507 | const |
||
10508 | DP_OK = HResult(S_OK); |
||
10509 | DPERR_ALREADYINITIALIZED = HResult($88770000 + 5); |
||
10510 | DPERR_ACCESSDENIED = HResult($88770000 + 10); |
||
10511 | DPERR_ACTIVEPLAYERS = HResult($88770000 + 20); |
||
10512 | DPERR_BUFFERTOOSMALL = HResult($88770000 + 30); |
||
10513 | DPERR_CANTADDPLAYER = HResult($88770000 + 40); |
||
10514 | DPERR_CANTCREATEGROUP = HResult($88770000 + 50); |
||
10515 | DPERR_CANTCREATEPLAYER = HResult($88770000 + 60); |
||
10516 | DPERR_CANTCREATESESSION = HResult($88770000 + 70); |
||
10517 | DPERR_CAPSNOTAVAILABLEYET = HResult($88770000 + 80); |
||
10518 | DPERR_EXCEPTION = HResult($88770000 + 90); |
||
10519 | DPERR_GENERIC = HResult(E_FAIL); |
||
10520 | DPERR_INVALIDFLAGS = HResult($88770000 + 120); |
||
10521 | DPERR_INVALIDOBJECT = HResult($88770000 + 130); |
||
10522 | DPERR_INVALIDPARAM = HResult(E_INVALIDARG); |
||
10523 | DPERR_INVALIDPARAMS = HResult(DPERR_INVALIDPARAM); |
||
10524 | DPERR_INVALIDPLAYER = HResult($88770000 + 150); |
||
10525 | DPERR_INVALIDGROUP = HResult($88770000 + 155); |
||
10526 | DPERR_NOCAPS = HResult($88770000 + 160); |
||
10527 | DPERR_NOCONNECTION = HResult($88770000 + 170); |
||
10528 | DPERR_NOMEMORY = HResult(E_OUTOFMEMORY); |
||
10529 | DPERR_OUTOFMEMORY = HResult(DPERR_NOMEMORY); |
||
10530 | DPERR_NOMESSAGES = HResult($88770000 + 190); |
||
10531 | DPERR_NONAMESERVERFOUND = HResult($88770000 + 200); |
||
10532 | DPERR_NOPLAYERS = HResult($88770000 + 210); |
||
10533 | DPERR_NOSESSIONS = HResult($88770000 + 220); |
||
10534 | DPERR_PENDING = HResult(E_PENDING); |
||
10535 | DPERR_SENDTOOBIG = HResult($88770000 + 230); |
||
10536 | DPERR_TIMEOUT = HResult($88770000 + 240); |
||
10537 | DPERR_UNAVAILABLE = HResult($88770000 + 250); |
||
10538 | DPERR_UNSUPPORTED = HResult(E_NOTIMPL); |
||
10539 | DPERR_BUSY = HResult($88770000 + 270); |
||
10540 | DPERR_USERCANCEL = HResult($88770000 + 280); |
||
10541 | DPERR_NOINTERFACE = HResult(E_NOINTERFACE); |
||
10542 | DPERR_CANNOTCREATESERVER = HResult($88770000 + 290); |
||
10543 | DPERR_PLAYERLOST = HResult($88770000 + 300); |
||
10544 | DPERR_SESSIONLOST = HResult($88770000 + 310); |
||
10545 | DPERR_UNINITIALIZED = HResult($88770000 + 320); |
||
10546 | DPERR_NONEWPLAYERS = HResult($88770000 + 330); |
||
10547 | DPERR_INVALIDPASSWORD = HResult($88770000 + 340); |
||
10548 | DPERR_CONNECTING = HResult($88770000 + 350); |
||
10549 | DPERR_CONNECTIONLOST = HResult($88770000 + 360); |
||
10550 | DPERR_UNKNOWNMESSAGE = HResult($88770000 + 370); |
||
10551 | DPERR_CANCELFAILED = HResult($88770000 + 380); |
||
10552 | DPERR_INVALIDPRIORITY = HResult($88770000 + 390); |
||
10553 | DPERR_NOTHANDLED = HResult($88770000 + 400); |
||
10554 | DPERR_CANCELLED = HResult($88770000 + 410); |
||
10555 | DPERR_ABORTED = HResult($88770000 + 420); |
||
10556 | DPERR_BUFFERTOOLARGE = HResult($88770000 + 1000); |
||
10557 | DPERR_CANTCREATEPROCESS = HResult($88770000 + 1010); |
||
10558 | DPERR_APPNOTSTARTED = HResult($88770000 + 1020); |
||
10559 | DPERR_INVALIDINTERFACE = HResult($88770000 + 1030); |
||
10560 | DPERR_NOSERVICEPROVIDER = HResult($88770000 + 1040); |
||
10561 | DPERR_UNKNOWNAPPLICATION = HResult($88770000 + 1050); |
||
10562 | DPERR_NOTLOBBIED = HResult($88770000 + 1070); |
||
10563 | DPERR_SERVICEPROVIDERLOADED = HResult($88770000 + 1080); |
||
10564 | DPERR_ALREADYREGISTERED = HResult($88770000 + 1090); |
||
10565 | DPERR_NOTREGISTERED = HResult($88770000 + 1100); |
||
10566 | |||
10567 | { Security related errors } |
||
10568 | |||
10569 | DPERR_AUTHENTICATIONFAILED = HResult($88770000 + 2000); |
||
10570 | DPERR_CANTLOADSSPI = HResult($88770000 + 2010); |
||
10571 | DPERR_ENCRYPTIONFAILED = HResult($88770000 + 2020); |
||
10572 | DPERR_SIGNFAILED = HResult($88770000 + 2030); |
||
10573 | DPERR_CANTLOADSECURITYPACKAGE = HResult($88770000 + 2040); |
||
10574 | DPERR_ENCRYPTIONNOTSUPPORTED = HResult($88770000 + 2050); |
||
10575 | DPERR_CANTLOADCAPI = HResult($88770000 + 2060); |
||
10576 | DPERR_NOTLOGGEDIN = HResult($88770000 + 2070); |
||
10577 | DPERR_LOGONDENIED = HResult($88770000 + 2080); |
||
10578 | |||
10579 | // define this to ignore obsolete interfaces and constants |
||
10580 | |||
10581 | DPOPEN_OPENSESSION = DPOPEN_JOIN; |
||
10582 | DPOPEN_CREATESESSION = DPOPEN_CREATE; |
||
10583 | |||
10584 | DPENUMSESSIONS_PREVIOUS = $00000004; |
||
10585 | |||
10586 | DPENUMPLAYERS_PREVIOUS = $00000004; |
||
10587 | |||
10588 | DPSEND_GUARANTEE = DPSEND_GUARANTEED; |
||
10589 | DPSEND_TRYONCE = $00000004; |
||
10590 | |||
10591 | DPCAPS_NAMESERVICE = $00000001; |
||
10592 | DPCAPS_NAMESERVER = DPCAPS_ISHOST; |
||
10593 | DPCAPS_GUARANTEED = $00000004; |
||
10594 | |||
10595 | DPLONGNAMELEN = 52; |
||
10596 | DPSHORTNAMELEN = 20; |
||
10597 | DPSESSIONNAMELEN = 32; |
||
10598 | DPPASSWORDLEN = 16; |
||
10599 | DPUSERRESERVED = 16; |
||
10600 | |||
10601 | DPSYS_ADDPLAYER = $0003; |
||
10602 | DPSYS_DELETEPLAYER = $0005; |
||
10603 | |||
10604 | DPSYS_DELETEGROUP = $0020; |
||
10605 | DPSYS_DELETEPLAYERFROMGRP = $0021; |
||
10606 | DPSYS_CONNECT = $484b; |
||
10607 | |||
10608 | { TDPMsg_AddPlayer } |
||
10609 | |||
10610 | type |
||
10611 | PDPMsg_AddPlayer = ^TDPMsg_AddPlayer; |
||
10612 | TDPMsg_AddPlayer = record |
||
10613 | dwType: DWORD; |
||
10614 | dwPlayerType: DWORD; |
||
10615 | dpId: TDPID; |
||
10616 | szLongName: array[0..DPLONGNAMELEN-1] of Char; |
||
10617 | szShortName: array[0..DPSHORTNAMELEN-1] of Char; |
||
10618 | dwCurrentPlayers: DWORD; |
||
10619 | end; |
||
10620 | |||
10621 | DPMSG_ADDPLAYER = TDPMsg_AddPlayer; |
||
10622 | LPDPMSG_ADDPLAYER = PDPMsg_AddPlayer; |
||
10623 | |||
10624 | { TDPMsg_AddGroup } |
||
10625 | |||
10626 | PDPMsg_AddGroup = ^TDPMsg_AddGroup; |
||
10627 | TDPMsg_AddGroup = TDPMsg_AddPlayer; |
||
10628 | |||
10629 | DPMSG_ADDGROUP = TDPMsg_AddGroup; |
||
10630 | LPDPMSG_ADDGROUP = PDPMsg_AddGroup; |
||
10631 | |||
10632 | { TDPMsg_GroupAdd } |
||
10633 | |||
10634 | PDPMsg_GroupAdd = ^TDPMsg_GroupAdd; |
||
10635 | TDPMsg_GroupAdd = record |
||
10636 | dwType: DWORD; |
||
10637 | dpIdGroup: TDPID; |
||
10638 | dpIdPlayer: TDPID; |
||
10639 | end; |
||
10640 | |||
10641 | DPMSG_GROUPADD = TDPMsg_GroupAdd; |
||
10642 | LPDPMSG_GROUPADD = PDPMsg_GroupAdd; |
||
10643 | |||
10644 | { TDPMsg_GroupDelete } |
||
10645 | |||
10646 | PDPMsg_GroupDelete = ^TDPMsg_GroupDelete; |
||
10647 | TDPMsg_GroupDelete = TDPMsg_GroupAdd; |
||
10648 | |||
10649 | DPMSG_GROUPDELETE = TDPMsg_GroupDelete; |
||
10650 | LPDPMSG_GROUPDELETE = PDPMsg_GroupDelete; |
||
10651 | |||
10652 | { TDPMsg_DeletePlayer } |
||
10653 | |||
10654 | PDPMsg_DeletePlayer = ^TDPMsg_DeletePlayer; |
||
10655 | TDPMsg_DeletePlayer = record |
||
10656 | dwType: DWORD; |
||
10657 | dpId: TDPID; |
||
10658 | end; |
||
10659 | |||
10660 | DPMSG_DELETEPLAYER = TDPMsg_DeletePlayer; |
||
10661 | LPDPMSG_DELETEPLAYER = PDPMsg_DeletePlayer; |
||
10662 | |||
10663 | { TDPEnumPlayersCallback } |
||
10664 | |||
10665 | TDPEnumPlayersCallback = function(dpId: TDPID; lpFriendlyName: LPSTR; |
||
10666 | lpFormalName: LPSTR; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
||
10667 | LPDPENUMPLAYERSCALLBACK = TDPEnumPlayersCallback; |
||
10668 | |||
10669 | { TDPSessionDesc } |
||
10670 | |||
10671 | PDPSessionDesc = ^TDPSessionDesc; |
||
10672 | TDPSessionDesc = record |
||
10673 | dwSize: DWORD; |
||
10674 | guidSession: TGUID; |
||
10675 | dwSession: DWORD; |
||
10676 | dwMaxPlayers: DWORD; |
||
10677 | dwCurrentPlayers: DWORD; |
||
10678 | dwFlags: DWORD; |
||
10679 | szSessionName: array[0..DPSESSIONNAMELEN-1] of char; |
||
10680 | szUserField: array[0..DPUSERRESERVED-1] of char; |
||
10681 | dwReserved1: DWORD; |
||
10682 | szPassword: array[0..DPPASSWORDLEN-1] of char; |
||
10683 | dwReserved2: DWORD; |
||
10684 | dwUser1: DWORD; |
||
10685 | dwUser2: DWORD; |
||
10686 | dwUser3: DWORD; |
||
10687 | dwUser4: DWORD; |
||
10688 | end; |
||
10689 | |||
10690 | DPSESSIONDESC = TDPSessionDesc; |
||
10691 | LPDPSESSIONDESC = PDPSessionDesc; |
||
10692 | |||
10693 | { TDPEnumSessionsCallback } |
||
10694 | |||
10695 | TDPEnumSessionsCallback = function(var lpDPSessionDesc: TDPSessionDesc; |
||
10696 | lpContext: Pointer; var lpdwTimeOut: DWORD; dwFlags: DWORD): BOOL; stdcall; |
||
10697 | LPDPENUMSESSIONSCALLBACK = TDPEnumSessionsCallback; |
||
10698 | |||
10699 | type |
||
10700 | IDirectPlay = interface(IUnknown) |
||
10701 | // IDirectPlay methods |
||
10702 | function AddPlayerToGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
||
10703 | function Close: HResult; stdcall; |
||
10704 | function CreatePlayer(var lppidID: TDPID; lpPlayerFriendlyName: LPSTR; |
||
10705 | lpPlayerFormalName: LPSTR; lpEvent: PHandle): HResult; stdcall; |
||
10706 | function CreateGroup(var lppidID: TDPID; lpGroupFriendlyName: LPSTR; |
||
10707 | lpGroupFormalName: LPSTR): HResult; stdcall; |
||
10708 | function DeletePlayerFromGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
||
10709 | function DestroyPlayer(pidID: TDPID): HResult; stdcall; |
||
10710 | function DestroyGroup(pidID: TDPID): HResult; stdcall; |
||
10711 | function EnableNewPlayers(bEnable: BOOL): HResult; stdcall; |
||
10712 | function EnumGroupPlayers(pidGroupPID: TDPID; lpEnumPlayersCallback: |
||
10713 | LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10714 | function EnumGroups(dwSessionID: DWORD; lpEnumPlayersCallback: |
||
10715 | LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10716 | function EnumPlayers(dwSessionId: DWORD; lpEnumPlayersCallback: |
||
10717 | LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10718 | function EnumSessions(const lpSDesc: TDPSessionDesc; dwTimeout: DWORD; |
||
10719 | lpEnumSessionsCallback: TDPEnumPlayersCallback; lpContext: Pointer; |
||
10720 | dwFlags: DWORD): HResult; stdcall; |
||
10721 | function GetCaps(const lpDPCaps: TDPCaps): HResult; stdcall; |
||
10722 | function GetMessageCount(pidID: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
||
10723 | function GetPlayerCaps(pidID: TDPID; const lpDPPlayerCaps: TDPCaps): HResult; stdcall; |
||
10724 | function GetPlayerName(pidID: TDPID; lpPlayerFriendlyName: LPSTR; |
||
10725 | var lpdwFriendlyNameLength: DWORD; lpPlayerFormalName: LPSTR; |
||
10726 | var lpdwFormalNameLength: DWORD): HResult; stdcall; |
||
10727 | function Initialize(const lpGUID: TGUID): HResult; stdcall; |
||
10728 | function Open(const lpSDesc: TDPSessionDesc): HResult; stdcall; |
||
10729 | function Receive(var lppidFrom, lppidTo: TDPID; dwFlags: DWORD; |
||
10730 | var lpvBuffer; var lpdwSize: DWORD): HResult; stdcall; |
||
10731 | function SaveSession(lpSessionName: LPSTR): HResult; stdcall; |
||
10732 | function Send(pidFrom: TDPID; pidTo: TDPID; dwFlags: DWORD; |
||
10733 | const lpvBuffer; dwBuffSize: DWORD): HResult; stdcall; |
||
10734 | function SetPlayerName(pidID: TDPID; lpPlayerFriendlyName: LPSTR; |
||
10735 | lpPlayerFormalName: LPSTR): HResult; stdcall; |
||
10736 | end; |
||
10737 | |||
10738 | { API's (cont.) } |
||
10739 | |||
10740 | function DirectPlayCreate(const lpGUID: TGUID; out lplpDP: IDirectPlay; |
||
10741 | pUnk: IUnknown): HResult; stdcall; |
||
10742 | |||
10743 | (*==========================================================================; |
||
10744 | * |
||
10745 | * Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
||
10746 | * |
||
10747 | * File: dplobby.h |
||
10748 | * Content: DirectPlayLobby include file |
||
10749 | * |
||
10750 | ***************************************************************************) |
||
10751 | |||
10752 | { GUIDS used by DirectPlay objects } |
||
10753 | |||
10754 | const |
||
10755 | CLSID_DirectPlayLobby: TGUID = '{2FE8F810-B2A5-11D0-A787-0000F803ABFC}'; |
||
10756 | |||
10757 | IID_IDirectPlayLobby: TGUID = '{AF465C71-9588-11cf-A020-00AA006157AC}'; |
||
10758 | IID_IDirectPlayLobbyA: TGUID = '{26C66A70-B367-11cf-A024-00AA006157AC}'; |
||
10759 | IID_IDirectPlayLobby2: TGUID = '{0194C220-A303-11d0-9C4F-00A0C905425E}'; |
||
10760 | IID_IDirectPlayLobby2A: TGUID = '{1BB4AF80-A303-11d0-9C4F-00A0C905425E}'; |
||
10761 | IID_IDirectPlayLobby3: TGUID = '{2DB72490-652C-11d1-A7A8-0000F803ABFC}'; |
||
10762 | IID_IDirectPlayLobby3A: TGUID = '{2DB72491-652C-11d1-A7A8-0000F803ABFC}'; |
||
10763 | |||
10764 | { IDirectPlayLobby Structures } |
||
10765 | |||
10766 | { TDPLAppInfo } |
||
10767 | |||
10768 | type |
||
10769 | PDPLAppInfo = ^TDPLAppInfo; |
||
10770 | TDPLAppInfo = record |
||
10771 | dwSize: DWORD; // Size of this structure |
||
10772 | guidApplication: TGUID; // GUID of the Application |
||
10773 | case Integer of // Pointer to the Application Name |
||
10774 | 0: (lpszAppNameA: LPSTR); |
||
10775 | 1: (lpszAppName: LPWSTR); |
||
10776 | end; |
||
10777 | |||
10778 | DPLAPPINFO = TDPLAppInfo; |
||
10779 | LPDPLAPPINFO = PDPLAppInfo; |
||
10780 | |||
10781 | { TDPCompoundAddressElement } |
||
10782 | |||
10783 | PDPCompoundAddressElement = ^TDPCompoundAddressElement; |
||
10784 | TDPCompoundAddressElement = record |
||
10785 | guidDataType: TGUID; |
||
10786 | dwDataSize: DWORD; |
||
10787 | lpData: Pointer; |
||
10788 | end; |
||
10789 | |||
10790 | DPCOMPOUNDADDRESSELEMENT = TDPCompoundAddressElement; |
||
10791 | LPDPCOMPOUNDADDRESSELEMENT = PDPCompoundAddressElement; |
||
10792 | |||
10793 | { TDPApplicationDesc } |
||
10794 | |||
10795 | PDPApplicationDesc = ^TDPApplicationDesc; |
||
10796 | TDPApplicationDesc = record |
||
10797 | dwSize: DWORD; |
||
10798 | dwFlags: DWORD; |
||
10799 | case Integer of |
||
10800 | 0: ( |
||
10801 | lpszApplicationNameA: LPSTR; // ANSI |
||
10802 | guidApplication: TGUID; |
||
10803 | lpszFilenameA: LPSTR; |
||
10804 | lpszCommandLineA: LPSTR; |
||
10805 | lpszPathA: LPSTR; |
||
10806 | lpszCurrentDirectoryA: LPSTR; |
||
10807 | lpszDescriptionA: LPSTR; |
||
10808 | lpszDescriptionW: LPWSTR; |
||
10809 | ); |
||
10810 | 1: ( |
||
10811 | lpszApplicationName: LPWSTR; // Unicode |
||
10812 | _union1b: TGUID; |
||
10813 | lpszFilename: LPWSTR; |
||
10814 | lpszCommandLine: LPWSTR; |
||
10815 | lpszPath: LPWSTR; |
||
10816 | lpszCurrentDirectory: LPWSTR; |
||
10817 | _union1g: LPWSTR; |
||
10818 | ); |
||
10819 | end; |
||
10820 | |||
10821 | DPAPPLICATIONDESC = TDPApplicationDesc; |
||
10822 | LPDPAPPLICATIONDESC = PDPApplicationDesc; |
||
10823 | |||
10824 | { TDPApplicationDesc2 } |
||
10825 | |||
10826 | PDPApplicationDesc2 = ^TDPApplicationDesc2; |
||
10827 | TDPApplicationDesc2 = record |
||
10828 | dwSize: DWORD; |
||
10829 | dwFlags: DWORD; |
||
10830 | case Integer of |
||
10831 | 0: ( |
||
10832 | lpszApplicationNameA: LPSTR; // ANSI |
||
10833 | guidApplication: TGUID; |
||
10834 | lpszFilenameA: LPSTR; |
||
10835 | lpszCommandLineA: LPSTR; |
||
10836 | lpszPathA: LPSTR; |
||
10837 | lpszCurrentDirectoryA: LPSTR; |
||
10838 | lpszDescriptionA: LPSTR; |
||
10839 | lpszDescriptionW: LPWSTR; |
||
10840 | lpszAppLauncherNameA: LPSTR; |
||
10841 | ); |
||
10842 | 1: ( |
||
10843 | lpszApplicationName: LPWSTR; // Unicode |
||
10844 | _union1b: TGUID; |
||
10845 | lpszFilename: LPWSTR; |
||
10846 | lpszCommandLine: LPWSTR; |
||
10847 | lpszPath: LPWSTR; |
||
10848 | lpszCurrentDirectory: LPWSTR; |
||
10849 | _union1g: LPWSTR; |
||
10850 | lpszAppLauncherName: LPWSTR; |
||
10851 | ); |
||
10852 | end; |
||
10853 | |||
10854 | DPAPPLICATIONDESC2 = TDPApplicationDesc2; |
||
10855 | LPDPAPPLICATIONDESC2 = PDPApplicationDesc2; |
||
10856 | |||
10857 | { Enumeration Method Callback Prototypes } |
||
10858 | |||
10859 | TDPEnumAddressCallback = function(const guidDataType: TGUID; |
||
10860 | dwDataSize: DWORD; lpData: Pointer; lpContext: Pointer): BOOL; stdcall; |
||
10861 | LPDPENUMADDRESSCALLBACK = TDPEnumAddressCallback; |
||
10862 | |||
10863 | TDPLEnumAddressTypesCallback = function(const guidDataType: TGUID; |
||
10864 | lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
||
10865 | LPDPLENUMADDRESSTYPESCALLBACK = TDPLEnumAddressTypesCallback; |
||
10866 | |||
10867 | TDPLEnumLocalApplicationsCallback = function(const lpAppInfo: TDPLAppInfo; |
||
10868 | lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
||
10869 | LPDPLENUMLOCALAPPLICATIONSCALLBACK = TDPLEnumLocalApplicationsCallback; |
||
10870 | |||
10871 | { IDirectPlayLobby (and IDirectPlayLobbyA) Interface } |
||
10872 | |||
10873 | type |
||
10874 | IDirectPlayLobby = interface(IUnknown) |
||
10875 | ['{AF465C71-9588-11CF-A020-00AA006157AC}'] |
||
10876 | // IDirectPlayLobby methods |
||
10877 | function Connect(dwFlags: DWORD; out lplpDP: IDirectPlay2; |
||
10878 | pUnk: IUnknown): HResult; stdcall; |
||
10879 | function CreateAddress(const guidSP, guidDataType: TGUID; const lpData; |
||
10880 | dwDataSize: DWORD; var lpAddress; var lpdwAddressSize: DWORD): HResult; stdcall; |
||
10881 | function EnumAddress(lpEnumAddressCallback: TDPEnumAddressCallback; |
||
10882 | const lpAddress; dwAddressSize: DWORD; lpContext : Pointer): HResult; stdcall; |
||
10883 | function EnumAddressTypes(lpEnumAddressTypeCallback: |
||
10884 | TDPLEnumAddressTypesCallback; const guidSP: TGUID; lpContext: Pointer; |
||
10885 | dwFlags: DWORD): HResult; stdcall; |
||
10886 | function EnumLocalApplications(lpEnumLocalAppCallback: |
||
10887 | TDPLEnumLocalApplicationsCallback; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
||
10888 | function GetConnectionSettings(dwAppID: DWORD; var lpData: TDPLConnection; |
||
10889 | var lpdwDataSize: DWORD): HResult; stdcall; |
||
10890 | function ReceiveLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; |
||
10891 | var lpdwMessageFlags: DWORD; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
||
10892 | function RunApplication(dwFlags: DWORD; var lpdwAppId: DWORD; |
||
10893 | const lpConn: TDPLConnection; hReceiveEvent: THandle): HResult; stdcall; |
||
10894 | function SendLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; const lpData; |
||
10895 | dwDataSize: DWORD): HResult; stdcall; |
||
10896 | function SetConnectionSettings(dwFlags: DWORD; dwAppID: DWORD; |
||
10897 | const lpConn: TDPLConnection): HResult; stdcall; |
||
10898 | function SetLobbyMessageEvent(dwFlags: DWORD; dwAppID: DWORD; |
||
10899 | hReceiveEvent: THandle): HResult; stdcall; |
||
10900 | end; |
||
10901 | |||
10902 | IDirectPlayLobbyA = interface(IDirectPlayLobby) |
||
10903 | ['{26C66A70-B367-11CF-A024-00AA006157AC}'] |
||
10904 | end; |
||
10905 | |||
10906 | { IDirectPlayLobby2 (and IDirectPlayLobby2A) Interface } |
||
10907 | |||
10908 | IDirectPlayLobby2 = interface(IDirectPlayLobby) |
||
10909 | ['{0194C220-A303-11D0-9C4F-00A0C905425E}'] |
||
10910 | // IDirectPlayLobby2 methods |
||
10911 | function CreateCompoundAddress(const lpElements: TDPCompoundAddressElement; |
||
10912 | dwElementCount: DWORD; var lpAddress; var lpdwAddressSize: DWORD): HResult; stdcall; |
||
10913 | end; |
||
10914 | |||
10915 | IDirectPlayLobby2A = interface(IDirectPlayLobby2) |
||
10916 | ['{1BB4AF80-A303-11D0-9C4F-00A0C905425E}'] |
||
10917 | end; |
||
10918 | |||
10919 | { IDirectPlayLobby3 (and IDirectPlayLobby3A) Interface } |
||
10920 | |||
10921 | IDirectPlayLobby3 = interface(IDirectPlayLobby2) |
||
10922 | ['{2DB72490-652C-11d1-A7A8-0000F803ABFC}'] |
||
10923 | // IDirectPlayLobby3 Methods |
||
10924 | function ConnectEx(dwFlags: DWORD; const riid: TGUID; var lplpDP: Pointer; |
||
10925 | pUnk: IUnknown): HResult; stdcall; |
||
10926 | function RegisterApplication(dwFlags: DWORD; const lpAppDesc: TDPApplicationDesc): HResult; stdcall; |
||
10927 | function UnRegisterApplication(dwFlags: DWORD; const guidApplication: TGUID): HResult; stdcall; |
||
10928 | function WaitForConnectionSettings(dwFlags: DWORD): HResult; stdcall; |
||
10929 | end; |
||
10930 | |||
10931 | IDirectPlayLobby3A = interface(IDirectPlayLobby3) |
||
10932 | ['{2DB72491-652C-11d1-A7A8-0000F803ABFC}'] |
||
10933 | end; |
||
10934 | |||
10935 | { DirectPlayLobby API Prototypes } |
||
10936 | |||
10937 | function DirectPlayLobbyCreateW(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobby; |
||
10938 | lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
||
10939 | function DirectPlayLobbyCreateA(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
||
10940 | lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
||
10941 | function DirectPlayLobbyCreate(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
||
10942 | lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
||
10943 | |||
10944 | { DirectPlayLobby Flags } |
||
10945 | |||
10946 | const |
||
10947 | DPLWAIT_CANCEL = $00000001; |
||
10948 | |||
10949 | DPLMSG_SYSTEM = $00000001; |
||
10950 | DPLMSG_STANDARD = $00000002; |
||
10951 | |||
10952 | |||
10953 | { DirectPlayLobby messages and message data structures } |
||
10954 | |||
10955 | { TDPLMsg_Generic } |
||
10956 | |||
10957 | type |
||
10958 | PDPLMsg_Generic = ^TDPLMsg_Generic; |
||
10959 | TDPLMsg_Generic = record |
||
10960 | dwType: DWORD; // Message type |
||
10961 | end; |
||
10962 | |||
10963 | DPLMSG_GENERIC = TDPLMsg_Generic; |
||
10964 | LPDPLMSG_GENERIC = PDPLMsg_Generic; |
||
10965 | |||
10966 | { TDPLMsg_SystemMessage } |
||
10967 | |||
10968 | PDPLMsg_SystemMessage = ^TDPLMsg_SystemMessage; |
||
10969 | TDPLMsg_SystemMessage = record |
||
10970 | dwType: DWORD; // Message type |
||
10971 | guidInstance: TGUID; // Instance GUID of the dplay session the message corresponds to |
||
10972 | end; |
||
10973 | |||
10974 | DPLMSG_SYSTEMMESSAGE = TDPLMsg_SystemMessage; |
||
10975 | LPDPLMSG_SYSTEMMESSAGE = PDPLMsg_SystemMessage; |
||
10976 | |||
10977 | { TDPLMsg_SetProperty } |
||
10978 | |||
10979 | PDPLMsg_SetProperty = ^TDPLMsg_SetProperty; |
||
10980 | TDPLMsg_SetProperty = record |
||
10981 | dwType: DWORD; // Message type |
||
10982 | dwRequestID: DWORD; // Request ID (DPL_NOCONFIRMATION if no confirmation desired) |
||
10983 | guidPlayer: TGUID; // Player GUID |
||
10984 | guidPropertyTag: TGUID; // Property GUID |
||
10985 | dwDataSize: DWORD; // Size of data |
||
10986 | dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
||
10987 | end; |
||
10988 | |||
10989 | DPLMSG_SETPROPERTY = TDPLMsg_SetProperty; |
||
10990 | LPDPLMSG_SETPROPERTY = PDPLMsg_SetProperty; |
||
10991 | |||
10992 | const |
||
10993 | DPL_NOCONFIRMATION = 0; |
||
10994 | |||
10995 | { TDPLMsg_SetPropertyResponse } |
||
10996 | |||
10997 | type |
||
10998 | PDPLMsg_SetPropertyResponse = ^TDPLMsg_SetPropertyResponse; |
||
10999 | TDPLMsg_SetPropertyResponse = record |
||
11000 | dwType: DWORD; // Message type |
||
11001 | dwRequestID: DWORD; // Request ID |
||
11002 | guidPlayer: TGUID; // Player GUID |
||
11003 | guidPropertyTag: TGUID; // Property GUID |
||
11004 | hr: HResult; // Return Code |
||
11005 | end; |
||
11006 | |||
11007 | DPLMSG_SETPROPERTYRESPONSE = TDPLMsg_SetPropertyResponse; |
||
11008 | LPDPLMSG_SETPROPERTYRESPONSE = PDPLMsg_SetPropertyResponse; |
||
11009 | |||
11010 | { TDPLMsg_GetProperty } |
||
11011 | |||
11012 | PDPLMsg_GetProperty = ^TDPLMsg_GetProperty; |
||
11013 | TDPLMsg_GetProperty = record |
||
11014 | dwType: DWORD; // Message type |
||
11015 | dwRequestID: DWORD; // Request ID |
||
11016 | guidPlayer: TGUID; // Player GUID |
||
11017 | guidPropertyTag: TGUID; // Property GUID |
||
11018 | end; |
||
11019 | |||
11020 | DPLMSG_GETPROPERTY = TDPLMsg_GetProperty; |
||
11021 | LPDPLMSG_GETPROPERTY = PDPLMsg_GetProperty; |
||
11022 | |||
11023 | { TDPLMsg_GetPropertyResponse } |
||
11024 | |||
11025 | PDPLMsg_GetPropertyResponse = ^TDPLMsg_GetPropertyResponse; |
||
11026 | TDPLMsg_GetPropertyResponse = record |
||
11027 | dwType: DWORD; // Message type |
||
11028 | dwRequestID: DWORD; // Request ID |
||
11029 | guidPlayer: TGUID; // Player GUID |
||
11030 | guidPropertyTag: TGUID; // Property GUID |
||
11031 | hr: HResult; // Return Code |
||
11032 | dwDataSize: DWORD; // Size of data |
||
11033 | dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
||
11034 | end; |
||
11035 | |||
11036 | DPLMSG_GETPROPERTYRESPONSE = TDPLMsg_GetPropertyResponse; |
||
11037 | LPDPLMSG_GETPROPERTYRESPONSE = PDPLMsg_GetPropertyResponse; |
||
11038 | |||
11039 | { TDPLMsg_NewSessionHost } |
||
11040 | |||
11041 | PDPLMsg_NewSessionHost = ^TDPLMsg_NewSessionHost; |
||
11042 | TDPLMsg_NewSessionHost = record |
||
11043 | dwType: DWORD; // Message type |
||
11044 | guidInstance: TGUID; // GUID Instance of the session |
||
11045 | end; |
||
11046 | |||
11047 | DPLMSG_NEWSESSIONHOST = TDPLMsg_NewSessionHost; |
||
11048 | LPDPLMSG_NEWSESSIONHOST = PDPLMsg_NewSessionHost; |
||
11049 | |||
11050 | { DirectPlay Lobby message dwType values } |
||
11051 | |||
11052 | const |
||
11053 | DPLSYS_CONNECTIONSETTINGSREAD = $00000001; |
||
11054 | DPLSYS_DPLAYCONNECTFAILED = $00000002; |
||
11055 | DPLSYS_DPLAYCONNECTSUCCEEDED = $00000003; |
||
11056 | DPLSYS_APPTERMINATED = $00000004; |
||
11057 | DPLSYS_SETPROPERTY = $00000005; |
||
11058 | DPLSYS_SETPROPERTYRESPONSE = $00000006; |
||
11059 | DPLSYS_GETPROPERTY = $00000007; |
||
11060 | DPLSYS_GETPROPERTYRESPONSE = $00000008; |
||
11061 | DPLSYS_NEWSESSIONHOST = $00000009; |
||
11062 | DPLSYS_NEWCONNECTIONSETTINGS = $0000000A; |
||
11063 | |||
11064 | { DirectPlay defined property GUIDs and associated data structures } |
||
11065 | |||
11066 | DPLPROPERTY_MessagesSupported: TGUID = '{762CCDA1-D916-11d0-BA39-00C04FD7ED67}'; |
||
11067 | DPLPROPERTY_LobbyGuid: TGUID = '{F56920A0-D218-11d0-BA39-00C04FD7ED67}'; |
||
11068 | DPLPROPERTY_PlayerGuid: TGUID = '{B4319322-D20D-11d0-BA39-00C04FD7ED67}'; |
||
11069 | |||
11070 | { TDPLData_PlayerGUID } |
||
11071 | |||
11072 | type |
||
11073 | PDPLData_PlayerGUID = ^TDPLData_PlayerGUID; |
||
11074 | TDPLData_PlayerGUID = record |
||
11075 | guidPlayer: TGUID; |
||
11076 | dwPlayerFlags: DWORD; |
||
11077 | end; |
||
11078 | |||
11079 | DPLDATA_PLAYERGUID = TDPLData_PlayerGUID; |
||
11080 | LPDPLDATA_PLAYERGUID = PDPLData_PlayerGUID; |
||
11081 | |||
11082 | { DPLPROPERTY_PlayerScore } |
||
11083 | |||
11084 | const |
||
11085 | DPLPROPERTY_PlayerScore: TGUID = '{48784000-D219-11d0-BA39-00C04FD7ED67}'; |
||
11086 | |||
11087 | { TDPLData_PlayerScore } |
||
11088 | |||
11089 | type |
||
11090 | PDPLData_PlayerScore = ^TDPLData_PlayerScore; |
||
11091 | TDPLData_PlayerScore = record |
||
11092 | dwScoreCount: DWORD; |
||
11093 | Score: array[0..0] of Longint; |
||
11094 | end; |
||
11095 | |||
11096 | DPLDATA_PLAYERSCORE = TDPLData_PlayerScore; |
||
11097 | LPDPLDATA_PLAYERSCORE = PDPLData_PlayerScore; |
||
11098 | |||
11099 | { DirectPlay Address ID's } |
||
11100 | |||
11101 | type |
||
11102 | PDPAddress = ^TDPAddress; |
||
11103 | TDPAddress = record |
||
11104 | guidDataType: TGUID; |
||
11105 | dwDataSize: DWORD; |
||
11106 | end; |
||
11107 | |||
11108 | DPADDRESS = TDPAddress; |
||
11109 | LPDPADDRESS = PDPAddress; |
||
11110 | |||
11111 | const |
||
11112 | DPAID_TotalSize: TGUID = '{1318F560-912C-11d0-9DAA-00A0C90A43CB}'; |
||
11113 | DPAID_ServiceProvider: TGUID = '{07D916C0-E0AF-11cf-9C4E-00A0C905425E}'; |
||
11114 | DPAID_LobbyProvider: TGUID = '{59B95640-9667-11d0-A77D-0000F803ABFC}'; |
||
11115 | DPAID_Phone: TGUID = '{78EC89A0-E0AF-11cf-9C4E-00A0C905425E}'; |
||
11116 | DPAID_PhoneW: TGUID = '{BA5A7A70-9DBF-11d0-9CC1-00A0C905425E}'; |
||
11117 | DPAID_Modem: TGUID = '{F6DCC200-A2FE-11d0-9C4F-00A0C905425E}'; |
||
11118 | DPAID_ModemW: TGUID = '{01FD92E0-A2FF-11d0-9C4F-00A0C905425E}'; |
||
11119 | DPAID_INet: TGUID = '{C4A54DA0-E0AF-11cf-9C4E-00A0C905425E}'; |
||
11120 | DPAID_INetW: TGUID = '{E63232A0-9DBF-11d0-9CC1-00A0C905425E}'; |
||
11121 | DPAID_INetPort: TGUID = '{E4524541-8EA5-11d1-8A96-006097B01411}'; |
||
11122 | DPAID_MaxMessageSize: TGUID = '{F5D09980-F0C4-11d1-8326-006097B01411}'; |
||
11123 | |||
11124 | { TDPComPortAddress } |
||
11125 | |||
11126 | const |
||
11127 | DPCPA_NOFLOW = 0; // no flow control |
||
11128 | DPCPA_XONXOFFFLOW = 1; // software flow control |
||
11129 | DPCPA_RTSFLOW = 2; // hardware flow control with RTS |
||
11130 | DPCPA_DTRFLOW = 3; // hardware flow control with DTR |
||
11131 | DPCPA_RTSDTRFLOW = 4; // hardware flow control with RTS and DTR |
||
11132 | |||
11133 | type |
||
11134 | PDPComPortAddress = ^TDPComPortAddress; |
||
11135 | TDPComPortAddress = record |
||
11136 | dwComPort: DWORD; // COM port to use (1-4) |
||
11137 | dwBaudRate: DWORD; // baud rate (100-256k) |
||
11138 | dwStopBits: DWORD; // no. stop bits (1-2) |
||
11139 | dwParity: DWORD; // parity (none, odd, even, mark) |
||
11140 | dwFlowControl: DWORD; // flow control (none, xon/xoff, rts, dtr) |
||
11141 | end; |
||
11142 | |||
11143 | DPCOMPORTADDRESS = TDPComPortAddress; |
||
11144 | LPDPCOMPORTADDRESS = PDPComPortAddress; |
||
11145 | |||
11146 | const |
||
11147 | DPAID_ComPort: TGUID = '{F2F0CE00-E0AF-11cf-9C4E-00A0C905425E}'; |
||
11148 | |||
11149 | { dplobby 1.0 obsolete definitions } |
||
11150 | |||
11151 | DPLAD_SYSTEM = DPLMSG_SYSTEM; |
||
11152 | |||
11153 | (*========================================================================== |
||
11154 | * |
||
11155 | * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
||
11156 | * |
||
11157 | * File: dsetup.h |
||
11158 | * Content: DirectXSetup, error codes and flags |
||
11159 | * |
||
11160 | ***************************************************************************) |
||
11161 | |||
11162 | const |
||
11163 | FOURCC_VERS = Ord('v') + Ord('e')*$100 + Ord('r')*$10000 + Ord('s')*$1000000; |
||
11164 | |||
11165 | // DSETUP Error Codes, must remain compatible with previous setup. |
||
11166 | DSETUPERR_SUCCESS_RESTART = HResult(1); |
||
11167 | DSETUPERR_SUCCESS = HResult(0); |
||
11168 | DSETUPERR_BADWINDOWSVERSION = HResult(-1); |
||
11169 | DSETUPERR_SOURCEFILENOTFOUND = HResult(-2); |
||
11170 | DSETUPERR_BADSOURCESIZE = HResult(-3); |
||
11171 | DSETUPERR_BADSOURCETIME = HResult(-4); |
||
11172 | DSETUPERR_NOCOPY = HResult(-5); |
||
11173 | DSETUPERR_OUTOFDISKSPACE = HResult(-6); |
||
11174 | DSETUPERR_CANTFINDINF = HResult(-7); |
||
11175 | DSETUPERR_CANTFINDDIR = HResult(-8); |
||
11176 | DSETUPERR_INTERNAL = HResult(-9); |
||
11177 | DSETUPERR_UNKNOWNOS = HResult(-11); |
||
11178 | DSETUPERR_USERHITCANCEL = HResult(-12); |
||
11179 | DSETUPERR_NOTPREINSTALLEDONNT = HResult(-13); |
||
11180 | DSETUPERR_NEWERVERSION = HResult(-14); |
||
11181 | |||
11182 | // DSETUP flags. DirectX 5.0 apps should use these flags only. |
||
11183 | DSETUP_DDRAWDRV = $00000008; (* install DirectDraw Drivers *) |
||
11184 | DSETUP_DSOUNDDRV = $00000010; (* install DirectSound Drivers *) |
||
11185 | DSETUP_DXCORE = $00010000; (* install DirectX runtime *) |
||
11186 | DSETUP_DIRECTX = DSETUP_DXCORE or DSETUP_DDRAWDRV or DSETUP_DSOUNDDRV; |
||
11187 | DSETUP_TESTINSTALL = $00020000; (* just test install, don't do anything *) |
||
11188 | DSETUP_USEROLDERFLAG = $02000000; (* enable return DSETUPERR_NEWERVERSION *) |
||
11189 | |||
11190 | // These OBSOLETE flags are here for compatibility with pre-DX5 apps only. |
||
11191 | // They are present to allow DX3 apps to be recompiled with DX5 and still work. |
||
11192 | // DO NOT USE THEM for DX5. They will go away in future DX releases. |
||
11193 | |||
11194 | DSETUP_DDRAW = $00000001; (* OBSOLETE. install DirectDraw *) |
||
11195 | DSETUP_DSOUND = $00000002; (* OBSOLETE. install DirectSound *) |
||
11196 | DSETUP_DPLAY = $00000004; (* OBSOLETE. install DirectPlay *) |
||
11197 | DSETUP_DPLAYSP = $00000020; (* OBSOLETE. install DirectPlay Providers *) |
||
11198 | DSETUP_DVIDEO = $00000040; (* OBSOLETE. install DirectVideo *) |
||
11199 | DSETUP_D3D = $00000200; (* OBSOLETE. install Direct3D *) |
||
11200 | DSETUP_DINPUT = $00000800; (* OBSOLETE. install DirectInput *) |
||
11201 | DSETUP_DIRECTXSETUP = $00001000; (* OBSOLETE. install DirectXSetup DLL's *) |
||
11202 | DSETUP_NOUI = $00002000; (* OBSOLETE. install DirectX with NO UI *) |
||
11203 | DSETUP_PROMPTFORDRIVERS = $10000000; (* OBSOLETE. prompt when replacing display/audio drivers *) |
||
11204 | DSETUP_RESTOREDRIVERS = $20000000;(* OBSOLETE. restore display/audio drivers *) |
||
11205 | |||
11206 | //****************************************************************** |
||
11207 | // DirectX Setup Callback mechanism |
||
11208 | //****************************************************************** |
||
11209 | |||
11210 | // DSETUP Message Info Codes, passed to callback as Reason parameter. |
||
11211 | DSETUP_CB_MSG_NOMESSAGE = 0; |
||
11212 | DSETUP_CB_MSG_CANTINSTALL_UNKNOWNOS = 1; |
||
11213 | DSETUP_CB_MSG_CANTINSTALL_NT = 2; |
||
11214 | DSETUP_CB_MSG_CANTINSTALL_BETA = 3; |
||
11215 | DSETUP_CB_MSG_CANTINSTALL_NOTWIN32 = 4; |
||
11216 | DSETUP_CB_MSG_CANTINSTALL_WRONGLANGUAGE = 5; |
||
11217 | DSETUP_CB_MSG_CANTINSTALL_WRONGPLATFORM = 6; |
||
11218 | DSETUP_CB_MSG_PREINSTALL_NT = 7; |
||
11219 | DSETUP_CB_MSG_NOTPREINSTALLEDONNT = 8; |
||
11220 | DSETUP_CB_MSG_SETUP_INIT_FAILED = 9; |
||
11221 | DSETUP_CB_MSG_INTERNAL_ERROR = 10; |
||
11222 | DSETUP_CB_MSG_CHECK_DRIVER_UPGRADE = 11; |
||
11223 | DSETUP_CB_MSG_OUTOFDISKSPACE = 12; |
||
11224 | DSETUP_CB_MSG_BEGIN_INSTALL = 13; |
||
11225 | DSETUP_CB_MSG_BEGIN_INSTALL_RUNTIME = 14; |
||
11226 | DSETUP_CB_MSG_BEGIN_INSTALL_DRIVERS = 15; |
||
11227 | DSETUP_CB_MSG_BEGIN_RESTORE_DRIVERS = 16; |
||
11228 | DSETUP_CB_MSG_FILECOPYERROR = 17; |
||
11229 | |||
11230 | |||
11231 | DSETUP_CB_UPGRADE_TYPE_MASK = $000F; |
||
11232 | DSETUP_CB_UPGRADE_KEEP = $0001; |
||
11233 | DSETUP_CB_UPGRADE_SAFE = $0002; |
||
11234 | DSETUP_CB_UPGRADE_FORCE = $0004; |
||
11235 | DSETUP_CB_UPGRADE_UNKNOWN = $0008; |
||
11236 | |||
11237 | DSETUP_CB_UPGRADE_HASWARNINGS = $0100; |
||
11238 | DSETUP_CB_UPGRADE_CANTBACKUP = $0200; |
||
11239 | |||
11240 | DSETUP_CB_UPGRADE_DEVICE_ACTIVE = $0800; |
||
11241 | |||
11242 | DSETUP_CB_UPGRADE_DEVICE_DISPLAY = $1000; |
||
11243 | DSETUP_CB_UPGRADE_DEVICE_MEDIA = $2000; |
||
11244 | |||
11245 | type |
||
11246 | |||
11247 | { TDLSVersion } |
||
11248 | |||
11249 | PDLSVersion = ^TDLSVersion; |
||
11250 | TDLSVersion = record |
||
11251 | dwVersionMS: DWORD; |
||
11252 | dwVersionLS: WORD; |
||
11253 | end; |
||
11254 | |||
11255 | DLSVERSION = TDLSVersion; |
||
11256 | LPDLSVERSION = PDLSVersion; |
||
11257 | |||
11258 | { TDSetup_CB_UpgradeInfo } |
||
11259 | |||
11260 | PDSetup_CB_UpgradeInfo = ^TDSetup_CB_UpgradeInfo; |
||
11261 | TDSetup_CB_UpgradeInfo = record |
||
11262 | UpgradeFlags: DWORD; |
||
11263 | end; |
||
11264 | |||
11265 | DSETUP_CB_UPGRADEINFO = TDSetup_CB_UpgradeInfo; |
||
11266 | LPDSETUP_CB_UPGRADEINFO = PDSetup_CB_UpgradeInfo; |
||
11267 | |||
11268 | { TDSetup_CB_FileCopyError } |
||
11269 | |||
11270 | PDSetup_CB_FileCopyError = ^TDSetup_CB_FileCopyError; |
||
11271 | TDSetup_CB_FileCopyError = record |
||
11272 | dwError: DWORD; |
||
11273 | end; |
||
11274 | |||
11275 | DSETUP_CB_FILECOPYERROR = TDSetup_CB_FileCopyError; |
||
11276 | LPDSETUP_CB_FILECOPYERROR = PDSetup_CB_FileCopyError; |
||
11277 | |||
11278 | // |
||
11279 | // Data Structures |
||
11280 | // |
||
11281 | |||
11282 | { TDirectXRegisterAppA } |
||
11283 | |||
11284 | PDirectXRegisterAppA = ^TDirectXRegisterAppA; |
||
11285 | TDirectXRegisterAppA = record |
||
11286 | dwSize: DWORD; |
||
11287 | dwFlags: DWORD; |
||
11288 | lpszApplicationName: PAnsiChar; |
||
11289 | lpGUID: PGUID; |
||
11290 | lpszFilename: PAnsiChar; |
||
11291 | lpszCommandLine: PAnsiChar; |
||
11292 | lpszPath: PAnsiChar; |
||
11293 | lpszCurrentDirectory: PAnsiChar; |
||
11294 | end; |
||
11295 | |||
11296 | DIRECTXREGISTERAPPA = TDirectXRegisterAppA; |
||
11297 | LPDIRECTXREGISTERAPPA = PDirectXRegisterAppA; |
||
11298 | |||
11299 | { TDirectXRegisterApp2A } |
||
11300 | |||
11301 | PDirectXRegisterApp2A = ^TDirectXRegisterApp2A; |
||
11302 | TDirectXRegisterApp2A = record |
||
11303 | dwSize: DWORD; |
||
11304 | dwFlags: DWORD; |
||
11305 | lpszApplicationName: PAnsiChar; |
||
11306 | lpGUID: PGUID; |
||
11307 | lpszFilename: PAnsiChar; |
||
11308 | lpszCommandLine: PAnsiChar; |
||
11309 | lpszPath: PAnsiChar; |
||
11310 | lpszCurrentDirectory: PAnsiChar; |
||
11311 | lpszLauncherName: PAnsiChar; |
||
11312 | end; |
||
11313 | |||
11314 | DIRECTXREGISTERAPP2A = TDirectXRegisterApp2A; |
||
11315 | LPDIRECTXREGISTERAPP2A = PDirectXRegisterApp2A; |
||
11316 | |||
11317 | { TDirectXRegisterAppW } |
||
11318 | |||
11319 | PDirectXRegisterAppW = ^TDirectXRegisterAppW; |
||
11320 | TDirectXRegisterAppW = record |
||
11321 | dwSize: DWORD; |
||
11322 | dwFlags: DWORD; |
||
11323 | lpszApplicationName: PWideChar; |
||
11324 | lpGUID: PGUID; |
||
11325 | lpszFilename: PWideChar; |
||
11326 | lpszCommandLine: PWideChar; |
||
11327 | lpszPath: PWideChar; |
||
11328 | lpszCurrentDirectory: PWideChar; |
||
11329 | end; |
||
11330 | |||
11331 | DIRECTXREGISTERAPPW = TDirectXRegisterAppW; |
||
11332 | LPDIRECTXREGISTERAPPW = PDirectXRegisterAppW; |
||
11333 | |||
11334 | { TDirectXRegisterApp2W } |
||
11335 | |||
11336 | PDirectXRegisterApp2W = ^TDirectXRegisterApp2W; |
||
11337 | TDirectXRegisterApp2W = record |
||
11338 | dwSize: DWORD; |
||
11339 | dwFlags: DWORD; |
||
11340 | lpszApplicationName: PWideChar; |
||
11341 | lpGUID: PGUID; |
||
11342 | lpszFilename: PWideChar; |
||
11343 | lpszCommandLine: PWideChar; |
||
11344 | lpszPath: PWideChar; |
||
11345 | lpszCurrentDirectory: PWideChar; |
||
11346 | lpszLauncherName: PWideChar; |
||
11347 | end; |
||
11348 | |||
11349 | DIRECTXREGISTERAPP2W = TDirectXRegisterApp2W; |
||
11350 | LPDIRECTXREGISTERAPP2W = PDirectXRegisterApp2W; |
||
11351 | |||
11352 | { TDirectXRegisterApp } |
||
11353 | |||
11354 | PDirectXRegisterApp = PDirectXRegisterAppA; |
||
11355 | TDirectXRegisterApp = TDirectXRegisterAppA; |
||
11356 | |||
11357 | PDirectXRegisterApp2 = PDirectXRegisterApp2A; |
||
11358 | TDirectXRegisterApp2 = TDirectXRegisterApp2A; |
||
11359 | |||
11360 | DIRECTXREGISTERAPP = TDirectXRegisterApp; |
||
11361 | LPDIRECTXREGISTERAPP = PDirectXRegisterApp; |
||
11362 | |||
11363 | DIRECTXREGISTERAPP2 = TDirectXRegisterApp2; |
||
11364 | LPDIRECTXREGISTERAPP2 = PDirectXRegisterApp2; |
||
11365 | |||
11366 | { API } |
||
11367 | |||
11368 | function DirectXSetupA(hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
||
11369 | function DirectXSetupW(hWnd: HWND; lpszRootPath: PWideChar; dwFlags: DWORD): Longint; stdcall; |
||
11370 | function DirectXSetup(hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
||
11371 | |||
11372 | function DirectXDeviceDriverSetupA(hWnd: HWND; lpszDriverClass: PAnsiChar; |
||
11373 | lpszDriverPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
||
11374 | function DirectXDeviceDriverSetupW(hWnd: HWND; lpszDriverClass: PWideChar; |
||
11375 | lpszDriverPath: PWideChar; dwFlags: DWORD): Longint; stdcall; |
||
11376 | function DirectXDeviceDriverSetup(hWnd: HWND; lpszDriverClass: PAnsiChar; |
||
11377 | lpszDriverPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
||
11378 | |||
11379 | function DirectXRegisterApplicationA(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA): Longint; stdcall; |
||
11380 | function DirectXRegisterApplicationW(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppW): Longint; stdcall; |
||
11381 | function DirectXRegisterApplication(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA): Longint; stdcall; |
||
11382 | function DirectXUnRegisterApplication(hWnd: HWND; const lpGUID: TGUID): Longint; stdcall; |
||
11383 | |||
11384 | type |
||
11385 | TDSetup_Callback = function (Reason: DWORD; MsgType: DWORD; |
||
11386 | szMessage: PAnsiChar; szName: PAnsiChar; pInfo: Pointer): DWORD; stdcall; |
||
11387 | DSETUP_CALLBACK = TDSetup_Callback; |
||
11388 | |||
11389 | function DirectXSetupSetCallback(Callback: TDSetup_Callback): Longint; stdcall; |
||
11390 | function DirectXSetupGetVersion(var lpdwVersion, lpdwMinorVersion: DWORD): Longint; stdcall; |
||
11391 | |||
11392 | (*==========================================================================; |
||
11393 | * |
||
11394 | * Copyright (C) 1995,1996 Microsoft Corporation. All Rights Reserved. |
||
11395 | * |
||
11396 | * File: dsound.h |
||
11397 | * Content: DirectSound include file |
||
11398 | * |
||
11399 | **************************************************************************) |
||
11400 | |||
11401 | { GUIDS used by DirectDraw objects } |
||
11402 | |||
11403 | const |
||
11404 | CLSID_DirectSound: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}'; |
||
11405 | CLSID_DirectSoundCapture: TGUID = '{B0210780-89CD-11d0-AF08-00A0C925CD16}'; |
||
11406 | |||
11407 | IID_IDirectSound: TGUID = '{279AFA83-4981-11CE-A521-0020AF0BE560}'; |
||
11408 | IID_IDirectSoundBuffer: TGUID = '{279AFA85-4981-11CE-A521-0020AF0BE560}'; |
||
11409 | IID_IDirectSound3DListener: TGUID = '{279AFA84-4981-11CE-A521-0020AF0BE560}'; |
||
11410 | IID_IDirectSound3DBuffer: TGUID = '{279AFA86-4981-11CE-A521-0020AF0BE560}'; |
||
11411 | IID_IDirectSoundCapture: TGUID = '{B0210781-89CD-11D0-AF08-00A0C925CD16}'; |
||
11412 | IID_IDirectSoundCaptureBuffer: TGUID = '{B0210782-89CD-11D0-AF08-00A0C925CD16}'; |
||
11413 | |||
11414 | IID_IDirectSoundNotify: TGUID = '{B0210783-89CD-11D0-AF08-00A0C925CD16}'; |
||
11415 | |||
11416 | { DirectSound Structures } |
||
11417 | |||
11418 | type |
||
11419 | IDirectSound = interface; |
||
11420 | IDirectSoundBuffer = interface; |
||
11421 | IDirectSound3DListener = interface; |
||
11422 | IDirectSound3DBuffer = interface; |
||
11423 | IDirectSoundCapture = interface; |
||
11424 | IDirectSoundCaptureBuffer = interface; |
||
11425 | IDirectSoundNotify = interface; |
||
11426 | |||
11427 | { TDSCaps } |
||
11428 | |||
11429 | PDSCaps = ^TDSCaps; |
||
11430 | TDSCaps = record |
||
11431 | dwSize: DWORD; |
||
11432 | dwFlags: DWORD; |
||
11433 | dwMinSecondarySampleRate: DWORD; |
||
11434 | dwMaxSecondarySampleRate: DWORD; |
||
11435 | dwPrimaryBuffers: DWORD; |
||
11436 | dwMaxHwMixingAllBuffers: DWORD; |
||
11437 | dwMaxHwMixingStaticBuffers: DWORD; |
||
11438 | dwMaxHwMixingStreamingBuffers: DWORD; |
||
11439 | dwFreeHwMixingAllBuffers: DWORD; |
||
11440 | dwFreeHwMixingStaticBuffers: DWORD; |
||
11441 | dwFreeHwMixingStreamingBuffers: DWORD; |
||
11442 | dwMaxHw3DAllBuffers: DWORD; |
||
11443 | dwMaxHw3DStaticBuffers: DWORD; |
||
11444 | dwMaxHw3DStreamingBuffers: DWORD; |
||
11445 | dwFreeHw3DAllBuffers: DWORD; |
||
11446 | dwFreeHw3DStaticBuffers: DWORD; |
||
11447 | dwFreeHw3DStreamingBuffers: DWORD; |
||
11448 | dwTotalHwMemBytes: DWORD; |
||
11449 | dwFreeHwMemBytes: DWORD; |
||
11450 | dwMaxContigFreeHwMemBytes: DWORD; |
||
11451 | dwUnlockTransferRateHwBuffers: DWORD; |
||
11452 | dwPlayCpuOverheadSwBuffers: DWORD; |
||
11453 | dwReserved1: DWORD; |
||
11454 | dwReserved2: DWORD; |
||
11455 | end; |
||
11456 | |||
11457 | DSCAPS = TDSCaps; |
||
11458 | LPDSCAPS = PDSCaps; |
||
11459 | |||
11460 | { TDSBCaps } |
||
11461 | |||
11462 | PDSBCaps = ^TDSBCaps; |
||
11463 | TDSBCaps = record |
||
11464 | dwSize: DWORD; |
||
11465 | dwFlags: DWORD; |
||
11466 | dwBufferBytes: DWORD; |
||
11467 | dwUnlockTransferRate: DWORD; |
||
11468 | dwPlayCpuOverhead: DWORD; |
||
11469 | end; |
||
11470 | |||
11471 | DSBCAPS = TDSBCaps; |
||
11472 | LPDSBCAPS = DSBCAPS; |
||
11473 | |||
11474 | { TDSBufferDesc } |
||
11475 | |||
11476 | PDSBufferDesc = ^TDSBufferDesc; |
||
11477 | TDSBufferDesc = record |
||
11478 | dwSize: DWORD; |
||
11479 | dwFlags: DWORD; |
||
11480 | dwBufferBytes: DWORD; |
||
11481 | dwReserved: DWORD; |
||
11482 | lpwfxFormat: PWaveFormatEx; |
||
11483 | {$IFDEF SupportDirectX7} |
||
11484 | guid3DAlgorithm: TGUID; |
||
11485 | {$ENDIF} |
||
11486 | end; |
||
11487 | |||
11488 | DSBUFFERDESC = TDSBufferDesc; |
||
11489 | LPDSBUFFERDESC = PDSBufferDesc; |
||
11490 | |||
11491 | { TDSBufferDesc1 } |
||
11492 | |||
11493 | PDSBufferDesc1 = ^TDSBufferDesc1; |
||
11494 | TDSBufferDesc1 = record |
||
11495 | dwSize: DWORD; |
||
11496 | dwFlags: DWORD; |
||
11497 | dwBufferBytes: DWORD; |
||
11498 | dwReserved: DWORD; |
||
11499 | lpwfxFormat: PWaveFormatEx; |
||
11500 | end; |
||
11501 | |||
11502 | DSBUFFERDESC1 = TDSBufferDesc1; |
||
11503 | LPDSBUFFERDESC1 = PDSBufferDesc1; |
||
11504 | |||
11505 | { TDS3DBuffer } |
||
11506 | |||
11507 | PDS3DBuffer = ^TDS3DBuffer; |
||
11508 | TDS3DBuffer = record |
||
11509 | dwSize: DWORD; |
||
11510 | vPosition: TD3DVector; |
||
11511 | vVelocity: TD3DVector; |
||
11512 | dwInsideConeAngle: DWORD; |
||
11513 | dwOutsideConeAngle: DWORD; |
||
11514 | vConeOrientation: TD3DVector; |
||
11515 | lConeOutsideVolume: Longint; |
||
11516 | flMinDistance: TD3DValue; |
||
11517 | flMaxDistance: TD3DValue; |
||
11518 | dwMode: DWORD; |
||
11519 | end; |
||
11520 | |||
11521 | DS3DBUFFER = TDS3DBuffer; |
||
11522 | LPDS3DBUFFER = PDS3DBuffer; |
||
11523 | |||
11524 | { TDS3DListener } |
||
11525 | |||
11526 | PDS3DListener = ^TDS3DListener; |
||
11527 | TDS3DListener = record |
||
11528 | dwSize: DWORD; |
||
11529 | vPosition: TD3DVector; |
||
11530 | vVelocity: TD3DVector; |
||
11531 | vOrientFront: TD3DVector; |
||
11532 | vOrientTop: TD3DVector; |
||
11533 | flDistanceFactor: TD3DValue; |
||
11534 | flRolloffFactor: TD3DValue; |
||
11535 | flDopplerFactor: TD3DValue; |
||
11536 | end; |
||
11537 | |||
11538 | DS3DLISTENER = TDS3DListener; |
||
11539 | LPDS3DLISTENER = PDS3DListener; |
||
11540 | |||
11541 | { TDSCCaps } |
||
11542 | |||
11543 | PDSCCaps = ^TDSCCaps; |
||
11544 | TDSCCaps = record |
||
11545 | dwSize: DWORD; |
||
11546 | dwFlags: DWORD; |
||
11547 | dwFormats: DWORD; |
||
11548 | dwChannels: DWORD; |
||
11549 | end; |
||
11550 | |||
11551 | DSCCAPS = TDSCCaps; |
||
11552 | LPDSCCAPS = PDSCCaps; |
||
11553 | |||
11554 | { TDSCBufferDesc } |
||
11555 | |||
11556 | PDSCBufferDesc = ^TDSCBufferDesc; |
||
11557 | TDSCBufferDesc = record |
||
11558 | dwSize: DWORD; |
||
11559 | dwFlags: DWORD; |
||
11560 | dwBufferBytes: DWORD; |
||
11561 | dwReserved: DWORD; |
||
11562 | lpwfxFormat: PWaveFormatEx; |
||
11563 | end; |
||
11564 | |||
11565 | DSCBUFFERDESC = TDSCBufferDesc; |
||
11566 | LPDSCBUFFERDESC = PDSCBufferDesc; |
||
11567 | |||
11568 | { TDSCBCaps } |
||
11569 | |||
11570 | PDSCBCaps = ^TDSCBCaps; |
||
11571 | TDSCBCaps = record |
||
11572 | dwSize: DWORD; |
||
11573 | dwFlags: DWORD; |
||
11574 | dwBufferBytes: DWORD; |
||
11575 | dwReserved: DWORD; |
||
11576 | end; |
||
11577 | |||
11578 | DSCBCAPS = TDSCBCaps; |
||
11579 | LPDSCBCAPS = PDSCBCaps; |
||
11580 | |||
11581 | { TDSBPositionNotify } |
||
11582 | |||
11583 | PDSBPositionNotify = ^TDSBPositionNotify; |
||
11584 | TDSBPositionNotify = record |
||
11585 | dwOffset: DWORD; |
||
11586 | hEventNotify: THandle; |
||
11587 | end; |
||
11588 | |||
11589 | DSBPOSITIONNOTIFY = TDSBPositionNotify; |
||
11590 | LPDSBPOSITIONNOTIFY = PDSBPositionNotify; |
||
11591 | |||
11592 | { IDirectSound } |
||
11593 | |||
11594 | IDirectSound = interface(IUnknown) |
||
11595 | ['{279AFA83-4981-11CE-A521-0020AF0BE560}'] |
||
11596 | // IDirectSound methods |
||
11597 | function CreateSoundBuffer(const lpDSBufferDesc: TDSBufferDesc; |
||
11598 | out lplpDirectSoundBuffer: IDirectSoundBuffer; |
||
11599 | pUnkOuter: IUnknown): HResult; stdcall; |
||
11600 | function GetCaps(var lpDSCaps: TDSCaps): HResult; stdcall; |
||
11601 | function DuplicateSoundBuffer(lpDsbOriginal: IDirectSoundBuffer; |
||
11602 | out lpDsbDuplicate: IDirectSoundBuffer): HResult; stdcall; |
||
11603 | function SetCooperativeLevel(hwnd: HWND; dwLevel: DWORD): HResult; stdcall; |
||
11604 | function Compact: HResult; stdcall; |
||
11605 | function GetSpeakerConfig(var lpdwSpeakerConfig: DWORD): HResult; stdcall; |
||
11606 | function SetSpeakerConfig(dwSpeakerConfig: DWORD): HResult; stdcall; |
||
11607 | function Initialize(lpGuid: PGUID): HResult; stdcall; |
||
11608 | end; |
||
11609 | |||
11610 | { IDirectSoundBuffer } |
||
11611 | |||
11612 | IDirectSoundBuffer = interface(IUnknown) |
||
11613 | ['{279AFA85-4981-11CE-A521-0020AF0BE560}'] |
||
11614 | // IDirectSoundBuffer methods |
||
11615 | function GetCaps(var lpDSBufferCaps: TDSBCaps): HResult; stdcall; |
||
11616 | function GetCurrentPosition(var lpdwCurrentPlayCursor, |
||
11617 | lpdwCurrentWriteCursor: DWORD): HResult; stdcall; |
||
11618 | function GetFormat(var lpwfxFormat: TWaveFormatEx; dwSizeAllocated: DWORD; |
||
11619 | var lpdwSizeWritten: DWORD): HResult; stdcall; |
||
11620 | function GetVolume(var lplVolume: Longint): HResult; stdcall; |
||
11621 | function GetPan(var lplPan: Longint): HResult; stdcall; |
||
11622 | function GetFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
||
11623 | function GetStatus(var lpdwStatus: DWORD): HResult; stdcall; |
||
11624 | function Initialize(lpDirectSound: IDirectSound; const |
||
11625 | lpDSBufferDesc: TDSBufferDesc): HResult; stdcall; |
||
11626 | function Lock(dwWriteCursor: DWORD; dwWriteBytes: DWORD; |
||
11627 | var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD; |
||
11628 | var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD; |
||
11629 | dwFlags: DWORD): HResult; stdcall; |
||
11630 | function Play(dwReserved1, dwReserved2: DWORD; dwFlags: DWORD): HResult; stdcall; |
||
11631 | function SetCurrentPosition(dwNewPosition: DWORD): HResult; stdcall; |
||
11632 | function SetFormat(const lpfxFormat: TWaveFormatEx): HResult; stdcall; |
||
11633 | function SetVolume(lVolume: Longint): HResult; stdcall; |
||
11634 | function SetPan(lPan: Longint): HResult; stdcall; |
||
11635 | function SetFrequency(dwFrequency: DWORD): HResult; stdcall; |
||
11636 | function Stop: HResult; stdcall; |
||
11637 | function Unlock(lpvAudioPtr1: Pointer; dwAudioBytes1: DWORD; |
||
11638 | lpvAudioPtr2: Pointer; dwAudioBytes2: DWORD): HResult; stdcall; |
||
11639 | function Restore: HResult; stdcall; |
||
11640 | end; |
||
11641 | |||
11642 | { IDirectSound3DListener } |
||
11643 | |||
11644 | IDirectSound3DListener = interface(IUnknown) |
||
11645 | ['{279AFA84-4981-11CE-A521-0020AF0BE560}'] |
||
11646 | // IDirectSound3DListener methods |
||
11647 | function GetAllParameters(var lpListener: TDS3DListener): HResult; stdcall; |
||
11648 | function GetDistanceFactor(var lpflDistanceFactor: TD3DValue): HResult; stdcall; |
||
11649 | function GetDopplerFactor(var lpflDopplerFactor: TD3DValue): HResult; stdcall; |
||
11650 | function GetOrientation(var lpvOrientFront, lpvOrientTop: TD3DVector): HResult; stdcall; |
||
11651 | function GetPosition(var lpvPosition: TD3DVector): HResult; stdcall; |
||
11652 | function GetRolloffFactor(var lpflRolloffFactor: TD3DValue): HResult; stdcall; |
||
11653 | function GetVelocity(var lpvVelocity: TD3DVector): HResult; stdcall; |
||
11654 | function SetAllParameters(const lpListener: TDS3DListener; dwApply: DWORD): HResult; stdcall; |
||
11655 | function SetDistanceFactor(flDistanceFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11656 | function SetDopplerFactor(flDopplerFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11657 | function SetOrientation(xFront, yFront, zFront, xTop, yTop, zTop: TD3DValue; |
||
11658 | dwApply: DWORD): HResult; stdcall; |
||
11659 | function SetPosition(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11660 | function SetRolloffFactor(flRolloffFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11661 | function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11662 | function CommitDeferredSettings: HResult; stdcall; |
||
11663 | end; |
||
11664 | |||
11665 | { IDirectSound3DBuffer } |
||
11666 | |||
11667 | IDirectSound3DBuffer = interface(IUnknown) |
||
11668 | ['{279AFA86-4981-11CE-A521-0020AF0BE560}'] |
||
11669 | // IDirectSound3DBuffer methods |
||
11670 | function GetAllParameters(var lpDs3dBuffer: TDS3DBuffer): HResult; stdcall; |
||
11671 | function GetConeAngles(var lpdwInsideConeAngle: DWORD; |
||
11672 | var lpdwOutsideConeAngle: DWORD): HResult; stdcall; |
||
11673 | function GetConeOrientation(var lpvOrientation: TD3DVector): HResult; stdcall; |
||
11674 | function GetConeOutsideVolume(var lplConeOutsideVolume: Longint): HResult; stdcall; |
||
11675 | function GetMaxDistance(var lpflMaxDistance: TD3DValue): HResult; stdcall; |
||
11676 | function GetMinDistance(var lpflMinDistance: TD3DValue): HResult; stdcall; |
||
11677 | function GetMode(var lpdwMod: DWORD): HResult; stdcall; |
||
11678 | function GetPosition(var lpvPosition: TD3DVector): HResult; stdcall; |
||
11679 | function GetVelocity(var lpvVelocity: TD3DVector): HResult; stdcall; |
||
11680 | function SetAllParameters(const lpDs3dBuffer: TDS3DBuffer; dwApply: DWORD): HResult; stdcall; |
||
11681 | function SetConeAngles(dwInsideConeAngle: DWORD; dwOutsideConeAngle: DWORD; |
||
11682 | dwApply: DWORD): HResult; stdcall; |
||
11683 | function SetConeOrientation(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11684 | function SetConeOutsideVolume(lConeOutsideVolume: Longint; dwApply: DWORD): HResult; stdcall; |
||
11685 | function SetMaxDistance(flMaxDistance: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11686 | function SetMinDistance(flMinDistance: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11687 | function SetMode(dwMode: DWORD; dwApply: DWORD): HResult; stdcall; |
||
11688 | function SetPosition(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11689 | function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
||
11690 | end; |
||
11691 | |||
11692 | { IDirectSoundCapture } |
||
11693 | |||
11694 | IDirectSoundCapture = interface(IUnknown) |
||
11695 | ['{B0210781-89CD-11D0-AF08-00A0C925CD16}'] |
||
11696 | // IDirectSoundCapture methods |
||
11697 | function CreateCaptureBuffer(const lpDSCBufferDesc: TDSCBufferDesc; |
||
11698 | out lplpDirectSoundCaptureBuffer: IDirectSoundCaptureBuffer; |
||
11699 | pUnkOuter: IUnknown): HResult; stdcall; |
||
11700 | function GetCaps(var lpDSCCaps: TDSCCaps): HResult; stdcall; |
||
11701 | function Initialize(lpGuid: PGUID): HResult; stdcall; |
||
11702 | end; |
||
11703 | |||
11704 | { IDirectSoundCaptureBuffer } |
||
11705 | |||
11706 | IDirectSoundCaptureBuffer = interface(IUnknown) |
||
11707 | ['{B0210782-89CD-11D0-AF08-00A0C925CD16}'] |
||
11708 | // IDirectSoundCaptureBuffer methods |
||
11709 | function GetCaps(var lpDSCBCaps: TDSCBCaps): HResult; stdcall; |
||
11710 | function GetCurrentPosition(var lpdwCapturePosition, |
||
11711 | lpdwReadPosition: DWORD): HResult; stdcall; |
||
11712 | function GetFormat(var lpwfxFormat: TWaveFormatEx; dwSizeAllocated: DWORD; |
||
11713 | var lpdwSizeWritten: DWORD): HResult; stdcall; |
||
11714 | function GetStatus(var lpdwStatus: DWORD): HResult; stdcall; |
||
11715 | function Initialize(lpDirectSoundCapture: IDirectSoundCapture; |
||
11716 | const lpcDSBufferDesc: TDSCBufferDesc): HResult; stdcall; |
||
11717 | function Lock(dwReadCursor: DWORD; dwReadBytes: DWORD; |
||
11718 | var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD; |
||
11719 | var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD; |
||
11720 | dwFlags: DWORD): HResult; stdcall; |
||
11721 | function Start(dwFlags: DWORD): HResult; stdcall; |
||
11722 | function Stop: HResult; stdcall; |
||
11723 | function Unlock(lpvAudioPtr1: Pointer; dwAudioBytes1: DWORD; |
||
11724 | lpvAudioPtr2: Pointer; dwAudioBytes2: DWORD): HResult; stdcall; |
||
11725 | end; |
||
11726 | |||
11727 | { IDirectSoundNotify } |
||
11728 | |||
11729 | IDirectSoundNotify = interface(IUnknown) |
||
11730 | ['{B0210783-89CD-11D0-AF08-00A0C925CD16}'] |
||
11731 | // IDirectSoundNotify methods |
||
11732 | function SetNotificationPositions(cPositionNotifies: DWORD; |
||
11733 | const lpcPositionNotifies): HResult; stdcall; |
||
11734 | end; |
||
11735 | |||
11736 | { IKsPropertySet } |
||
11737 | |||
11738 | const |
||
11739 | KSPROPERTY_SUPPORT_GET = $00000001; |
||
11740 | KSPROPERTY_SUPPORT_SET = $00000002; |
||
11741 | |||
11742 | IID_IKsPropertySet: TGUID = (D1:$31efac30;D2:$515c;D3:$11d0;D4:($a9,$aa,$00,$aa,$00,$61,$be,$93)); |
||
11743 | |||
11744 | type |
||
11745 | IKsPropertySet = interface; |
||
11746 | |||
11747 | IKsPropertySet = interface(IUnknown) |
||
11748 | ['{31EFAC30-515C-11D0-A9AA-00AA0061BE93}'] |
||
11749 | // IKsPropertySet methods |
||
11750 | function GetProperty(const PropertySetId: TGUID; PropertyId: DWORD; |
||
11751 | var pPropertyParams; cbPropertyParams: DWORD; |
||
11752 | var pPropertyData; cbPropertyData: DWORD; |
||
11753 | var pcbReturnedData: ULONG): HResult; stdcall; |
||
11754 | function SetProperty(const PropertySetId: TGUID; PropertyId: DWORD; |
||
11755 | const pPropertyParams; cbPropertyParams: DWORD; |
||
11756 | const pPropertyData; cbPropertyData: DWORD): HResult; stdcall; |
||
11757 | function QuerySupport(const PropertySetId: TGUID; PropertyId: DWORD; |
||
11758 | var pSupport: ULONG): HResult; stdcall; |
||
11759 | end; |
||
11760 | |||
11761 | { Return Codes } |
||
11762 | |||
11763 | const |
||
11764 | DS_OK = HResult(S_OK); |
||
11765 | DS_NO_VIRTUALIZATION = HResult($878000A); |
||
11766 | DSERR_ALLOCATED = HResult($88780000 + 10); |
||
11767 | DSERR_CONTROLUNAVAIL = HResult($88780000 + 30); |
||
11768 | DSERR_INVALIDPARAM = HResult(E_INVALIDARG); |
||
11769 | DSERR_INVALIDCALL = HResult($88780000 + 50); |
||
11770 | DSERR_GENERIC = HResult(E_FAIL); |
||
11771 | DSERR_PRIOLEVELNEEDED = HResult($88780000 + 70); |
||
11772 | DSERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
||
11773 | DSERR_BADFORMAT = HResult($88780000 + 100); |
||
11774 | DSERR_UNSUPPORTED = HResult(E_NOTIMPL); |
||
11775 | DSERR_NODRIVER = HResult($88780000 + 120); |
||
11776 | DSERR_ALREADYINITIALIZED = HResult($88780000 + 130); |
||
11777 | DSERR_NOAGGREGATION = HResult(CLASS_E_NOAGGREGATION); |
||
11778 | DSERR_BUFFERLOST = HResult($88780000 + 150); |
||
11779 | DSERR_OTHERAPPHASPRIO = HResult($88780000 + 160); |
||
11780 | DSERR_UNINITIALIZED = HResult($88780000 + 170); |
||
11781 | DSERR_NOINTERFACE = HResult(E_NOINTERFACE); |
||
11782 | DSERR_ACCESSDENIED = HResult(E_ACCESSDENIED); |
||
11783 | |||
11784 | { Flags } |
||
11785 | |||
11786 | DSCAPS_PRIMARYMONO = $00000001; |
||
11787 | DSCAPS_PRIMARYSTEREO = $00000002; |
||
11788 | DSCAPS_PRIMARY8BIT = $00000004; |
||
11789 | DSCAPS_PRIMARY16BIT = $00000008; |
||
11790 | DSCAPS_CONTINUOUSRATE = $00000010; |
||
11791 | DSCAPS_EMULDRIVER = $00000020; |
||
11792 | DSCAPS_CERTIFIED = $00000040; |
||
11793 | DSCAPS_SECONDARYMONO = $00000100; |
||
11794 | DSCAPS_SECONDARYSTEREO = $00000200; |
||
11795 | DSCAPS_SECONDARY8BIT = $00000400; |
||
11796 | DSCAPS_SECONDARY16BIT = $00000800; |
||
11797 | |||
11798 | DSSCL_NORMAL = $00000001; |
||
11799 | DSSCL_PRIORITY = $00000002; |
||
11800 | DSSCL_EXCLUSIVE = $00000003; |
||
11801 | DSSCL_WRITEPRIMARY = $00000004; |
||
11802 | |||
11803 | DSSPEAKER_HEADPHONE = $00000001; |
||
11804 | DSSPEAKER_MONO = $00000002; |
||
11805 | DSSPEAKER_QUAD = $00000003; |
||
11806 | DSSPEAKER_STEREO = $00000004; |
||
11807 | DSSPEAKER_SURROUND = $00000005; |
||
11808 | DSSPEAKER_5POINT1 = $00000006; |
||
11809 | |||
11810 | DSSPEAKER_GEOMETRY_MIN = $00000005; |
||
11811 | DSSPEAKER_GEOMETRY_NARROW = $0000000A; |
||
11812 | DSSPEAKER_GEOMETRY_WIDE = $00000014; |
||
11813 | DSSPEAKER_GEOMETRY_MAX = $000000B4; |
||
11814 | |||
11815 | DSBCAPS_PRIMARYBUFFER = $00000001; |
||
11816 | DSBCAPS_STATIC = $00000002; |
||
11817 | DSBCAPS_LOCHARDWARE = $00000004; |
||
11818 | DSBCAPS_LOCSOFTWARE = $00000008; |
||
11819 | DSBCAPS_CTRL3D = $00000010; |
||
11820 | DSBCAPS_CTRLFREQUENCY = $00000020; |
||
11821 | DSBCAPS_CTRLPAN = $00000040; |
||
11822 | DSBCAPS_CTRLVOLUME = $00000080; |
||
11823 | DSBCAPS_CTRLPOSITIONNOTIFY = $00000100; |
||
11824 | DSBCAPS_CTRLDEFAULT = $000000E0; |
||
11825 | DSBCAPS_CTRLALL = $000001F0; |
||
11826 | DSBCAPS_STICKYFOCUS = $00004000; |
||
11827 | DSBCAPS_GLOBALFOCUS = $00008000; |
||
11828 | DSBCAPS_GETCURRENTPOSITION2 = $00010000; |
||
11829 | DSBCAPS_MUTE3DATMAXDISTANCE = $00020000; |
||
11830 | DSBCAPS_LOCDEFER = $00040000; |
||
11831 | |||
11832 | DSBPLAY_LOOPING = $00000001; |
||
11833 | DSBPLAY_LOCHARDWARE = $00000002; |
||
11834 | DSBPLAY_LOCSOFTWARE = $00000004; |
||
11835 | DSBPLAY_TERMINATEBY_TIME = $00000008; |
||
11836 | DSBPLAY_TERMINATEBY_DISTANCE = $00000010; |
||
11837 | DSBPLAY_TERMINATEBY_PRIORITY = $00000020; |
||
11838 | |||
11839 | DSBSTATUS_PLAYING = $00000001; |
||
11840 | DSBSTATUS_BUFFERLOST = $00000002; |
||
11841 | DSBSTATUS_LOOPING = $00000004; |
||
11842 | DSBSTATUS_LOCHARDWARE = $00000008; |
||
11843 | DSBSTATUS_LOCSOFTWARE = $00000010; |
||
11844 | DSBSTATUS_TERMINATED = $00000020; |
||
11845 | |||
11846 | DSBLOCK_FROMWRITECURSOR = $00000001; |
||
11847 | DSBLOCK_ENTIREBUFFER = $00000002; |
||
11848 | |||
11849 | DSBFREQUENCY_MIN = 100; |
||
11850 | DSBFREQUENCY_MAX = 100000; |
||
11851 | DSBFREQUENCY_ORIGINAL = 0; |
||
11852 | |||
11853 | DSBPAN_LEFT = -10000; |
||
11854 | DSBPAN_CENTER = 0; |
||
11855 | DSBPAN_RIGHT = 10000; |
||
11856 | |||
11857 | DSBVOLUME_MIN = -10000; |
||
11858 | DSBVOLUME_MAX = 0; |
||
11859 | |||
11860 | DSBSIZE_MIN = 4; |
||
11861 | DSBSIZE_MAX = $0FFFFFFF; |
||
11862 | |||
11863 | DS3DMODE_NORMAL = $00000000; |
||
11864 | DS3DMODE_HEADRELATIVE = $00000001; |
||
11865 | DS3DMODE_DISABLE = $00000002; |
||
11866 | |||
11867 | DS3D_IMMEDIATE = $00000000; |
||
11868 | DS3D_DEFERRED = $00000001; |
||
11869 | |||
11870 | DS3D_MINDISTANCEFACTOR = 0.0; |
||
11871 | DS3D_MAXDISTANCEFACTOR = 10.0; |
||
11872 | DS3D_DEFAULTDISTANCEFACTOR = 1.0; |
||
11873 | |||
11874 | DS3D_MINROLLOFFFACTOR = 0.0; |
||
11875 | DS3D_MAXROLLOFFFACTOR = 10.0; |
||
11876 | DS3D_DEFAULTROLLOFFFACTOR = 1.0; |
||
11877 | |||
11878 | DS3D_MINDOPPLERFACTOR = 0.0; |
||
11879 | DS3D_MAXDOPPLERFACTOR = 10.0; |
||
11880 | DS3D_DEFAULTDOPPLERFACTOR = 1.0; |
||
11881 | |||
11882 | DS3D_DEFAULTMINDISTANCE = 1.0; |
||
11883 | DS3D_DEFAULTMAXDISTANCE = 1000000000.0; |
||
11884 | |||
11885 | DS3D_MINCONEANGLE = 0; |
||
11886 | DS3D_MAXCONEANGLE = 360; |
||
11887 | DS3D_DEFAULTCONEANGLE = 360; |
||
11888 | |||
11889 | DS3D_DEFAULTCONEOUTSIDEVOLUME = DSBVOLUME_MAX; |
||
11890 | |||
11891 | DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER; |
||
11892 | DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED; |
||
11893 | |||
11894 | DSCBCAPS_WAVEMAPPED = $80000000; |
||
11895 | |||
11896 | DSCBLOCK_ENTIREBUFFER = $00000001; |
||
11897 | |||
11898 | DSCBSTATUS_CAPTURING = $00000001; |
||
11899 | DSCBSTATUS_LOOPING = $00000002; |
||
11900 | |||
11901 | DSCBSTART_LOOPING = $00000001; |
||
11902 | |||
11903 | DSBPN_OFFSETSTOP = $FFFFFFFF; |
||
11904 | |||
11905 | DS3DALG_DEFAULT: TGUID = '{00000000-0000-0000-0000-000000000000}'; |
||
11906 | DS3DALG_NO_VIRTUALIZATION: TGUID = '{C241333F-1C1B-11D2-94F5-00C04FC28ACA}'; |
||
11907 | DS3DALG_HRTF_FULL: TGUID = '{C2413340-1C1B-11D2-94F5-00C04FC28ACA}'; |
||
11908 | DS3DALG_HRTF_LIGHT: TGUID = '{C2413342-1C1B-11D2-94F5-00C04FC28ACA}'; |
||
11909 | |||
11910 | function DSSPEAKER_COMBINED(c, g: Byte): DWORD; |
||
11911 | function DSSPEAKER_CONFIG(a: DWORD): Byte; |
||
11912 | function DSSPEAKER_GEOMETRY(a: DWORD): Byte; |
||
11913 | |||
11914 | { DirectSound API } |
||
11915 | |||
11916 | type |
||
11917 | TDSEnumCallbackW = function(lpGuid: PGUID; lpstrDescription: LPCWSTR; |
||
11918 | lpstrModule: LPCWSTR; lpContext: Pointer): BOOL; stdcall; |
||
11919 | LPDSENUMCALLBACKW = TDSEnumCallbackW; |
||
11920 | |||
11921 | TDSEnumCallbackA = function(lpGuid: PGUID; lpstrDescription: LPCSTR; |
||
11922 | lpstrModule: LPCSTR; lpContext: Pointer): BOOL; stdcall; |
||
11923 | LPDSENUMCALLBACKA = TDSEnumCallbackA; |
||
11924 | |||
11925 | TDSEnumCallback = TDSEnumCallbackA; |
||
11926 | LPDSENUMCALLBACK = TDSEnumCallback; |
||
11927 | |||
11928 | function DirectSoundCreate(lpGUID: PGUID; out lpDS: IDirectSound; pUnkOuter: IUnknown): HResult; stdcall; |
||
11929 | function DirectSoundEnumerateA(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
11930 | function DirectSoundEnumerateW(lpDSEnumCallback: TDSEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
||
11931 | function DirectSoundEnumerate(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
11932 | |||
11933 | function DirectSoundCaptureCreate(lpGUID: PGUID; out lplpDSC: IDirectSoundCapture; pUnkOuter: IUnknown): HResult; stdcall; |
||
11934 | function DirectSoundCaptureEnumerateA(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
11935 | function DirectSoundCaptureEnumerateW(lpDSEnumCallback: TDSEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
||
11936 | function DirectSoundCaptureEnumerate(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
||
11937 | |||
11938 | //==========================================================================; |
||
11939 | // |
||
11940 | // dls1.h |
||
11941 | // |
||
11942 | // |
||
11943 | // Description: |
||
11944 | // |
||
11945 | // Interface defines and structures for the Instrument Collection Form |
||
11946 | // RIFF DLS. |
||
11947 | // |
||
11948 | // |
||
11949 | // Written by Sonic Foundry 1996. Released for public use. |
||
11950 | // |
||
11951 | //========================================================================= |
||
11952 | |||
11953 | //////////////////////////////////////////////////////////////////////////// |
||
11954 | // |
||
11955 | // |
||
11956 | // Layout of an instrument collection: |
||
11957 | // |
||
11958 | // |
||
11959 | // RIFF [] 'DLS ' [dlid,colh,INSTLIST,WAVEPOOL,INFOLIST] |
||
11960 | // |
||
11961 | // INSTLIST |
||
11962 | // LIST [] 'lins' |
||
11963 | // LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] |
||
11964 | // LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] |
||
11965 | // LIST [] 'ins ' [dlid,insh,RGNLIST,ARTLIST,INFOLIST] |
||
11966 | // |
||
11967 | // RGNLIST |
||
11968 | // LIST [] 'lrgn' |
||
11969 | // LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] |
||
11970 | // LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] |
||
11971 | // LIST [] 'rgn ' [rgnh,wsmp,wlnk,ARTLIST] |
||
11972 | // |
||
11973 | // ARTLIST |
||
11974 | // LIST [] 'lart' |
||
11975 | // 'art1' level 1 Articulation connection graph |
||
11976 | // 'art2' level 2 Articulation connection graph |
||
11977 | // '3rd1' Possible 3rd party articulation structure 1 |
||
11978 | // '3rd2' Possible 3rd party articulation structure 2 .... and so on |
||
11979 | // |
||
11980 | // WAVEPOOL |
||
11981 | // ptbl [] [pool table] |
||
11982 | // LIST [] 'wvpl' |
||
11983 | // [path], |
||
11984 | // [path], |
||
11985 | // LIST [] 'wave' [dlid,RIFFWAVE] |
||
11986 | // LIST [] 'wave' [dlid,RIFFWAVE] |
||
11987 | // LIST [] 'wave' [dlid,RIFFWAVE] |
||
11988 | // LIST [] 'wave' [dlid,RIFFWAVE] |
||
11989 | // LIST [] 'wave' [dlid,RIFFWAVE] |
||
11990 | // |
||
11991 | // INFOLIST |
||
11992 | // LIST [] 'INFO' |
||
11993 | // 'icmt' 'One of those crazy comments.' |
||
11994 | // 'icop' 'Copyright (C) 1996 Sonic Foundry' |
||
11995 | // |
||
11996 | ////////////////////////////////////////////////////////////////////////// |
||
11997 | |||
11998 | |||
11999 | /////////////////////////////////////////////////////////////////////////// |
||
12000 | // FOURCC's used in the DLS file |
||
12001 | ////////////////////////////////////////////////////////////////////////// |
||
12002 | const |
||
12003 | FOURCC_DLS = Ord('D') + Ord('L') shl 8 + Ord('S') shl 16 + Ord(' ') shl 24; |
||
12004 | FOURCC_DLID = Ord('d') + Ord('l') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
||
12005 | FOURCC_COLH = Ord('c') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('h') shl 24; |
||
12006 | FOURCC_WVPL = Ord('w') + Ord('v') shl 8 + Ord('p') shl 16 + Ord('l') shl 24; |
||
12007 | FOURCC_PTBL = Ord('p') + Ord('t') shl 8 + Ord('b') shl 16 + Ord('l') shl 24; |
||
12008 | FOURCC_PATH = Ord('p') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
||
12009 | FOURCC_wave = Ord('w') + Ord('a') shl 8 + Ord('v') shl 16 + Ord('e') shl 24; |
||
12010 | FOURCC_LINS = Ord('l') + Ord('i') shl 8 + Ord('n') shl 16 + Ord('s') shl 24; |
||
12011 | FOURCC_INS = Ord('i') + Ord('n') shl 8 + Ord('s') shl 16 + Ord(' ') shl 24; |
||
12012 | FOURCC_INSH = Ord('i') + Ord('n') shl 8 + Ord('s') shl 16 + Ord('h') shl 24; |
||
12013 | FOURCC_LRGN = Ord('l') + Ord('r') shl 8 + Ord('g') shl 16 + Ord('n') shl 24; |
||
12014 | FOURCC_RGN = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord(' ') shl 24; |
||
12015 | FOURCC_RGNH = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('h') shl 24; |
||
12016 | FOURCC_LART = Ord('l') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('t') shl 24; |
||
12017 | FOURCC_ART1 = Ord('a') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('1') shl 24; |
||
12018 | FOURCC_WLNK = Ord('w') + Ord('l') shl 8 + Ord('n') shl 16 + Ord('k') shl 24; |
||
12019 | FOURCC_WSMP = Ord('w') + Ord('s') shl 8 + Ord('m') shl 16 + Ord('p') shl 24; |
||
12020 | //FOURCC_VERS = Ord('v') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('s') shl 24; |
||
12021 | |||
12022 | /////////////////////////////////////////////////////////////////////////// |
||
12023 | // Articulation connection graph definitions |
||
12024 | ////////////////////////////////////////////////////////////////////////// |
||
12025 | |||
12026 | // Generic Sources |
||
12027 | CONN_SRC_NONE = $0000; |
||
12028 | CONN_SRC_LFO = $0001; |
||
12029 | CONN_SRC_KEYONVELOCITY = $0002; |
||
12030 | CONN_SRC_KEYNUMBER = $0003; |
||
12031 | CONN_SRC_EG1 = $0004; |
||
12032 | CONN_SRC_EG2 = $0005; |
||
12033 | CONN_SRC_PITCHWHEEL = $0006; |
||
12034 | |||
12035 | // Midi Controllers 0-127 |
||
12036 | CONN_SRC_CC1 = $0081; |
||
12037 | CONN_SRC_CC7 = $0087; |
||
12038 | CONN_SRC_CC10 = $008A; |
||
12039 | CONN_SRC_CC11 = $008B; |
||
12040 | |||
12041 | // Generic Destinations |
||
12042 | CONN_DST_NONE = $0000; |
||
12043 | CONN_DST_ATTENUATION = $0001; |
||
12044 | CONN_DST_PITCH = $0003; |
||
12045 | CONN_DST_PAN = $0004; |
||
12046 | |||
12047 | // LFO Destinations |
||
12048 | CONN_DST_LFO_FREQUENCY = $0104; |
||
12049 | CONN_DST_LFO_STARTDELAY = $0105; |
||
12050 | |||
12051 | // EG1 Destinations |
||
12052 | CONN_DST_EG1_ATTACKTIME = $0206; |
||
12053 | CONN_DST_EG1_DECAYTIME = $0207; |
||
12054 | CONN_DST_EG1_RELEASETIME = $0209; |
||
12055 | CONN_DST_EG1_SUSTAINLEVEL = $020A; |
||
12056 | |||
12057 | // EG2 Destinations |
||
12058 | CONN_DST_EG2_ATTACKTIME = $030A; |
||
12059 | CONN_DST_EG2_DECAYTIME = $030B; |
||
12060 | CONN_DST_EG2_RELEASETIME = $030D; |
||
12061 | CONN_DST_EG2_SUSTAINLEVEL = $030E; |
||
12062 | |||
12063 | CONN_TRN_NONE = $0000; |
||
12064 | CONN_TRN_CONCAVE = $0001; |
||
12065 | |||
12066 | type |
||
12067 | TDLSID = record |
||
12068 | ulData1 : Cardinal; |
||
12069 | usData2 : Word; |
||
12070 | usData3 : Word; |
||
12071 | abData4 : array[0..7] of Byte; |
||
12072 | end; |
||
12073 | DLSID = TDLSID; |
||
12074 | LPDLSID = ^DLSID; |
||
12075 | |||
12076 | {TDLSVERSION = record |
||
12077 | dwVersionMS : DWORD; |
||
12078 | dwVersionLS : DWORD; |
||
12079 | end; |
||
12080 | DLSVERSION = TDLSVERSION; |
||
12081 | LPDLSVERSION = ^DLSVERSION; |
||
12082 | } |
||
12083 | TCONNECTION = record |
||
12084 | usSource : Word; |
||
12085 | usControl : Word; |
||
12086 | usDestination : Word; |
||
12087 | usTransform : Word; |
||
12088 | lScale : Cardinal; |
||
12089 | end; |
||
12090 | CONNECTION = TCONNECTION; |
||
12091 | LPCONNECTION = ^CONNECTION; |
||
12092 | |||
12093 | // Level 1 Articulation Data |
||
12094 | |||
12095 | TCONNECTIONLIST = record |
||
12096 | cbSize : Cardinal; // size of the connection list structure |
||
12097 | cConnections : Cardinal; // count of connections in the list |
||
12098 | end; |
||
12099 | CONNECTIONLIST = TCONNECTIONLIST; |
||
12100 | LPCONNECTIONLIST = ^CONNECTIONLIST; |
||
12101 | |||
12102 | /////////////////////////////////////////////////////////////////////////// |
||
12103 | // Generic type defines for regions and instruments |
||
12104 | ////////////////////////////////////////////////////////////////////////// |
||
12105 | type |
||
12106 | TRGNRANGE = record |
||
12107 | usLow : Word; |
||
12108 | usHigh : Word; |
||
12109 | end; |
||
12110 | RGNRANGE = TRGNRANGE; |
||
12111 | LPRGNRANGE = ^RGNRANGE; |
||
12112 | |||
12113 | const |
||
12114 | FTINSTRUMENTTDRUMS = $80000000; |
||
12115 | |||
12116 | type |
||
12117 | TMIDILOCALE = record |
||
12118 | ulBank : Cardinal; |
||
12119 | ulInstrument : Cardinal; |
||
12120 | end; |
||
12121 | MIDILOCALE = TMIDILOCALE; |
||
12122 | LPMIDILOCALE = ^MIDILOCALE; |
||
12123 | |||
12124 | /////////////////////////////////////////////////////////////////////////// |
||
12125 | // Header structures found in an DLS file for collection, instruments, and |
||
12126 | // regions. |
||
12127 | ////////////////////////////////////////////////////////////////////////// |
||
12128 | const |
||
12129 | F_RGN_OPTION_SELFNONEXCLUSIVE = $0001; |
||
12130 | |||
12131 | type |
||
12132 | TRGNHEADER = record |
||
12133 | RangeKey : RGNRANGE; // Key range |
||
12134 | RangeVelocity : RGNRANGE; // Velocity Range |
||
12135 | fusOptions : Word; // Synthesis options for this range |
||
12136 | usKeyGroup : Word; // Key grouping for non simultaneous play |
||
12137 | end; // 0 = no group, 1 up is group |
||
12138 | // for Level 1 only groups 1-15 are allowed |
||
12139 | RGNHEADER = TRGNHEADER; |
||
12140 | LPRGNHEADER = ^RGNHEADER; |
||
12141 | |||
12142 | TINSTHEADER = record |
||
12143 | cRegions : Cardinal; // Count of regions in this instrument |
||
12144 | Locale : MIDILOCALE; // Intended MIDI locale of this instrument |
||
12145 | end; |
||
12146 | INSTHEADER = TINSTHEADER; |
||
12147 | LPINSTHEADER = ^INSTHEADER; |
||
12148 | |||
12149 | TDLSHEADER = record |
||
12150 | cInstruments : Cardinal; // Count of instruments in the collection |
||
12151 | end; |
||
12152 | DLSHEADER = TDLSHEADER; |
||
12153 | LPDLSHEADER = ^DLSHEADER; |
||
12154 | |||
12155 | ////////////////////////////////////////////////////////////////////////////// |
||
12156 | // definitions for the Wave link structure |
||
12157 | ///////////////////////////////////////////////////////////////////////////// |
||
12158 | |||
12159 | // **** For level 1 only WAVELINK_CHANNEL_MONO is valid **** |
||
12160 | // ulChannel allows for up to 32 channels of audio with each bit position |
||
12161 | // specifiying a channel of playback |
||
12162 | |||
12163 | const |
||
12164 | WAVELINK_CHANNEL_LEFT = $0001; |
||
12165 | WAVELINK_CHANNEL_RIGHT = $0002; |
||
12166 | |||
12167 | F_WAVELINK_PHASE_MASTER = $0001; |
||
12168 | |||
12169 | type |
||
12170 | TWAVELINK = record // any paths or links are stored right after struct |
||
12171 | fusOptions : Word; // options flags for this wave |
||
12172 | usPhaseGroup : Word; // Phase grouping for locking channels |
||
12173 | ulChannel : Cardinal; // channel placement |
||
12174 | ulTableIndex : Cardinal; // index into the wave pool table, 0 based |
||
12175 | end; |
||
12176 | WAVELINK = TWAVELINK; |
||
12177 | LPWAVELINK = ^WAVELINK; |
||
12178 | |||
12179 | const |
||
12180 | POOL_CUE_NULL = $FFFFFFFF; |
||
12181 | |||
12182 | type |
||
12183 | TPOOLCUE = record |
||
12184 | ulOffset : Cardinal; // Offset to the entry in the list |
||
12185 | end; |
||
12186 | POOLCUE = TPOOLCUE; |
||
12187 | LPPOOLCUE = ^POOLCUE; |
||
12188 | |||
12189 | TPOOLTABLE = record |
||
12190 | cbSize : Cardinal; // size of the pool table structure |
||
12191 | cCues : Cardinal; // count of cues in the list |
||
12192 | end; |
||
12193 | POOLTABLE = TPOOLTABLE; |
||
12194 | LPPOOLTABLE = ^POOLTABLE; |
||
12195 | |||
12196 | ////////////////////////////////////////////////////////////////////////////// |
||
12197 | // Structures for the "wsmp" chunk |
||
12198 | ///////////////////////////////////////////////////////////////////////////// |
||
12199 | const |
||
12200 | F_WSMP_NO_TRUNCATION = $0001; |
||
12201 | F_WSMP_NO_COMPRESSION = $0002; |
||
12202 | |||
12203 | type |
||
12204 | Trwsmp = record |
||
12205 | cbSize : Cardinal; |
||
12206 | usUnityNote : Word; // MIDI Unity Playback Note |
||
12207 | sFineTune : Smallint; // Fine Tune in log tuning |
||
12208 | lAttenuation : Longint; // Overall Attenuation to be applied to data |
||
12209 | fulOptions : Cardinal; // Flag options |
||
12210 | cSampleLoops : Cardinal; // Count of Sample loops, 0 loops is one shot |
||
12211 | end; |
||
12212 | WSMPL = Trwsmp; |
||
12213 | LPWSMPL = ^WSMPL; |
||
12214 | |||
12215 | |||
12216 | // This loop type is a normal forward playing loop which is continually |
||
12217 | // played until the envelope reaches an off threshold in the release |
||
12218 | // portion of the volume envelope |
||
12219 | const |
||
12220 | WLOOP_TYPE_FORWARD = 0; |
||
12221 | |||
12222 | type |
||
12223 | Trloop = record |
||
12224 | cbSize : Cardinal; |
||
12225 | ulType : Cardinal; // Loop Type |
||
12226 | ulStart : Cardinal; // Start of loop in samples |
||
12227 | ulLength : Cardinal; // Length of loop in samples |
||
12228 | end; |
||
12229 | WLOOP = Trloop; |
||
12230 | LPWLOOP = ^WLOOP; |
||
12231 | |||
12232 | {/* |
||
12233 | |||
12234 | dls2.h |
||
12235 | |||
12236 | Description: |
||
12237 | |||
12238 | Interface defines and structures for the DLS2 extensions of DLS. |
||
12239 | |||
12240 | |||
12241 | Written by Microsoft 1998. Released for public use. |
||
12242 | |||
12243 | } |
||
12244 | |||
12245 | const |
||
12246 | // |
||
12247 | // FOURCC's used in the DLS2 file, in addition to DLS1 chunks |
||
12248 | /// |
||
12249 | |||
12250 | FOURCC_RGN2 = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('2') shl 24; |
||
12251 | FOURCC_LAR2 = Ord('l') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('2') shl 24; |
||
12252 | FOURCC_ART2 = Ord('a') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('2') shl 24; |
||
12253 | FOURCC_CDL = Ord('c') + Ord('d') shl 8 + Ord('l') shl 16 + Ord(' ') shl 24; |
||
12254 | //FOURCC_DLID = Ord('d') + Ord('l') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
||
12255 | |||
12256 | // |
||
12257 | // Articulation connection graph definitions. These are in addition to |
||
12258 | // the definitions in the DLS1 header. |
||
12259 | /// |
||
12260 | |||
12261 | // Generic Sources (in addition to DLS1 sources. |
||
12262 | CONN_SRC_POLYPRESSURE = $0007; // Polyphonic Pressure |
||
12263 | CONN_SRC_CHANNELPRESSURE = $0008; // Channel Pressure |
||
12264 | CONN_SRC_VIBRATO = $0009; // Vibrato LFO |
||
12265 | CONN_SRC_MONOPRESSURE = $000a; // MIDI Mono pressure |
||
12266 | |||
12267 | |||
12268 | // Midi Controllers |
||
12269 | CONN_SRC_CC91 = $00db; // Reverb Send |
||
12270 | CONN_SRC_CC93 = $00dd; // Chorus Send |
||
12271 | |||
12272 | |||
12273 | // Generic Destinations |
||
12274 | CONN_DST_GAIN = $0001; // Same as CONN_DST_ ATTENUATION |
||
12275 | CONN_DST_KEYNUMBER = $0005; // Key Number Generator |
||
12276 | |||
12277 | // Audio Channel Output Destinations |
||
12278 | CONN_DST_LEFT = $0010; // Left Channel Send |
||
12279 | CONN_DST_RIGHT = $0011; // Right Channel Send |
||
12280 | CONN_DST_CENTER = $0012; // Center Channel Send |
||
12281 | CONN_DST_LEFTREAR = $0013; // Left Rear Channel Send |
||
12282 | CONN_DST_RIGHTREAR = $0014; // Right Rear Channel Send |
||
12283 | CONN_DST_LFE_CHANNEL = $0015; // LFE Channel Send |
||
12284 | CONN_DST_CHORUS = $0080; // Chorus Send |
||
12285 | CONN_DST_REVERB = $0081; // Reverb Send |
||
12286 | |||
12287 | // Vibrato LFO Destinations |
||
12288 | CONN_DST_VIB_FREQUENCY = $0114; // Vibrato Frequency |
||
12289 | CONN_DST_VIB_STARTDELAY = $0115; // Vibrato Start Delay |
||
12290 | |||
12291 | // EG1 Destinations |
||
12292 | CONN_DST_EG1_DELAYTIME = $020B; // EG1 Delay Time |
||
12293 | CONN_DST_EG1_HOLDTIME = $020C; // EG1 Hold Time |
||
12294 | |||
12295 | |||
12296 | // EG2 Destinations |
||
12297 | CONN_DST_EG2_DELAYTIME = $030F; // EG2 Delay Time |
||
12298 | CONN_DST_EG2_HOLDTIME = $0310; // EG2 Hold Time |
||
12299 | |||
12300 | |||
12301 | // Filter Destinations |
||
12302 | CONN_DST_FILTER_CUTOFF = $0500; // Filter Cutoff Frequency |
||
12303 | CONN_DST_FILTER_Q = $0501; // Filter Resonance |
||
12304 | |||
12305 | |||
12306 | // Transforms |
||
12307 | CONN_TRN_CONVEX = $0002; // Convex Transform |
||
12308 | CONN_TRN_SWITCH = $0003; // Switch Transform |
||
12309 | |||
12310 | |||
12311 | // Conditional chunk operators |
||
12312 | DLS_CDL_AND = $0001; // X = X & Y |
||
12313 | DLS_CDL_OR = $0002; // X = X | Y |
||
12314 | DLS_CDL_XOR = $0003; // X = X ^ Y |
||
12315 | DLS_CDL_ADD = $0004; // X = X + Y |
||
12316 | DLS_CDL_SUBTRACT = $0005; // X = X - Y |
||
12317 | DLS_CDL_MULTIPLY = $0006; // X = X * Y |
||
12318 | DLS_CDL_DIVIDE = $0007; // X = X / Y |
||
12319 | DLS_CDL_LOGICAL_AND = $0008; // X = X && Y |
||
12320 | DLS_CDL_LOGICAL_OR = $0009; // X = X || Y |
||
12321 | DLS_CDL_LT = $000A; // X = (X < Y) |
||
12322 | DLS_CDL_LE = $000B; // X = (X <= Y) |
||
12323 | DLS_CDL_GT = $000C; // X = (X > Y) |
||
12324 | DLS_CDL_GE = $000D; // X = (X >= Y) |
||
12325 | DLS_CDL_EQ = $000E; // X = (X == Y) |
||
12326 | DLS_CDL_NOT = $000F; // X = !X |
||
12327 | DLS_CDL_CONST = $0010; // 32-bit constant |
||
12328 | DLS_CDL_QUERY = $0011; // 32-bit value returned from query |
||
12329 | DLS_CDL_QUERYSUPPORTED = $0012; // Test to see if DLSID Query is supported |
||
12330 | |||
12331 | //Loop and release |
||
12332 | |||
12333 | WLOOP_TYPE_RELEASE = 2; |
||
12334 | |||
12335 | //DLSID queries for <cdl-ck> |
||
12336 | |||
12337 | DLSID_GMInHardware : TGUID = '{178F2F24-C364-11D1-A760-0000F875AC12}'; |
||
12338 | DLSID_GSInHardware : TGUID = '{178F2F25-C364-11D1-A760-0000F875AC12}'; |
||
12339 | DLSID_XGInHardware : TGUID = '{178F2F26-C364-11D1-A760-0000F875AC12}'; |
||
12340 | DLSID_SupportsDLS1 : TGUID = '{178F2F27-C364-11D1-A760-0000F875AC12}'; |
||
12341 | DLSID_SupportsDLS2 : TGUID = '{F14599E5-4689-11D2-AFA6-00AA0024D8B6}'; |
||
12342 | DLSID_SampleMemorySize : TGUID = '{178F2F28-C364-11D1-A760-0000F875AC12}'; |
||
12343 | DLSID_ManufacturersID : TGUID = '{B03E1181-8095-11D2-A1EF-00600833DBD8}'; |
||
12344 | DLSID_ProductID : TGUID = '{B03E1182-8095-11D2-A1EF-00600833DBD8}'; |
||
12345 | DLSID_SamplePlaybackRate : TGUID = '{2A91F713-A4BF-11D2-BBDF-00600833DBD8}'; |
||
12346 | |||
12347 | //*********************************************************************** |
||
12348 | // * |
||
12349 | // dmdls.h -- DLS download definitions for DirectMusic API's * |
||
12350 | // * |
||
12351 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
12352 | // * |
||
12353 | //********************************************************************** |
||
12354 | |||
12355 | type |
||
12356 | PCENT = Longint; // Pitch cents |
||
12357 | GCENT = Longint; // Gain cents |
||
12358 | TCENT = Longint; // Time cents |
||
12359 | PERCENT = Longint; // Per.. cent! |
||
12360 | |||
12361 | PReference_Time = ^TReference_Time; |
||
12362 | TReference_Time = LONGLONG; |
||
12363 | |||
12364 | Reference_Time = TReference_Time; |
||
12365 | LPREFERENCE_TIME = PReference_Time; |
||
12366 | |||
12367 | function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
||
12368 | |||
12369 | type |
||
12370 | FOURCC = DWORD; // a four character code |
||
12371 | |||
12372 | TDMUS_DOWNLOADINFO = record |
||
12373 | dwDLType : DWORD; // Instrument or Wave |
||
12374 | dwDLId : DWORD; // Unique identifier to tag this download. |
||
12375 | dwNumOffsetTableEntries : DWORD; // Number of index in the offset address table. |
||
12376 | cbSize : DWORD; // Total size of this memory chunk. |
||
12377 | end; |
||
12378 | DMUS_DOWNLOADINFO = TDMUS_DOWNLOADINFO; |
||
12379 | |||
12380 | const |
||
12381 | DMUS_DOWNLOADINFO_INSTRUMENT = 1; |
||
12382 | DMUS_DOWNLOADINFO_WAVE = 2; |
||
12383 | |||
12384 | DMUS_DEFAULT_SIZE_OFFSETTABLE = 1; |
||
12385 | |||
12386 | // Flags for DMUS_INSTRUMENT's ulFlags member |
||
12387 | |||
12388 | DMUS_INSTRUMENT_GM_INSTRUMENT = 1; // (1 << 0) ???? |
||
12389 | |||
12390 | type |
||
12391 | TDMUS_OFFSETTABLE = record |
||
12392 | ulOffsetTable : array [0..DMUS_DEFAULT_SIZE_OFFSETTABLE] of Cardinal; |
||
12393 | end; |
||
12394 | DMUS_OFFSETTABLE = TDMUS_OFFSETTABLE; |
||
12395 | |||
12396 | TDMUS_INSTRUMENT = record |
||
12397 | ulPatch : Cardinal; |
||
12398 | ulFirstRegionIdx : Cardinal; |
||
12399 | ulGlobalArtIdx : Cardinal; // If zero the instrument does not have an articulation |
||
12400 | ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the instrument |
||
12401 | ulCopyrightIdx : Cardinal; // If zero no Copyright information associated with the instrument |
||
12402 | ulFlags : Cardinal; |
||
12403 | end; |
||
12404 | DMUS_INSTRUMENT = TDMUS_INSTRUMENT; |
||
12405 | |||
12406 | TDMUS_REGION = record |
||
12407 | RangeKey : RGNRANGE; |
||
12408 | RangeVelocity : RGNRANGE; |
||
12409 | fusOptions : Word; |
||
12410 | usKeyGroup : Word; |
||
12411 | ulRegionArtIdx : Cardinal; // If zero the region does not have an articulation |
||
12412 | ulNextRegionIdx : Cardinal; // If zero no more regions |
||
12413 | ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the region |
||
12414 | WaveLink : WAVELINK; |
||
12415 | WSMP : WSMPL; // If WSMP.cSampleLoops > 1 then a WLOOP is included |
||
12416 | WLOOP : array[0..0] of WLOOP; |
||
12417 | end; |
||
12418 | DMUS_REGION = TDMUS_REGION; |
||
12419 | |||
12420 | TDMUS_LFOPARAMS = record |
||
12421 | pcFrequency : PCENT; |
||
12422 | tcDelay : TCENT; |
||
12423 | gcVolumeScale : GCENT; |
||
12424 | pcPitchScale : PCENT; |
||
12425 | gcMWToVolume : GCENT; |
||
12426 | pcMWToPitch : PCENT; |
||
12427 | end; |
||
12428 | DMUS_LFOPARAMS = TDMUS_LFOPARAMS; |
||
12429 | |||
12430 | TDMUS_VEGPARAMS = record |
||
12431 | tcAttack : TCENT; |
||
12432 | tcDecay : TCENT; |
||
12433 | ptSustain : PERCENT; |
||
12434 | tcRelease : TCENT; |
||
12435 | tcVel2Attack : TCENT; |
||
12436 | tcKey2Decay : TCENT; |
||
12437 | end; |
||
12438 | DMUS_VEGPARAMS = TDMUS_VEGPARAMS; |
||
12439 | |||
12440 | TDMUS_PEGPARAMS = record |
||
12441 | tcAttack : TCENT; |
||
12442 | tcDecay : TCENT; |
||
12443 | ptSustain : PERCENT; |
||
12444 | tcRelease : TCENT; |
||
12445 | tcVel2Attack : TCENT; |
||
12446 | tcKey2Decay : TCENT; |
||
12447 | pcRange : PCENT; |
||
12448 | end; |
||
12449 | DMUS_PEGPARAMS = TDMUS_PEGPARAMS; |
||
12450 | |||
12451 | TDMUS_MSCPARAMS = record |
||
12452 | ptDefaultPan : PERCENT; |
||
12453 | end; |
||
12454 | DMUS_MSCPARAMS = TDMUS_MSCPARAMS; |
||
12455 | |||
12456 | TDMUS_ARTICPARAMS = record |
||
12457 | LFO : DMUS_LFOPARAMS; |
||
12458 | VolEG : DMUS_VEGPARAMS; |
||
12459 | PitchEG : DMUS_PEGPARAMS; |
||
12460 | Misc : DMUS_MSCPARAMS; |
||
12461 | end; |
||
12462 | DMUS_ARTICPARAMS = TDMUS_ARTICPARAMS; |
||
12463 | |||
12464 | TDMUS_ARTICULATION = record |
||
12465 | ulArt1Idx : Cardinal; // If zero no DLS Level 1 articulation chunk |
||
12466 | ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the articulation |
||
12467 | ulNextArtIdx : Cardinal; // Additional articulation chunks |
||
12468 | end; |
||
12469 | DMUS_ARTICULATION = TDMUS_ARTICULATION; |
||
12470 | |||
12471 | TDMUS_ARTICULATION2 = record |
||
12472 | ulArt1Idx : Cardinal; // If zero no DLS Level 1 articulation chunk |
||
12473 | ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the articulation |
||
12474 | end; |
||
12475 | DMUS_ARTICULATION2 = TDMUS_ARTICULATION2; |
||
12476 | |||
12477 | const |
||
12478 | DMUS_MIN_DATA_SIZE = 4; |
||
12479 | // The actual number is determined by cbSize of struct _DMUS_EXTENSIONCHUNK |
||
12480 | |||
12481 | type |
||
12482 | TDMUS_EXTENSIONCHUNK = record |
||
12483 | cbSize : Cardinal; // Size of extension chunk |
||
12484 | ulNextExtCkIdx : Cardinal; // If zero no more 3rd party entenstion chunks |
||
12485 | ExtCkID : FOURCC; |
||
12486 | byExtCk : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; // The actual number that follows is determined by cbSize |
||
12487 | end; |
||
12488 | DMUS_EXTENSIONCHUNK = TDMUS_EXTENSIONCHUNK; |
||
12489 | |||
12490 | // The actual number is determined by cbSize of struct TDMUS_COPYRIGHT |
||
12491 | |||
12492 | TDMUS_COPYRIGHT = record |
||
12493 | cbSize : Cardinal; // Size of copyright information |
||
12494 | byCopyright : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; // The actual number that follows is determined by cbSize |
||
12495 | end; |
||
12496 | DMUS_COPYRIGHT = TDMUS_COPYRIGHT; |
||
12497 | |||
12498 | TDMUS_WAVEDATA = record |
||
12499 | cbSize : Cardinal; |
||
12500 | byData : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; |
||
12501 | end; |
||
12502 | DMUS_WAVEDATA = TDMUS_WAVEDATA; |
||
12503 | |||
12504 | TDMUS_WAVE = record |
||
12505 | ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the wave |
||
12506 | ulCopyrightIdx : Cardinal; // If zero no Copyright information associated with the wave |
||
12507 | ulWaveDataIdx : Cardinal; // Location of actual wave data. |
||
12508 | WaveformatEx : TWAVEFORMATEX; |
||
12509 | end; |
||
12510 | DMUS_WAVE = TDMUS_WAVE; |
||
12511 | |||
12512 | LPDMUS_NOTERANGE = ^TDMUS_NOTERANGE; |
||
12513 | TDMUS_NOTERANGE = record |
||
12514 | dwLowNote : DWORD; // Sets the low note for the range of MIDI note events to which the instrument responds. |
||
12515 | dwHighNote : DWORD; // Sets the high note for the range of MIDI note events to which the instrument responds. |
||
12516 | end; |
||
12517 | DMUS_NOTERANGE = TDMUS_NOTERANGE; |
||
12518 | |||
12519 | |||
12520 | |||
12521 | |||
12522 | |||
12523 | //*********************************************************************** |
||
12524 | // * |
||
12525 | // dmerror.h -- Error code returned by DirectMusic API's * |
||
12526 | // * |
||
12527 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
12528 | // * |
||
12529 | //********************************************************************** |
||
12530 | |||
12531 | const |
||
12532 | FACILITY_DIRECTMUSIC = $878; // Shared with DirectSound |
||
12533 | DMUS_ERRBASE = $1000; // Make error codes human readable in hex |
||
12534 | |||
12535 | function MAKE_DMHRESULTSUCCESS(code: Cardinal) : HResult; |
||
12536 | function MAKE_DMHRESULTERROR(code: Cardinal) : HResult; |
||
12537 | |||
12538 | // DMUS_S_PARTIALLOAD |
||
12539 | // |
||
12540 | // The object could only load partially. This can happen if some components are |
||
12541 | // not registered properly, such as embedded tracks and tools. |
||
12542 | /// |
||
12543 | const |
||
12544 | DMUS_S_PARTIALLOAD = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $091;// MAKE_DMHRESULTSUCCESS($091); |
||
12545 | |||
12546 | // DMUS_S_REQUEUE |
||
12547 | // |
||
12548 | // Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
||
12549 | // performance that it should cue the PMsg again automatically. |
||
12550 | /// |
||
12551 | DMUS_S_REQUEUE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $200;//MAKE_DMHRESULTSUCCESS(0x200) |
||
12552 | |||
12553 | // DMUS_S_FREE |
||
12554 | // |
||
12555 | // Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
||
12556 | // performance that it should free the PMsg automatically. |
||
12557 | /// |
||
12558 | DMUS_S_FREE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $201;//MAKE_DMHRESULTSUCCESS(0x201) |
||
12559 | |||
12560 | // DMUS_S_END |
||
12561 | // |
||
12562 | // Return value from IDirectMusicTrack::Play() which indicates to the |
||
12563 | // segment that the track has no more data after mtEnd. |
||
12564 | /// |
||
12565 | DMUS_S_END = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $202;//MAKE_DMHRESULTSUCCESS(0x202) |
||
12566 | |||
12567 | // DMUS_S_STRING_TRUNCATED |
||
12568 | // |
||
12569 | // Returned string has been truncated to fit the buffer size. |
||
12570 | /// |
||
12571 | DMUS_S_STRING_TRUNCATED = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $210;//MAKE_DMHRESULTSUCCESS(0x210) |
||
12572 | |||
12573 | // DMUS_S_LAST_TOOL |
||
12574 | // |
||
12575 | // Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg |
||
12576 | // is already stamped with the last tool in the graph. The returned PMsg's |
||
12577 | // tool pointer is now NULL. |
||
12578 | /// |
||
12579 | DMUS_S_LAST_TOOL = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $211;//MAKE_DMHRESULTSUCCESS(0x211) |
||
12580 | |||
12581 | // DMUS_S_OVER_CHORD |
||
12582 | // |
||
12583 | // Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates |
||
12584 | // that no note has been calculated because the music value has the note |
||
12585 | // at a position higher than the top note of the chord. This applies only |
||
12586 | // to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates |
||
12587 | // that the caller should not do anything with the note. It is not meant |
||
12588 | // to be played against this chord. |
||
12589 | /// |
||
12590 | DMUS_S_OVER_CHORD = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $212;//MAKE_DMHRESULTSUCCESS(0x212) |
||
12591 | |||
12592 | // DMUS_S_UP_OCTAVE |
||
12593 | // |
||
12594 | // Returned from IDirectMusicPerformance::MIDIToMusic(), and |
||
12595 | // IDirectMusicPerformance::MusicToMIDI(), this indicates |
||
12596 | // that the note conversion generated a note value that is below 0, |
||
12597 | // so it has been bumped up one or more octaves to be in the proper |
||
12598 | // MIDI range of 0 through 127. |
||
12599 | // Note that this is valid for MIDIToMusic() when using play modes |
||
12600 | // DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
||
12601 | // which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
||
12602 | // valid for all play modes. |
||
12603 | // Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
||
12604 | /// |
||
12605 | DMUS_S_UP_OCTAVE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $213;//MAKE_DMHRESULTSUCCESS(0x213) |
||
12606 | |||
12607 | // DMUS_S_DOWN_OCTAVE |
||
12608 | // |
||
12609 | // Returned from IDirectMusicPerformance::MIDIToMusic(), and |
||
12610 | // IDirectMusicPerformance::MusicToMIDI(), this indicates |
||
12611 | // that the note conversion generated a note value that is above 127, |
||
12612 | // so it has been bumped down one or more octaves to be in the proper |
||
12613 | // MIDI range of 0 through 127. |
||
12614 | // Note that this is valid for MIDIToMusic() when using play modes |
||
12615 | // DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
||
12616 | // which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
||
12617 | // valid for all play modes. |
||
12618 | // Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
||
12619 | /// |
||
12620 | DMUS_S_DOWN_OCTAVE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $214;//MAKE_DMHRESULTSUCCESS(0x214) |
||
12621 | |||
12622 | // DMUS_E_DRIVER_FAILED |
||
12623 | // |
||
12624 | // An unexpected error was returned from a device driver, indicating |
||
12625 | // possible failure of the driver or hardware. |
||
12626 | /// |
||
12627 | DMUS_E_DRIVER_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0101;//MAKE_DMHRESULTERROR(0x0101) |
||
12628 | |||
12629 | // DMUS_E_PORTS_OPEN |
||
12630 | // |
||
12631 | // The requested operation cannot be performed while there are |
||
12632 | // instantiated ports in any process in the system. |
||
12633 | /// |
||
12634 | DMUS_E_PORTS_OPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0102;//MAKE_DMHRESULTERROR(0x0102) |
||
12635 | |||
12636 | // DMUS_E_DEVICE_IN_USE |
||
12637 | // |
||
12638 | // The requested device is already in use (possibly by a non-DirectMusic |
||
12639 | // client) and cannot be opened again. |
||
12640 | /// |
||
12641 | DMUS_E_DEVICE_IN_USE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0103;//MAKE_DMHRESULTERROR(0x0103) |
||
12642 | |||
12643 | // DMUS_E_INSUFFICIENTBUFFER |
||
12644 | // |
||
12645 | // Buffer is not large enough for requested operation. |
||
12646 | /// |
||
12647 | DMUS_E_INSUFFICIENTBUFFER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0104;//MAKE_DMHRESULTERROR(0x0104) |
||
12648 | |||
12649 | // DMUS_E_BUFFERNOTSET |
||
12650 | // |
||
12651 | // No buffer was prepared for the download data. |
||
12652 | /// |
||
12653 | DMUS_E_BUFFERNOTSET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0105;//MAKE_DMHRESULTERROR(0x0105) |
||
12654 | |||
12655 | // DMUS_E_BUFFERNOTAVAILABLE |
||
12656 | // |
||
12657 | // Download failed due to inability to access or create download buffer. |
||
12658 | /// |
||
12659 | DMUS_E_BUFFERNOTAVAILABLE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0106;//MAKE_DMHRESULTERROR(0x0106) |
||
12660 | |||
12661 | // DMUS_E_NOTADLSCOL |
||
12662 | // |
||
12663 | // Error parsing DLS collection. File is corrupt. |
||
12664 | /// |
||
12665 | DMUS_E_NOTADLSCOL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0108;//MAKE_DMHRESULTERROR(0x0108) |
||
12666 | |||
12667 | // DMUS_E_INVALIDOFFSET |
||
12668 | // |
||
12669 | // Wave chunks in DLS collection file are at incorrect offsets. |
||
12670 | /// |
||
12671 | DMUS_E_INVALIDOFFSET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0109;//MAKE_DMHRESULTERROR(0x0109) |
||
12672 | |||
12673 | // DMUS_E_ALREADY_LOADED |
||
12674 | // |
||
12675 | // Second attempt to load a DLS collection that is currently open. |
||
12676 | /// |
||
12677 | DMUS_E_ALREADY_LOADED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0111;//MAKE_DMHRESULTERROR(0x0111) |
||
12678 | |||
12679 | // DMUS_E_INVALIDPOS |
||
12680 | // |
||
12681 | // Error reading wave data from DLS collection. Indicates bad file. |
||
12682 | /// |
||
12683 | DMUS_E_INVALIDPOS = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0113;//MAKE_DMHRESULTERROR(0x0113) |
||
12684 | |||
12685 | // DMUS_E_INVALIDPATCH |
||
12686 | // |
||
12687 | // There is no instrument in the collection that matches patch number. |
||
12688 | /// |
||
12689 | DMUS_E_INVALIDPATCH = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0114;//MAKE_DMHRESULTERROR(0x0114) |
||
12690 | |||
12691 | // DMUS_E_CANNOTSEEK |
||
12692 | // |
||
12693 | // The IStream* doesn't support Seek(). |
||
12694 | /// |
||
12695 | DMUS_E_CANNOTSEEK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0115;//MAKE_DMHRESULTERROR(0x0115) |
||
12696 | |||
12697 | // DMUS_E_CANNOTWRITE |
||
12698 | // |
||
12699 | // The IStream* doesn't support Write(). |
||
12700 | /// |
||
12701 | DMUS_E_CANNOTWRITE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0116;//MAKE_DMHRESULTERROR(0x0116) |
||
12702 | |||
12703 | // DMUS_E_CHUNKNOTFOUND |
||
12704 | // |
||
12705 | // The RIFF parser doesn't contain a required chunk while parsing file. |
||
12706 | /// |
||
12707 | DMUS_E_CHUNKNOTFOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0117;//MAKE_DMHRESULTERROR(0x0117) |
||
12708 | |||
12709 | // DMUS_E_INVALID_DOWNLOADID |
||
12710 | // |
||
12711 | // Invalid download id was used in the process of creating a download buffer. |
||
12712 | /// |
||
12713 | DMUS_E_INVALID_DOWNLOADID = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0119;//MAKE_DMHRESULTERROR(0x0119) |
||
12714 | |||
12715 | // DMUS_E_NOT_DOWNLOADED_TO_PORT |
||
12716 | // |
||
12717 | // Tried to unload an object that was not downloaded or previously unloaded. |
||
12718 | /// |
||
12719 | DMUS_E_NOT_DOWNLOADED_TO_PORT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0120;//MAKE_DMHRESULTERROR(0x0120) |
||
12720 | |||
12721 | // DMUS_E_ALREADY_DOWNLOADED |
||
12722 | // |
||
12723 | // Buffer was already downloaded to synth. |
||
12724 | /// |
||
12725 | DMUS_E_ALREADY_DOWNLOADED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0121;//MAKE_DMHRESULTERROR(0x0121) |
||
12726 | |||
12727 | // DMUS_E_UNKNOWN_PROPERTY |
||
12728 | // |
||
12729 | // The specified property item was not recognized by the target object. |
||
12730 | /// |
||
12731 | DMUS_E_UNKNOWN_PROPERTY = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0122;//MAKE_DMHRESULTERROR(0x0122) |
||
12732 | |||
12733 | // DMUS_E_SET_UNSUPPORTED |
||
12734 | // |
||
12735 | // The specified property item may not be set on the target object. |
||
12736 | /// |
||
12737 | DMUS_E_SET_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0123;//MAKE_DMHRESULTERROR(0x0123) |
||
12738 | |||
12739 | // DMUS_E_GET_UNSUPPORTED |
||
12740 | // |
||
12741 | // The specified property item may not be retrieved from the target object. |
||
12742 | /// |
||
12743 | DMUS_E_GET_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0124;//MAKE_DMHRESULTERROR(0x0124) |
||
12744 | |||
12745 | // DMUS_E_NOTMONO |
||
12746 | // |
||
12747 | // Wave chunk has more than one interleaved channel. DLS format requires MONO. |
||
12748 | /// |
||
12749 | DMUS_E_NOTMONO = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0125;//MAKE_DMHRESULTERROR(0x0125) |
||
12750 | |||
12751 | // DMUS_E_BADARTICULATION |
||
12752 | // |
||
12753 | // Invalid articulation chunk in DLS collection. |
||
12754 | /// |
||
12755 | DMUS_E_BADARTICULATION = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0126;//MAKE_DMHRESULTERROR(0x0126) |
||
12756 | |||
12757 | // DMUS_E_BADINSTRUMENT |
||
12758 | // |
||
12759 | // Invalid instrument chunk in DLS collection. |
||
12760 | /// |
||
12761 | DMUS_E_BADINSTRUMENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0127;//MAKE_DMHRESULTERROR(0x0127) |
||
12762 | |||
12763 | // DMUS_E_BADWAVELINK |
||
12764 | // |
||
12765 | // Wavelink chunk in DLS collection points to invalid wave. |
||
12766 | /// |
||
12767 | DMUS_E_BADWAVELINK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0128;//MAKE_DMHRESULTERROR(0x0128) |
||
12768 | |||
12769 | // DMUS_E_NOARTICULATION |
||
12770 | // |
||
12771 | // Articulation missing from instrument in DLS collection. |
||
12772 | /// |
||
12773 | DMUS_E_NOARTICULATION = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0129;//MAKE_DMHRESULTERROR(0x0129) |
||
12774 | |||
12775 | // DMUS_E_NOTPCM |
||
12776 | // |
||
12777 | // Downoaded DLS wave is not in PCM format. |
||
12778 | /// |
||
12779 | DMUS_E_NOTPCM = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012A;//MAKE_DMHRESULTERROR(0x012A) |
||
12780 | |||
12781 | // DMUS_E_BADWAVE |
||
12782 | // |
||
12783 | // Bad wave chunk in DLS collection |
||
12784 | /// |
||
12785 | DMUS_E_BADWAVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012B;//MAKE_DMHRESULTERROR(0x012B) |
||
12786 | |||
12787 | // DMUS_E_BADOFFSETTABLE |
||
12788 | // |
||
12789 | // Offset Table for download buffer has errors. |
||
12790 | /// |
||
12791 | DMUS_E_BADOFFSETTABLE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012C;//MAKE_DMHRESULTERROR(0x012C) |
||
12792 | |||
12793 | // DMUS_E_UNKNOWNDOWNLOAD |
||
12794 | // |
||
12795 | // Attempted to download unknown data type. |
||
12796 | /// |
||
12797 | DMUS_E_UNKNOWNDOWNLOAD = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012D;//MAKE_DMHRESULTERROR(0x012D) |
||
12798 | |||
12799 | // DMUS_E_NOSYNTHSINK |
||
12800 | // |
||
12801 | // The operation could not be completed because no sink was connected to |
||
12802 | // the synthesizer. |
||
12803 | /// |
||
12804 | DMUS_E_NOSYNTHSINK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012E;//MAKE_DMHRESULTERROR(0x012E) |
||
12805 | |||
12806 | // DMUS_E_ALREADYOPEN |
||
12807 | // |
||
12808 | // An attempt was made to open the software synthesizer while it was already |
||
12809 | // open. |
||
12810 | // ASSERT? |
||
12811 | /// |
||
12812 | DMUS_E_ALREADYOPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012F;//MAKE_DMHRESULTERROR(0x012F) |
||
12813 | |||
12814 | // DMUS_E_ALREADYCLOSE |
||
12815 | // |
||
12816 | // An attempt was made to close the software synthesizer while it was already |
||
12817 | // open. |
||
12818 | // ASSERT? |
||
12819 | /// |
||
12820 | DMUS_E_ALREADYCLOSED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0130;//MAKE_DMHRESULTERROR(0x0130) |
||
12821 | |||
12822 | // DMUS_E_SYNTHNOTCONFIGURED |
||
12823 | // |
||
12824 | // The operation could not be completed because the software synth has not |
||
12825 | // yet been fully configured. |
||
12826 | // ASSERT? |
||
12827 | /// |
||
12828 | DMUS_E_SYNTHNOTCONFIGURED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0131;//MAKE_DMHRESULTERROR(0x0131) |
||
12829 | |||
12830 | // DMUS_E_SYNTHACTIVE |
||
12831 | // |
||
12832 | // The operation cannot be carried out while the synthesizer is active. |
||
12833 | /// |
||
12834 | DMUS_E_SYNTHACTIVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0132;//MAKE_DMHRESULTERROR(0x0132) |
||
12835 | |||
12836 | // DMUS_E_CANNOTREAD |
||
12837 | // |
||
12838 | // An error occurred while attempting to read from the IStream* object. |
||
12839 | /// |
||
12840 | DMUS_E_CANNOTREAD = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0133;//MAKE_DMHRESULTERROR(0x0133) |
||
12841 | |||
12842 | // DMUS_E_DMUSIC_RELEASED |
||
12843 | // |
||
12844 | // The operation cannot be performed because the final instance of the |
||
12845 | // DirectMusic object was released. Ports cannot be used after final |
||
12846 | // release of the DirectMusic object. |
||
12847 | /// |
||
12848 | DMUS_E_DMUSIC_RELEASED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0134;//MAKE_DMHRESULTERROR(0x0134) |
||
12849 | |||
12850 | // DMUS_E_BUFFER_EMPTY |
||
12851 | // |
||
12852 | // There was no data in the referenced buffer. |
||
12853 | /// |
||
12854 | DMUS_E_BUFFER_EMPTY = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0135;//MAKE_DMHRESULTERROR(0x0135) |
||
12855 | |||
12856 | // DMUS_E_BUFFER_FULL |
||
12857 | // |
||
12858 | // There is insufficient space to insert the given event into the buffer. |
||
12859 | /// |
||
12860 | DMUS_E_BUFFER_FULL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0136;//MAKE_DMHRESULTERROR(0x0136) |
||
12861 | |||
12862 | // DMUS_E_PORT_NOT_CAPTURE |
||
12863 | // |
||
12864 | // The given operation could not be carried out because the port is a |
||
12865 | // capture port. |
||
12866 | /// |
||
12867 | DMUS_E_PORT_NOT_CAPTURE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0137;//MAKE_DMHRESULTERROR(0x0137) |
||
12868 | |||
12869 | // DMUS_E_PORT_NOT_RENDER |
||
12870 | // |
||
12871 | // The given operation could not be carried out because the port is a |
||
12872 | // render port. |
||
12873 | /// |
||
12874 | DMUS_E_PORT_NOT_RENDER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0138;//MAKE_DMHRESULTERROR(0x0138) |
||
12875 | |||
12876 | // DMUS_E_DSOUND_NOT_SET |
||
12877 | // |
||
12878 | // The port could not be created because no DirectSound has been specified. |
||
12879 | // Specify a DirectSound interface via the IDirectMusic::SetDirectSound |
||
12880 | // method; pass NULL to have DirectMusic manage usage of DirectSound. |
||
12881 | /// |
||
12882 | DMUS_E_DSOUND_NOT_SET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0139;//MAKE_DMHRESULTERROR(0x0139) |
||
12883 | |||
12884 | // DMUS_E_ALREADY_ACTIVATED |
||
12885 | // |
||
12886 | // The operation cannot be carried out while the port is active. |
||
12887 | /// |
||
12888 | DMUS_E_ALREADY_ACTIVATED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013A;//MAKE_DMHRESULTERROR(0x013A) |
||
12889 | |||
12890 | // DMUS_E_INVALIDBUFFER |
||
12891 | // |
||
12892 | // Invalid DirectSound buffer was handed to port. |
||
12893 | /// |
||
12894 | DMUS_E_INVALIDBUFFER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013B;//MAKE_DMHRESULTERROR(0x013B) |
||
12895 | |||
12896 | // DMUS_E_WAVEFORMATNOTSUPPORTED |
||
12897 | // |
||
12898 | // Invalid buffer format was handed to the synth sink. |
||
12899 | /// |
||
12900 | DMUS_E_WAVEFORMATNOTSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013C;//MAKE_DMHRESULTERROR(0x013C) |
||
12901 | |||
12902 | // DMUS_E_SYNTHINACTIVE |
||
12903 | // |
||
12904 | // The operation cannot be carried out while the synthesizer is inactive. |
||
12905 | /// |
||
12906 | DMUS_E_SYNTHINACTIVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013D;//MAKE_DMHRESULTERROR(0x013D) |
||
12907 | |||
12908 | // DMUS_E_DSOUND_ALREADY_SET |
||
12909 | // |
||
12910 | // IDirectMusic::SetDirectSound has already been called. It may not be |
||
12911 | // changed while in use. |
||
12912 | /// |
||
12913 | DMUS_E_DSOUND_ALREADY_SET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013E;//MAKE_DMHRESULTERROR(0x013E) |
||
12914 | |||
12915 | // DMUS_E_INVALID_EVENT |
||
12916 | // |
||
12917 | // The given event is invalid (either it is not a valid MIDI message |
||
12918 | // or it makes use of running status). The event cannot be packed |
||
12919 | // into the buffer. |
||
12920 | /// |
||
12921 | DMUS_E_INVALID_EVENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013F;//MAKE_DMHRESULTERROR(0x013F) |
||
12922 | |||
12923 | // DMUS_E_UNSUPPORTED_STREAM |
||
12924 | // |
||
12925 | // The IStream* object does not contain data supported by the loading object. |
||
12926 | /// |
||
12927 | DMUS_E_UNSUPPORTED_STREAM = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0150;//MAKE_DMHRESULTERROR(0x0150) |
||
12928 | |||
12929 | // DMUS_E_ALREADY_INITED |
||
12930 | // |
||
12931 | // The object has already been initialized. |
||
12932 | /// |
||
12933 | DMUS_E_ALREADY_INITED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0151;//MAKE_DMHRESULTERROR(0x0151) |
||
12934 | |||
12935 | // DMUS_E_INVALID_BAND |
||
12936 | // |
||
12937 | // The file does not contain a valid band. |
||
12938 | /// |
||
12939 | DMUS_E_INVALID_BAND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0152;//MAKE_DMHRESULTERROR(0x0152) |
||
12940 | |||
12941 | // DMUS_E_TRACK_HDR_NOT_FIRST_CK |
||
12942 | // |
||
12943 | // The IStream* object's data does not have a track header as the first chunk, |
||
12944 | // and therefore can not be read by the segment object. |
||
12945 | /// |
||
12946 | DMUS_E_TRACK_HDR_NOT_FIRST_CK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0155;//MAKE_DMHRESULTERROR(0x0155) |
||
12947 | |||
12948 | // DMUS_E_TOOL_HDR_NOT_FIRST_CK |
||
12949 | // |
||
12950 | // The IStream* object's data does not have a tool header as the first chunk, |
||
12951 | // and therefore can not be read by the graph object. |
||
12952 | /// |
||
12953 | DMUS_E_TOOL_HDR_NOT_FIRST_CK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0156;//MAKE_DMHRESULTERROR(0x0156) |
||
12954 | |||
12955 | // DMUS_E_INVALID_TRACK_HDR |
||
12956 | // |
||
12957 | // The IStream* object's data contains an invalid track header (ckid is 0 and |
||
12958 | // fccType is NULL,) and therefore can not be read by the segment object. |
||
12959 | /// |
||
12960 | DMUS_E_INVALID_TRACK_HDR = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0157;//MAKE_DMHRESULTERROR(0x0157) |
||
12961 | |||
12962 | // DMUS_E_INVALID_TOOL_HDR |
||
12963 | // |
||
12964 | // The IStream* object's data contains an invalid tool header (ckid is 0 and |
||
12965 | // fccType is NULL,) and therefore can not be read by the graph object. |
||
12966 | /// |
||
12967 | DMUS_E_INVALID_TOOL_HDR = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0158;//MAKE_DMHRESULTERROR(0x0158) |
||
12968 | |||
12969 | // DMUS_E_ALL_TOOLS_FAILED |
||
12970 | // |
||
12971 | // The graph object was unable to load all tools from the IStream* object data. |
||
12972 | // This may be due to errors in the stream, or the tools being incorrectly |
||
12973 | // registered on the client. |
||
12974 | /// |
||
12975 | DMUS_E_ALL_TOOLS_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0159;//MAKE_DMHRESULTERROR(0x0159) |
||
12976 | |||
12977 | // DMUS_E_ALL_TRACKS_FAILED |
||
12978 | // |
||
12979 | // The segment object was unable to load all tracks from the IStream* object data. |
||
12980 | // This may be due to errors in the stream, or the tracks being incorrectly |
||
12981 | // registered on the client. |
||
12982 | /// |
||
12983 | DMUS_E_ALL_TRACKS_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0160;//MAKE_DMHRESULTERROR(0x0160) |
||
12984 | |||
12985 | // DMUS_E_NOT_FOUND |
||
12986 | // |
||
12987 | // The requested item was not contained by the object. |
||
12988 | /// |
||
12989 | DMUS_E_NOT_FOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0161;//MAKE_DMHRESULTERROR(0x0161) |
||
12990 | |||
12991 | // DMUS_E_NOT_INIT |
||
12992 | // |
||
12993 | // A required object is not initialized or failed to initialize. |
||
12994 | /// |
||
12995 | DMUS_E_NOT_INIT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0162;//MAKE_DMHRESULTERROR(0x0162) |
||
12996 | |||
12997 | // DMUS_E_TYPE_DISABLED |
||
12998 | // |
||
12999 | // The requested parameter type is currently disabled. Parameter types may |
||
13000 | // be enabled and disabled by certain calls to SetParam(). |
||
13001 | /// |
||
13002 | DMUS_E_TYPE_DISABLED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0163;//MAKE_DMHRESULTERROR(0x0163) |
||
13003 | |||
13004 | // DMUS_E_TYPE_UNSUPPORTED |
||
13005 | // |
||
13006 | // The requested parameter type is not supported on the object. |
||
13007 | /// |
||
13008 | DMUS_E_TYPE_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0164;//MAKE_DMHRESULTERROR(0x0164) |
||
13009 | |||
13010 | // DMUS_E_TIME_PAST |
||
13011 | // |
||
13012 | // The time is in the past, and the operation can not succeed. |
||
13013 | /// |
||
13014 | DMUS_E_TIME_PAST = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0165;//MAKE_DMHRESULTERROR(0x0165) |
||
13015 | |||
13016 | // DMUS_E_TRACK_NOT_FOUND |
||
13017 | // |
||
13018 | // The requested track is not contained by the segment. |
||
13019 | /// |
||
13020 | DMUS_E_TRACK_NOT_FOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0166;//MAKE_DMHRESULTERROR(0x0166) |
||
13021 | |||
13022 | // DMUS_E_NO_MASTER_CLOCK |
||
13023 | // |
||
13024 | // There is no master clock in the performance. Be sure to call |
||
13025 | // IDirectMusicPerformance::Init(). |
||
13026 | /// |
||
13027 | DMUS_E_NO_MASTER_CLOCK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0170;//MAKE_DMHRESULTERROR(0x0170) |
||
13028 | |||
13029 | // DMUS_E_LOADER_NOCLASSID |
||
13030 | // |
||
13031 | // The class id field is required and missing in the DMUS_OBJECTDESC. |
||
13032 | /// |
||
13033 | DMUS_E_LOADER_NOCLASSID = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0180;//MAKE_DMHRESULTERROR(0x0180) |
||
13034 | |||
13035 | // DMUS_E_LOADER_BADPATH |
||
13036 | // |
||
13037 | // The requested file path is invalid. |
||
13038 | /// |
||
13039 | DMUS_E_LOADER_BADPATH = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0181;//MAKE_DMHRESULTERROR(0x0181) |
||
13040 | |||
13041 | // DMUS_E_LOADER_FAILEDOPEN |
||
13042 | // |
||
13043 | // File open failed - either file doesn't exist or is locked. |
||
13044 | /// |
||
13045 | DMUS_E_LOADER_FAILEDOPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0182;//MAKE_DMHRESULTERROR(0x0182) |
||
13046 | |||
13047 | // DMUS_E_LOADER_FORMATNOTSUPPORTED |
||
13048 | // |
||
13049 | // Search data type is not supported. |
||
13050 | /// |
||
13051 | DMUS_E_LOADER_FORMATNOTSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0183;//MAKE_DMHRESULTERROR(0x0183) |
||
13052 | |||
13053 | // DMUS_E_LOADER_FAILEDCREATE |
||
13054 | // |
||
13055 | // Unable to find or create object. |
||
13056 | /// |
||
13057 | DMUS_E_LOADER_FAILEDCREATE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0184;//MAKE_DMHRESULTERROR(0x0184) |
||
13058 | |||
13059 | // DMUS_E_LOADER_OBJECTNOTFOUND |
||
13060 | // |
||
13061 | // Object was not found. |
||
13062 | /// |
||
13063 | DMUS_E_LOADER_OBJECTNOTFOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0185;//MAKE_DMHRESULTERROR(0x0185) |
||
13064 | |||
13065 | // DMUS_E_LOADER_NOFILENAME |
||
13066 | // |
||
13067 | // The file name is missing from the DMUS_OBJECTDESC. |
||
13068 | /// |
||
13069 | DMUS_E_LOADER_NOFILENAME = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0186;//MAKE_DMHRESULTERROR(0x0186) |
||
13070 | |||
13071 | // DMUS_E_INVALIDFILE |
||
13072 | // |
||
13073 | // The file requested is not a valid file. |
||
13074 | /// |
||
13075 | DMUS_E_INVALIDFILE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0200;//MAKE_DMHRESULTERROR(0x0200) |
||
13076 | |||
13077 | // DMUS_E_ALREADY_EXISTS |
||
13078 | // |
||
13079 | // The tool is already contained in the graph. Create a new instance. |
||
13080 | /// |
||
13081 | DMUS_E_ALREADY_EXISTS = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0201;//MAKE_DMHRESULTERROR(0x0201) |
||
13082 | |||
13083 | // DMUS_E_OUT_OF_RANGE |
||
13084 | // |
||
13085 | // Value is out of range, for instance the requested length is longer than |
||
13086 | // the segment. |
||
13087 | /// |
||
13088 | DMUS_E_OUT_OF_RANGE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0202;//MAKE_DMHRESULTERROR(0x0202) |
||
13089 | |||
13090 | // DMUS_E_SEGMENT_INIT_FAILED |
||
13091 | // |
||
13092 | // Segment initialization failed, most likely due to a critical memory situation. |
||
13093 | /// |
||
13094 | DMUS_E_SEGMENT_INIT_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0203;//MAKE_DMHRESULTERROR(0x0203) |
||
13095 | |||
13096 | // DMUS_E_ALREADY_SENT |
||
13097 | // |
||
13098 | // The DMUS_PMSG has already been sent to the performance object via |
||
13099 | // IDirectMusicPerformance::SendPMsg(). |
||
13100 | /// |
||
13101 | DMUS_E_ALREADY_SENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0204;//MAKE_DMHRESULTERROR(0x0204) |
||
13102 | |||
13103 | // DMUS_E_CANNOT_FREE |
||
13104 | // |
||
13105 | // The DMUS_PMSG was either not allocated by the performance via |
||
13106 | // IDirectMusicPerformance::AllocPMsg(), or it was already freed via |
||
13107 | // IDirectMusicPerformance::FreePMsg(). |
||
13108 | /// |
||
13109 | DMUS_E_CANNOT_FREE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0205;//MAKE_DMHRESULTERROR(0x0205) |
||
13110 | |||
13111 | // DMUS_E_CANNOT_OPEN_PORT |
||
13112 | // |
||
13113 | // The default system port could not be opened. |
||
13114 | /// |
||
13115 | DMUS_E_CANNOT_OPEN_PORT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0206;//MAKE_DMHRESULTERROR(0x0206) |
||
13116 | |||
13117 | // DMUS_E_CONNOT_CONVERT |
||
13118 | // |
||
13119 | // A call to MIDIToMusic() or MusicToMIDI() resulted in an error because |
||
13120 | // the requested conversion could not happen. This usually occurs when the |
||
13121 | // provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern. |
||
13122 | /// |
||
13123 | DMUS_E_CONNOT_CONVERT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0207;//MAKE_DMHRESULTERROR(0x0207) |
||
13124 | |||
13125 | // DMUS_E_DESCEND_CHUNK_FAIL |
||
13126 | // |
||
13127 | // DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file |
||
13128 | // was reached before the desired chunk was found. |
||
13129 | /// |
||
13130 | DMUS_E_DESCEND_CHUNK_FAIL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0210;//MAKE_DMHRESULTERROR(0x0210) |
||
13131 | |||
13132 | |||
13133 | //************************************************************************ |
||
13134 | // * |
||
13135 | // dmksctrl.h -- Definition of IKsControl * |
||
13136 | // * |
||
13137 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
13138 | // * |
||
13139 | // * |
||
13140 | // This header file contains the definition of IKsControl, which * |
||
13141 | // duplicates definitions from ks.h and ksproxy.h. Your code should * |
||
13142 | // include ks.h and ksproxy.h directly if you have them (they are * |
||
13143 | // provided in the Windows 98 DDK and will be in the Windows NT 5 * |
||
13144 | // SDK). * |
||
13145 | // * |
||
13146 | //********************************************************************** |
||
13147 | |||
13148 | // |
||
13149 | // Warning: This will prevent the rest of ks.h from being pulled in if ks.h is |
||
13150 | // included after dmksctrl.h. Make sure you do not include both headers in |
||
13151 | // the same source file. |
||
13152 | /// |
||
13153 | type |
||
13154 | TData = record |
||
13155 | _Set : TGUID; |
||
13156 | Id : Cardinal; |
||
13157 | Flags : Cardinal; |
||
13158 | end; |
||
13159 | |||
13160 | TKSIDENTIFIER = record |
||
13161 | Data : TData; |
||
13162 | Alignment : LONGLONG; |
||
13163 | end; |
||
13164 | |||
13165 | KSIDENTIFIER = TKSIDENTIFIER; |
||
13166 | PKSIDENTIFIER = ^KSIDENTIFIER; |
||
13167 | |||
13168 | TKSPROPERTY = KSIDENTIFIER; |
||
13169 | KSPROPERTY = KSIDENTIFIER; |
||
13170 | PKSPROPERTY = ^KSIDENTIFIER; |
||
13171 | TKSMETHOD = KSIDENTIFIER; |
||
13172 | KSMETHOD = KSIDENTIFIER; |
||
13173 | PKSMETHOD = ^KSIDENTIFIER; |
||
13174 | TKSEVENT = KSIDENTIFIER; |
||
13175 | KSEVENT = KSIDENTIFIER; |
||
13176 | PKSEVENT = ^KSIDENTIFIER; |
||
13177 | |||
13178 | const |
||
13179 | KSMETHOD_TYPE_NONE = $00000000; |
||
13180 | KSMETHOD_TYPE_READ = $00000001; |
||
13181 | KSMETHOD_TYPE_WRITE = $00000002; |
||
13182 | KSMETHOD_TYPE_MODIFY = $00000003; |
||
13183 | KSMETHOD_TYPE_SOURCE = $00000004; |
||
13184 | |||
13185 | KSMETHOD_TYPE_SEND = $00000001; |
||
13186 | KSMETHOD_TYPE_SETSUPPORT = $00000100; |
||
13187 | KSMETHOD_TYPE_BASICSUPPORT = $00000200; |
||
13188 | |||
13189 | KSPROPERTY_TYPE_GET = $00000001; |
||
13190 | KSPROPERTY_TYPE_SET = $00000002; |
||
13191 | KSPROPERTY_TYPE_SETSUPPORT = $00000100; |
||
13192 | KSPROPERTY_TYPE_BASICSUPPORT = $00000200; |
||
13193 | KSPROPERTY_TYPE_RELATIONS = $00000400; |
||
13194 | KSPROPERTY_TYPE_SERIALIZESET = $00000800; |
||
13195 | KSPROPERTY_TYPE_UNSERIALIZESET = $00001000; |
||
13196 | KSPROPERTY_TYPE_SERIALIZERAW = $00002000; |
||
13197 | KSPROPERTY_TYPE_UNSERIALIZERAW = $00004000; |
||
13198 | KSPROPERTY_TYPE_SERIALIZESIZE = $00008000; |
||
13199 | KSPROPERTY_TYPE_DEFAULTVALUES = $00010000; |
||
13200 | |||
13201 | KSPROPERTY_TYPE_TOPOLOGY = $10000000; |
||
13202 | |||
13203 | type |
||
13204 | IKsControl = interface(IUnknown) |
||
13205 | ['{28F54685-06FD-11D2-B27A-00A0C9223196}'] |
||
13206 | //IKsControl |
||
13207 | function KsProperty(const _Property: TKSPROPERTY; PropertyLength: Cardinal; var PropertyData; |
||
13208 | DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
||
13209 | function KsMethod(const Method: TKSMETHOD; MethodLength: Cardinal; var PropertyData; |
||
13210 | DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
||
13211 | function KsEvent(const Event: TKSEVENT; EventLength: Cardinal; var EventData; |
||
13212 | DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
||
13213 | end; |
||
13214 | |||
13215 | const |
||
13216 | IID_IKsControl : TGUID = '{28F54685-06FD-11D2-B27A-00A0C9223196}'; |
||
13217 | |||
13218 | // These formats are in ksmedia.h |
||
13219 | KSDATAFORMAT_SUBTYPE_MIDI : TGUID = '{1D262760-E957-11CF-A5D6-28DB04C10000}'; |
||
13220 | KSDATAFORMAT_SUBTYPE_DIRECTMUSIC : TGUID = '{1A82F8BC-3F8B-11D2-B774-0060083316C1}'; |
||
13221 | |||
13222 | //************************************************************************** |
||
13223 | // * |
||
13224 | // DMusBuff.h -- This module defines the buffer format for DirectMusic * |
||
13225 | // Shared file between user mode and kernel mode components * |
||
13226 | // * |
||
13227 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
13228 | // * |
||
13229 | //************************************************************************* |
||
13230 | |||
13231 | // Format of DirectMusic events in a buffer |
||
13232 | // |
||
13233 | // A buffer contains 1 or more events, each with the following header. |
||
13234 | // Immediately following the header is the event data. The header+data |
||
13235 | // size is rounded to the nearest quadword (8 bytes). |
||
13236 | /// |
||
13237 | |||
13238 | // Do not pad at end - that's where the data is |
||
13239 | type |
||
13240 | TDMUS_EVENTHEADER = record |
||
13241 | cbEvent : DWORD; // Unrounded bytes in event |
||
13242 | dwChannelGroup : DWORD; // Channel group of event |
||
13243 | rtDelta : REFERENCE_TIME; // Delta from start time of entire buffer |
||
13244 | dwFlags : DWORD; // Flags DMUS_EVENT_xxx |
||
13245 | end; |
||
13246 | DMUS_EVENTHEADER = TDMUS_EVENTHEADER; |
||
13247 | LPDMUS_EVENTHEADER = ^TDMUS_EVENTHEADER; |
||
13248 | |||
13249 | const |
||
13250 | DMUS_EVENT_STRUCTURED = $00000001; // Unstructured data (SysEx, etc.) |
||
13251 | |||
13252 | // The number of bytes to allocate for an event with 'cb' data bytes. |
||
13253 | // |
||
13254 | function QWORD_ALIGN(x: LONGLONG) : LONGLONG; //(((x) + 7) & ~7) |
||
13255 | function DMUS_EVENT_SIZE(cb: LONGLONG) : LONGLONG; //QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb) |
||
13256 | |||
13257 | //*********************************************************************** |
||
13258 | // * |
||
13259 | // dmusicc.h -- This module defines the DirectMusic core API's * |
||
13260 | // * |
||
13261 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
13262 | // * |
||
13263 | //********************************************************************** |
||
13264 | |||
13265 | const |
||
13266 | DMUS_MAX_DESCRIPTION = 128; |
||
13267 | DMUS_MAX_DRIVER = 128; |
||
13268 | |||
13269 | type |
||
13270 | TDMUS_BUFFERDESC = record |
||
13271 | dwSize : DWORD; |
||
13272 | dwFlags : DWORD; |
||
13273 | guidBufferFormat : TGUID; |
||
13274 | cbBuffer : DWORD; |
||
13275 | end; |
||
13276 | DMUS_BUFFERDESC = TDMUS_BUFFERDESC; |
||
13277 | LPDMUS_BUFFERDESC = ^TDMUS_BUFFERDESC; |
||
13278 | |||
13279 | // DMUS_EFFECT_ flags are used in the dwEffectFlags fields of both DMUS_PORTCAPS |
||
13280 | // and DMUS_PORTPARAMS. |
||
13281 | /// |
||
13282 | const |
||
13283 | DMUS_EFFECT_NONE = $00000000; |
||
13284 | DMUS_EFFECT_REVERB = $00000001; |
||
13285 | DMUS_EFFECT_CHORUS = $00000002; |
||
13286 | |||
13287 | // For DMUS_PORTCAPS dwClass |
||
13288 | // |
||
13289 | DMUS_PC_INPUTCLASS = (0); |
||
13290 | DMUS_PC_OUTPUTCLASS = (1); |
||
13291 | |||
13292 | // For DMUS_PORTCAPS dwFlags |
||
13293 | // |
||
13294 | DMUS_PC_DLS = ($00000001); |
||
13295 | DMUS_PC_EXTERNAL = ($00000002); |
||
13296 | DMUS_PC_SOFTWARESYNTH = ($00000004); |
||
13297 | DMUS_PC_MEMORYSIZEFIXED = ($00000008); |
||
13298 | DMUS_PC_GMINHARDWARE = ($00000010); |
||
13299 | DMUS_PC_GSINHARDWARE = ($00000020); |
||
13300 | DMUS_PC_XGINHARDWARE = ($00000040); |
||
13301 | DMUS_PC_DIRECTSOUND = ($00000080); |
||
13302 | DMUS_PC_SHAREABLE = ($00000100); |
||
13303 | DMUS_PC_SYSTEMMEMORY = ($7FFFFFFF); |
||
13304 | |||
13305 | type |
||
13306 | |||
13307 | TDMUS_PORTCAPS = record |
||
13308 | dwSize : DWORD; |
||
13309 | dwFlags : DWORD; |
||
13310 | guidPort : TGUID; |
||
13311 | dwClass : DWORD; |
||
13312 | dwType : DWORD; |
||
13313 | dwMemorySize : DWORD; |
||
13314 | dwMaxChannelGroups : DWORD; |
||
13315 | dwMaxVoices : DWORD; |
||
13316 | dwMaxAudioChannels : DWORD; |
||
13317 | dwEffectFlags : DWORD; |
||
13318 | wszDescription : array[0..DMUS_MAX_DESCRIPTION - 1] of WCHAR; |
||
13319 | end; |
||
13320 | DMUS_PORTCAPS = TDMUS_PORTCAPS; |
||
13321 | LPDMUS_PORTCAPS = ^TDMUS_PORTCAPS; |
||
13322 | |||
13323 | // Values for DMUS_PORTCAPS dwType. This field indicates the underlying |
||
13324 | // driver type of the port. |
||
13325 | /// |
||
13326 | const |
||
13327 | DMUS_PORT_WINMM_DRIVER = (0); |
||
13328 | DMUS_PORT_USER_MODE_SYNTH = (1); |
||
13329 | DMUS_PORT_KERNEL_MODE = (2); |
||
13330 | |||
13331 | // These flags (set in dwValidParams) indicate which other members of the |
||
13332 | // DMUS_PORTPARAMS are valid. |
||
13333 | // |
||
13334 | DMUS_PORTPARAMS_VOICES = $00000001; |
||
13335 | DMUS_PORTPARAMS_CHANNELGROUPS = $00000002; |
||
13336 | DMUS_PORTPARAMS_AUDIOCHANNELS = $00000004; |
||
13337 | DMUS_PORTPARAMS_SAMPLERATE = $00000008; |
||
13338 | DMUS_PORTPARAMS_EFFECTS = $00000020; |
||
13339 | DMUS_PORTPARAMS_SHARE = $00000040; |
||
13340 | |||
13341 | type |
||
13342 | TDMUS_PORTPARAMS = record |
||
13343 | dwSize : DWORD; |
||
13344 | dwValidParams : DWORD; |
||
13345 | dwVoices : DWORD; |
||
13346 | dwChannelGroups : DWORD; |
||
13347 | dwAudioChannels : DWORD; |
||
13348 | dwSampleRate : DWORD; |
||
13349 | dwEffectFlags : DWORD; |
||
13350 | fShare : BOOL; |
||
13351 | end; |
||
13352 | DMUS_PORTPARAMS = TDMUS_PORTPARAMS; |
||
13353 | LPDMUS_PORTPARAMS = ^TDMUS_PORTPARAMS; |
||
13354 | |||
13355 | TDMUS_SYNTHSTATS = record |
||
13356 | dwSize : DWORD; // Size in bytes of the structure |
||
13357 | dwValidStats : DWORD; // Flags indicating which fields below are valid. |
||
13358 | dwVoices : DWORD; // Average number of voices playing. |
||
13359 | dwTotalCPU : DWORD; // Total CPU usage as percent * 100. |
||
13360 | dwCPUPerVoice : DWORD; // CPU per voice as percent * 100. |
||
13361 | dwLostNotes : DWORD; // Number of notes lost in 1 second. |
||
13362 | dwFreeMemory : DWORD; // Free memory in bytes |
||
13363 | lPeakVolume : Longint; // Decibel level * 100. |
||
13364 | end; |
||
13365 | DMUS_SYNTHSTATS = TDMUS_SYNTHSTATS; |
||
13366 | LPDMUS_SYNTHSTATS = ^TDMUS_SYNTHSTATS; |
||
13367 | |||
13368 | const |
||
13369 | DMUS_SYNTHSTATS_VOICES = 1; |
||
13370 | DMUS_SYNTHSTATS_TOTAL_CPU = 2; |
||
13371 | DMUS_SYNTHSTATS_CPU_PER_VOICE = 4; |
||
13372 | DMUS_SYNTHSTATS_LOST_NOTES = 8; |
||
13373 | DMUS_SYNTHSTATS_PEAK_VOLUME = 16; |
||
13374 | DMUS_SYNTHSTATS_FREE_MEMORY = 32; |
||
13375 | |||
13376 | DMUS_SYNTHSTATS_SYSTEMMEMORY = DMUS_PC_SYSTEMMEMORY; |
||
13377 | |||
13378 | type |
||
13379 | TDMUS_WAVES_REVERB_PARAMS = record |
||
13380 | fInGain : Single; // Input gain in dB (to avoid output overflows) |
||
13381 | fReverbMix : Single; // Reverb mix in dB. 0dB means 100% wet reverb (no direct signal) |
||
13382 | //Negative values gives less wet signal. |
||
13383 | //The coeficients are calculated so that the overall output level stays |
||
13384 | //(approximately) constant regardless of the ammount of reverb mix. |
||
13385 | fReverbTime : Single; // The reverb decay time, in milliseconds. |
||
13386 | fHighFreqRTRatio : Single; // The ratio of the high frequencies to the global reverb time. |
||
13387 | //Unless very 'splashy-bright' reverbs are wanted, this should be set to |
||
13388 | //a value < 1.0. |
||
13389 | //For example if dRevTime==1000ms and dHighFreqRTRatio=0.1 than the |
||
13390 | //decay time for high frequencies will be 100ms. |
||
13391 | end; |
||
13392 | DMUS_WAVES_REVERB_PARAMS = TDMUS_WAVES_REVERB_PARAMS; |
||
13393 | |||
13394 | // Note: Default values for Reverb are: |
||
13395 | // fInGain = 0.0dB (no change in level) |
||
13396 | // fReverbMix = -10.0dB (a reasonable reverb mix) |
||
13397 | // fReverbTime = 1000.0ms (one second global reverb time) |
||
13398 | // fHighFreqRTRatio = 0.001 (the ratio of the high frequencies to the global reverb time) |
||
13399 | /// |
||
13400 | |||
13401 | DMUS_CLOCKTYPE = (DMUS_CLOCK_SYSTEM, DMUS_CLOCK_WAVE); //DMUS_CLOCK_SYSTEM = 0, |
||
13402 | //DMUS_CLOCK_WAVE = 1 |
||
13403 | |||
13404 | TDMUS_CLOCKINFO = record |
||
13405 | dwSize : DWORD; |
||
13406 | ctType : DMUS_CLOCKTYPE; |
||
13407 | guidClock : TGUID; // Identifies this time source |
||
13408 | wszDescription : array[0..DMUS_MAX_DESCRIPTION - 1] of WCHAR; |
||
13409 | end; |
||
13410 | DMUS_CLOCKINFO = TDMUS_CLOCKINFO; |
||
13411 | LPDMUS_CLOCKINFO = ^TDMUS_CLOCKINFO; |
||
13412 | |||
13413 | type |
||
13414 | IDirectMusicBuffer = interface; |
||
13415 | IDirectMusicPort = interface; |
||
13416 | IDirectMusicThru = interface; |
||
13417 | IReferenceClock = interface; |
||
13418 | |||
13419 | LPDIRECTMUSICBUFFER = IDirectMusicBuffer; |
||
13420 | LPDIRECTMUSICPORT = IDirectMusicPort; |
||
13421 | |||
13422 | IDirectMusic = interface(IUnknown) |
||
13423 | ['{6536115A-7B2D-11D2-BA18-0000F875AC12}'] |
||
13424 | // IDirectMusic |
||
13425 | function EnumPort(dwIndex: DWORD; var pPortCaps: TDMUS_PORTCAPS) : HResult; stdcall; |
||
13426 | function CreateMusicBuffer(const pBufferDesc: TDMUS_BUFFERDESC; out ppBuffer: IDirectMusicBuffer; |
||
13427 | pUnkOuter: IUnknown) : HResult; stdcall; |
||
13428 | function CreatePort(const rclsidPort: TGUID; const pPortParams: TDMUS_PORTPARAMS; |
||
13429 | out ppPort: IDirectMusicPort; pUnkOuter: IUnknown) : HResult; stdcall; |
||
13430 | function EnumMasterClock(dwIndex: DWORD; var lpClockInfo: TDMUS_CLOCKINFO) : HResult; stdcall; |
||
13431 | function GetMasterClock(pguidClock: PGUID; out ppReferenceClock: IReferenceClock) : HResult; stdcall; |
||
13432 | function SetMasterClock(const rguidClock: TGUID) : HResult; stdcall; |
||
13433 | function Activate(fEnable: BOOL) : HResult; stdcall; |
||
13434 | function GetDefaultPort(var pguidPort: TGUID) : HResult; stdcall; |
||
13435 | function SetDirectSound(pDirectSound: IDirectSound; hWnd: HWND) : HResult; stdcall; |
||
13436 | end; |
||
13437 | |||
13438 | IDirectMusicBuffer = interface(IUnknown) |
||
13439 | ['{D2AC2878-B39B-11D1-8704-00600893B1BD}'] |
||
13440 | // IDirectMusicBuffer |
||
13441 | function Flush : HResult; stdcall; |
||
13442 | function TotalTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
||
13443 | function PackStructured(rt: TREFERENCE_TIME; dwChannelGroup: DWORD; |
||
13444 | dwChannelMessage: DWORD) : HResult; stdcall; |
||
13445 | function PackUnstructured(rt: TREFERENCE_TIME; dwChannelGroup: DWORD; |
||
13446 | cb: DWORD; const lpb) : HResult; stdcall; |
||
13447 | function ResetReadPtr : HResult; stdcall; |
||
13448 | function GetNextEvent(var prt: TREFERENCE_TIME; var pdwChannelGroup: DWORD; |
||
13449 | var pdwLength: DWORD; var ppData: Pointer) : HResult; stdcall; |
||
13450 | function GetRawBufferPtr(var ppData: Pointer) : HResult; stdcall; |
||
13451 | function GetStartTime(var prt: TREFERENCE_TIME) : HResult; stdcall; |
||
13452 | function GetUsedBytes(var pcb: DWORD) : HResult; stdcall; |
||
13453 | function GetMaxBytes(var pcb: DWORD) : HResult; stdcall; |
||
13454 | function GetBufferFormat(var pGuidFormat: TGUID) : HResult; stdcall; |
||
13455 | function SetStartTime(rt: TREFERENCE_TIME) : HResult; stdcall; |
||
13456 | function SetUsedBytes(cb: DWORD) : HResult; stdcall; |
||
13457 | end; |
||
13458 | |||
13459 | // Format of DirectMusic events in a buffer |
||
13460 | // |
||
13461 | // A buffer contains 1 or more events, each with the following header. |
||
13462 | // Immediately following the header is the event data. The header+data |
||
13463 | // size is rounded to the nearest quadword (8 bytes). |
||
13464 | /// |
||
13465 | {TDMUS_EVENTHEADER = record |
||
13466 | cbEvent : DWORD; // Unrounded bytes in event |
||
13467 | dwChannelGroup : DWORD; // Channel group of event |
||
13468 | rtDelta : REFERENCE_TIME; // Delta from start time of entire buffer |
||
13469 | dwFlags : DWORD; // Flags DMUS_EVENT_xxx |
||
13470 | end; |
||
13471 | DMUS_EVENTHEADER = TDMUS_EVENTHEADER; |
||
13472 | LPDMUS_EVENTHEADER = ^TDMUS_EVENTHEADER;} |
||
13473 | |||
13474 | IDirectMusicInstrument = interface(IUnknown) |
||
13475 | ['{D2AC287D-B39B-11D1-8704-00600893B1BD}'] |
||
13476 | // IDirectMusicInstrument |
||
13477 | function GetPatch(var pdwPatch: DWORD) : HResult; stdcall; |
||
13478 | function SetPatch(dwPatch: DWORD) : HResult; stdcall; |
||
13479 | end; |
||
13480 | |||
13481 | |||
13482 | IDirectMusicDownloadedInstrument = interface(IUnknown) |
||
13483 | ['{D2AC287E-B39B-11D1-8704-00600893B1BD}'] |
||
13484 | // IDirectMusicDownloadedInstrument |
||
13485 | // None at this time |
||
13486 | end; |
||
13487 | |||
13488 | IDirectMusicCollection = interface(IUnknown) |
||
13489 | ['{D2AC287C-B39B-11D1-8704-00600893B1BD}'] |
||
13490 | // IDirectMusicCollection |
||
13491 | function GetInstrument(dwPatch: DWORD; out ppInstrument: IDirectMusicInstrument) : HResult; stdcall; |
||
13492 | function EnumInstrument(dwIndex: DWORD; var pdwPatch: DWORD; |
||
13493 | pwszName: LPWSTR; dwNameLen: DWORD) : HResult; stdcall; |
||
13494 | end; |
||
13495 | |||
13496 | IDirectMusicDownload = interface(IUnknown) |
||
13497 | ['{D2AC287B-B39B-11D1-8704-00600893B1BD}'] |
||
13498 | // IDirectMusicDownload |
||
13499 | function GetBuffer(var ppvBuffer: Pointer; var pdwSize: DWORD) : HResult; stdcall; |
||
13500 | end; |
||
13501 | |||
13502 | IDirectMusicPortDownload = interface(IUnknown) |
||
13503 | ['{D2AC287A-B39B-11D1-8704-00600893B1BD}'] |
||
13504 | // IDirectMusicPortDownload |
||
13505 | function GetBuffer(dwDLId: DWORD; out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
||
13506 | function AllocateBuffer(dwSize: DWORD; out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
||
13507 | function GetDLId(var pdwStartDLId; dwCount: DWORD) : HResult; stdcall; |
||
13508 | function GetAppend(var pdwAppend: DWORD) : HResult; stdcall; |
||
13509 | function Download(pIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
||
13510 | function Unload(pIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
||
13511 | end; |
||
13512 | |||
13513 | // These are the default priorities assigned if not overridden. By default priorities are |
||
13514 | // equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as |
||
13515 | // channel 5 on channel group 2). |
||
13516 | // |
||
13517 | // In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 |
||
13518 | // except for 10. |
||
13519 | /// |
||
13520 | |||
13521 | IDirectMusicPort = interface(IUnknown) |
||
13522 | ['{08F2D8C9-37C2-11D2-B9F9-0000F875AC12}'] |
||
13523 | // IDirectMusicPort |
||
13524 | // |
||
13525 | function PlayBuffer(pBuffer: IDirectMusicBuffer) : HResult; stdcall; |
||
13526 | function SetReadNotificationHandle(hEvent: THandle) : HResult; stdcall; |
||
13527 | function Read(pBuffer: IDirectMusicBuffer) : HResult; stdcall; |
||
13528 | function DownloadInstrument(pInstrument: IDirectMusicInstrument; |
||
13529 | out ppDownloadedInstrument: IDirectMusicDownloadedInstrument; |
||
13530 | const pNoteRanges; |
||
13531 | dwNumNoteRanges: DWORD) : HResult; stdcall; |
||
13532 | function UnloadInstrument(pDownloadedInstrument: IDirectMusicDownloadedInstrument) : HResult; stdcall; |
||
13533 | function GetLatencyClock(out ppClock: IReferenceClock) : HResult; stdcall; |
||
13534 | function GetRunningStats(var pStats: TDMUS_SYNTHSTATS) : HResult stdcall; |
||
13535 | function Compact : HResult; stdcall; |
||
13536 | function GetCaps(var pPortCaps: TDMUS_PORTCAPS) : HResult; stdcall; |
||
13537 | function DeviceIoControl(dwIoControlCode: DWORD; |
||
13538 | const lpInBuffer; |
||
13539 | nInBufferSize: DWORD; |
||
13540 | var lpOutBuffer; |
||
13541 | nOutBufferSize: DWORD; |
||
13542 | var lpBytesReturned: DWORD; |
||
13543 | var lpOverlapped: TOVERLAPPED) : HResult; stdcall; |
||
13544 | function SetNumChannelGroups(dwChannelGroups: DWORD) : HResult; stdcall; |
||
13545 | function GetNumChannelGroups(var pdwChannelGroups: DWORD) : HResult; stdcall; |
||
13546 | function Activate(fActive: BOOL) : HResult; stdcall; |
||
13547 | function SetChannelPriority(dwChannelGroup: DWORD; dwChannel: DWORD; dwPriority: DWORD) : HResult; stdcall; |
||
13548 | function GetChannelPriority(dwChannelGroup: DWORD; dwChannel: DWORD; var pdwPriority: DWORD) : HResult; stdcall; |
||
13549 | function SetDirectSound(pDirectSound: IDirectSound; pDirectSoundBuffer: IDirectSoundBuffer) : HResult; stdcall; |
||
13550 | function GetFormat(var pWaveFormatEx: TWAVEFORMATEX; var pdwWaveFormatExSize: DWORD; var pdwBufferSize: DWORD) : HResult; stdcall; |
||
13551 | end; |
||
13552 | |||
13553 | IDirectMusicThru = interface(IUnknown) |
||
13554 | ['{CED153E7-3606-11D2-B9F9-0000F875AC12}'] |
||
13555 | // IDirectMusicThru |
||
13556 | /// |
||
13557 | function ThruChannel(dwSourceChannelGroup: DWORD; |
||
13558 | dwSourceChannel: DWORD; |
||
13559 | dwDestinationChannelGroup: DWORD; |
||
13560 | dwDestinationChannel: DWORD; |
||
13561 | pDestinationPort: IDirectMusicPort) : HResult; stdcall; |
||
13562 | end; |
||
13563 | |||
13564 | IReferenceClock = interface(IUnknown) |
||
13565 | ['{56A86897-0AD4-11CE-B03A-0020AF0BA770}'] |
||
13566 | // IReferenceClock |
||
13567 | // |
||
13568 | |||
13569 | // get the time now |
||
13570 | function GetTime(var pTime: TREFERENCE_TIME) : HResult; stdcall; |
||
13571 | |||
13572 | // ask for an async notification that a time has elapsed |
||
13573 | function AdviseTime(baseTime: TREFERENCE_TIME; // base time |
||
13574 | streamTime: TREFERENCE_TIME; // stream offset time |
||
13575 | hEvent: THandle; // advise via this event |
||
13576 | var pdwAdviseCookie: DWORD) : HResult; stdcall; // where your cookie goes |
||
13577 | |||
13578 | // ask for an async periodic notification that a time has elapsed |
||
13579 | function AdvisePeriodic(startTime: REFERENCE_TIME; // starting at this time |
||
13580 | periodTime: REFERENCE_TIME; // time between notifications |
||
13581 | hSemaphore: THandle; // advise via a semaphore |
||
13582 | var pdwAdviseCookie: DWORD) : HResult; stdcall; // where your cookie goes |
||
13583 | |||
13584 | // cancel a request for notification |
||
13585 | function Unadvise(dwAdviseCookie: DWORD) : HResult; stdcall; |
||
13586 | end; |
||
13587 | |||
13588 | // Delphi‚Ì«ŠiãA錾‚ðˆÚ“®‚³‚¹‚½‚à‚ÌBinterfaceAclassŒ^‚Ìforward錾‚Í“¯‚¶typeƒ†ƒjƒbƒg“à‚ÅÄ錾‚³‚ê‚È‚‚Ä‚Í‚È‚ç‚È‚¢I |
||
13589 | //const |
||
13590 | // Format of DirectMusic events in a buffer |
||
13591 | // |
||
13592 | // A buffer contains 1 or more events, each with the following header. |
||
13593 | // Immediately following the header is the event data. The header+data |
||
13594 | // size is rounded to the nearest quadword (8 bytes). |
||
13595 | /// |
||
13596 | |||
13597 | //DMUS_EVENT_STRUCTURED = $00000001; // Unstructured data (SysEx, etc.) |
||
13598 | |||
13599 | // The number of bytes to allocate for an event with 'cb' data bytes. |
||
13600 | /// |
||
13601 | //function QWORD_ALIGN(x: Cardinal) : Cardinal; |
||
13602 | //function DMUS_EVENT_SIZE(cb: Cardinal) : Cardinal; |
||
13603 | |||
13604 | // Standard values for voice priorities. Numerically higher priorities are higher in priority. |
||
13605 | // These priorities are used to set the voice priority for all voices on a channel. They are |
||
13606 | // used in the dwPriority parameter of IDirectMusicPort::GetPriority and returned in the |
||
13607 | // lpwPriority parameter of pdwPriority. |
||
13608 | // |
||
13609 | // These priorities are shared with DirectSound. |
||
13610 | /// |
||
13611 | |||
13612 | const |
||
13613 | DAUD_CRITICAL_VOICE_PRIORITY = $F0000000; |
||
13614 | DAUD_HIGH_VOICE_PRIORITY = $C0000000; |
||
13615 | DAUD_STANDARD_VOICE_PRIORITY = $80000000; |
||
13616 | DAUD_LOW_VOICE_PRIORITY = $40000000; |
||
13617 | DAUD_PERSIST_VOICE_PRIORITY = $10000000; |
||
13618 | |||
13619 | // These are the default priorities assigned if not overridden. By default priorities are |
||
13620 | // equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as |
||
13621 | // channel 5 on channel group 2). |
||
13622 | // |
||
13623 | // In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 |
||
13624 | // except for 10. |
||
13625 | /// |
||
13626 | |||
13627 | DAUD_CHAN1_VOICE_PRIORITY_OFFSET = $0000000E; |
||
13628 | DAUD_CHAN2_VOICE_PRIORITY_OFFSET = $0000000D; |
||
13629 | DAUD_CHAN3_VOICE_PRIORITY_OFFSET = $0000000C; |
||
13630 | DAUD_CHAN4_VOICE_PRIORITY_OFFSET = $0000000B; |
||
13631 | DAUD_CHAN5_VOICE_PRIORITY_OFFSET = $0000000A; |
||
13632 | DAUD_CHAN6_VOICE_PRIORITY_OFFSET = $00000009; |
||
13633 | DAUD_CHAN7_VOICE_PRIORITY_OFFSET = $00000008; |
||
13634 | DAUD_CHAN8_VOICE_PRIORITY_OFFSET = $00000007; |
||
13635 | DAUD_CHAN9_VOICE_PRIORITY_OFFSET = $00000006; |
||
13636 | DAUD_CHAN10_VOICE_PRIORITY_OFFSET = $0000000F; |
||
13637 | DAUD_CHAN11_VOICE_PRIORITY_OFFSET = $00000005; |
||
13638 | DAUD_CHAN12_VOICE_PRIORITY_OFFSET = $00000004; |
||
13639 | DAUD_CHAN13_VOICE_PRIORITY_OFFSET = $00000003; |
||
13640 | DAUD_CHAN14_VOICE_PRIORITY_OFFSET = $00000002; |
||
13641 | DAUD_CHAN15_VOICE_PRIORITY_OFFSET = $00000001; |
||
13642 | DAUD_CHAN16_VOICE_PRIORITY_OFFSET = $00000000; |
||
13643 | |||
13644 | |||
13645 | DAUD_CHAN1_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN1_VOICE_PRIORITY_OFFSET); |
||
13646 | DAUD_CHAN2_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN2_VOICE_PRIORITY_OFFSET); |
||
13647 | DAUD_CHAN3_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN3_VOICE_PRIORITY_OFFSET); |
||
13648 | DAUD_CHAN4_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN4_VOICE_PRIORITY_OFFSET); |
||
13649 | DAUD_CHAN5_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN5_VOICE_PRIORITY_OFFSET); |
||
13650 | DAUD_CHAN6_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN6_VOICE_PRIORITY_OFFSET); |
||
13651 | DAUD_CHAN7_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN7_VOICE_PRIORITY_OFFSET); |
||
13652 | DAUD_CHAN8_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN8_VOICE_PRIORITY_OFFSET); |
||
13653 | DAUD_CHAN9_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN9_VOICE_PRIORITY_OFFSET); |
||
13654 | DAUD_CHAN10_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN10_VOICE_PRIORITY_OFFSET); |
||
13655 | DAUD_CHAN11_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN11_VOICE_PRIORITY_OFFSET); |
||
13656 | DAUD_CHAN12_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN12_VOICE_PRIORITY_OFFSET); |
||
13657 | DAUD_CHAN13_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN13_VOICE_PRIORITY_OFFSET); |
||
13658 | DAUD_CHAN14_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN14_VOICE_PRIORITY_OFFSET); |
||
13659 | DAUD_CHAN15_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN15_VOICE_PRIORITY_OFFSET); |
||
13660 | DAUD_CHAN16_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN16_VOICE_PRIORITY_OFFSET); |
||
13661 | |||
13662 | |||
13663 | //GUID definition |
||
13664 | IID_IReferenceClock : TGUID = '{56A86897-0AD4-11CE-B03A-0020AF0BA770}'; |
||
13665 | |||
13666 | CLSID_DirectMusic : TGUID = '{636B9F10-0C7D-11D1-95B2-0020AFDC7421}'; |
||
13667 | CLSID_DirectMusicCollection : TGUID = '{480FF4B0-28B2-11D1-BEF7-00C04FBF8FEF}'; |
||
13668 | CLSID_DirectMusicSynth : TGUID = '{58C2B4D0-46E7-11D1-89AC-00A0C9054129}'; |
||
13669 | |||
13670 | IID_IDirectMusic : TGUID = '{6536115A-7B2D-11D2-BA18-0000F875AC12}'; |
||
13671 | IID_IDirectMusicBuffer : TGUID = '{D2AC2878-B39B-11D1-8704-00600893B1BD}'; |
||
13672 | IID_IDirectMusicPort : TGUID = '{08F2D8C9-37C2-11D2-B9F9-0000F875AC12}'; |
||
13673 | IID_IDirectMusicThru : TGUID = '{CED153E7-3606-11D2-B9F9-0000F875AC12}'; |
||
13674 | IID_IDirectMusicPortDownload: TGUID = '{D2AC287A-B39B-11D1-8704-00600893B1BD}'; |
||
13675 | IID_IDirectMusicDownload : TGUID = '{D2AC287B-B39B-11D1-8704-00600893B1BD}'; |
||
13676 | IID_IDirectMusicCollection : TGUID = '{D2AC287C-B39B-11D1-8704-00600893B1BD}'; |
||
13677 | IID_IDirectMusicInstrument : TGUID = '{D2AC287D-B39B-11D1-8704-00600893B1BD}'; |
||
13678 | IID_IDirectMusicDownloadedInstrument: TGUID = '{D2AC287E-B39B-11D1-8704-00600893B1BD}'; |
||
13679 | |||
13680 | // Alternate interface ID for IID_IDirectMusic, available in DX7 release and after. |
||
13681 | IID_IDirectMusic2 : TGUID = '{6FC2CAE1-BC78-11D2-AFA6-00AA0024D8B6}'; |
||
13682 | |||
13683 | // Property Query GUID_DMUS_PROP_GM_Hardware - Local GM set, no need to download |
||
13684 | // Property Query GUID_DMUS_PROP_GS_Hardware - Local GS set, no need to download |
||
13685 | // Property Query GUID_DMUS_PROP_XG_Hardware - Local XG set, no need to download |
||
13686 | // Property Query GUID_DMUS_PROP_DLS1 - Support DLS level 1 |
||
13687 | // Property Query GUID_DMUS_PROP_XG_Capable - Support minimum requirements of XG |
||
13688 | // Property Query GUID_DMUS_PROP_GS_Capable - Support minimum requirements of GS |
||
13689 | // Property Query GUID_DMUS_PROP_SynthSink_DSOUND - Synthsink talks to DSound |
||
13690 | // Property Query GUID_DMUS_PROP_SynthSink_WAVE - Synthsink talks to Wave device |
||
13691 | // |
||
13692 | // Item 0: Supported |
||
13693 | // Returns a DWORD which is non-zero if the feature is supported |
||
13694 | /// |
||
13695 | GUID_DMUS_PROP_GM_Hardware : TGUID = '{178F2F24-C364-11D1-A760-0000F875AC12}'; |
||
13696 | GUID_DMUS_PROP_GS_Hardware : TGUID = '{178F2F25-C364-11D1-A760-0000F875AC12}'; |
||
13697 | GUID_DMUS_PROP_XG_Hardware : TGUID = '{178F2F26-C364-11D1-A760-0000F875AC12}'; |
||
13698 | GUID_DMUS_PROP_XG_Capable : TGUID = '{6496ABA1-61B0-11D2-AFA6-00AA0024D8B6}'; |
||
13699 | GUID_DMUS_PROP_GS_Capable : TGUID = '{6496ABA2-61B0-11D2-AFA6-00AA0024D8B6}'; |
||
13700 | GUID_DMUS_PROP_DLS1 : TGUID = '{178F2F27-C364-11D1-A760-0000F875AC12}'; |
||
13701 | GUID_DMUS_PROP_SynthSink_DSOUND: TGUID = '{0AA97844-C877-11D1-870C-00600893B1BD}'; |
||
13702 | GUID_DMUS_PROP_SynthSink_WAVE : TGUID = '{0AA97845-C877-11D1-870C-00600893B1BD}'; |
||
13703 | |||
13704 | // Property Get/Set GUID_DMUS_PROP_WriteLatency |
||
13705 | // |
||
13706 | // Item 0: Synth buffer write latency, in milliseconds |
||
13707 | // Get/Set SynthSink latency, the average time after the play head that the next buffer gets written. |
||
13708 | /// |
||
13709 | GUID_DMUS_PROP_WriteLatency : TGUID = '{268A0FA0-60F2-11D2-AFA6-00AA0024D8B6}'; |
||
13710 | |||
13711 | // Property Get/Set GUID_DMUS_PROP_WritePeriod |
||
13712 | // |
||
13713 | // Item 0: Synth buffer write period, in milliseconds |
||
13714 | // Get/Set SynthSink buffer write period, time span between successive writes. |
||
13715 | /// |
||
13716 | GUID_DMUS_PROP_WritePeriod : TGUID = '{268A0FA1-60F2-11D2-AFA6-00AA0024D8B6}'; |
||
13717 | |||
13718 | // Property Get GUID_DMUS_PROP_MemorySize |
||
13719 | // |
||
13720 | // Item 0: Memory size |
||
13721 | // Returns a DWORD containing the total number of bytes of sample RAM |
||
13722 | /// |
||
13723 | GUID_DMUS_PROP_MemorySize : TGUID = '{178F2F28-C364-11D1-A760-0000F875AC12}'; |
||
13724 | |||
13725 | // Property Set GUID_DMUS_PROP_WavesReverb |
||
13726 | // |
||
13727 | // Item 0: DMUS_WAVES_REVERB structure |
||
13728 | // Sets reverb parameters |
||
13729 | /// |
||
13730 | GUID_DMUS_PROP_WavesReverb : TGUID = '{04CB5622-32E5-11D2-AFA6-00AA0024D8B6}'; |
||
13731 | |||
13732 | // Property Set GUID_DMUS_PROP_Effects |
||
13733 | // |
||
13734 | // Item 0: DWORD with effects flags. |
||
13735 | // Get/Set effects bits, same as dwEffectFlags in DMUS_PORTPARAMS and DMUS_PORTCAPS: |
||
13736 | // DMUS_EFFECT_NONE |
||
13737 | // DMUS_EFFECT_REVERB |
||
13738 | // DMUS_EFFECT_CHORUS |
||
13739 | /// |
||
13740 | GUID_DMUS_PROP_Effects : TGUID = '{CDA8D611-684A-11D2-871E-00600893B1BD}'; |
||
13741 | |||
13742 | // Property Set GUID_DMUS_PROP_LegacyCaps |
||
13743 | // |
||
13744 | // Item 0: The MIDINCAPS or MIDIOUTCAPS which describes the port's underlying WinMM device. This property is only supported |
||
13745 | // by ports which wrap WinMM devices. |
||
13746 | /// |
||
13747 | |||
13748 | GUID_DMUS_PROP_LegacyCaps : TGUID = '{CFA7CDC2-00A1-11D2-AAD5-0000F875AC12}'; |
||
13749 | |||
13750 | // Property Set GUID_DMUS_Volume |
||
13751 | // |
||
13752 | // Item 0: A long which contains an offset, in 1/100 dB, to be added to the final volume |
||
13753 | // |
||
13754 | /// |
||
13755 | GUID_DMUS_PROP_Volume : TGUID = '{FEDFAE25-E46E-11D1-AACE-0000F875AC12}'; |
||
13756 | |||
13757 | |||
13758 | |||
13759 | |||
13760 | |||
13761 | //*********************************************************************** |
||
13762 | // * |
||
13763 | // dmusici.h -- This module contains the API for the * |
||
13764 | // DirectMusic performance layer * |
||
13765 | // * |
||
13766 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
13767 | // * |
||
13768 | //********************************************************************** |
||
13769 | type |
||
13770 | TRANSITION_TYPE = Word; |
||
13771 | MUSIC_TIME = Longint; |
||
13772 | |||
13773 | const |
||
13774 | DMUS_PPQ = 768; // parts per quarter note |
||
13775 | |||
13776 | const |
||
13777 | DMUS_MAX_NAME = 64; // Maximum object name length. |
||
13778 | DMUS_MAX_CATEGORY = 64; // Maximum object category name length. |
||
13779 | DMUS_MAX_FILENAME = MAX_PATH; |
||
13780 | |||
13781 | |||
13782 | |||
13783 | const |
||
13784 | DMUS_COMMANDT_GROOVE = 0; |
||
13785 | DMUS_COMMANDT_FILL = 1; |
||
13786 | DMUS_COMMANDT_INTRO = 2; |
||
13787 | DMUS_COMMANDT_BREAK = 3; |
||
13788 | DMUS_COMMANDT_END = 4; |
||
13789 | DMUS_COMMANDT_ENDANDINTRO = 5; |
||
13790 | {typedef enum enumDMUS_COMMANDT_TYPES |
||
13791 | { |
||
13792 | DMUS_COMMANDT_GROOVE = 0, |
||
13793 | DMUS_COMMANDT_FILL = 1, |
||
13794 | DMUS_COMMANDT_INTRO = 2, |
||
13795 | DMUS_COMMANDT_BREAK = 3, |
||
13796 | DMUS_COMMANDT_END = 4, |
||
13797 | DMUS_COMMANDT_ENDANDINTRO = 5 |
||
13798 | DMUS_COMMANDT_TYPES;} |
||
13799 | |||
13800 | DMUS_SHAPET_FALLING = 0; |
||
13801 | DMUS_SHAPET_LEVEL = 1; |
||
13802 | DMUS_SHAPET_LOOPABLE = 2; |
||
13803 | DMUS_SHAPET_LOUD = 3; |
||
13804 | DMUS_SHAPET_QUIET = 4; |
||
13805 | DMUS_SHAPET_PEAKING = 5; |
||
13806 | DMUS_SHAPET_RANDOM = 6; |
||
13807 | DMUS_SHAPET_RISING = 7; |
||
13808 | DMUS_SHAPET_SONG = 8; |
||
13809 | {typedef enum enumDMUS_SHAPET_TYPES |
||
13810 | { |
||
13811 | DMUS_SHAPET_FALLING = 0, |
||
13812 | DMUS_SHAPET_LEVEL = 1, |
||
13813 | DMUS_SHAPET_LOOPABLE = 2, |
||
13814 | DMUS_SHAPET_LOUD = 3, |
||
13815 | DMUS_SHAPET_QUIET = 4, |
||
13816 | DMUS_SHAPET_PEAKING = 5, |
||
13817 | DMUS_SHAPET_RANDOM = 6, |
||
13818 | DMUS_SHAPET_RISING = 7, |
||
13819 | DMUS_SHAPET_SONG = 8 |
||
13820 | DMUS_SHAPET_TYPES;} |
||
13821 | |||
13822 | DMUS_COMPOSEF_NONE = 0; |
||
13823 | DMUS_COMPOSEF_ALIGN = $1; |
||
13824 | DMUS_COMPOSEF_OVERLAP = $2; |
||
13825 | DMUS_COMPOSEF_IMMEDIATE = $4; |
||
13826 | DMUS_COMPOSEF_GRID = $8; |
||
13827 | DMUS_COMPOSEF_BEAT = $10; |
||
13828 | DMUS_COMPOSEF_MEASURE = $20; |
||
13829 | DMUS_COMPOSEF_AFTERPREPARETIME = $40; |
||
13830 | DMUS_COMPOSEF_MODULATE = $1000; |
||
13831 | DMUS_COMPOSEF_LONG = $2000; |
||
13832 | {typedef enum enumDMUS_COMPOSEF_FLAGS |
||
13833 | { |
||
13834 | DMUS_COMPOSEF_NONE = 0, |
||
13835 | DMUS_COMPOSEF_ALIGN = 0x1, |
||
13836 | DMUS_COMPOSEF_OVERLAP = 0x2, |
||
13837 | DMUS_COMPOSEF_IMMEDIATE = 0x4, |
||
13838 | DMUS_COMPOSEF_GRID = 0x8, |
||
13839 | DMUS_COMPOSEF_BEAT = 0x10, |
||
13840 | DMUS_COMPOSEF_MEASURE = 0x20, |
||
13841 | DMUS_COMPOSEF_AFTERPREPARETIME = 0x40, |
||
13842 | DMUS_COMPOSEF_MODULATE = 0x1000, |
||
13843 | DMUS_COMPOSEF_LONG = 0x2000 |
||
13844 | DMUS_COMPOSEF_FLAGS;} |
||
13845 | |||
13846 | const |
||
13847 | // DMUS_PMSGF_FLAGS fill the DMUS_PMSG's dwFlags member |
||
13848 | DMUS_PMSGF_REFTIME = 1; // if rtTime is valid |
||
13849 | DMUS_PMSGF_MUSICTIME = 2; // if mtTime is valid |
||
13850 | DMUS_PMSGF_TOOL_IMMEDIATE = 4; // if PMSG should be processed immediately |
||
13851 | DMUS_PMSGF_TOOL_QUEUE = 8; // if PMSG should be processed a little early, at Queue time |
||
13852 | DMUS_PMSGF_TOOL_ATTIME = 16; // if PMSG should be processed at the time stamp |
||
13853 | DMUS_PMSGF_TOOL_FLUSH = 32; // if PMSG is being flushed |
||
13854 | // The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the |
||
13855 | // DMUS_PMSG's dwFlags member. |
||
13856 | |||
13857 | type |
||
13858 | TDMUS_PMSGF_FLAGS = Cardinal; |
||
13859 | DMUS_PMSGF_FLAGS = TDMUS_PMSGF_FLAGS; |
||
13860 | {typedef enum enumDMUS_PMSGF_FLAGS |
||
13861 | { |
||
13862 | DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid |
||
13863 | DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid |
||
13864 | DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately |
||
13865 | DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time |
||
13866 | DMUS_PMSGF_TOOL_ATTIME = 16, /* if PMSG should be processed at the time stamp |
||
13867 | DMUS_PMSGF_TOOL_FLUSH = 32 /* if PMSG is being flushed |
||
13868 | /* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the |
||
13869 | /* DMUS_PMSG's dwFlags member. |
||
13870 | DMUS_PMSGF_FLAGS;} |
||
13871 | |||
13872 | const |
||
13873 | // DMUS_PMSGT_TYPES fill the DMUS_PMSG's dwType member |
||
13874 | DMUS_PMSGT_MIDI = 0; // MIDI short message |
||
13875 | DMUS_PMSGT_NOTE = 1; // Interactive Music Note |
||
13876 | DMUS_PMSGT_SYSEX = 2; // MIDI long message (system exclusive message) |
||
13877 | DMUS_PMSGT_NOTIFICATION = 3; // Notification message |
||
13878 | DMUS_PMSGT_TEMPO = 4; // Tempo message |
||
13879 | DMUS_PMSGT_CURVE = 5; // Control change / pitch bend, etc. curve |
||
13880 | DMUS_PMSGT_TIMESIG = 6; // Time signature |
||
13881 | DMUS_PMSGT_PATCH = 7; // Patch changes |
||
13882 | DMUS_PMSGT_TRANSPOSE = 8; // Transposition messages |
||
13883 | DMUS_PMSGT_CHANNEL_PRIORITY = 9; // Channel priority |
||
13884 | DMUS_PMSGT_STOP = 10; // Stop message |
||
13885 | DMUS_PMSGT_DIRTY = 11; // Tells Tools that cache GetParam() info to refresh |
||
13886 | DMUS_PMSGT_USER = 255; // User message |
||
13887 | |||
13888 | type |
||
13889 | TDMUS_PMSGT_TYPES = Cardinal; |
||
13890 | DMUS_PMSGT_TYPES = TDMUS_PMSGT_TYPES; |
||
13891 | |||
13892 | {typedef enum enumDMUS_PMSGT_TYPES |
||
13893 | { |
||
13894 | DMUS_PMSGT_MIDI = 0, /* MIDI short message |
||
13895 | DMUS_PMSGT_NOTE = 1, /* Interactive Music Note |
||
13896 | DMUS_PMSGT_SYSEX = 2, /* MIDI long message (system exclusive message) |
||
13897 | DMUS_PMSGT_NOTIFICATION = 3, /* Notification message |
||
13898 | DMUS_PMSGT_TEMPO = 4, /* Tempo message |
||
13899 | DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve |
||
13900 | DMUS_PMSGT_TIMESIG = 6, /* Time signature |
||
13901 | DMUS_PMSGT_PATCH = 7, /* Patch changes |
||
13902 | DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages |
||
13903 | DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority |
||
13904 | DMUS_PMSGT_STOP = 10, /* Stop message |
||
13905 | DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh |
||
13906 | DMUS_PMSGT_USER = 255 /* User message |
||
13907 | DMUS_PMSGT_TYPES;} |
||
13908 | |||
13909 | const |
||
13910 | // DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment, and other API |
||
13911 | DMUS_SEGF_REFTIME = 64; // time parameter is in reference time |
||
13912 | DMUS_SEGF_SECONDARY = 128; // secondary segment |
||
13913 | DMUS_SEGF_QUEUE = 256; // queue at the end of the primary segment queue (primary only) |
||
13914 | DMUS_SEGF_CONTROL = 512; // play as a control track (secondary segments only) |
||
13915 | DMUS_SEGF_AFTERPREPARETIME = 1 shl 10; // play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) |
||
13916 | DMUS_SEGF_GRID = 1 shl 11; // play on grid boundary |
||
13917 | DMUS_SEGF_BEAT = 1 shl 12; // play on beat boundary |
||
13918 | DMUS_SEGF_MEASURE = 1 shl 13; // play on measure boundary |
||
13919 | DMUS_SEGF_DEFAULT = 1 shl 14; // use segment's default boundary |
||
13920 | DMUS_SEGF_NOINVALIDATE = 1 shl 15; // play without invalidating the currently playing segment(s) |
||
13921 | |||
13922 | type |
||
13923 | TDMUS_SEGF_FLAGS = Cardinal; |
||
13924 | DMUS_SEGF_FLAGS = TDMUS_SEGF_FLAGS; |
||
13925 | |||
13926 | {typedef enum enumDMUS_SEGF_FLAGS |
||
13927 | { |
||
13928 | DMUS_SEGF_REFTIME = 64, /* time parameter is in reference time |
||
13929 | DMUS_SEGF_SECONDARY = 128, /* secondary segment |
||
13930 | DMUS_SEGF_QUEUE = 256, /* queue at the end of the primary segment queue (primary only) |
||
13931 | DMUS_SEGF_CONTROL = 512, /* play as a control track (secondary segments only) |
||
13932 | DMUS_SEGF_AFTERPREPARETIME = 1<<10, /* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) |
||
13933 | DMUS_SEGF_GRID = 1<<11, /* play on grid boundary |
||
13934 | DMUS_SEGF_BEAT = 1<<12, /* play on beat boundary |
||
13935 | DMUS_SEGF_MEASURE = 1<<13, /* play on measure boundary |
||
13936 | DMUS_SEGF_DEFAULT = 1<<14, /* use segment's default boundary |
||
13937 | DMUS_SEGF_NOINVALIDATE = 1<<15 /* play without invalidating the currently playing segment(s) |
||
13938 | DMUS_SEGF_FLAGS;} |
||
13939 | |||
13940 | const |
||
13941 | // DMUS_TIME_RESOLVE_FLAGS correspond to IDirectMusicPerformance::GetResolvedTime, and can |
||
13942 | // also be used interchangeably with the corresponding DMUS_SEGF_FLAGS, since their values |
||
13943 | // are intentionally the same |
||
13944 | DMUS_TIME_RESOLVE_AFTERPREPARETIME = 1 shl 10; // resolve to a time after the prepare time |
||
13945 | DMUS_TIME_RESOLVE_GRID = 1 shl 11; // resolve to a time on a grid boundary |
||
13946 | DMUS_TIME_RESOLVE_BEAT = 1 shl 12; // resolve to a time on a beat boundary |
||
13947 | DMUS_TIME_RESOLVE_MEASURE = 1 shl 13; // resolve to a time on a measure boundary |
||
13948 | |||
13949 | type |
||
13950 | TDMUS_TIME_RESOLVE_FLAGS = Cardinal; |
||
13951 | DMUS_TIME_RESOLVE_FLAGS = TDMUS_TIME_RESOLVE_FLAGS; |
||
13952 | |||
13953 | {typedef enum enumDMUS_TIME_RESOLVE_FLAGS |
||
13954 | { |
||
13955 | DMUS_TIME_RESOLVE_AFTERPREPARETIME = 1<<10, /* resolve to a time after the prepare time |
||
13956 | DMUS_TIME_RESOLVE_GRID = 1<<11, /* resolve to a time on a grid boundary |
||
13957 | DMUS_TIME_RESOLVE_BEAT = 1<<12, /* resolve to a time on a beat boundary |
||
13958 | DMUS_TIME_RESOLVE_MEASURE = 1<<13 /* resolve to a time on a measure boundary |
||
13959 | DMUS_TIME_RESOLVE_FLAGS;} |
||
13960 | |||
13961 | const |
||
13962 | // The following flags are sent in the IDirectMusicTrack::Play() method |
||
13963 | // inside the dwFlags parameter |
||
13964 | DMUS_TRACKF_SEEK = 1; // set on a seek |
||
13965 | DMUS_TRACKF_LOOP = 2; // set on a loop (repeat) |
||
13966 | DMUS_TRACKF_START = 4; // set on first call to Play |
||
13967 | DMUS_TRACKF_FLUSH = 8; // set when this call is in response to a flush on the perfomance |
||
13968 | DMUS_TRACKF_DIRTY = 16; // set when the track should consider any cached values from a previous call to GetParam to be invalidated |
||
13969 | |||
13970 | type |
||
13971 | TDMUS_TRACKF_FLAGS = Cardinal; |
||
13972 | DMUS_TRACKF_FLAGS = TDMUS_TRACKF_FLAGS; |
||
13973 | |||
13974 | {typedef enum enumDMUS_TRACKF_FLAGS |
||
13975 | { |
||
13976 | DMUS_TRACKF_SEEK = 1, /* set on a seek |
||
13977 | DMUS_TRACKF_LOOP = 2, /* set on a loop (repeat) |
||
13978 | DMUS_TRACKF_START = 4, /* set on first call to Play |
||
13979 | DMUS_TRACKF_FLUSH = 8, /* set when this call is in response to a flush on the perfomance |
||
13980 | DMUS_TRACKF_DIRTY = 16, /* set when the track should consider any cached values from a previous call to GetParam to be invalidated |
||
13981 | DMUS_TRACKF_FLAGS;} |
||
13982 | |||
13983 | const |
||
13984 | DMUS_MAXSUBCHORD = 8; |
||
13985 | |||
13986 | type |
||
13987 | TDMUS_SUBCHORD = record |
||
13988 | dwChordPattern : DWORD; // Notes in the subchord |
||
13989 | dwScalePattern : DWORD; // Notes in the scale |
||
13990 | dwInversionPoints : DWORD; // Where inversions can occur |
||
13991 | dwLevels : DWORD; // Which levels are supported by this subchord |
||
13992 | bChordRoot : Byte; // Root of the subchord |
||
13993 | bScaleRoot : Byte; // Root of the scale |
||
13994 | end; |
||
13995 | DMUS_SUBCHORD = TDMUS_SUBCHORD; |
||
13996 | |||
13997 | TDMUS_CHORD_KEY = record |
||
13998 | wszName : array[0..15] of WideChar; // Name of the chord |
||
13999 | wMeasure : Word; // Measure this falls on |
||
14000 | bBeat : Byte; // Beat this falls on |
||
14001 | bSubChordCount : Byte; // Number of chords in the list of subchords |
||
14002 | SubChordList : array[0..DMUS_MAXSUBCHORD - 1] of TDMUS_SUBCHORD;// List of sub chords |
||
14003 | dwScale : DWORD; // Scale underlying the entire chord |
||
14004 | bKey : Byte; // Key underlying the entire chord |
||
14005 | end; |
||
14006 | DMUS_CHORD_KEY = TDMUS_CHORD_KEY; |
||
14007 | |||
14008 | const |
||
14009 | //typedef enum enumDMUS_NOTEF_FLAGS |
||
14010 | DMUS_NOTEF_NOTEON = 1; // Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off |
||
14011 | |||
14012 | type |
||
14013 | TDMUS_NOTEF_FLAGS = Cardinal; |
||
14014 | DMUS_NOTEF_FLAGS = TDMUS_NOTEF_FLAGS; |
||
14015 | |||
14016 | // The DMUS_PLAYMODE_FLAGS are used to determine how to convert wMusicValue |
||
14017 | // into the appropriate bMidiValue. |
||
14018 | /// |
||
14019 | const |
||
14020 | //typedef enum enumDMUS_PLAYMODE_FLAGS |
||
14021 | DMUS_PLAYMODE_KEY_ROOT = 1; // Transpose on top of the key root. |
||
14022 | DMUS_PLAYMODE_CHORD_ROOT = 2; // Transpose on top of the chord root. |
||
14023 | DMUS_PLAYMODE_SCALE_INTERVALS = 4; // Use scale intervals from scale pattern. |
||
14024 | DMUS_PLAYMODE_CHORD_INTERVALS = 8; // Use chord intervals from chord pattern. |
||
14025 | DMUS_PLAYMODE_NONE = 16; // No mode. Indicates the parent part's mode should be used. |
||
14026 | |||
14027 | type |
||
14028 | TDMUS_PLAYMODE_FLAGS = Cardinal; |
||
14029 | DMUS_PLAYMODE_FLAGS = TDMUS_PLAYMODE_FLAGS; |
||
14030 | |||
14031 | // The following are playback modes that can be created by combining the DMUS_PLAYMODE_FLAGS |
||
14032 | // in various ways: |
||
14033 | /// |
||
14034 | |||
14035 | // Fixed. wMusicValue holds final MIDI note value. This is used for drums, sound effects, and sequenced |
||
14036 | // notes that should not be transposed by the chord or scale. |
||
14037 | /// |
||
14038 | const |
||
14039 | DMUS_PLAYMODE_FIXED = 0; |
||
14040 | // In fixed to key, the musicvalue is again a fixed MIDI value, but it |
||
14041 | // is transposed on top of the key root. |
||
14042 | /// |
||
14043 | DMUS_PLAYMODE_FIXEDTOKEY = DMUS_PLAYMODE_KEY_ROOT; |
||
14044 | // In fixed to chord, the musicvalue is also a fixed MIDI value, but it |
||
14045 | // is transposed on top of the chord root. |
||
14046 | /// |
||
14047 | DMUS_PLAYMODE_FIXEDTOCHORD = DMUS_PLAYMODE_CHORD_ROOT; |
||
14048 | // In Pedalpoint, the key root is used and the notes only track the intervals in |
||
14049 | // the scale. The chord root and intervals are completely ignored. This is useful |
||
14050 | // for melodic lines that play relative to the key root. |
||
14051 | /// |
||
14052 | DMUS_PLAYMODE_PEDALPOINT = (DMUS_PLAYMODE_KEY_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
||
14053 | // In the Melodic mode, the chord root is used but the notes only track the intervals in |
||
14054 | // the scale. The key root and chord intervals are completely ignored. This is useful |
||
14055 | // for melodic lines that play relative to the chord root. |
||
14056 | /// |
||
14057 | DMUS_PLAYMODE_MELODIC = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
||
14058 | // Normal chord mode is the prevalent playback mode. |
||
14059 | // The notes track the intervals in the chord, which is based on the chord root. |
||
14060 | // If there is a scale component to the MusicValue, the additional intervals |
||
14061 | // are pulled from the scale and added. |
||
14062 | // If the chord does not have an interval to match the chord component of |
||
14063 | // the MusicValue, the note is silent. |
||
14064 | /// |
||
14065 | DMUS_PLAYMODE_NORMALCHORD = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_CHORD_INTERVALS); |
||
14066 | // If it is desirable to play a note that is above the top of the chord, the |
||
14067 | // always play mode (known as "purpleized" in a former life) finds a position |
||
14068 | // for the note by using intervals from the scale. Essentially, this mode is |
||
14069 | // a combination of the Normal and Melodic playback modes, where a failure |
||
14070 | // in Normal causes a second try in Melodic mode. |
||
14071 | /// |
||
14072 | DMUS_PLAYMODE_ALWAYSPLAY = (DMUS_PLAYMODE_MELODIC or DMUS_PLAYMODE_NORMALCHORD); |
||
14073 | |||
14074 | // Legacy names for modes... |
||
14075 | DMUS_PLAYMODE_PURPLEIZED = DMUS_PLAYMODE_ALWAYSPLAY; |
||
14076 | DMUS_PLAYMODE_SCALE_ROOT = DMUS_PLAYMODE_KEY_ROOT; |
||
14077 | DMUS_PLAYMODE_FIXEDTOSCALE = DMUS_PLAYMODE_FIXEDTOKEY; |
||
14078 | |||
14079 | const |
||
14080 | DMUS_TEMPO_MAX = 350; |
||
14081 | DMUS_TEMPO_MIN = 10; |
||
14082 | |||
14083 | DMUS_MASTERTEMPO_MAX = 2.0; |
||
14084 | DMUS_MASTERTEMPO_MIN = 0.25; |
||
14085 | |||
14086 | const |
||
14087 | DMUS_CURVE_RESET = 1; // Set if the curve needs to be reset. |
||
14088 | |||
14089 | type |
||
14090 | TDMUS_CURVE_FLAGS = Cardinal; |
||
14091 | DMUS_CURVE_FLAGS = TDMUS_CURVE_FLAGS; |
||
14092 | { |
||
14093 | DMUS_CURVE_RESET = 1, /* Set if the curve needs to be reset. |
||
14094 | DMUS_CURVE_FLAGS; } |
||
14095 | |||
14096 | |||
14097 | const |
||
14098 | //DMUS_CURVE_RESET = 1; |
||
14099 | |||
14100 | // Curve shapes |
||
14101 | DMUS_CURVES_LINEAR = 0; |
||
14102 | DMUS_CURVES_INSTANT = 1; |
||
14103 | DMUS_CURVES_EXP = 2; |
||
14104 | DMUS_CURVES_LOG = 3; |
||
14105 | DMUS_CURVES_SINE = 4; |
||
14106 | |||
14107 | // curve types |
||
14108 | DMUS_CURVET_PBCURVE = $03; |
||
14109 | DMUS_CURVET_CCCURVE = $04; |
||
14110 | DMUS_CURVET_MATCURVE = $05; |
||
14111 | DMUS_CURVET_PATCURVE = $06; |
||
14112 | |||
14113 | // notification type values |
||
14114 | // The following correspond to GUID_NOTIFICATION_SEGMENT |
||
14115 | const |
||
14116 | DMUS_NOTIFICATION_SEGSTART = 0; |
||
14117 | DMUS_NOTIFICATION_SEGEND = 1; |
||
14118 | DMUS_NOTIFICATION_SEGALMOSTEND = 2; |
||
14119 | DMUS_NOTIFICATION_SEGLOOP = 3; |
||
14120 | DMUS_NOTIFICATION_SEGABORT = 4; |
||
14121 | // The following correspond to GUID_NOTIFICATION_PERFORMANCE |
||
14122 | DMUS_NOTIFICATION_MUSICSTARTED = 0; |
||
14123 | DMUS_NOTIFICATION_MUSICSTOPPED = 1; |
||
14124 | // The following corresponds to GUID_NOTIFICATION_MEASUREANDBEAT |
||
14125 | DMUS_NOTIFICATION_MEASUREBEAT = 0; |
||
14126 | // The following corresponds to GUID_NOTIFICATION_CHORD |
||
14127 | DMUS_NOTIFICATION_CHORD = 0; |
||
14128 | // The following correspond to GUID_NOTIFICATION_COMMAND |
||
14129 | DMUS_NOTIFICATION_GROOVE = 0; |
||
14130 | DMUS_NOTIFICATION_EMBELLISHMENT= 1; |
||
14131 | |||
14132 | type |
||
14133 | // Time Signature structure, used by IDirectMusicStyle |
||
14134 | // Also used as a parameter for GetParam() and SetParam |
||
14135 | TDMUS_TIMESIGNATURE = record |
||
14136 | mtTime : MUSIC_TIME; |
||
14137 | bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
||
14138 | bBeat : Byte; // what note receives the beat (bottom of time sig.) |
||
14139 | // we can assume that 0 means 256th note |
||
14140 | wGridsPerBeat : Word; // grids per beat |
||
14141 | end; |
||
14142 | DMUS_TIMESIGNATURE = TDMUS_TIMESIGNATURE; |
||
14143 | |||
14144 | // Flags for dwValidData. When set, a flag indicates that the |
||
14145 | // corresponding field in DMUSOBJECTDESC holds valid data. |
||
14146 | const |
||
14147 | DMUS_OBJ_OBJECT = 1 shl 0; // Object GUID is valid. |
||
14148 | DMUS_OBJ_CLASS = 1 shl 1; // Class GUID is valid. |
||
14149 | DMUS_OBJ_NAME = 1 shl 2; // Name is valid. |
||
14150 | DMUS_OBJ_CATEGORY = 1 shl 3; // Category is valid. |
||
14151 | DMUS_OBJ_FILENAME = 1 shl 4; // File path is valid. |
||
14152 | DMUS_OBJ_FULLPATH = 1 shl 5; // Path is full path. |
||
14153 | DMUS_OBJ_URL = 1 shl 6; // Path is URL. |
||
14154 | DMUS_OBJ_VERSION = 1 shl 7; // Version is valid. |
||
14155 | DMUS_OBJ_DATE = 1 shl 8; // Date is valid. |
||
14156 | DMUS_OBJ_LOADED = 1 shl 9; // Object is currently loaded in memory. |
||
14157 | DMUS_OBJ_MEMORY = 1 shl 10; // Object is pointed to by pbMemData. |
||
14158 | |||
14159 | const |
||
14160 | DMUSB_LOADED = 1 shl 0; // Set when band has been loaded |
||
14161 | DMUSB_DEFAULT = 1 shl 1; // Set when band is default band for a style |
||
14162 | |||
14163 | type |
||
14164 | IDirectMusicTrack = interface; |
||
14165 | IDirectMusicPerformance = interface; |
||
14166 | IDirectMusicTool = interface; |
||
14167 | IDirectMusicSegment = interface; |
||
14168 | IDirectMusicSegmentState = interface; |
||
14169 | IDirectMusicGraph = interface; |
||
14170 | //IDirectMusicPort = interface; |
||
14171 | //IDirectMusicBuffer = interface; |
||
14172 | //IDirectMusicInstrument = interface; |
||
14173 | //IDirectMusicDownloadedInstrument = interface; |
||
14174 | IDirectMusicBand = interface; |
||
14175 | IDirectMusicChordMap = interface; |
||
14176 | IDirectMusicLoader = interface; |
||
14177 | IDirectMusicObject = interface; |
||
14178 | {#ifndef __cplusplus |
||
14179 | typedef interface IDirectMusic IDirectMusic; |
||
14180 | typedef interface IDirectMusicTrack IDirectMusicTrack; |
||
14181 | typedef interface IDirectMusicPerformance IDirectMusicPerformance; |
||
14182 | typedef interface IDirectMusicTool IDirectMusicTool; |
||
14183 | typedef interface IDirectMusicSegment IDirectMusicSegment; |
||
14184 | typedef interface IDirectMusicSegmentState IDirectMusicSegmentState; |
||
14185 | typedef interface IDirectMusicGraph IDirectMusicGraph; |
||
14186 | typedef interface IDirectMusicPort IDirectMusicPort; |
||
14187 | typedef interface IDirectMusicBuffer IDirectMusicBuffer; |
||
14188 | typedef interface IDirectMusicInstrument IDirectMusicInstrument; |
||
14189 | typedef interface IDirectMusicDownloadedInstrument IDirectMusicDownloadedInstrument; |
||
14190 | typedef interface IDirectMusicBand IDirectMusicBand; |
||
14191 | typedef interface IDirectMusicChordMap IDirectMusicChordMap; |
||
14192 | typedef interface IDirectMusicObject IDirectMusicObject; |
||
14193 | typedef interface IDirectMusicLoader IDirectMusicLoader; |
||
14194 | #endif} |
||
14195 | |||
14196 | LPDMUS_OBJECT = IDirectMusicObject; |
||
14197 | LPDMUS_LOADER = IDirectMusicLoader; |
||
14198 | LPDMUS_BAND = IDirectMusicBand; |
||
14199 | |||
14200 | TDMUS_PMSG_PART = record |
||
14201 | dwSize : DWORD; |
||
14202 | rtTime : REFERENCE_TIME; // real time (in 100 nanosecond increments) \ |
||
14203 | mtTime : MUSIC_TIME; // music time \ |
||
14204 | dwFlags : DWORD; // various bits (see DMUS_PMSG_FLAGS enumeration) \ |
||
14205 | dwPChannel : DWORD; // Performance Channel. The Performance can \ |
||
14206 | // use this to determine the port/channel. \ |
||
14207 | dwVirtualTrackID : DWORD; // virtual track ID \ |
||
14208 | pTool : IDirectMusicTool; // tool interface pointer \ |
||
14209 | pGraph : IDirectMusicGraph; // tool graph interface pointer \ |
||
14210 | dwType : DWORD; // PMSG type (see DMUS_PMSGT_TYPES defines) \ |
||
14211 | dwVoiceID : DWORD; // unique voice id which allows synthesizers to \ |
||
14212 | // identify a specific event. For DirectX 6.0, \ |
||
14213 | // this field should always be 0. \ |
||
14214 | dwGroupID : DWORD; // Track group id \ |
||
14215 | punkUser : IUnknown; // user com pointer, auto released upon PMSG free |
||
14216 | end; |
||
14217 | // every DMUS_PMSG is based off of this structure. The Performance needs |
||
14218 | // to access these members consistently in every PMSG that goes through it. |
||
14219 | {typedef struct _DMUS_PMSG |
||
14220 | { |
||
14221 | /* begin DMUS_PMSG_PART |
||
14222 | DMUS_PMSG_PART |
||
14223 | /* end DMUS_PMSG_PART |
||
14224 | |||
14225 | DMUS_PMSG;} |
||
14226 | TDMUS_PMSG = TDMUS_PMSG_PART; |
||
14227 | DMUS_PMSG = TDMUS_PMSG; |
||
14228 | |||
14229 | // DMUS_NOTE_PMSG |
||
14230 | TDMUS_NOTE_PMSG = record |
||
14231 | // begin DMUS_PMSG_PART |
||
14232 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14233 | // end DMUS_PMSG_PART |
||
14234 | |||
14235 | mtDuration : MUSIC_TIME; // duration |
||
14236 | wMusicValue : Word; // Description of note in chord and key. |
||
14237 | wMeasure : Word; // Measure in which this note occurs |
||
14238 | nOffset : Smallint; // Offset from grid at which this note occurs |
||
14239 | bBeat : Byte; // Beat (in measure) at which this note occurs |
||
14240 | bGrid : Byte; // Grid offset from beat at which this note occurs |
||
14241 | bVelocity : Byte; // Note velocity |
||
14242 | bFlags : Byte; // see DMUS_NOTE_FLAGS |
||
14243 | bTimeRange : Byte; // Range to randomize time. |
||
14244 | bDurRange : Byte; // Range to randomize duration. |
||
14245 | bVelRange : Byte; // Range to randomize velocity. |
||
14246 | bPlayModeFlags : Byte; // Play mode |
||
14247 | bSubChordLevel : Byte; // Which subchord level this note uses. |
||
14248 | bMidiValue : Byte; // The MIDI note value, converted from wMusicValue |
||
14249 | cTranspose : Shortint; // Transposition to add to midi note value after converted from wMusicValue. |
||
14250 | end; |
||
14251 | DMUS_NOTE_PMSG = TDMUS_NOTE_PMSG; |
||
14252 | |||
14253 | // DMUS_MIDI_PMSG |
||
14254 | TDMUS_MIDI_PMSG = record |
||
14255 | // begin DMUS_PMSG_PART |
||
14256 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14257 | // end DMUS_PMSG_PART |
||
14258 | |||
14259 | bStatus : Byte; |
||
14260 | bByte1 : Byte; |
||
14261 | bByte2 : Byte; |
||
14262 | bPad : array[0..0] of Byte; |
||
14263 | end; |
||
14264 | DMUS_MIDI_PMSG = TDMUS_MIDI_PMSG; |
||
14265 | |||
14266 | // DMUS_PATCH_PMSG |
||
14267 | TDMUS_PATCH_PMSG = record |
||
14268 | // begin DMUS_PMSG_PART |
||
14269 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14270 | // end DMUS_PMSG_PART |
||
14271 | |||
14272 | byInstrument : Byte; |
||
14273 | byMSB : Byte; |
||
14274 | byLSB : Byte; |
||
14275 | byPad : array[0..0] of Byte; |
||
14276 | end; |
||
14277 | DMUS_PATCH_PMSG = TDMUS_PATCH_PMSG; |
||
14278 | |||
14279 | // DMUS_TRANSPOSE_PMSG |
||
14280 | TDMUS_TRANSPOSE_PMSG = record |
||
14281 | // begin DMUS_PMSG_PART |
||
14282 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14283 | // end DMUS_PMSG_PART |
||
14284 | |||
14285 | nTranspose : Smallint; |
||
14286 | end; |
||
14287 | DMUS_TRANSPOSE_PMSG = TDMUS_TRANSPOSE_PMSG; |
||
14288 | |||
14289 | // DMUS_CHANNEL_PRIORITY_PMSG |
||
14290 | TDMUS_CHANNEL_PRIORITY_PMSG = record |
||
14291 | // begin DMUS_PMSG_PART |
||
14292 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14293 | // end DMUS_PMSG_PART |
||
14294 | |||
14295 | dwChannelPriority : DWORD; |
||
14296 | end; |
||
14297 | DMUS_CHANNEL_PRIORITY_PMSG = TDMUS_CHANNEL_PRIORITY_PMSG; |
||
14298 | |||
14299 | // DMUS_TEMPO_PMSG |
||
14300 | TDMUS_TEMPO_PMSG = record |
||
14301 | // begin DMUS_PMSG_PART |
||
14302 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14303 | // end DMUS_PMSG_PART |
||
14304 | |||
14305 | dblTempo : Double; // the tempo |
||
14306 | end; |
||
14307 | DMUS_TEMPO_PMSG = TDMUS_TEMPO_PMSG; |
||
14308 | |||
14309 | // DMUS_SYSEX_PMSG |
||
14310 | TDMUS_SYSEX_PMSG = record |
||
14311 | // begin DMUS_PMSG_PART |
||
14312 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14313 | // end DMUS_PMSG_PART |
||
14314 | |||
14315 | dwLen : DWORD; // length of the data |
||
14316 | abData : array[0..0] of Byte; // array of data, length equal to dwLen |
||
14317 | end; |
||
14318 | DMUS_SYSEX_PMSG = TDMUS_SYSEX_PMSG; |
||
14319 | |||
14320 | // DMUS_CURVE_PMSG |
||
14321 | TDMUS_CURVE_PMSG = record |
||
14322 | // begin DMUS_PMSG_PART |
||
14323 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14324 | // end DMUS_PMSG_PART |
||
14325 | |||
14326 | mtDuration : MUSIC_TIME; // how long this curve lasts |
||
14327 | mtOriginalStart : MUSIC_TIME; // must be set to either zero when this PMSG is created or to the original mtTime of the curve |
||
14328 | mtResetDuration : MUSIC_TIME; // how long after the curve is finished to reset to the |
||
14329 | // reset value, nResetValue |
||
14330 | nStartValue : Smallint; // curve's start value |
||
14331 | nEndValue : Smallint; // curve's end value |
||
14332 | nResetValue : Smallint; // curve's reset value, sent after mtResetDuration or |
||
14333 | // upon a flush or invalidation |
||
14334 | wMeasure : Word; // Measure in which this curve occurs |
||
14335 | nOffset : Smallint; // Offset from grid at which this curve occurs |
||
14336 | bBeat : Byte; // Beat (in measure) at which this curve occurs |
||
14337 | bGrid : Byte; // Grid offset from beat at which this curve occurs |
||
14338 | bType : Byte; // type of curve |
||
14339 | bCurveShape : Byte; // shape of curve |
||
14340 | bCCData : Byte; // CC# if this is a control change type |
||
14341 | bFlags : Byte; // set to 1 if the nResetValue must be sent when the |
||
14342 | // time is reached or an invalidate occurs because |
||
14343 | // of a transition. If 0, the curve stays |
||
14344 | // permanently stuck at the new value. All bits besides |
||
14345 | // 1 are reserved. |
||
14346 | |||
14347 | end; |
||
14348 | DMUS_CURVE_PMSG = TDMUS_CURVE_PMSG; |
||
14349 | |||
14350 | // DMUS_TIMESIG_PMSG |
||
14351 | TDMUS_TIMESIG_PMSG = record |
||
14352 | // begin DMUS_PMSG_PART |
||
14353 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14354 | // end DMUS_PMSG_PART |
||
14355 | |||
14356 | // Time signatures define how many beats per measure, which note receives |
||
14357 | // the beat, and the grid resolution. |
||
14358 | bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
||
14359 | bBeat : Byte; // what note receives the beat (bottom of time sig.) |
||
14360 | // we can assume that 0 means 256th note |
||
14361 | wGridsPerBeat : Word; // grids per beat |
||
14362 | end; |
||
14363 | DMUS_TIMESIG_PMSG = TDMUS_TIMESIG_PMSG; |
||
14364 | |||
14365 | // DMUS_NOTIFICATION_PMSG |
||
14366 | PDMUS_NOTIFICATION_PMSG = ^TDMUS_NOTIFICATION_PMSG; |
||
14367 | TDMUS_NOTIFICATION_PMSG = record |
||
14368 | // begin DMUS_PMSG_PART |
||
14369 | DMUS_PMSG_PART : TDMUS_PMSG_PART; |
||
14370 | // end DMUS_PMSG_PART |
||
14371 | |||
14372 | guidNotificationType : TGUID; |
||
14373 | dwNotificationOption : DWORD; |
||
14374 | dwField1 : DWORD; |
||
14375 | dwField2 : DWORD; |
||
14376 | end; |
||
14377 | DMUS_NOTIFICATION_PMSG = TDMUS_NOTIFICATION_PMSG; |
||
14378 | |||
14379 | TDMUS_VERSION = record |
||
14380 | dwVersionMS : DWORD; |
||
14381 | dwVersionLS : DWORD; |
||
14382 | end; |
||
14383 | DMUS_VERSION = TDMUS_VERSION; |
||
14384 | LPDMUS_VERSION = ^TDMUS_VERSION; |
||
14385 | |||
14386 | // The DMUSOBJECTDESC structure is used to communicate everything you could |
||
14387 | // possibly use to describe a DirectMusic object. |
||
14388 | |||
14389 | TDMUS_OBJECTDESC = record |
||
14390 | dwSize : DWORD; // Size of this structure. |
||
14391 | dwValidData : DWORD; // Flags indicating which fields below are valid. |
||
14392 | guidObject : TGUID; // Unique ID for this object. |
||
14393 | guidClass : TGUID; // GUID for the class of object. |
||
14394 | ftDate : TFILETIME; // Last edited date of object. |
||
14395 | vVersion : TDMUS_VERSION; // Version. |
||
14396 | wszName : array[0..DMUS_MAX_NAME - 1] of WCHAR; // Name of object. |
||
14397 | wszCategory : array[0..DMUS_MAX_CATEGORY - 1] of WCHAR; // Category for object (optional). |
||
14398 | wszFileName : array[0..DMUS_MAX_FILENAME - 1] of WCHAR; // File path. |
||
14399 | llMemLength : LONGLONG; // Size of Memory data. |
||
14400 | pbMemData : Pointer; // Memory pointer for data. |
||
14401 | end; |
||
14402 | DMUS_OBJECTDESC = TDMUS_OBJECTDESC; |
||
14403 | LPDMUS_OBJECTDESC = ^TDMUS_OBJECTDESC; |
||
14404 | |||
14405 | IDirectMusicBand = interface(IUnknown) |
||
14406 | ['{D2AC28C0-B39B-11D1-8704-00600893B1BD}'] |
||
14407 | // IDirectMusicBand |
||
14408 | function CreateSegment(out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
||
14409 | function Download(pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
||
14410 | function Unload(pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
||
14411 | end; |
||
14412 | |||
14413 | IDirectMusicObject = interface(IUnknown) |
||
14414 | ['{D2AC28B5-B39B-11D1-8704-00600893B1BD}'] |
||
14415 | // IDirectMusicObject |
||
14416 | function GetDescriptor(var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
||
14417 | function SetDescriptor(const pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
||
14418 | function ParseDescriptor(pStream: IStream; |
||
14419 | var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
||
14420 | end; |
||
14421 | |||
14422 | IDirectMusicLoader = interface(IUnknown) |
||
14423 | ['{2FFAACA2-5DCA-11D2-AFA6-00AA0024D8B6}'] |
||
14424 | // IDirectMusicLoader |
||
14425 | function GetObject(const pDesc: TDMUS_OBJECTDESC; |
||
14426 | const riid: TGUID; |
||
14427 | out ppv) : HResult; stdcall; |
||
14428 | function SetObject(const pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
||
14429 | function SetSearchDirectory(const rguidClass: TGUID; |
||
14430 | pwzPath: PWCHAR; |
||
14431 | fClear: BOOL) : HResult; stdcall; |
||
14432 | function ScanDirectory(const rguidClass: TGUID; |
||
14433 | pwzFileExtension: PWCHAR; |
||
14434 | var pwzScanFileName: PWCHAR) : HResult; stdcall; |
||
14435 | function CacheObject(pObject: IDirectMusicObject) : HResult; stdcall; |
||
14436 | function ReleaseObject(pObject: IDirectMusicObject) : HResult; stdcall; |
||
14437 | function ClearCache(const rguidClass: TGUID) : HResult; stdcall; |
||
14438 | function EnableCache(const rguidClass: TGUID; |
||
14439 | fEnable: BOOL) : HResult; stdcall; |
||
14440 | function EnumObject(const rguidClass: TGUID; |
||
14441 | dwIndex: DWORD; |
||
14442 | var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
||
14443 | end; |
||
14444 | |||
14445 | // Stream object supports IDirectMusicGetLoader interface to access loader while file parsing. |
||
14446 | IDirectMusicGetLoader = interface(IUnknown) |
||
14447 | ['{68A04844-D13D-11D1-AFA6-00AA0024D8B6}'] |
||
14448 | // IDirectMusicGetLoader |
||
14449 | function GetLoader(out ppLoader: IDirectMusicLoader) : HResult; stdcall; |
||
14450 | end; |
||
14451 | |||
14452 | { IDirectMusicSegment } |
||
14453 | |||
14454 | IDirectMusicSegment = interface(IUnknown) |
||
14455 | ['{F96029A2-4282-11D2-8717-00600893B1BD}'] |
||
14456 | // IDirectMusicSegment |
||
14457 | function GetLength(var pmtLength: MUSIC_TIME) : HResult; stdcall; |
||
14458 | function SetLength(mtLength: MUSIC_TIME) : HResult; stdcall; |
||
14459 | function GetRepeats(var pdwRepeats: DWORD) : HResult; stdcall; |
||
14460 | function SetRepeats(dwRepeats: DWORD) : HResult; stdcall; |
||
14461 | function GetDefaultResolution(var pdwResolution: DWORD) : HResult; stdcall; |
||
14462 | function SetDefaultResolution(dwResolution: DWORD) : HResult; stdcall; |
||
14463 | function GetTrack(const rguidType: TGUID; |
||
14464 | dwGroupBits: DWORD; |
||
14465 | dwIndex: DWORD; |
||
14466 | out ppTrack: IDirectMusicTrack) : HResult; stdcall; |
||
14467 | function GetTrackGroup(pTrack: IDirectMusicTrack; |
||
14468 | var pdwGroupBits: DWORD) : HResult; stdcall; |
||
14469 | function InsertTrack(pTrack: IDirectMusicTrack; |
||
14470 | dwGroupBits: DWORD) : HResult; stdcall; |
||
14471 | function RemoveTrack(pTrack: IDirectMusicTrack) : HResult; stdcall; |
||
14472 | function InitPlay(out ppSegState: IDirectMusicSegmentState; |
||
14473 | pPerformance: IDirectMusicPerformance; |
||
14474 | dwFlags: DWORD) : HResult; stdcall; |
||
14475 | function GetGraph(out ppGraph: IDirectMusicGraph) : HResult; stdcall; |
||
14476 | function SetGraph(pGraph: IDirectMusicGraph) : HResult; stdcall; |
||
14477 | function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14478 | function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14479 | function GetParam(const rguidType: TGUID; |
||
14480 | dwGroupBits: DWORD; |
||
14481 | dwIndex: DWORD; |
||
14482 | mtTime: MUSIC_TIME; |
||
14483 | var pmtNext: MUSIC_TIME; |
||
14484 | pParam: Pointer) : HResult; stdcall; |
||
14485 | function SetParam(const rguidType: TGUID; |
||
14486 | dwGroupBits: DWORD; |
||
14487 | dwIndex: DWORD; |
||
14488 | mtTime: MUSIC_TIME; |
||
14489 | pParam: Pointer) : HResult; stdcall; |
||
14490 | function Clone(mtStart: MUSIC_TIME; |
||
14491 | mtEnd: MUSIC_TIME; |
||
14492 | out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
||
14493 | function SetStartPoint(mtStart: MUSIC_TIME) : HResult; stdcall; |
||
14494 | function GetStartPoint(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
||
14495 | function SetLoopPoints(mtStart: MUSIC_TIME; |
||
14496 | mtEnd: MUSIC_TIME) : HResult; stdcall; |
||
14497 | function GetLoopPoints(var pmtStart: MUSIC_TIME; |
||
14498 | var pmtEnd: MUSIC_TIME) : HResult; stdcall; |
||
14499 | function SetPChannelsUsed(dwNumPChannels: DWORD; |
||
14500 | const paPChannels) : HResult; stdcall; |
||
14501 | end; |
||
14502 | |||
14503 | { IDirectMusicSegmentState } |
||
14504 | |||
14505 | IDirectMusicSegmentState = interface(IUnknown) |
||
14506 | ['{A3AFDCC7-D3EE-11D1-BC8D-00A0C922E6EB}'] |
||
14507 | // IDirectMusicSegmentState |
||
14508 | function GetRepeats(var pdwRepeats: DWORD) : HResult; stdcall; |
||
14509 | function GetSegment(out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
||
14510 | function GetStartTime(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
||
14511 | function GetSeek(var pmtSeek: MUSIC_TIME) : HResult; stdcall; |
||
14512 | function GetStartPoint(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
||
14513 | end; |
||
14514 | |||
14515 | { IDirectMusicTrack } |
||
14516 | |||
14517 | IDirectMusicTrack = interface(IUnknown) |
||
14518 | ['{F96029A1-4282-11D2-8717-00600893B1BD}'] |
||
14519 | // IDirectMusicTrack |
||
14520 | function Init(pSegment: IDirectMusicSegment) : HResult; stdcall; |
||
14521 | function InitPlay(pSegmentState: IDirectMusicSegmentState; |
||
14522 | pPerformance: IDirectMusicPerformance; |
||
14523 | var ppStateData: Pointer; |
||
14524 | dwVirtualTrackID: DWORD; |
||
14525 | dwFlags: DWORD) : HResult; stdcall; |
||
14526 | function EndPlay(const pStateData) : HResult; stdcall; |
||
14527 | function Play(const pStateData; |
||
14528 | mtStart: MUSIC_TIME; |
||
14529 | mtEnd: MUSIC_TIME; |
||
14530 | mtOffset: MUSIC_TIME; |
||
14531 | dwFlags: DWORD; |
||
14532 | pPerf: IDirectMusicPerformance; |
||
14533 | pSegSt: IDirectMusicSegmentState; |
||
14534 | dwVirtualID: DWORD) : HResult; stdcall; |
||
14535 | function GetParam(const rguidType: TGUID; |
||
14536 | mtTime: MUSIC_TIME; |
||
14537 | var pmtNext: MUSIC_TIME; |
||
14538 | var pParam) : HResult; stdcall; |
||
14539 | function SetParam(const rguidType: TGUID; |
||
14540 | mtTime: MUSIC_TIME; |
||
14541 | const pParam) : HResult; stdcall; |
||
14542 | function IsParamSupported(const rguidType: TGUID) : HResult; stdcall; |
||
14543 | function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14544 | function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14545 | function Clone(mtStart: MUSIC_TIME; |
||
14546 | mtEnd: MUSIC_TIME; |
||
14547 | out ppTrack: IDirectMusicTrack) : HResult; stdcall; |
||
14548 | end; |
||
14549 | |||
14550 | { IDirectMusicPerformance } |
||
14551 | |||
14552 | IDirectMusicPerformance = interface(IUnknown) |
||
14553 | ['{07D43D03-6523-11D2-871D-00600893B1BD}'] |
||
14554 | // IDirectMusicPerformance |
||
14555 | function Init(out ppDirectMusic: IDirectMusic; |
||
14556 | pDirectSound: IDirectSound; |
||
14557 | hWnd: HWND) : HResult; stdcall; |
||
14558 | function PlaySegment(pSegment: IDirectMusicSegment; |
||
14559 | dwFlags: DWORD; |
||
14560 | i64StartTime: LONGLONG; |
||
14561 | out ppSegmentState: IDirectMusicSegmentState) : HResult; stdcall; |
||
14562 | function Stop(pSegment: IDirectMusicSegment; |
||
14563 | pSegmentState: IDirectMusicSegmentState; |
||
14564 | mtTime: MUSIC_TIME; |
||
14565 | dwFlags: DWORD) : HResult; stdcall; |
||
14566 | function GetSegmentState(out ppSegmentState: IDirectMusicSegmentState; |
||
14567 | mtTime: MUSIC_TIME) : HResult; stdcall; |
||
14568 | function SetPrepareTime(dwMilliSeconds: DWORD) : HResult; stdcall; |
||
14569 | function GetPrepareTime(var pdwMilliSeconds: DWORD) : HResult; stdcall; |
||
14570 | function SetBumperLength(dwMilliSeconds: DWORD) : HResult; stdcall; |
||
14571 | function GetBumperLength(var pdwMilliSeconds: DWORD) : HResult; stdcall; |
||
14572 | function SendPMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
||
14573 | function MusicToReferenceTime(mtTime: MUSIC_TIME; |
||
14574 | var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
||
14575 | function ReferenceToMusicTime(rtTime: TREFERENCE_TIME; |
||
14576 | var pmtTime: MUSIC_TIME) : HResult; stdcall; |
||
14577 | function IsPlaying(pSegment: IDirectMusicSegment; |
||
14578 | pSegState: IDirectMusicSegmentState) : HResult; stdcall; |
||
14579 | function GetTime(var prtNow: TREFERENCE_TIME; |
||
14580 | var pmtNow: MUSIC_TIME) : HResult; stdcall; |
||
14581 | function AllocPMsg(cb: Cardinal; |
||
14582 | var ppPMSG: TDMUS_PMSG) : HResult; stdcall; |
||
14583 | function FreePMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
||
14584 | function GetGraph(out ppGraph: IDirectMusicGraph) : HResult; stdcall; |
||
14585 | function SetGraph(pGraph: IDirectMusicGraph) : HResult; stdcall; |
||
14586 | function SetNotificationHandle(hNotification: THandle; |
||
14587 | rtMinimum: TREFERENCE_TIME) : HResult; stdcall; |
||
14588 | function GetNotificationPMsg(var ppNotificationPMsg: PDMUS_NOTIFICATION_PMSG) : HResult; stdcall; |
||
14589 | function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14590 | function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
||
14591 | function AddPort(pPort: IDirectMusicPort) : HResult; stdcall; |
||
14592 | function RemovePort(pPort: IDirectMusicPort) : HResult; stdcall; |
||
14593 | function AssignPChannelBlock(dwBlockNum: DWORD; |
||
14594 | pPort: IDirectMusicPort; |
||
14595 | dwGroup: DWORD) : HResult; stdcall; |
||
14596 | function AssignPChannel(dwPChannel: DWORD; |
||
14597 | pPort: IDirectMusicPort; |
||
14598 | dwGroup: DWORD; |
||
14599 | dwMChannel: DWORD) : HResult; stdcall; |
||
14600 | function PChannelInfo(dwPChannel: DWORD; |
||
14601 | out ppPort: IDirectMusicPort; |
||
14602 | var pdwGroup: DWORD; |
||
14603 | var pdwMChannel: DWORD) : HResult; stdcall; |
||
14604 | function DownloadInstrument(pInst: IDirectMusicInstrument; |
||
14605 | dwPChannel: DWORD; |
||
14606 | out ppDownInst: IDirectMusicDownloadedInstrument; |
||
14607 | const pNoteRanges; |
||
14608 | dwNumNoteRanges: DWORD; |
||
14609 | out ppPort: IDirectMusicPort; |
||
14610 | var pdwGroup: DWORD; |
||
14611 | var pdwMChannel: DWORD) : HResult; stdcall; |
||
14612 | function Invalidate(mtTime: MUSIC_TIME; |
||
14613 | dwFlags: DWORD) : HResult; stdcall; |
||
14614 | function GetParam(const rguidType: TGUID; |
||
14615 | dwGroupBits: DWORD; |
||
14616 | dwIndex: DWORD; |
||
14617 | mtTime: MUSIC_TIME; |
||
14618 | var pmtNext: MUSIC_TIME; |
||
14619 | var pParam) : HResult; stdcall; |
||
14620 | function SetParam(const rguidType: TGUID; |
||
14621 | dwGroupBits: DWORD; |
||
14622 | dwIndex: DWORD; |
||
14623 | mtTime: MUSIC_TIME; |
||
14624 | pParam: Pointer) : HResult; stdcall; |
||
14625 | function GetGlobalParam(const rguidType: TGUID; |
||
14626 | var pParam; |
||
14627 | dwSize: DWORD) : HResult; stdcall; |
||
14628 | function SetGlobalParam(const rguidType: TGUID; |
||
14629 | const pParam; |
||
14630 | dwSize: DWORD) : HResult; stdcall; |
||
14631 | function GetLatencyTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
||
14632 | function GetQueueTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
||
14633 | function AdjustTime(rtAmount: TREFERENCE_TIME) : HResult; stdcall; |
||
14634 | function CloseDown : HResult; stdcall; |
||
14635 | function GetResolvedTime(rtTime: TREFERENCE_TIME; |
||
14636 | var prtResolved: TREFERENCE_TIME; |
||
14637 | dwTimeResolveFlags: DWORD) : HResult; stdcall; |
||
14638 | function MIDIToMusic(bMIDIValue: Byte; |
||
14639 | const pChord: TDMUS_CHORD_KEY; |
||
14640 | bPlayMode: Byte; |
||
14641 | bChordLevel: Byte; |
||
14642 | var pwMusicValue: Word) : HResult; stdcall; |
||
14643 | function MusicToMIDI(wMusicValue: Word; |
||
14644 | const pChord: TDMUS_CHORD_KEY; |
||
14645 | bPlayMode: Byte; |
||
14646 | bChordLevel: Byte; |
||
14647 | var pbMIDIValue: Byte) : HResult; stdcall; |
||
14648 | function TimeToRhythm(mtTime: MUSIC_TIME; |
||
14649 | const pTimeSig: TDMUS_TIMESIGNATURE; |
||
14650 | var pwMeasure: Word; |
||
14651 | var pbBeat: Byte; |
||
14652 | var pbGrid: Byte; |
||
14653 | var pnOffset: Smallint) : HResult; stdcall; |
||
14654 | function RhythmToTime(wMeasure: Word; |
||
14655 | bBeat: Byte; |
||
14656 | bGrid: Byte; |
||
14657 | nOffset: Smallint; |
||
14658 | const pTimeSig: TDMUS_TIMESIGNATURE; |
||
14659 | var pmtTime: MUSIC_TIME) : HResult; stdcall; |
||
14660 | end; |
||
14661 | |||
14662 | { IDirectMusicTool } |
||
14663 | |||
14664 | IDirectMusicTool = interface(IUnknown) |
||
14665 | ['{D2AC28BA-B39B-11D1-8704-00600893B1BD}'] |
||
14666 | // IDirectMusicTool |
||
14667 | function Init(pGraph: IDirectMusicGraph) : HResult; stdcall; |
||
14668 | function GetMsgDeliveryType(var pdwDeliveryType: DWORD) : HResult; stdcall; |
||
14669 | function GetMediaTypeArraySize(var pdwNumElements: DWORD) : HResult; stdcall; |
||
14670 | function GetMediaTypes(var padwMediaTypes; |
||
14671 | dwNumElements: DWORD) : HResult; stdcall; |
||
14672 | function ProcessPMsg(pPerf: IDirectMusicPerformance; |
||
14673 | const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
||
14674 | function Flush(pPerf: IDirectMusicPerformance; |
||
14675 | const pPMSG: TDMUS_PMSG; |
||
14676 | rtTime: TREFERENCE_TIME) : HResult; stdcall; |
||
14677 | end; |
||
14678 | |||
14679 | { IDirectMusicGraph } |
||
14680 | |||
14681 | IDirectMusicGraph = interface(IUnknown) |
||
14682 | ['{2BEFC277-5497-11D2-BCCB-00A0C922E6EB}'] |
||
14683 | // IDirectMusicGraph |
||
14684 | function StampPMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
||
14685 | function InsertTool(pTool: IDirectMusicTool; |
||
14686 | const pdwPChannels; |
||
14687 | cPChannels: DWORD; |
||
14688 | lIndex: Longint) : HResult; stdcall; |
||
14689 | function GetTool(dwIndex: DWORD; |
||
14690 | out ppTool: IDirectMusicTool) : HResult; stdcall; |
||
14691 | function RemoveTool(pTool: IDirectMusicTool) : HResult; stdcall; |
||
14692 | end; |
||
14693 | |||
14694 | { IDirectMusicStyle } |
||
14695 | |||
14696 | IDirectMusicStyle = interface(IUnknown) |
||
14697 | ['{D2AC28BD-B39B-11D1-8704-00600893B1BD}'] |
||
14698 | // IDirectMusicStyle |
||
14699 | function GetBand(pwszName: PWCHAR; |
||
14700 | out ppBand: IDirectMusicBand) : HResult; stdcall; |
||
14701 | function EnumBand(dwIndex: DWORD; |
||
14702 | pwszName: PWCHAR) : HResult; stdcall; |
||
14703 | function GetDefaultBand(out ppBand: IDirectMusicBand) : HResult; stdcall; |
||
14704 | function EnumMotif(dwIndex: DWORD; |
||
14705 | pwszName: PWCHAR) : HResult; stdcall; |
||
14706 | function GetMotif(pwszName: PWCHAR; |
||
14707 | out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
||
14708 | function GetDefaultChordMap(out ppChordMap: IDirectMusicChordMap) : HResult; stdcall; |
||
14709 | function EnumChordMap(dwIndex: DWORD; |
||
14710 | pwszName: PWCHAR) : HResult; stdcall; |
||
14711 | function GetChordMap(pwszName: PWCHAR; |
||
14712 | out ppChordMap: IDirectMusicChordMap) : HResult; stdcall; |
||
14713 | function GetTimeSignature(var pTimeSig: TDMUS_TIMESIGNATURE) : HResult; stdcall; |
||
14714 | function GetEmbellishmentLength(dwType: DWORD; |
||
14715 | dwLevel: DWORD; |
||
14716 | var pdwMin: DWORD; |
||
14717 | var pdwMax: DWORD) : HResult; stdcall; |
||
14718 | function GetTempo(var pTempo: Double) : HResult; stdcall; |
||
14719 | end; |
||
14720 | |||
14721 | { IDirectMusicChordMap } |
||
14722 | |||
14723 | IDirectMusicChordMap = interface(IUnknown) |
||
14724 | ['{D2AC28BE-B39B-11D1-8704-00600893B1BD}'] |
||
14725 | // IDirectMusicChordMap |
||
14726 | function GetScale(var pdwScale: DWORD) : HResult; stdcall; |
||
14727 | end; |
||
14728 | |||
14729 | { IDirectMusicComposer } |
||
14730 | |||
14731 | IDirectMusicComposer = interface(IUnknown) |
||
14732 | ['{D2AC28BF-B39B-11D1-8704-00600893B1BD}'] |
||
14733 | // IDirectMusicComposer |
||
14734 | function ComposeSegmentFromTemplate(pStyle: IDirectMusicStyle; |
||
14735 | pTempSeg: IDirectMusicSegment; |
||
14736 | wActivity: Word; |
||
14737 | pChordMap: IDirectMusicChordMap; |
||
14738 | out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
||
14739 | function ComposeSegmentFromShape(pStyle: IDirectMusicStyle; |
||
14740 | wNumMeasures: Word; |
||
14741 | wShape: Word; |
||
14742 | wActivity: Word; |
||
14743 | fIntro: BOOL; |
||
14744 | fEnd: BOOL; |
||
14745 | pChordMap: IDirectMusicChordMap; |
||
14746 | out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
||
14747 | function ComposeTransition(pFromSeg: IDirectMusicSegment; |
||
14748 | pToSeg: IDirectMusicSegment; |
||
14749 | mtTime: MUSIC_TIME; |
||
14750 | wCommand: Word; |
||
14751 | dwFlags: DWORD; |
||
14752 | pChordMap: IDirectMusicChordMap; |
||
14753 | out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
||
14754 | function AutoTransition(pPerformance: IDirectMusicPerformance; |
||
14755 | pToSeg: IDirectMusicSegment; |
||
14756 | wCommand: Word; |
||
14757 | dwFlags: DWORD; |
||
14758 | pChordMap: IDirectMusicChordMap; |
||
14759 | out ppTransSeg: IDirectMusicSegment; |
||
14760 | out ppToSegState: IDirectMusicSegmentState; |
||
14761 | out ppTransSegState: IDirectMusicSegmentState) : HResult; stdcall; |
||
14762 | function ComposeTemplateFromShape(wNumMeasures: Word; |
||
14763 | wShape: Word; |
||
14764 | fIntro: BOOL; |
||
14765 | fEnd: BOOL; |
||
14766 | wEndLength: Word; |
||
14767 | out ppTempSeg: IDirectMusicSegment) : HResult; stdcall; |
||
14768 | function ChangeChordMap(pSectionSeg: IDirectMusicSegment; |
||
14769 | fTrackScale: BOOL; |
||
14770 | pChordMap: IDirectMusicChordMap) : HResult; stdcall; |
||
14771 | end; |
||
14772 | |||
14773 | const |
||
14774 | // CLSID's |
||
14775 | CLSID_DirectMusicPerformance : TGUID = '{D2AC2881-B39B-11D1-8704-00600893B1BD}'; |
||
14776 | CLSID_DirectMusicSegment : TGUID = '{D2AC2882-B39B-11D1-8704-00600893B1BD}'; |
||
14777 | CLSID_DirectMusicSegmentState : TGUID = '{D2AC2883-B39B-11D1-8704-00600893B1BD}'; |
||
14778 | CLSID_DirectMusicGraph : TGUID = '{D2AC2884-B39B-11D1-8704-00600893B1BD}'; |
||
14779 | CLSID_DirectMusicTempoTrack : TGUID = '{D2AC2885-B39B-11D1-8704-00600893B1BD}'; |
||
14780 | CLSID_DirectMusicSeqTrack : TGUID = '{D2AC2886-B39B-11D1-8704-00600893B1BD}'; |
||
14781 | CLSID_DirectMusicSysExTrack : TGUID = '{D2AC2887-B39B-11D1-8704-00600893B1BD}'; |
||
14782 | CLSID_DirectMusicTimeSigTrack : TGUID = '{D2AC2888-B39B-11D1-8704-00600893B1BD}'; |
||
14783 | CLSID_DirectMusicStyle : TGUID = '{D2AC288A-B39B-11D1-8704-00600893B1BD}'; |
||
14784 | CLSID_DirectMusicChordTrack : TGUID = '{D2AC288B-B39B-11D1-8704-00600893B1BD}'; |
||
14785 | CLSID_DirectMusicCommandTrack : TGUID = '{D2AC288C-B39B-11D1-8704-00600893B1BD}'; |
||
14786 | CLSID_DirectMusicStyleTrack : TGUID = '{D2AC288D-B39B-11D1-8704-00600893B1BD}'; |
||
14787 | CLSID_DirectMusicMotifTrack : TGUID = '{D2AC288E-B39B-11D1-8704-00600893B1BD}'; |
||
14788 | CLSID_DirectMusicChordMap : TGUID = '{D2AC288F-B39B-11D1-8704-00600893B1BD}'; |
||
14789 | CLSID_DirectMusicComposer : TGUID = '{D2AC2890-B39B-11D1-8704-00600893B1BD}'; |
||
14790 | CLSID_DirectMusicSignPostTrack: TGUID = '{F17E8672-C3B4-11D1-870B-00600893B1BD}'; |
||
14791 | CLSID_DirectMusicLoader : TGUID = '{D2AC2892-B39B-11D1-8704-00600893B1BD}'; |
||
14792 | CLSID_DirectMusicBandTrack : TGUID = '{D2AC2894-B39B-11D1-8704-00600893B1BD}'; |
||
14793 | CLSID_DirectMusicBand : TGUID = '{79BA9E00-B6EE-11D1-86BE-00C04FBF8FEF}'; |
||
14794 | CLSID_DirectMusicChordMapTrack: TGUID = '{D2AC2896-B39B-11D1-8704-00600893B1BD}'; |
||
14795 | CLSID_DirectMusicMuteTrack : TGUID = '{D2AC2898-B39B-11D1-8704-00600893B1BD}'; |
||
14796 | |||
14797 | // Special GUID for all object types. This is used by the loader. |
||
14798 | GUID_DirectMusicAllTypes : TGUID = '{D2AC2893-B39B-11D1-8704-00600893B1BD}'; |
||
14799 | |||
14800 | // Notification guids |
||
14801 | GUID_NOTIFICATION_SEGMENT : TGUID = '{D2AC2899-B39B-11D1-8704-00600893B1BD}'; |
||
14802 | GUID_NOTIFICATION_PERFORMANCE : TGUID = '{81F75BC5-4E5D-11D2-BCC7-00A0C922E6EB}'; |
||
14803 | GUID_NOTIFICATION_MEASUREANDBEAT: TGUID = '{D2AC289A-B39B-11D1-8704-00600893B1BD}'; |
||
14804 | GUID_NOTIFICATION_CHORD : TGUID = '{D2AC289B-B39B-11D1-8704-00600893B1BD}'; |
||
14805 | GUID_NOTIFICATION_COMMAND : TGUID = '{D2AC289C-B39B-11D1-8704-00600893B1BD}'; |
||
14806 | |||
14807 | // Track param type guids |
||
14808 | // Use to get/set a DMUS_COMMAND_PARAM param in the Command track |
||
14809 | GUID_CommandParam : TGUID = '{D2AC289D-B39B-11D1-8704-00600893B1BD}'; |
||
14810 | |||
14811 | // Use to get/set a DMUS_CHORD_PARAM param in the Chord track |
||
14812 | GUID_ChordParam : TGUID = '{D2AC289E-B39B-11D1-8704-00600893B1BD}'; |
||
14813 | |||
14814 | // Use to get a DMUS_RHYTHM_PARAM param in the Chord track |
||
14815 | GUID_RhythmParam : TGUID = '{D2AC289F-B39B-11D1-8704-00600893B1BD}'; |
||
14816 | |||
14817 | // Use to get/set an IDirectMusicStyle param in the Style track |
||
14818 | GUID_IDirectMusicStyle : TGUID = '{D2AC28A1-B39B-11D1-8704-00600893B1BD}'; |
||
14819 | |||
14820 | // Use to get a DMUS_TIMESIGNATURE param in the Style and TimeSig tracks |
||
14821 | GUID_TimeSignature : TGUID = '{D2AC28A4-B39B-11D1-8704-00600893B1BD}'; |
||
14822 | |||
14823 | // Use to get/set a DMUS_TEMPO_PARAM param in the Tempo track |
||
14824 | GUID_TempoParam : TGUID = '{D2AC28A5-B39B-11D1-8704-00600893B1BD}'; |
||
14825 | |||
14826 | // Use to set an IDirectMusicBand param in the Band track |
||
14827 | GUID_IDirectMusicBand : TGUID = '{D2AC28AC-B39B-11D1-8704-00600893B1BD}'; |
||
14828 | |||
14829 | // Use to get/set an IDirectMusicChordMap param in the ChordMap track |
||
14830 | GUID_IDirectMusicChordMap : TGUID = '{D2AC28AD-B39B-11D1-8704-00600893B1BD}'; |
||
14831 | |||
14832 | // Use to get/set a DMUS_MUTE_PARAM param in the Mute track |
||
14833 | GUID_MuteParam : TGUID = '{D2AC28AF-B39B-11D1-8704-00600893B1BD}'; |
||
14834 | |||
14835 | // These guids are used in IDirectMusicSegment::SetParam to tell the band track to perform various actions. |
||
14836 | /// |
||
14837 | /// Download bands for the IDirectMusicSegment |
||
14838 | GUID_Download : TGUID = '{D2AC28A7-B39B-11D1-8704-00600893B1BD}'; |
||
14839 | |||
14840 | // Unload bands for the IDirectMusicSegment |
||
14841 | GUID_Unload : TGUID = '{D2AC28A8-B39B-11D1-8704-00600893B1BD}'; |
||
14842 | |||
14843 | // Connect segment's bands to an IDirectMusicCollection |
||
14844 | GUID_ConnectToDLSCollection : TGUID = '{1DB1AE6B-E92E-11D1-A8C5-00C04FA3726E}'; |
||
14845 | |||
14846 | // Enable/disable autodownloading of bands |
||
14847 | GUID_Enable_Auto_Download : TGUID = '{D2AC28A9-B39B-11D1-8704-00600893B1BD}'; |
||
14848 | GUID_Disable_Auto_Download : TGUID = '{D2AC28AA-B39B-11D1-8704-00600893B1BD}'; |
||
14849 | |||
14850 | // Clear all bands |
||
14851 | GUID_Clear_All_Bands : TGUID = '{D2AC28AB-B39B-11D1-8704-00600893B1BD}'; |
||
14852 | |||
14853 | // Set segment to manage all program changes, bank selects, etc. for simple playback of a standard MIDI file |
||
14854 | GUID_StandardMIDIFile : TGUID = '{06621075-E92E-11D1-A8C5-00C04FA3726E}'; |
||
14855 | // For compatibility with beta releases... |
||
14856 | GUID_IgnoreBankSelectForGM : TGUID = '{06621075-E92E-11D1-A8C5-00C04FA3726E}'; //same as GUID_StandardMIDIFile; |
||
14857 | |||
14858 | // Disable/enable param guids. Use these in SetParam calls to disable or enable sending |
||
14859 | // specific PMsg types. |
||
14860 | /// |
||
14861 | GUID_DisableTimeSig : TGUID = '{45FC707B-1DB4-11D2-BCAC-00A0C922E6EB}'; |
||
14862 | GUID_EnableTimeSig : TGUID = '{45FC707C-1DB4-11D2-BCAC-00A0C922E6EB}'; |
||
14863 | GUID_DisableTempo : TGUID = '{45FC707D-1DB4-11D2-BCAC-00A0C922E6EB}'; |
||
14864 | GUID_EnableTempo : TGUID = '{45FC707E-1DB4-11D2-BCAC-00A0C922E6EB}'; |
||
14865 | |||
14866 | // Global data guids |
||
14867 | GUID_PerfMasterTempo : TGUID = '{D2AC28B0-B39B-11D1-8704-00600893B1BD}'; |
||
14868 | GUID_PerfMasterVolume : TGUID = '{D2AC28B1-B39B-11D1-8704-00600893B1BD}'; |
||
14869 | GUID_PerfMasterGrooveLevel : TGUID = '{D2AC28B2-B39B-11D1-8704-00600893B1BD}'; |
||
14870 | GUID_PerfAutoDownload : TGUID = '{FB09565B-3631-11D2-BCB8-00A0C922E6EB}'; |
||
14871 | |||
14872 | // GUID for default GM/GS dls collection. |
||
14873 | GUID_DefaultGMCollection : TGUID = '{F17E8673-C3B4-11D1-870B-00600893B1BD}'; |
||
14874 | |||
14875 | // IID's |
||
14876 | IID_IDirectMusicLoader : TGUID = '{2FFAACA2-5DCA-11D2-AFA6-00AA0024D8B6}'; |
||
14877 | IID_IDirectMusicGetLoader : TGUID = '{68A04844-D13D-11D1-AFA6-00AA0024D8B6}'; |
||
14878 | IID_IDirectMusicObject : TGUID = '{D2AC28B5-B39B-11D1-8704-00600893B1BD}'; |
||
14879 | IID_IDirectMusicSegment : TGUID = '{F96029A2-4282-11D2-8717-00600893B1BD}'; |
||
14880 | IID_IDirectMusicSegmentState : TGUID = '{A3AFDCC7-D3EE-11D1-BC8D-00A0C922E6EB}'; |
||
14881 | IID_IDirectMusicTrack : TGUID = '{F96029A1-4282-11D2-8717-00600893B1BD}'; |
||
14882 | IID_IDirectMusicPerformance : TGUID = '{07D43D03-6523-11D2-871D-00600893B1BD}'; |
||
14883 | IID_IDirectMusicTool : TGUID = '{D2AC28BA-B39B-11D1-8704-00600893B1BD}'; |
||
14884 | IID_IDirectMusicGraph : TGUID = '{2BEFC277-5497-11D2-BCCB-00A0C922E6EB}'; |
||
14885 | IID_IDirectMusicStyle : TGUID = '{D2AC28BD-B39B-11D1-8704-00600893B1BD}'; |
||
14886 | IID_IDirectMusicChordMap : TGUID = '{D2AC28BE-B39B-11D1-8704-00600893B1BD}'; |
||
14887 | IID_IDirectMusicComposer : TGUID = '{D2AC28BF-B39B-11D1-8704-00600893B1BD}'; |
||
14888 | IID_IDirectMusicBand : TGUID = '{D2AC28C0-B39B-11D1-8704-00600893B1BD}'; |
||
14889 | |||
14890 | // Alternate interface IDs, available in DX7 release and after. |
||
14891 | IID_IDirectMusicPerformance2 : TGUID = '{6FC2CAE0-BC78-11D2-AFA6-00AA0024D8B6}'; |
||
14892 | IID_IDirectMusicSegment2 : TGUID = '{D38894D1-C052-11D2-872F-00600893B1BD}'; |
||
14893 | |||
14894 | |||
14895 | //*********************************************************************** |
||
14896 | // * |
||
14897 | // dmusicf.h -- This module defines the DirectMusic file formats * |
||
14898 | // * |
||
14899 | // Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
||
14900 | // * |
||
14901 | //********************************************************************** |
||
14902 | // Common chunks |
||
14903 | const |
||
14904 | DMUS_FOURCC_GUID_CHUNK = Ord('g') + Ord('u') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
||
14905 | DMUS_FOURCC_INFO_LIST = Ord('I') + Ord('N') shl 8 + Ord('F') shl 16 + Ord('O') shl 24; |
||
14906 | DMUS_FOURCC_UNFO_LIST = Ord('U') + Ord('N') shl 8 + Ord('F') shl 16 + Ord('O') shl 24; |
||
14907 | DMUS_FOURCC_UNAM_CHUNK = Ord('U') + Ord('N') shl 8 + Ord('A') shl 16 + Ord('M') shl 24; |
||
14908 | DMUS_FOURCC_UART_CHUNK = Ord('U') + Ord('A') shl 8 + Ord('R') shl 16 + Ord('T') shl 24; |
||
14909 | DMUS_FOURCC_UCOP_CHUNK = Ord('U') + Ord('C') shl 8 + Ord('O') shl 16 + Ord('P') shl 24; |
||
14910 | DMUS_FOURCC_USBJ_CHUNK = Ord('U') + Ord('S') shl 8 + Ord('B') shl 16 + Ord('J') shl 24; |
||
14911 | DMUS_FOURCC_UCMT_CHUNK = Ord('U') + Ord('C') shl 8 + Ord('M') shl 16 + Ord('T') shl 24; |
||
14912 | DMUS_FOURCC_CATEGORY_CHUNK = Ord('c') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('g') shl 24; |
||
14913 | DMUS_FOURCC_VERSION_CHUNK = Ord('v') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('s') shl 24; |
||
14914 | |||
14915 | // The following structures are used by the Tracks, and are the packed structures |
||
14916 | // that are passed to the Tracks inside the IStream. |
||
14917 | |||
14918 | type |
||
14919 | TDMUS_IO_SEQ_ITEM = record |
||
14920 | mtTime : MUSIC_TIME; |
||
14921 | mtDuration : MUSIC_TIME; |
||
14922 | dwPChannel : DWORD; |
||
14923 | nOffset : Smallint; |
||
14924 | bStatus : Byte; |
||
14925 | bByte1 : Byte; |
||
14926 | bByte2 : Byte; |
||
14927 | end; |
||
14928 | DMUS_IO_SEQ_ITEM = TDMUS_IO_SEQ_ITEM; |
||
14929 | |||
14930 | |||
14931 | TDMUS_IO_CURVE_ITEM = record |
||
14932 | mtStart : MUSIC_TIME; |
||
14933 | mtDuration : MUSIC_TIME; |
||
14934 | mtResetDuration : MUSIC_TIME; |
||
14935 | dwPChannel : DWORD; |
||
14936 | nOffset : Smallint; |
||
14937 | nStartValue : Smallint; |
||
14938 | nEndValue : Smallint; |
||
14939 | nResetValue : Smallint; |
||
14940 | bType : Byte; |
||
14941 | bCurveShape : Byte; |
||
14942 | bCCData : Byte; |
||
14943 | bFlags : Byte; |
||
14944 | end; |
||
14945 | DMUS_IO_CURVE_ITEM = TDMUS_IO_CURVE_ITEM; |
||
14946 | |||
14947 | |||
14948 | TDMUS_IO_TEMPO_ITEM = record |
||
14949 | lTime : MUSIC_TIME; |
||
14950 | dblTempo : Double; |
||
14951 | end; |
||
14952 | DMUS_IO_TEMPO_ITEM = TDMUS_IO_TEMPO_ITEM; |
||
14953 | |||
14954 | |||
14955 | TDMUS_IO_SYSEX_ITEM = record |
||
14956 | mtTime : MUSIC_TIME; |
||
14957 | dwPChannel : DWORD; |
||
14958 | dwSysExLength : DWORD; |
||
14959 | end; |
||
14960 | DMUS_IO_SYSEX_ITEM = TDMUS_IO_SYSEX_ITEM; |
||
14961 | |||
14962 | |||
14963 | TDMUS_IO_TIMESIGNATURE_ITEM = record |
||
14964 | lTime : MUSIC_TIME; |
||
14965 | bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
||
14966 | bBeat : Byte; // what note receives the beat (bottom of time sig.) |
||
14967 | // we can assume that 0 means 256th note |
||
14968 | wGridsPerBeat : Word; // grids per beat |
||
14969 | end; |
||
14970 | DMUS_IO_TIMESIGNATURE_ITEM = TDMUS_IO_TIMESIGNATURE_ITEM; |
||
14971 | |||
14972 | // PARAM structures, used by GetParam() and SetParam() |
||
14973 | TDMUS_COMMAND_PARAM = record |
||
14974 | bCommand : Byte; |
||
14975 | bGrooveLevel : Byte; |
||
14976 | bGrooveRange : Byte; |
||
14977 | end; |
||
14978 | DMUS_COMMAND_PARAM = TDMUS_COMMAND_PARAM; |
||
14979 | |||
14980 | //DMUS_CHORD_KEY = DMUS_CHORD_PARAM; // DMUS_CHORD_KEY defined in dmusici.h |
||
14981 | |||
14982 | TDMUS_RHYTHM_PARAM = record |
||
14983 | TimeSig : TDMUS_TIMESIGNATURE; |
||
14984 | dwRhythmPattern : DWORD; |
||
14985 | end; |
||
14986 | DMUS_RHYTHM_PARAM = TDMUS_RHYTHM_PARAM; |
||
14987 | |||
14988 | TDMUS_TEMPO_PARAM = record |
||
14989 | mtTime : MUSIC_TIME; |
||
14990 | dblTempo : Double; |
||
14991 | end; |
||
14992 | DMUS_TEMPO_PARAM = TDMUS_TEMPO_PARAM; |
||
14993 | |||
14994 | |||
14995 | TDMUS_MUTE_PARAM = record |
||
14996 | dwPChannel : DWORD; |
||
14997 | dwPChannelMap : DWORD; |
||
14998 | fMute : BOOL; |
||
14999 | end; |
||
15000 | DMUS_MUTE_PARAM = TDMUS_MUTE_PARAM; |
||
15001 | |||
15002 | const |
||
15003 | // Style chunks |
||
15004 | |||
15005 | DMUS_FOURCC_STYLE_FORM = Ord('D') + Ord('M') shl 8 + Ord('S') shl 16 + Ord('T') shl 24; |
||
15006 | DMUS_FOURCC_STYLE_CHUNK = Ord('s') + Ord('t') shl 8 + Ord('y') shl 16 + Ord('h') shl 24; |
||
15007 | DMUS_FOURCC_PART_LIST = Ord('p') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('t') shl 24; |
||
15008 | DMUS_FOURCC_PART_CHUNK = Ord('p') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
||
15009 | DMUS_FOURCC_NOTE_CHUNK = Ord('n') + Ord('o') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
||
15010 | DMUS_FOURCC_CURVE_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('v') shl 16 + Ord('e') shl 24; |
||
15011 | DMUS_FOURCC_PATTERN_LIST = Ord('p') + Ord('t') shl 8 + Ord('t') shl 16 + Ord('n') shl 24; |
||
15012 | DMUS_FOURCC_PATTERN_CHUNK = Ord('p') + Ord('t') shl 8 + Ord('n') shl 16 + Ord('h') shl 24; |
||
15013 | DMUS_FOURCC_RHYTHM_CHUNK = Ord('r') + Ord('h') shl 8 + Ord('t') shl 16 + Ord('m') shl 24; |
||
15014 | DMUS_FOURCC_PARTREF_LIST = Ord('p') + Ord('r') shl 8 + Ord('e') shl 16 + Ord('f') shl 24; |
||
15015 | DMUS_FOURCC_PARTREF_CHUNK = Ord('p') + Ord('r') shl 8 + Ord('f') shl 16 + Ord('c') shl 24; |
||
15016 | DMUS_FOURCC_STYLE_PERS_REF_LIST = Ord('p') + Ord('r') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
||
15017 | DMUS_FOURCC_MOTIFSETTINGS_CHUNK = Ord('m') + Ord('t') shl 8 + Ord('f') shl 16 + Ord('s') shl 24; |
||
15018 | |||
15019 | // Flags used by variations: these make up the DWORDs in dwVariationChoices. |
||
15020 | |||
15021 | // These flags determine the types of chords supported by a given variation in DirectMusic |
||
15022 | // mode. The first seven flags (bits 1-7) are set if the variation supports major chords |
||
15023 | // rooted in scale positions, so, e.g., if bits 1, 2, and 4 are set, the variation |
||
15024 | // supports major chords rooted in the tonic, second, and fourth scale positions. The |
||
15025 | // next seven flags serve the same purpose, but for minor chords, and the following seven |
||
15026 | // flags serve the same purpose for chords that are not major or minor (e.g., SUS 4 |
||
15027 | // chords). Bits 22, 23, and 24 are set if the variation supports chords rooted in the |
||
15028 | // scale, chords rooted sharp of scale tones, and chords rooted flat of scale tones, |
||
15029 | // respectively. For example, to support a C# minor chord in the scale of C Major, |
||
15030 | // bits 8 (for tonic minor) and 24 (for sharp) need to be set. Bits 25, 26, an 27 handle |
||
15031 | // chords that are triads, 6th or 7th chords, and chords with extensions, respectively. |
||
15032 | // bits 28 and 29 handle chords that are followed by tonic and dominant chords, |
||
15033 | // respectively. |
||
15034 | DMUS_VARIATIONF_MAJOR = $0000007F; // Seven positions in the scale - major chords. |
||
15035 | DMUS_VARIATIONF_MINOR = $00003F80; // Seven positions in the scale - minor chords. |
||
15036 | DMUS_VARIATIONF_OTHER = $001FC000; // Seven positions in the scale - other chords. |
||
15037 | DMUS_VARIATIONF_ROOT_SCALE = $00200000; // Handles chord roots in the scale. |
||
15038 | DMUS_VARIATIONF_ROOT_FLAT = $00400000; // Handles flat chord roots (based on scale notes). |
||
15039 | DMUS_VARIATIONF_ROOT_SHARP = $00800000; // Handles sharp chord roots (based on scale notes). |
||
15040 | DMUS_VARIATIONF_TYPE_TRIAD = $01000000; // Handles simple chords - triads. |
||
15041 | DMUS_VARIATIONF_TYPE_6AND7 = $02000000; // Handles simple chords - 6 and 7. |
||
15042 | DMUS_VARIATIONF_TYPE_COMPLEX= $04000000; // Handles complex chords. |
||
15043 | DMUS_VARIATIONF_DEST_TO1 = $08000000; // Handles transitions to 1 chord. |
||
15044 | DMUS_VARIATIONF_DEST_TO5 = $10000000; // Handles transitions to 5 chord. |
||
15045 | |||
15046 | // The top three bits of the variation flags are the Mode bits. If all are 0, it's IMA. |
||
15047 | // If the smallest is 1, it's Direct Music. |
||
15048 | DMUS_VARIATIONF_MODES = $E0000000; |
||
15049 | DMUS_VARIATIONF_IMA25_MODE = $00000000; |
||
15050 | DMUS_VARIATIONF_DMUS_MODE = $20000000; |
||
15051 | |||
15052 | type |
||
15053 | TDMUS_IO_TIMESIG = record |
||
15054 | // Time signatures define how many beats per measure, which note receives |
||
15055 | // the beat, and the grid resolution. |
||
15056 | bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
||
15057 | bBeat : Byte; // what note receives the beat (bottom of time sig.) |
||
15058 | // we can assume that 0 means 256th note |
||
15059 | wGridsPerBeat : Word; // grids per beat |
||
15060 | end; |
||
15061 | DMUS_IO_TIMESIG = TDMUS_IO_TIMESIG; |
||
15062 | |||
15063 | TDMUS_IO_STYLE = record |
||
15064 | timeSig : TDMUS_IO_TIMESIG; // Styles have a default Time Signature |
||
15065 | dblTempo: Double; |
||
15066 | end; |
||
15067 | DMUS_IO_STYLE = TDMUS_IO_STYLE; |
||
15068 | |||
15069 | TDMUS_IO_VERSION = record |
||
15070 | dwVersionMS : DWORD; // Version # high-order 32 bits |
||
15071 | dwVersionLS : DWORD; // Version # low-order 32 bits |
||
15072 | end; |
||
15073 | DMUS_IO_VERSION = TDMUS_IO_VERSION; |
||
15074 | |||
15075 | TDMUS_IO_PATTERN = record |
||
15076 | timeSig : TDMUS_IO_TIMESIG; // Patterns can override the Style's Time sig. |
||
15077 | bGrooveBottom : Byte; // bottom of groove range |
||
15078 | bGrooveTop : Byte; // top of groove range |
||
15079 | wEmbellishment : Word; // Fill, Break, Intro, End, Normal, Motif |
||
15080 | wNbrMeasures : Word; // length in measures |
||
15081 | end; |
||
15082 | DMUS_IO_PATTERN = TDMUS_IO_PATTERN; |
||
15083 | |||
15084 | TDMUS_IO_STYLEPART = record |
||
15085 | timeSig : TDMUS_IO_TIMESIG; // can override pattern's |
||
15086 | dwVariationChoices : array[0..31] of DWORD; // MOAW choice bitfield |
||
15087 | guidPartID : TGUID; // identifies the part |
||
15088 | wNbrMeasures : Word; // length of the Part |
||
15089 | bPlayModeFlags : Byte; // see PLAYMODE flags |
||
15090 | bInvertUpper : Byte; // inversion upper limit |
||
15091 | bInvertLower : Byte; // inversion lower limit |
||
15092 | end; |
||
15093 | DMUS_IO_STYLEPART = TDMUS_IO_STYLEPART; |
||
15094 | |||
15095 | TDMUS_IO_PARTREF = record |
||
15096 | guidPartID : TGUID; // unique ID for matching up with parts |
||
15097 | wLogicalPartID : Word; // corresponds to port/device/midi channel |
||
15098 | bVariationLockID : Byte; // parts with the same ID lock variations. |
||
15099 | // high bit is used to identify master Part |
||
15100 | bSubChordLevel : Byte; // tells which sub chord level this part wants |
||
15101 | bPriority : Byte; // 256 priority levels. Parts with lower priority |
||
15102 | // aren't played first when a device runs out of |
||
15103 | // notes |
||
15104 | bRandomVariation : Byte; // when set, matching variations play in random order |
||
15105 | // when clear, matching variations play sequentially |
||
15106 | end; |
||
15107 | DMUS_IO_PARTREF = TDMUS_IO_PARTREF; |
||
15108 | |||
15109 | TDMUS_IO_STYLENOTE = record |
||
15110 | mtGridStart : MUSIC_TIME; // when this note occurs |
||
15111 | dwVariation : DWORD; // variation bits |
||
15112 | mtDuration : MUSIC_TIME; // how long this note lasts |
||
15113 | nTimeOffset : Smallint; // offset from mtGridStart |
||
15114 | wMusicValue : Word; // Position in scale. |
||
15115 | bVelocity : Byte; // Note velocity. |
||
15116 | bTimeRange : Byte; // Range to randomize start time. |
||
15117 | bDurRange : Byte; // Range to randomize duration. |
||
15118 | bVelRange : Byte; // Range to randomize velocity. |
||
15119 | bInversionID : Byte; // Identifies inversion group to which this note belongs |
||
15120 | bPlayModeFlags : Byte; // Can override part |
||
15121 | end; |
||
15122 | DMUS_IO_STYLENOTE = TDMUS_IO_STYLENOTE; |
||
15123 | |||
15124 | TDMUS_IO_STYLECURVE = record |
||
15125 | mtGridStart : MUSIC_TIME;// when this curve occurs |
||
15126 | dwVariation : DWORD; // variation bits |
||
15127 | mtDuration : MUSIC_TIME;// how long this curve lasts |
||
15128 | mtResetDuration : MUSIC_TIME;// how long after the end of the curve to reset the curve |
||
15129 | nTimeOffset : Smallint; // offset from mtGridStart |
||
15130 | nStartValue : Smallint; // curve's start value |
||
15131 | nEndValue : Smallint; // curve's end value |
||
15132 | nResetValue : Smallint; // the value to which to reset the curve |
||
15133 | bEventType : Byte; // type of curve |
||
15134 | bCurveShape : Byte; // shape of curve |
||
15135 | bCCData : Byte; // CC# |
||
15136 | bFlags : Byte; // Bit 1=TRUE means to send nResetValue. Otherwise, don't. |
||
15137 | // Other bits are reserved. |
||
15138 | end; |
||
15139 | DMUS_IO_STYLECURVE = TDMUS_IO_STYLECURVE; |
||
15140 | |||
15141 | TDMUS_IO_MOTIFSETTINGS = record |
||
15142 | dwRepeats : DWORD; // Number of repeats. By default, 0. |
||
15143 | mtPlayStart : MUSIC_TIME; // Start of playback. By default, 0. |
||
15144 | mtLoopStart : MUSIC_TIME; // Start of looping portion. By default, 0. |
||
15145 | mtLoopEnd : MUSIC_TIME; // End of loop. Must be greater than mtLoopStart. By default equal to length of motif. |
||
15146 | dwResolution : DWORD; // Default resolution. |
||
15147 | end; |
||
15148 | DMUS_IO_MOTIFSETTINGS = TDMUS_IO_MOTIFSETTINGS; |
||
15149 | |||
15150 | |||
15151 | const |
||
15152 | // Chord and command file formats |
||
15153 | |||
15154 | DMUS_FOURCC_CHORDTRACK_LIST = Ord('c') + Ord('o') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
||
15155 | DMUS_FOURCC_CHORDTRACKHEADER_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('d') shl 16 + Ord('h') shl 24; |
||
15156 | DMUS_FOURCC_CHORDTRACKBODY_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('d') shl 16 + Ord('b') shl 24; |
||
15157 | |||
15158 | DMUS_FOURCC_COMMANDTRACK_CHUNK = Ord('c') + Ord('m') shl 8 + Ord('n') shl 16 + Ord('d') shl 24; |
||
15159 | |||
15160 | type |
||
15161 | TDMUS_IO_CHORD = record |
||
15162 | wszName : array[0..15] of WCHAR; // Name of the chord |
||
15163 | mtTime : MUSIC_TIME; // Time of this chord |
||
15164 | wMeasure : Word; // Measure this falls on |
||
15165 | bBeat : Byte; // Beat this falls on |
||
15166 | end; |
||
15167 | DMUS_IO_CHORD = TDMUS_IO_CHORD; |
||
15168 | |||
15169 | TDMUS_IO_SUBCHORD = record |
||
15170 | dwChordPattern : DWORD; // Notes in the subchord |
||
15171 | dwScalePattern : DWORD; // Notes in the scale |
||
15172 | dwInversionPoints : DWORD; // Where inversions can occur |
||
15173 | dwLevels : DWORD; // Which levels are supported by this subchord |
||
15174 | bChordRoot : Byte; // Root of the subchord |
||
15175 | bScaleRoot : Byte; // Root of the scale |
||
15176 | end; |
||
15177 | DMUS_IO_SUBCHORD = TDMUS_IO_SUBCHORD; |
||
15178 | |||
15179 | TDMUS_IO_COMMAND = record |
||
15180 | mtTime : MUSIC_TIME; // Time of this command |
||
15181 | wMeasure : Word; // Measure this falls on |
||
15182 | bBeat : Byte; // Beat this falls on |
||
15183 | bCommand : Byte; // Command type (see #defines below) |
||
15184 | bGrooveLevel : Byte; // Groove level (0 if command is not a groove) |
||
15185 | bGrooveRange : Byte; // Groove range |
||
15186 | end; |
||
15187 | DMUS_IO_COMMAND = TDMUS_IO_COMMAND; |
||
15188 | |||
15189 | |||
15190 | // File io for DirectMusic Tool and ToolGraph objects |
||
15191 | /// |
||
15192 | |||
15193 | const |
||
15194 | // RIFF ids: |
||
15195 | |||
15196 | DMUS_FOURCC_TOOLGRAPH_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('G') shl 24; |
||
15197 | DMUS_FOURCC_TOOL_LIST = Ord('t') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('l') shl 24; |
||
15198 | DMUS_FOURCC_TOOL_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('L') shl 24; |
||
15199 | DMUS_FOURCC_TOOL_CHUNK = Ord('t') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('h') shl 24; |
||
15200 | |||
15201 | type |
||
15202 | // io structures: |
||
15203 | |||
15204 | TDMUS_IO_TOOL_HEADER = record |
||
15205 | guidClassID : TGUID; // Class id of tool. |
||
15206 | lIndex : Longint; // Position in graph. |
||
15207 | cPChannels : DWORD; // Number of items in channels array. |
||
15208 | ckid : FOURCC; // chunk ID of tool's data chunk if 0 fccType valid. |
||
15209 | fccType : FOURCC; // list type if NULL ckid valid. |
||
15210 | dwPChannels : array[0..0] of DWORD; // Array of PChannels, size determined by cPChannels. |
||
15211 | end; |
||
15212 | DMUS_IO_TOOL_HEADER = TDMUS_IO_TOOL_HEADER; |
||
15213 | |||
15214 | |||
15215 | // File io for DirectMusic Band Track object |
||
15216 | |||
15217 | const |
||
15218 | // RIFF ids: |
||
15219 | DMUS_FOURCC_BANDTRACK_FORM = Ord('D') + Ord('M') shl 8 + Ord('B') shl 16 + Ord('T') shl 24; |
||
15220 | DMUS_FOURCC_BANDTRACK_CHUNK = Ord('b') + Ord('d') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
||
15221 | DMUS_FOURCC_BANDS_LIST = Ord('l') + Ord('b') shl 8 + Ord('d') shl 16 + Ord('l') shl 24; |
||
15222 | DMUS_FOURCC_BAND_LIST = Ord('l') + Ord('b') shl 8 + Ord('n') shl 16 + Ord('d') shl 24; |
||
15223 | DMUS_FOURCC_BANDITEM_CHUNK = Ord('b') + Ord('d') shl 8 + Ord('i') shl 16 + Ord('h') shl 24; |
||
15224 | |||
15225 | type |
||
15226 | // io structures |
||
15227 | TDMUS_IO_BAND_TRACK_HEADER = record |
||
15228 | bAutoDownload : BOOL; // Determines if Auto-Download is enabled. |
||
15229 | end; |
||
15230 | DMUS_IO_BAND_TRACK_HEADER = TDMUS_IO_BAND_TRACK_HEADER; |
||
15231 | |||
15232 | TDMUS_IO_BAND_ITEM_HEADER = record |
||
15233 | lBandTime : MUSIC_TIME; // Position in track list. |
||
15234 | end; |
||
15235 | DMUS_IO_BAND_ITEM_HEADER = TDMUS_IO_BAND_ITEM_HEADER; |
||
15236 | |||
15237 | |||
15238 | // File io for DirectMusic Band object |
||
15239 | /// |
||
15240 | |||
15241 | const |
||
15242 | // RIFF ids: |
||
15243 | |||
15244 | DMUS_FOURCC_BAND_FORM = Ord('D') + Ord('M') shl 8 + Ord('B') shl 16 + Ord('D') shl 24; |
||
15245 | DMUS_FOURCC_INSTRUMENTS_LIST = Ord('l') + Ord('b') shl 8 + Ord('i') shl 16 + Ord('l') shl 24; |
||
15246 | DMUS_FOURCC_INSTRUMENT_LIST = Ord('l') + Ord('b') shl 8 + Ord('i') shl 16 + Ord('n') shl 24; |
||
15247 | DMUS_FOURCC_INSTRUMENT_CHUNK = Ord('b') + Ord('i') shl 8 + Ord('n') shl 16 + Ord('s') shl 24; |
||
15248 | |||
15249 | // Flags for DMUS_IO_INSTRUMENT |
||
15250 | /// |
||
15251 | DMUS_IO_INST_PATCH = (1 shl 0); // dwPatch is valid. |
||
15252 | DMUS_IO_INST_BANKSELECT = (1 shl 1); // dwPatch contains a valid Bank Select MSB and LSB part |
||
15253 | DMUS_IO_INST_ASSIGN_PATCH = (1 shl 3); // dwAssignPatch is valid |
||
15254 | DMUS_IO_INST_NOTERANGES = (1 shl 4); // dwNoteRanges is valid |
||
15255 | DMUS_IO_INST_PAN = (1 shl 5); // bPan is valid |
||
15256 | DMUS_IO_INST_VOLUME = (1 shl 6); // bVolume is valid |
||
15257 | DMUS_IO_INST_TRANSPOSE = (1 shl 7); // nTranspose is valid |
||
15258 | DMUS_IO_INST_GM = (1 shl 8); // Instrument is from GM collection |
||
15259 | DMUS_IO_INST_GS = (1 shl 9); // Instrument is from GS collection |
||
15260 | DMUS_IO_INST_XG = (1 shl 10); // Instrument is from XG collection |
||
15261 | DMUS_IO_INST_CHANNEL_PRIORITY = (1 shl 11); // dwChannelPriority is valid |
||
15262 | DMUS_IO_INST_USE_DEFAULT_GM_SET = (1 shl 12); // Always use the default GM set for this patch, |
||
15263 | // don't rely on the synth caps stating GM or GS in hardware. |
||
15264 | |||
15265 | type |
||
15266 | // io structures |
||
15267 | TDMUS_IO_INSTRUMENT = record |
||
15268 | dwPatch : DWORD; // MSB, LSB and Program change to define instrument |
||
15269 | dwAssignPatch : DWORD; // MSB, LSB and Program change to assign to instrument when downloading |
||
15270 | dwNoteRanges : array[0..3] of DWORD; // 128 bits; one for each MIDI note instrument needs to able to play |
||
15271 | dwPChannel : DWORD; // PChannel instrument plays on |
||
15272 | dwFlags : DWORD; // DMUS_IO_INST_ flags |
||
15273 | bPan : Byte; // Pan for instrument |
||
15274 | bVolume : Byte; // Volume for instrument |
||
15275 | nTranspose : Smallint; // Number of semitones to transpose notes |
||
15276 | dwChannelPriority : DWORD; // Channel priority |
||
15277 | end; |
||
15278 | DMUS_IO_INSTRUMENT = TDMUS_IO_INSTRUMENT; |
||
15279 | |||
15280 | |||
15281 | // File io for DirectMusic Segment object |
||
15282 | |||
15283 | const |
||
15284 | // RIFF ids: |
||
15285 | |||
15286 | DMUS_FOURCC_SEGMENT_FORM = Ord('D') + Ord('M') shl 8 + Ord('S') shl 16 + Ord('G') shl 24; |
||
15287 | DMUS_FOURCC_SEGMENT_CHUNK = Ord('s') + Ord('e') shl 8 + Ord('g') shl 16 + Ord('h') shl 24; |
||
15288 | DMUS_FOURCC_TRACK_LIST = Ord('t') + Ord('r') shl 8 + Ord('k') shl 16 + Ord('l') shl 24; |
||
15289 | DMUS_FOURCC_TRACK_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('K') shl 24; |
||
15290 | DMUS_FOURCC_TRACK_CHUNK = Ord('t') + Ord('r') shl 8 + Ord('k') shl 16 + Ord('h') shl 24; |
||
15291 | |||
15292 | type |
||
15293 | // io structures: |
||
15294 | |||
15295 | TDMUS_IO_SEGMENT_HEADER = record |
||
15296 | dwRepeats : DWORD; // Number of repeats. By default, 0. |
||
15297 | mtLength : MUSIC_TIME; // Length, in music time. |
||
15298 | mtPlayStart : MUSIC_TIME; // Start of playback. By default, 0. |
||
15299 | mtLoopStart : MUSIC_TIME; // Start of looping portion. By default, 0. |
||
15300 | mtLoopEnd : MUSIC_TIME; // End of loop. Must be greater than dwPlayStart. By default equal to length. |
||
15301 | dwResolution : DWORD; // Default resolution. |
||
15302 | end; |
||
15303 | DMUS_IO_SEGMENT_HEADER = TDMUS_IO_SEGMENT_HEADER; |
||
15304 | |||
15305 | TDMUS_IO_TRACK_HEADER = record |
||
15306 | guidClassID : TGUID; // Class id of track. |
||
15307 | dwPosition : DWORD; // Position in track list. |
||
15308 | dwGroup : DWORD; // Group bits for track. |
||
15309 | ckid : FOURCC; // chunk ID of track's data chunk if 0 fccType valid. |
||
15310 | fccType : FOURCC; // list type if NULL ckid valid |
||
15311 | end; |
||
15312 | DMUS_IO_TRACK_HEADER = TDMUS_IO_TRACK_HEADER; |
||
15313 | |||
15314 | // File io for DirectMusic reference chunk. |
||
15315 | // This is used to embed a reference to an object. |
||
15316 | |||
15317 | const |
||
15318 | // RIFF ids: |
||
15319 | |||
15320 | DMUS_FOURCC_REF_LIST = Ord('D') + Ord('M') shl 8 + Ord('R') shl 16 + Ord('F') shl 24; |
||
15321 | DMUS_FOURCC_REF_CHUNK = Ord('r') + Ord('e') shl 8 + Ord('f') shl 16 + Ord('h') shl 24; |
||
15322 | DMUS_FOURCC_DATE_CHUNK = Ord('d') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
||
15323 | DMUS_FOURCC_NAME_CHUNK = Ord('n') + Ord('a') shl 8 + Ord('m') shl 16 + Ord('e') shl 24; |
||
15324 | DMUS_FOURCC_FILE_CHUNK = Ord('f') + Ord('i') shl 8 + Ord('l') shl 16 + Ord('e') shl 24; |
||
15325 | |||
15326 | type |
||
15327 | TDMUS_IO_REFERENCE = record |
||
15328 | guidClassID : TGUID; // Class id is always required. |
||
15329 | dwValidData : DWORD; // Flags. |
||
15330 | end; |
||
15331 | DMUS_IO_REFERENCE = TDMUS_IO_REFERENCE; |
||
15332 | |||
15333 | |||
15334 | // Chord Maps |
||
15335 | |||
15336 | const |
||
15337 | // runtime chunks |
||
15338 | DMUS_FOURCC_CHORDMAP_FORM = Ord('D') + Ord('M') shl 8 + Ord('P') shl 16 + Ord('R') shl 24; |
||
15339 | DMUS_FOURCC_IOCHORDMAP_CHUNK = Ord('p') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('h') shl 24; |
||
15340 | DMUS_FOURCC_SUBCHORD_CHUNK = Ord('c') + Ord('h') shl 8 + Ord('d') shl 16 + Ord('t') shl 24; |
||
15341 | DMUS_FOURCC_CHORDENTRY_CHUNK = Ord('c') + Ord('h') shl 8 + Ord('e') shl 16 + Ord('h') shl 24; |
||
15342 | DMUS_FOURCC_SUBCHORDID_CHUNK = Ord('s') + Ord('b') shl 8 + Ord('c') shl 16 + Ord('n') shl 24; |
||
15343 | DMUS_FOURCC_IONEXTCHORD_CHUNK = Ord('n') + Ord('c') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
||
15344 | DMUS_FOURCC_NEXTCHORDSEQ_CHUNK = Ord('n') + Ord('c') shl 8 + Ord('s') shl 16 + Ord('q') shl 24; |
||
15345 | DMUS_FOURCC_IOSIGNPOST_CHUNK = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('h') shl 24; |
||
15346 | DMUS_FOURCC_CHORDNAME_CHUNK = Ord('I') + Ord('N') shl 8 + Ord('A') shl 16 + Ord('M') shl 24; |
||
15347 | |||
15348 | // runtime list chunks |
||
15349 | DMUS_FOURCC_CHORDENTRY_LIST = Ord('c') + Ord('h') shl 8 + Ord('o') shl 16 + Ord('e') shl 24; |
||
15350 | DMUS_FOURCC_CHORDMAP_LIST = Ord('c') + Ord('m') shl 8 + Ord('a') shl 16 + Ord('p') shl 24; |
||
15351 | DMUS_FOURCC_CHORD_LIST = Ord('c') + Ord('h') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
||
15352 | DMUS_FOURCC_CHORDPALETTE_LIST = Ord('c') + Ord('h') shl 8 + Ord('p') shl 16 + Ord('l') shl 24; |
||
15353 | DMUS_FOURCC_CADENCE_LIST = Ord('c') + Ord('a') shl 8 + Ord('d') shl 16 + Ord('e') shl 24; |
||
15354 | DMUS_FOURCC_SIGNPOSTITEM_LIST = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('t') shl 24; |
||
15355 | |||
15356 | DMUS_FOURCC_SIGNPOST_LIST = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('q') shl 24; |
||
15357 | |||
15358 | // values for dwChord field of DMUS_IO_PERS_SIGNPOST |
||
15359 | // DMUS_SIGNPOSTF_ flags are also used in templates (DMUS_IO_SIGNPOST) |
||
15360 | DMUS_SIGNPOSTF_A = 1; |
||
15361 | DMUS_SIGNPOSTF_B = 2; |
||
15362 | DMUS_SIGNPOSTF_C = 4; |
||
15363 | DMUS_SIGNPOSTF_D = 8; |
||
15364 | DMUS_SIGNPOSTF_E = $10; |
||
15365 | DMUS_SIGNPOSTF_F = $20; |
||
15366 | DMUS_SIGNPOSTF_LETTER = (DMUS_SIGNPOSTF_A or DMUS_SIGNPOSTF_B or DMUS_SIGNPOSTF_C or DMUS_SIGNPOSTF_D or DMUS_SIGNPOSTF_E or DMUS_SIGNPOSTF_F); |
||
15367 | DMUS_SIGNPOSTF_1 = $100; |
||
15368 | DMUS_SIGNPOSTF_2 = $200; |
||
15369 | DMUS_SIGNPOSTF_3 = $400; |
||
15370 | DMUS_SIGNPOSTF_4 = $800; |
||
15371 | DMUS_SIGNPOSTF_5 = $1000; |
||
15372 | DMUS_SIGNPOSTF_6 = $2000; |
||
15373 | DMUS_SIGNPOSTF_7 = $4000; |
||
15374 | DMUS_SIGNPOSTF_ROOT = (DMUS_SIGNPOSTF_1 or DMUS_SIGNPOSTF_2 or DMUS_SIGNPOSTF_3 or DMUS_SIGNPOSTF_4 or DMUS_SIGNPOSTF_5 or DMUS_SIGNPOSTF_6 or DMUS_SIGNPOSTF_7); |
||
15375 | DMUS_SIGNPOSTF_CADENCE = $8000; |
||
15376 | |||
15377 | // values for dwChord field of DMUS_IO_PERS_SIGNPOST |
||
15378 | DMUS_SPOSTCADENCEF_1 = 2; // Use the first cadence chord. |
||
15379 | DMUS_SPOSTCADENCEF_2 = 4; // Use the second cadence chord. |
||
15380 | |||
15381 | type |
||
15382 | // run time data structs |
||
15383 | TDMUS_IO_CHORDMAP = record |
||
15384 | wszLoadName : array[0..19] of WCHAR; |
||
15385 | dwScalePattern : DWORD; |
||
15386 | dwFlags : DWORD; |
||
15387 | end; |
||
15388 | DMUS_IO_CHORDMAP = TDMUS_IO_CHORDMAP; |
||
15389 | |||
15390 | TDMUS_IO_CHORDMAP_SUBCHORD = record |
||
15391 | dwChordPattern : DWORD; |
||
15392 | dwScalePattern : DWORD; |
||
15393 | dwInvertPattern: DWORD; |
||
15394 | bChordRoot : Byte; |
||
15395 | bScaleRoot : Byte; |
||
15396 | wCFlags : Word; |
||
15397 | dwLevels : DWORD; // parts or which subchord levels this chord supports |
||
15398 | end; |
||
15399 | DMUS_IO_CHORDMAP_SUBCHORD = TDMUS_IO_CHORDMAP_SUBCHORD; |
||
15400 | |||
15401 | // Legacy name... |
||
15402 | DMUS_IO_PERS_SUBCHORD = TDMUS_IO_CHORDMAP_SUBCHORD; |
||
15403 | |||
15404 | TDMUS_IO_CHORDENTRY = record |
||
15405 | dwFlags : DWORD; |
||
15406 | wConnectionID : Word; // replaces runtime "pointer to this" |
||
15407 | end; |
||
15408 | DMUS_IO_CHORDENTRY = TDMUS_IO_CHORDENTRY; |
||
15409 | |||
15410 | TDMUS_IO_NEXTCHORD = record |
||
15411 | dwFlags : DWORD; |
||
15412 | nWeight : Word; |
||
15413 | wMinBeats : Word; |
||
15414 | wMaxBeats : Word; |
||
15415 | wConnectionID : Word; // points to an ioChordEntry |
||
15416 | end; |
||
15417 | DMUS_IO_NEXTCHORD = TDMUS_IO_NEXTCHORD; |
||
15418 | |||
15419 | TDMUS_IO_CHORDMAP_SIGNPOST = record |
||
15420 | dwChords : DWORD; // 1bit per group |
||
15421 | dwFlags : DWORD; |
||
15422 | end; |
||
15423 | DMUS_IO_CHORDMAP_SIGNPOST = TDMUS_IO_CHORDMAP_SIGNPOST; |
||
15424 | |||
15425 | // Legacy name... |
||
15426 | DMUS_IO_PERS_SIGNPOST = TDMUS_IO_CHORDMAP_SIGNPOST; |
||
15427 | |||
15428 | const |
||
15429 | // Signpost tracks |
||
15430 | DMUS_FOURCC_SIGNPOST_TRACK_CHUNK = Ord('s') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('p') shl 24; |
||
15431 | |||
15432 | type |
||
15433 | TDMUS_IO_SIGNPOST = record |
||
15434 | mtTime : MUSIC_TIME; |
||
15435 | dwChords : DWORD; |
||
15436 | wMeasure : Word; |
||
15437 | end; |
||
15438 | DMUS_IO_SIGNPOST = TDMUS_IO_SIGNPOST; |
||
15439 | |||
15440 | const |
||
15441 | DMUS_FOURCC_MUTE_CHUNK = Ord('m') + Ord('u') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
||
15442 | |||
15443 | type |
||
15444 | TDMUS_IO_MUTE = record |
||
15445 | mtTime : MUSIC_TIME; |
||
15446 | dwPChannel : DWORD; |
||
15447 | dwPChannelMap : DWORD; |
||
15448 | end; |
||
15449 | DMUS_IO_MUTE = TDMUS_IO_MUTE; |
||
15450 | |||
15451 | // Used for both style and chord map tracks |
||
15452 | const |
||
15453 | DMUS_FOURCC_TIME_STAMP_CHUNK = Ord('s') + Ord('t') shl 8 + Ord('m') shl 16 + Ord('p') shl 24; |
||
15454 | |||
15455 | // Style tracks |
||
15456 | DMUS_FOURCC_STYLE_TRACK_LIST = Ord('s') + Ord('t') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
||
15457 | DMUS_FOURCC_STYLE_REF_LIST = Ord('s') + Ord('t') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
||
15458 | |||
15459 | // Chord map tracks |
||
15460 | DMUS_FOURCC_PERS_TRACK_LIST = Ord('p') + Ord('f') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
||
15461 | DMUS_FOURCC_PERS_REF_LIST = Ord('p') + Ord('f') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
||
15462 | DMUS_FOURCC_TEMPO_TRACK = Ord('t') + Ord('e') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
||
15463 | DMUS_FOURCC_SEQ_TRACK = Ord('s') + Ord('e') shl 8 + Ord('q') shl 16 + Ord('t') shl 24; |
||
15464 | DMUS_FOURCC_SEQ_LIST = Ord('e') + Ord('v') shl 8 + Ord('t') shl 16 + Ord('l') shl 24; |
||
15465 | DMUS_FOURCC_CURVE_LIST = Ord('c') + Ord('u') shl 8 + Ord('r') shl 16 + Ord('l') shl 24; |
||
15466 | DMUS_FOURCC_SYSEX_TRACK = Ord('s') + Ord('y') shl 8 + Ord('e') shl 16 + Ord('x') shl 24; |
||
15467 | DMUS_FOURCC_TIMESIGNATURE_TRACK = Ord('t') + Ord('i') shl 8 + Ord('m') shl 16 + Ord('s') shl 24; |
||
15468 | |||
15469 | implementation |
||
15470 | |||
15471 | const |
||
15472 | DDrawLib = 'DDraw.dll'; |
||
15473 | D3DRMLib = 'D3DRM.dll'; |
||
15474 | D3DXofLib = 'd3dxof.dll'; |
||
15475 | DInputLib = 'DInput.dll'; |
||
15476 | DPlayXLib = 'DPlayX.dll'; |
||
15477 | DSetupLib = 'DSetup.dll'; |
||
15478 | DSoundLib = 'DSound.dll'; |
||
15479 | |||
15480 | |||
15481 | { DirectDraw } |
||
15482 | |||
15483 | function GET_WHQL_YEAR(dwWHQLLevel: DWORD): DWORD; |
||
15484 | begin |
||
15485 | Result := dwWHQLLevel div $10000; |
||
15486 | end; |
||
15487 | |||
15488 | function GET_WHQL_MONTH(dwWHQLLevel: DWORD): DWORD; |
||
15489 | begin |
||
15490 | Result := (dwWHQLLevel div $100) and $FF; |
||
15491 | end; |
||
15492 | |||
15493 | function GET_WHQL_DAY(dwWHQLLevel: DWORD): DWORD; |
||
15494 | begin |
||
15495 | Result := dwWHQLLevel and $FF; |
||
15496 | end; |
||
15497 | |||
15498 | function DirectDrawEnumerateA; external DDrawLib; |
||
15499 | function DirectDrawEnumerateW; external DDrawLib; |
||
15500 | function DirectDrawEnumerate; external DDrawLib name 'DirectDrawEnumerateA'; |
||
15501 | |||
15502 | function DirectDrawEnumerateExA; external DDrawLib; |
||
15503 | function DirectDrawEnumerateExW; external DDrawLib; |
||
15504 | function DirectDrawEnumerateEx; external DDrawLib name 'DirectDrawEnumerateExA'; |
||
15505 | |||
15506 | function DirectDrawCreate; external DDrawLib; |
||
15507 | function DirectDrawCreateEx; external DDrawLib; |
||
15508 | function DirectDrawCreateClipper; external DDrawLib; |
||
15509 | |||
15510 | { Direct3D } |
||
15511 | |||
15512 | function D3DVALP(val: TD3DValue; prec: Integer): TD3DValue; |
||
15513 | begin |
||
15514 | Result := val; |
||
15515 | end; |
||
15516 | |||
15517 | function D3DVAL(val: TD3DValue): TD3DValue; |
||
15518 | begin |
||
15519 | Result := val; |
||
15520 | end; |
||
15521 | |||
15522 | function D3DDivide(a, b: TD3DValue): TD3DValue; |
||
15523 | begin |
||
15524 | Result := a / b; |
||
15525 | end; |
||
15526 | |||
15527 | function D3DMultiply(a, b: TD3DValue): TD3DValue; |
||
15528 | begin |
||
15529 | Result := a * b; |
||
15530 | end; |
||
15531 | |||
15532 | function CI_GETALPHA(ci: Integer): Byte; |
||
15533 | begin |
||
15534 | Result := ci shr 24; |
||
15535 | end; |
||
15536 | |||
15537 | function CI_GETINDEX(ci: Integer): Word; |
||
15538 | begin |
||
15539 | Result := ci shr 8; |
||
15540 | end; |
||
15541 | |||
15542 | function CI_GETFRACTION(ci: Integer): Byte; |
||
15543 | begin |
||
15544 | Result := ci; |
||
15545 | end; |
||
15546 | |||
15547 | function CI_ROUNDINDEX(ci: Integer): Integer; |
||
15548 | begin |
||
15549 | Result := CI_GETINDEX(ci)+$80; |
||
15550 | end; |
||
15551 | |||
15552 | function CI_MASKALPHA(ci: Integer): Integer; |
||
15553 | begin |
||
15554 | Result := ci and $FFFFFF; |
||
15555 | end; |
||
15556 | |||
15557 | function CI_MAKE(a: Byte; i: Word; f: Byte): Integer; |
||
15558 | begin |
||
15559 | Result := (a shl 24) or (i shl 8) or f; |
||
15560 | end; |
||
15561 | |||
15562 | function RGBA_GETALPHA(rgb: TD3DColor): Byte; |
||
15563 | begin |
||
15564 | Result := rgb shr 24; |
||
15565 | end; |
||
15566 | |||
15567 | function RGBA_GETRED(rgb: TD3DColor): Byte; |
||
15568 | begin |
||
15569 | Result := rgb shr 16; |
||
15570 | end; |
||
15571 | |||
15572 | function RGBA_GETGREEN(rgb: TD3DColor): Byte; |
||
15573 | begin |
||
15574 | Result := rgb shr 8; |
||
15575 | end; |
||
15576 | |||
15577 | function RGBA_GETBLUE(rgb: TD3DColor): Byte; |
||
15578 | begin |
||
15579 | Result := rgb; |
||
15580 | end; |
||
15581 | |||
15582 | function RGBA_MAKE(r, g, b, a: Byte): TD3DColor; |
||
15583 | begin |
||
15584 | Result := (a shl 24) or (r shl 16) or (g shl 8) or b; |
||
15585 | end; |
||
15586 | |||
15587 | function D3DRGB(r, g, b: TD3DValue): TD3DColor; |
||
15588 | begin |
||
15589 | Result := $FF000000 or (Trunc(r*255) shl 16) or (Trunc(g*255) shl 8) or |
||
15590 | (Trunc(b*255)); |
||
15591 | end; |
||
15592 | |||
15593 | function D3DRGBA(r, g, b, a: TD3DValue): TD3DColor; |
||
15594 | begin |
||
15595 | Result := (Trunc(a*255) shl 24) or (Trunc(r*255) shl 16) or (Trunc(g*255) shl 8) or |
||
15596 | (Trunc(b*255)); |
||
15597 | end; |
||
15598 | |||
15599 | function RGB_GETRED(rgb: TD3DColor): Byte; |
||
15600 | begin |
||
15601 | Result := rgb shr 16; |
||
15602 | end; |
||
15603 | |||
15604 | function RGB_GETGREEN(rgb: TD3DColor): Byte; |
||
15605 | begin |
||
15606 | Result := rgb shr 8; |
||
15607 | end; |
||
15608 | |||
15609 | function RGB_GETBLUE(rgb: TD3DColor): Byte; |
||
15610 | begin |
||
15611 | Result := rgb; |
||
15612 | end; |
||
15613 | |||
15614 | function RGBA_SETALPHA(rgba: TD3DColor; x: Byte): TD3DColor; |
||
15615 | begin |
||
15616 | Result := (x shl 24) or (rgba and $00FFFFFF); |
||
15617 | end; |
||
15618 | |||
15619 | function RGB_MAKE(r, g, b: Byte): TD3DColor; |
||
15620 | begin |
||
15621 | Result := (r shl 16) or (g shl 8) or b; |
||
15622 | end; |
||
15623 | |||
15624 | function RGBA_TORGB(rgba: TD3DColor): TD3DColor; |
||
15625 | begin |
||
15626 | Result := rgba and $00FFFFFF; |
||
15627 | end; |
||
15628 | |||
15629 | function RGB_TORGBA(rgb: TD3DColor): TD3DColor; |
||
15630 | begin |
||
15631 | Result := rgb or $FF000000; |
||
15632 | end; |
||
15633 | |||
15634 | function VectorAdd(v1, v2: TD3DVector) : TD3DVector; |
||
15635 | begin |
||
15636 | result.x := v1.x+v2.x; |
||
15637 | result.y := v1.y+v2.y; |
||
15638 | result.z := v1.z+v2.z; |
||
15639 | end; |
||
15640 | |||
15641 | function VectorSub(v1, v2: TD3DVector) : TD3DVector; |
||
15642 | begin |
||
15643 | result.x := v1.x-v2.x; |
||
15644 | result.y := v1.y-v2.y; |
||
15645 | result.z := v1.z-v2.z; |
||
15646 | end; |
||
15647 | |||
15648 | function VectorMulS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
||
15649 | begin |
||
15650 | result.x := v.x*s; |
||
15651 | result.y := v.y*s; |
||
15652 | result.z := v.z*s; |
||
15653 | end; |
||
15654 | |||
15655 | function VectorDivS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
||
15656 | begin |
||
15657 | result.x := v.x/s; |
||
15658 | result.y := v.y/s; |
||
15659 | result.z := v.z/s; |
||
15660 | end; |
||
15661 | |||
15662 | function VectorMul(v1, v2: TD3DVector) : TD3DVector; |
||
15663 | begin |
||
15664 | result.x := v1.x*v2.x; |
||
15665 | result.y := v1.y*v2.y; |
||
15666 | result.z := v1.z*v2.z; |
||
15667 | end; |
||
15668 | |||
15669 | function VectorDiv(v1, v2: TD3DVector) : TD3DVector; |
||
15670 | begin |
||
15671 | result.x := v1.x/v2.x; |
||
15672 | result.y := v1.y/v2.y; |
||
15673 | result.z := v1.z/v2.z; |
||
15674 | end; |
||
15675 | |||
15676 | function VectorSmaller(v1, v2: TD3DVector) : boolean; |
||
15677 | begin |
||
15678 | result := (v1.x < v2.x) and (v1.y < v2.y) and (v1.z < v2.z); |
||
15679 | end; |
||
15680 | |||
15681 | function VectorSmallerEquel(v1, v2: TD3DVector) : boolean; |
||
15682 | begin |
||
15683 | result := (v1.x <= v2.x) and (v1.y <= v2.y) and (v1.z <= v2.z); |
||
15684 | end; |
||
15685 | |||
15686 | function VectorEquel(v1, v2: TD3DVector) : boolean; |
||
15687 | begin |
||
15688 | result := (v1.x = v2.x) and (v1.y = v2.y) and (v1.z = v2.z); |
||
15689 | end; |
||
15690 | |||
15691 | function VectorSquareMagnitude(v: TD3DVector) : TD3DValue; |
||
15692 | begin |
||
15693 | result := (v.x*v.x) + (v.y*v.y) + (v.z*v.z); |
||
15694 | end; |
||
15695 | |||
15696 | function VectorMagnitude(v: TD3DVector) : TD3DValue; |
||
15697 | begin |
||
15698 | result := sqrt( (v.x*v.x) + (v.y*v.y) + (v.z*v.z) ); |
||
15699 | end; |
||
15700 | |||
15701 | function VectorNormalize(v: TD3DVector) : TD3DVector; |
||
15702 | begin |
||
15703 | result := VectorDivS(v,VectorMagnitude(v)); |
||
15704 | end; |
||
15705 | |||
15706 | function VectorMin(v: TD3DVector) : TD3DValue; |
||
15707 | var |
||
15708 | ret : TD3DValue; |
||
15709 | begin |
||
15710 | ret := v.x; |
||
15711 | if (v.y < ret) then ret := v.y; |
||
15712 | if (v.z < ret) then ret := v.z; |
||
15713 | result := ret; |
||
15714 | end; |
||
15715 | |||
15716 | function VectorMax(v: TD3DVector) : TD3DValue; |
||
15717 | var |
||
15718 | ret : TD3DValue; |
||
15719 | begin |
||
15720 | ret := v.x; |
||
15721 | if (ret < v.y) then ret := v.y; |
||
15722 | if (ret < v.z) then ret := v.z; |
||
15723 | result := ret; |
||
15724 | end; |
||
15725 | |||
15726 | function VectorMinimize(v1, v2: TD3DVector) : TD3DVector; |
||
15727 | begin |
||
15728 | if v1.x < v2.x then result.x := v1.x else result.x := v2.x; |
||
15729 | if v1.y < v2.y then result.y := v1.y else result.y := v2.y; |
||
15730 | if v1.z < v2.z then result.z := v1.z else result.z := v2.z; |
||
15731 | end; |
||
15732 | |||
15733 | function VectorMaximize(v1, v2: TD3DVector) : TD3DVector; |
||
15734 | begin |
||
15735 | if v1.x > v2.x then result.x := v1.x else result.x := v2.x; |
||
15736 | if v1.y > v2.y then result.y := v1.y else result.y := v2.y; |
||
15737 | if v1.z > v2.z then result.z := v1.z else result.z := v2.z; |
||
15738 | end; |
||
15739 | |||
15740 | function VectorDotProduct(v1, v2: TD3DVector) : TD3DValue; |
||
15741 | begin |
||
15742 | result := (v1.x*v2.x) + (v1.y * v2.y) + (v1.z*v2.z); |
||
15743 | end; |
||
15744 | |||
15745 | function VectorCrossProduct(v1, v2: TD3DVector) : TD3DVector; |
||
15746 | begin |
||
15747 | result.x := (v1.y*v2.z) - (v1.z*v2.y); |
||
15748 | result.y := (v1.z*v2.x) - (v1.x*v2.z); |
||
15749 | result.z := (v1.x*v2.y) - (v1.y*v2.x); |
||
15750 | end; |
||
15751 | |||
15752 | function D3DSTATE_OVERRIDE(typ: DWORD): DWORD; |
||
15753 | begin |
||
15754 | Result := typ + D3DSTATE_OVERRIDE_BIAS; |
||
15755 | end; |
||
15756 | |||
15757 | function D3DRENDERSTATE_STIPPLEPATTERN(y: DWORD): TD3DRenderStateType; |
||
15758 | begin |
||
15759 | Result := TD3DRenderStateType(Ord(D3DRENDERSTATE_STIPPLEPATTERN00)+y); |
||
15760 | end; |
||
15761 | |||
15762 | function D3DTRIFLAG_STARTFLAT(len: DWORD) : DWORD; |
||
15763 | begin |
||
15764 | if not (len in [1..29]) then len := 0; |
||
15765 | result := len; |
||
15766 | end; |
||
15767 | |||
15768 | function D3DFVF_TEXCOORDSIZE3(CoordIndex: DWORD): DWORD; |
||
15769 | begin |
||
15770 | Result := D3DFVF_TEXTUREFORMAT3 shl (CoordIndex*2 + 16); |
||
15771 | end; |
||
15772 | |||
15773 | function D3DFVF_TEXCOORDSIZE2(CoordIndex: DWORD): DWORD; |
||
15774 | begin |
||
15775 | Result := D3DFVF_TEXTUREFORMAT2; |
||
15776 | end; |
||
15777 | |||
15778 | function D3DFVF_TEXCOORDSIZE4(CoordIndex: DWORD): DWORD; |
||
15779 | begin |
||
15780 | Result := D3DFVF_TEXTUREFORMAT4 shl (CoordIndex*2 + 16); |
||
15781 | end; |
||
15782 | |||
15783 | function D3DFVF_TEXCOORDSIZE1(CoordIndex: DWORD): DWORD; |
||
15784 | begin |
||
15785 | Result := D3DFVF_TEXTUREFORMAT1 shl (CoordIndex*2 + 16); |
||
15786 | end; |
||
15787 | |||
15788 | { Direct3DRM } |
||
15789 | |||
15790 | procedure D3DRMAnimationGetRotateKey(const rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
||
15791 | begin |
||
15792 | rmQuat.s := rmKey.dvK[0]; |
||
15793 | rmQuat.v.x := rmKey.dvK[1]; |
||
15794 | rmQuat.v.y := rmKey.dvK[2]; |
||
15795 | rmQuat.v.z := rmKey.dvK[3]; |
||
15796 | end; |
||
15797 | |||
15798 | procedure D3DRMAnimationGetScaleKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
||
15799 | begin |
||
15800 | dvVec.x := rmKey.dvK[0]; |
||
15801 | dvVec.y := rmKey.dvK[1]; |
||
15802 | dvVec.z := rmKey.dvK[2]; |
||
15803 | end; |
||
15804 | |||
15805 | procedure D3DRMAnimationGetPositionKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
||
15806 | begin |
||
15807 | dvVec.x := rmKey.dvK[0]; |
||
15808 | dvVec.y := rmKey.dvK[1]; |
||
15809 | dvVec.z := rmKey.dvK[2]; |
||
15810 | end; |
||
15811 | |||
15812 | procedure D3DRMAnimationSetRotateKey(var rmKey: TD3DRMAnimationKey; const rmQuat: TD3DRMQuaternion); |
||
15813 | begin |
||
15814 | rmKey.dvK[0] := rmQuat.s; |
||
15815 | rmKey.dvK[1] := rmQuat.v.x; |
||
15816 | rmKey.dvK[2] := rmQuat.v.y; |
||
15817 | rmKey.dvK[3] := rmQuat.v.z; |
||
15818 | end; |
||
15819 | |||
15820 | procedure D3DRMAnimationSetScaleKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
||
15821 | begin |
||
15822 | rmKey.dvK[0] := dvVec.x; |
||
15823 | rmKey.dvK[1] := dvVec.y; |
||
15824 | rmKey.dvK[2] := dvVec.z; |
||
15825 | end; |
||
15826 | |||
15827 | procedure D3DRMAnimationSetPositionKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
||
15828 | begin |
||
15829 | rmKey.dvK[0] := dvVec.x; |
||
15830 | rmKey.dvK[1] := dvVec.y; |
||
15831 | rmKey.dvK[2] := dvVec.z; |
||
15832 | end; |
||
15833 | |||
15834 | function Direct3DRMCreate; external D3DRMLib; |
||
15835 | |||
15836 | function D3DRMCreateColorRGB; external D3DRMLib; |
||
15837 | function D3DRMCreateColorRGBA; external D3DRMLib; |
||
15838 | function D3DRMColorGetRed; external D3DRMLib; |
||
15839 | function D3DRMColorGetGreen; external D3DRMLib; |
||
15840 | function D3DRMColorGetBlue; external D3DRMLib; |
||
15841 | function D3DRMColorGetAlpha; external D3DRMLib; |
||
15842 | function D3DRMVectorAdd; external D3DRMLib; |
||
15843 | function D3DRMVectorSubtract; external D3DRMLib; |
||
15844 | function D3DRMVectorReflect; external D3DRMLib; |
||
15845 | function D3DRMVectorCrossProduct; external D3DRMLib; |
||
15846 | function D3DRMVectorDotProduct; external D3DRMLib; |
||
15847 | function D3DRMVectorNormalize; external D3DRMLib; |
||
15848 | function D3DRMVectorModulus; external D3DRMLib; |
||
15849 | function D3DRMVectorRotate; external D3DRMLib; |
||
15850 | function D3DRMVectorScale; external D3DRMLib; |
||
15851 | function D3DRMVectorRandom; external D3DRMLib; |
||
15852 | function D3DRMQuaternionFromRotation; external D3DRMLib; |
||
15853 | function D3DRMQuaternionMultiply; external D3DRMLib; |
||
15854 | function D3DRMQuaternionSlerp; external D3DRMLib; |
||
15855 | procedure D3DRMMatrixFromQuaternion; external D3DRMLib; |
||
15856 | function D3DRMQuaternionFromMatrix; external D3DRMLib; |
||
15857 | |||
15858 | function DirectXFileCreate; external D3DXofLib; |
||
15859 | |||
15860 | { DirectInput } |
||
15861 | |||
15862 | function GET_DIDEVICE_TYPE(dwDevType: DWORD): DWORD; |
||
15863 | begin |
||
15864 | Result := LOBYTE(dwDevType); |
||
15865 | end; |
||
15866 | |||
15867 | function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): DWORD; |
||
15868 | begin |
||
15869 | Result := HIBYTE(dwDevType); |
||
15870 | end; |
||
15871 | |||
15872 | function DIEFT_GETTYPE(n: DWORD): DWORD; |
||
15873 | begin |
||
15874 | Result := LOBYTE(n); |
||
15875 | end; |
||
15876 | |||
15877 | function DIDFT_MAKEINSTANCE(n: WORD): DWORD; |
||
15878 | begin |
||
15879 | Result := n shl 8; |
||
15880 | end; |
||
15881 | |||
15882 | function DIDFT_GETTYPE(n: DWORD): DWORD; |
||
15883 | begin |
||
15884 | Result := LOBYTE(n); |
||
15885 | end; |
||
15886 | |||
15887 | function DIDFT_GETINSTANCE(n: DWORD): WORD; |
||
15888 | begin |
||
15889 | Result := n shr 8; |
||
15890 | end; |
||
15891 | |||
15892 | function DIDFT_ENUMCOLLECTION(n: WORD): DWORD; |
||
15893 | begin |
||
15894 | Result := n shl 8; |
||
15895 | end; |
||
15896 | |||
15897 | function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; |
||
15898 | begin |
||
15899 | Result := MAKELONG(Usage, UsagePage); |
||
15900 | end; |
||
15901 | |||
15902 | function DirectInputCreate; external DInputLib name 'DirectInputCreateA'; |
||
15903 | function DirectInputCreateEx; external DInputLib name 'DirectInputCreateEx'; |
||
15904 | |||
15905 | { DirectPlay } |
||
15906 | |||
15907 | function DirectPlayEnumerateA; external DPlayXLib; |
||
15908 | function DirectPlayEnumerateW; external DPlayXLib; |
||
15909 | function DirectPlayEnumerate; external DPlayXLib name 'DirectPlayEnumerateA'; |
||
15910 | |||
15911 | function DirectPlayCreate; external DPlayXLib; |
||
15912 | |||
15913 | function DirectPlayLobbyCreateW; external DPlayXLib; |
||
15914 | function DirectPlayLobbyCreateA; external DPlayXLib; |
||
15915 | function DirectPlayLobbyCreate; external DPlayXLib name 'DirectPlayLobbyCreateA'; |
||
15916 | |||
15917 | { DirectSetup } |
||
15918 | |||
15919 | function DirectXSetupA; external DSetupLib; |
||
15920 | function DirectXSetupW; external DSetupLib; |
||
15921 | function DirectXSetup; external DSetupLib name 'DirectXSetupA'; |
||
15922 | |||
15923 | function DirectXDeviceDriverSetupA; external DSetupLib; |
||
15924 | function DirectXDeviceDriverSetupW; external DSetupLib; |
||
15925 | function DirectXDeviceDriverSetup; external DSetupLib name 'DirectXDeviceDriverSetupA'; |
||
15926 | |||
15927 | function DirectXRegisterApplicationA; external DSetupLib; |
||
15928 | function DirectXRegisterApplicationW; external DSetupLib; |
||
15929 | function DirectXRegisterApplication; external DSetupLib name 'DirectXRegisterApplicationA'; |
||
15930 | |||
15931 | function DirectXUnRegisterApplication; external DSetupLib; |
||
15932 | |||
15933 | function DirectXSetupSetCallback; external DSetupLib; |
||
15934 | |||
15935 | function DirectXSetupGetVersion; external DSetupLib; |
||
15936 | |||
15937 | { DirectSound } |
||
15938 | |||
15939 | function DSSPEAKER_COMBINED(c, g: Byte): DWORD; |
||
15940 | begin |
||
15941 | Result := c or (g shl 16); |
||
15942 | end; |
||
15943 | |||
15944 | function DSSPEAKER_CONFIG(a: DWORD): Byte; |
||
15945 | begin |
||
15946 | Result := a; |
||
15947 | end; |
||
15948 | |||
15949 | function DSSPEAKER_GEOMETRY(a: DWORD): Byte; |
||
15950 | begin |
||
15951 | Result := a shr 16; |
||
15952 | end; |
||
15953 | |||
15954 | function DirectSoundCreate; external DSoundLib; |
||
15955 | function DirectSoundEnumerateA; external DSoundLib; |
||
15956 | function DirectSoundEnumerateW; external DSoundLib; |
||
15957 | function DirectSoundEnumerate; external DSoundLib name 'DirectSoundEnumerateA'; |
||
15958 | |||
15959 | function DirectSoundCaptureCreate; external DSoundLib; |
||
15960 | function DirectSoundCaptureEnumerateA; external DSoundLib; |
||
15961 | function DirectSoundCaptureEnumerateW; external DSoundLib; |
||
15962 | function DirectSoundCaptureEnumerate; external DSoundLib name 'DirectSoundCaptureEnumerateA'; |
||
15963 | |||
15964 | function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
||
15965 | begin |
||
15966 | Result := Ord(ch0) + (Ord(ch1) shl 8) + (Ord(ch2) shl 16) + (Ord(ch3) shl 24); |
||
15967 | end; |
||
15968 | |||
15969 | function MAKE_DMHRESULTSUCCESS(code: Cardinal) : HResult; |
||
15970 | begin |
||
15971 | Result := MakeResult(0, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))); |
||
15972 | end; |
||
15973 | |||
15974 | function MAKE_DMHRESULTERROR(code: Cardinal) : HResult; |
||
15975 | begin |
||
15976 | Result := MakeResult(1, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))); |
||
15977 | end; |
||
15978 | |||
15979 | // The number of bytes to allocate for an event with 'cb' data bytes. |
||
15980 | // |
||
15981 | function QWORD_ALIGN(x: LONGLONG): LONGLONG; |
||
15982 | begin |
||
15983 | Result := x + 7; |
||
15984 | PDWORD(@Result)^ := PDWORD(@Result)^ and (not 7); |
||
15985 | end; |
||
15986 | |||
15987 | function DMUS_EVENT_SIZE(cb: LONGLONG): LONGLONG; |
||
15988 | begin |
||
15989 | Result := QWORD_ALIGN(SizeOf(DMUS_EVENTHEADER) + cb); |
||
15990 | end; |
||
15991 | |||
15992 | end. |
||
15993 |