/[cvs]/api/include/d3dx8core.h
ViewVC logotype

Annotation of /api/include/d3dx8core.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Sun Jul 1 20:47:59 2001 UTC (22 years, 10 months ago) by bearsoft
Branch: lazy, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
First import

1 bearsoft 1.1 ///////////////////////////////////////////////////////////////////////////
2     //
3     // Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
4     //
5     // File: d3dx8core.h
6     // Content: D3DX core types and functions
7     //
8     ///////////////////////////////////////////////////////////////////////////
9    
10     #include "d3dx8.h"
11    
12     #ifndef __D3DX8CORE_H__
13     #define __D3DX8CORE_H__
14    
15    
16     ///////////////////////////////////////////////////////////////////////////
17     // ID3DXBuffer:
18     // ------------
19     // The buffer object is used to return arbitrary lenght data.
20     ///////////////////////////////////////////////////////////////////////////
21    
22     typedef interface ID3DXBuffer ID3DXBuffer;
23     typedef interface ID3DXBuffer *LPD3DXBUFFER;
24    
25     // {932E6A7E-C68E-45dd-A7BF-53D19C86DB1F}
26     DEFINE_GUID(IID_ID3DXBuffer,
27     0x932e6a7e, 0xc68e, 0x45dd, 0xa7, 0xbf, 0x53, 0xd1, 0x9c, 0x86, 0xdb, 0x1f);
28    
29     DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
30     {
31     // IUnknown
32     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
33     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
34     STDMETHOD_(ULONG, Release)(THIS) PURE;
35    
36     // ID3DXBuffer
37     STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
38     STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
39     };
40    
41    
42    
43    
44    
45     ///////////////////////////////////////////////////////////////////////////
46     // ID3DXFont:
47     // ----------
48     // Font objects contain the textures and resources needed to render
49     // a specific font on a specific device.
50     //
51     // Begin -
52     // Prepartes device for drawing text. This is optional.. if DrawText
53     // is called outside of Begin/End, it will call Begin and End for you.
54     //
55     // DrawText -
56     // Draws formatted text on a D3D device. Some parameters are
57     // surprisingly similar to those of GDI's DrawText function. See GDI
58     // documentation for a detailed description of these parameters.
59     //
60     // End -
61     // Restores device state to how it was when Begin was called.
62     ///////////////////////////////////////////////////////////////////////////
63    
64     typedef interface ID3DXFont ID3DXFont;
65     typedef interface ID3DXFont *LPD3DXFONT;
66    
67    
68     // {2D501DF7-D253-4414-865F-A6D54A753138}
69     DEFINE_GUID( IID_ID3DXFont,
70     0x2d501df7, 0xd253, 0x4414, 0x86, 0x5f, 0xa6, 0xd5, 0x4a, 0x75, 0x31, 0x38);
71    
72    
73     DECLARE_INTERFACE_(ID3DXFont, IUnknown)
74     {
75     // IUnknown
76     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
77     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
78     STDMETHOD_(ULONG, Release)(THIS) PURE;
79    
80     // ID3DXFont
81     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
82     STDMETHOD(GetLogFont)(THIS_ LOGFONT* pLogFont) PURE;
83    
84     STDMETHOD(Begin)(THIS) PURE;
85    
86     STDMETHOD_(INT, DrawTextA)(THIS_ LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
87     STDMETHOD_(INT, DrawTextW)(THIS_ LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
88    
89     STDMETHOD(End)(THIS) PURE;
90     };
91    
92     #ifndef DrawText
93     #ifdef UNICODE
94     #define DrawText DrawTextW
95     #else
96     #define DrawText DrawTextA
97     #endif
98     #endif
99    
100    
101     #ifdef __cplusplus
102     extern "C" {
103     #endif //__cplusplus
104    
105     HRESULT WINAPI
106     D3DXCreateFont(
107     LPDIRECT3DDEVICE8 pDevice,
108     HFONT hFont,
109     LPD3DXFONT* ppFont);
110    
111    
112     HRESULT WINAPI
113     D3DXCreateFontIndirect(
114     LPDIRECT3DDEVICE8 pDevice,
115     CONST LOGFONT* pLogFont,
116     LPD3DXFONT* ppFont);
117    
118     #ifdef __cplusplus
119     }
120     #endif //__cplusplus
121    
122    
123    
124    
125    
126    
127    
128     ///////////////////////////////////////////////////////////////////////////
129     // ID3DXSprite:
130     // ------------
131     // This object intends to provide an easy way to drawing sprites using D3D.
132     //
133     // Begin -
134     // Prepares device for drawing sprites
135     //
136     // Draw, DrawAffine, DrawTransform
137     // Draws a sprite in screen-space. Before transformation, the sprite is
138     // the size of SrcRect, with its top-left corner at the origin (0,0).
139     // The color and alpha channels are modulated by Color.
140     //
141     // End -
142     // Restores device state to how it was when Begin was called.
143     ///////////////////////////////////////////////////////////////////////////
144    
145     typedef interface ID3DXSprite ID3DXSprite;
146     typedef interface ID3DXSprite *LPD3DXSPRITE;
147    
148    
149     // {E8691849-87B8-4929-9050-1B0542D5538C}
150     DEFINE_GUID( IID_ID3DXSprite,
151     0xe8691849, 0x87b8, 0x4929, 0x90, 0x50, 0x1b, 0x5, 0x42, 0xd5, 0x53, 0x8c);
152    
153    
154     DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
155     {
156     // IUnknown
157     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
158     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
159     STDMETHOD_(ULONG, Release)(THIS) PURE;
160    
161     // ID3DXSprite
162     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
163    
164     STDMETHOD(Begin)(THIS) PURE;
165    
166     STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE8 pSrcTexture,
167     CONST RECT* pSrcRect, CONST D3DXVECTOR2* pScaling,
168     CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation,
169     CONST D3DXVECTOR2* pTranslation, D3DCOLOR Color) PURE;
170    
171     STDMETHOD(DrawTransform)(THIS_ LPDIRECT3DTEXTURE8 pSrcTexture,
172     CONST RECT* pSrcRect, CONST D3DXMATRIX* pTransform,
173     D3DCOLOR Color) PURE;
174    
175     STDMETHOD(End)(THIS) PURE;
176     };
177    
178    
179     #ifdef __cplusplus
180     extern "C" {
181     #endif //__cplusplus
182    
183    
184     HRESULT WINAPI
185     D3DXCreateSprite(
186     LPDIRECT3DDEVICE8 pDevice,
187     LPD3DXSPRITE* ppSprite);
188    
189     #ifdef __cplusplus
190     }
191     #endif //__cplusplus
192    
193    
194    
195    
196    
197     ///////////////////////////////////////////////////////////////////////////
198     // ID3DXRenderToSurface:
199     // ---------------------
200     // This object abstracts rendering to surfaces. These surfaces do not
201     // necessarily need to be render targets. If they are not, a compatible
202     // render target is used, and the result copied into surface at end scene.
203     ///////////////////////////////////////////////////////////////////////////
204    
205     typedef struct _D3DXRTS_DESC
206     {
207     UINT Width;
208     UINT Height;
209     D3DFORMAT Format;
210     BOOL DepthStencil;
211     D3DFORMAT DepthStencilFormat;
212    
213     } D3DXRTS_DESC;
214    
215    
216     typedef interface ID3DXRenderToSurface ID3DXRenderToSurface;
217     typedef interface ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
218    
219    
220     // {69CC587C-E40C-458d-B5D3-B029E18EB60A}
221     DEFINE_GUID( IID_ID3DXRenderToSurface,
222     0x69cc587c, 0xe40c, 0x458d, 0xb5, 0xd3, 0xb0, 0x29, 0xe1, 0x8e, 0xb6, 0xa);
223    
224    
225     DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
226     {
227     // IUnknown
228     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
229     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
230     STDMETHOD_(ULONG, Release)(THIS) PURE;
231    
232     // ID3DXRenderToSurface
233     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
234     STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC* pDesc) PURE;
235    
236     STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE8 pSurface, CONST D3DVIEWPORT8* pViewport) PURE;
237     STDMETHOD(EndScene)(THIS) PURE;
238     };
239    
240    
241     #ifdef __cplusplus
242     extern "C" {
243     #endif //__cplusplus
244    
245     HRESULT WINAPI
246     D3DXCreateRenderToSurface(
247     LPDIRECT3DDEVICE8 pDevice,
248     UINT Width,
249     UINT Height,
250     D3DFORMAT Format,
251     BOOL DepthStencil,
252     D3DFORMAT DepthStencilFormat,
253     LPD3DXRENDERTOSURFACE* ppRenderToSurface);
254    
255     #ifdef __cplusplus
256     }
257     #endif //__cplusplus
258    
259    
260    
261     ///////////////////////////////////////////////////////////////////////////
262     // ID3DXRenderToEnvMap:
263     // --------------------
264     ///////////////////////////////////////////////////////////////////////////
265    
266     typedef struct _D3DXRTE_DESC
267     {
268     UINT Size;
269     D3DFORMAT Format;
270     BOOL DepthStencil;
271     D3DFORMAT DepthStencilFormat;
272     } D3DXRTE_DESC;
273    
274    
275     typedef interface ID3DXRenderToEnvMap ID3DXRenderToEnvMap;
276     typedef interface ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
277    
278     // {9F6779E5-60A9-4d8b-AEE4-32770F405DBA}
279     DEFINE_GUID( IID_ID3DXRenderToEnvMap,
280     0x9f6779e5, 0x60a9, 0x4d8b, 0xae, 0xe4, 0x32, 0x77, 0xf, 0x40, 0x5d, 0xba);
281    
282    
283     DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
284     {
285     // IUnknown
286     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
287     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
288     STDMETHOD_(ULONG, Release)(THIS) PURE;
289    
290     // ID3DXRenderToEnvMap
291     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
292     STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC* pDesc) PURE;
293    
294     STDMETHOD(BeginCube)(THIS_
295     LPDIRECT3DCUBETEXTURE8 pCubeTex) PURE;
296    
297     STDMETHOD(BeginSphere)(THIS_
298     LPDIRECT3DTEXTURE8 pTex) PURE;
299    
300     STDMETHOD(BeginHemisphere)(THIS_
301     LPDIRECT3DTEXTURE8 pTexZPos,
302     LPDIRECT3DTEXTURE8 pTexZNeg) PURE;
303    
304     STDMETHOD(BeginParabolic)(THIS_
305     LPDIRECT3DTEXTURE8 pTexZPos,
306     LPDIRECT3DTEXTURE8 pTexZNeg) PURE;
307    
308     STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face) PURE;
309     STDMETHOD(End)(THIS) PURE;
310     };
311    
312    
313     #ifdef __cplusplus
314     extern "C" {
315     #endif //__cplusplus
316    
317     HRESULT WINAPI
318     D3DXCreateRenderToEnvMap(
319     LPDIRECT3DDEVICE8 pDevice,
320     UINT Size,
321     D3DFORMAT Format,
322     BOOL DepthStencil,
323     D3DFORMAT DepthStencilFormat,
324     LPD3DXRenderToEnvMap* ppRenderToEnvMap);
325    
326     #ifdef __cplusplus
327     }
328     #endif //__cplusplus
329    
330    
331    
332     ///////////////////////////////////////////////////////////////////////////
333     // Shader assemblers:
334     ///////////////////////////////////////////////////////////////////////////
335    
336     //-------------------------------------------------------------------------
337     // D3DXASM flags:
338     // --------------
339     //
340     // D3DXASM_DEBUG
341     // Generate debug info.
342     //
343     // D3DXASM_SKIPVALIDATION
344     // Do not validate the generated code against known capabilities and
345     // constraints. This option is only recommended when assembling shaders
346     // you KNOW will work. (ie. have assembled before without this option.)
347     //-------------------------------------------------------------------------
348    
349     #define D3DXASM_DEBUG (1 << 0)
350     #define D3DXASM_SKIPVALIDATION (1 << 1)
351    
352    
353     #ifdef __cplusplus
354     extern "C" {
355     #endif //__cplusplus
356    
357     //-------------------------------------------------------------------------
358     // D3DXAssembleShader:
359     // ------------------------
360     // Assembles an ascii description of a vertex or pixel shader into
361     // binary form.
362     //
363     // Parameters:
364     // pSrcFile
365     // Source file name
366     // pSrcData
367     // Pointer to source code
368     // SrcDataLen
369     // Size of source code, in bytes
370     // Flags
371     // D3DXASM_xxx flags
372     // ppConstants
373     // Returns an ID3DXBuffer object containing constant declarations.
374     // ppCompiledShader
375     // Returns an ID3DXBuffer object containing the object code.
376     // ppCompilationErrors
377     // Returns an ID3DXBuffer object containing ascii error messages
378     //-------------------------------------------------------------------------
379    
380     HRESULT WINAPI
381     D3DXAssembleShaderFromFileA(
382     LPCSTR pSrcFile,
383     DWORD Flags,
384     LPD3DXBUFFER* ppConstants,
385     LPD3DXBUFFER* ppCompiledShader,
386     LPD3DXBUFFER* ppCompilationErrors);
387    
388     HRESULT WINAPI
389     D3DXAssembleShaderFromFileW(
390     LPCWSTR pSrcFile,
391     DWORD Flags,
392     LPD3DXBUFFER* ppConstants,
393     LPD3DXBUFFER* ppCompiledShader,
394     LPD3DXBUFFER* ppCompilationErrors);
395    
396     #ifdef UNICODE
397     #define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
398     #else
399     #define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileA
400     #endif
401    
402     HRESULT WINAPI
403     D3DXAssembleShader(
404     LPCVOID pSrcData,
405     UINT SrcDataLen,
406     DWORD Flags,
407     LPD3DXBUFFER* ppConstants,
408     LPD3DXBUFFER* ppCompiledShader,
409     LPD3DXBUFFER* ppCompilationErrors);
410    
411    
412     #ifdef __cplusplus
413     }
414     #endif //__cplusplus
415    
416    
417     ///////////////////////////////////////////////////////////////////////////
418     // Misc APIs:
419     ///////////////////////////////////////////////////////////////////////////
420    
421     #ifdef __cplusplus
422     extern "C" {
423     #endif //__cplusplus
424    
425    
426     //-------------------------------------------------------------------------
427     // D3DXGetFVFVertexSize:
428     // ---------------------
429     // Returns the size (in bytes) of a vertex for a given FVF.
430     //-------------------------------------------------------------------------
431    
432     UINT WINAPI
433     D3DXGetFVFVertexSize(DWORD FVF);
434    
435    
436     //-------------------------------------------------------------------------
437     // D3DXGetErrorString:
438     // ------------------
439     // Returns the error string for given an hresult. Interprets all D3DX and
440     // D3D hresults.
441     //
442     // Parameters:
443     // hr
444     // The error code to be deciphered.
445     // pBuffer
446     // Pointer to the buffer to be filled in.
447     // BufferLen
448     // Count of characters in buffer. Any error message longer than this
449     // length will be truncated to fit.
450     //-------------------------------------------------------------------------
451     HRESULT WINAPI
452     D3DXGetErrorStringA(
453     HRESULT hr,
454     LPSTR pBuffer,
455     UINT BufferLen);
456    
457     HRESULT WINAPI
458     D3DXGetErrorStringW(
459     HRESULT hr,
460     LPWSTR pBuffer,
461     UINT BufferLen);
462    
463     #ifdef UNICODE
464     #define D3DXGetErrorString D3DXGetErrorStringW
465     #else
466     #define D3DXGetErrorString D3DXGetErrorStringA
467     #endif
468    
469    
470    
471     #ifdef __cplusplus
472     }
473     #endif //__cplusplus
474    
475    
476     #endif //__D3DX8CORE_H__

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26