home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / d3dx9core.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-12-04  |  17.0 KB  |  573 lines

  1. ///////////////////////////////////////////////////////////////////////////
  2. //
  3. //  Copyright (C) Microsoft Corporation.  All Rights Reserved.
  4. //
  5. //  File:       d3dx9core.h
  6. //  Content:    D3DX core types and functions
  7. //
  8. ///////////////////////////////////////////////////////////////////////////
  9.  
  10. #include "d3dx9.h"
  11.  
  12. #ifndef __D3DX9CORE_H__
  13. #define __D3DX9CORE_H__
  14.  
  15. ///////////////////////////////////////////////////////////////////////////
  16. // D3DX_SDK_VERSION:
  17. // -----------------
  18. // This identifier is passed to D3DXCheckVersion in order to ensure that an
  19. // application was built against the correct header files and lib files. 
  20. // This number is incremented whenever a header (or other) change would 
  21. // require applications to be rebuilt. If the version doesn't match, 
  22. // D3DXCreateVersion will return FALSE. (The number itself has no meaning.)
  23. ///////////////////////////////////////////////////////////////////////////
  24.  
  25. #define D3DX_VERSION 0x0900
  26. #define D3DX_SDK_VERSION 9
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif //__cplusplus
  31.  
  32. BOOL WINAPI
  33.     D3DXCheckVersion(UINT D3DSdkVersion, UINT D3DXSdkVersion);
  34.  
  35.  
  36.  
  37. ///////////////////////////////////////////////////////////////////////////
  38. // D3DXGetDriverLevel:
  39. //    Returns driver version information:
  40. //
  41. //    700 - DX7 level driver
  42. //    800 - DX8 level driver
  43. //    900 - DX9 level driver
  44. ///////////////////////////////////////////////////////////////////////////
  45. UINT WINAPI
  46.     D3DXGetDriverLevel(LPDIRECT3DDEVICE9 pDevice);
  47.  
  48. #ifdef __cplusplus
  49. }
  50. #endif //__cplusplus
  51.  
  52.  
  53. ///////////////////////////////////////////////////////////////////////////
  54. // ID3DXBuffer:
  55. // ------------
  56. // The buffer object is used by D3DX to return arbitrary size data.
  57. //
  58. // GetBufferPointer -
  59. //    Returns a pointer to the beginning of the buffer.
  60. //
  61. // GetBufferSize -
  62. //    Returns the size of the buffer, in bytes.
  63. ///////////////////////////////////////////////////////////////////////////
  64.  
  65. typedef interface ID3DXBuffer ID3DXBuffer;
  66. typedef interface ID3DXBuffer *LPD3DXBUFFER;
  67.  
  68. // {932E6A7E-C68E-45dd-A7BF-53D19C86DB1F}
  69. DEFINE_GUID(IID_ID3DXBuffer, 
  70. 0x932e6a7e, 0xc68e, 0x45dd, 0xa7, 0xbf, 0x53, 0xd1, 0x9c, 0x86, 0xdb, 0x1f);
  71.  
  72. #undef INTERFACE
  73. #define INTERFACE ID3DXBuffer
  74.  
  75. DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
  76. {
  77.     // IUnknown
  78.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  79.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  80.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  81.  
  82.     // ID3DXBuffer
  83.     STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
  84.     STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
  85. };
  86.  
  87.  
  88.  
  89. ///////////////////////////////////////////////////////////////////////////
  90. // ID3DXFont:
  91. // ----------
  92. // Font objects contain the textures and resources needed to render
  93. // a specific font on a specific device.
  94. //
  95. // Begin -
  96. //    Prepartes device for drawing text.  This is optional.. if DrawText
  97. //    is called outside of Begin/End, it will call Begin and End for you.
  98. //
  99. // DrawText -
  100. //    Draws formatted text on a D3D device.  Some parameters are 
  101. //    surprisingly similar to those of GDI's DrawText function.  See GDI 
  102. //    documentation for a detailed description of these parameters.
  103. //
  104. // End -
  105. //    Restores device state to how it was when Begin was called.
  106. //
  107. // OnLostDevice, OnResetDevice -
  108. //    Call OnLostDevice() on this object before calling Reset() on the
  109. //    device, so that this object can release any stateblocks and video
  110. //    memory resources.  After Reset(), the call OnResetDevice().
  111. //
  112. ///////////////////////////////////////////////////////////////////////////
  113.  
  114. typedef interface ID3DXFont ID3DXFont;
  115. typedef interface ID3DXFont *LPD3DXFONT;
  116.  
  117.  
  118. // {4AAE6B4D-D15F-4909-B09F-8D6AA34AC06B}
  119. DEFINE_GUID( IID_ID3DXFont, 
  120. 0x4aae6b4d, 0xd15f, 0x4909, 0xb0, 0x9f, 0x8d, 0x6a, 0xa3, 0x4a, 0xc0, 0x6b);
  121.  
  122.  
  123. #undef INTERFACE
  124. #define INTERFACE ID3DXFont
  125.  
  126. DECLARE_INTERFACE_(ID3DXFont, IUnknown)
  127. {
  128.     // IUnknown
  129.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  130.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  131.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  132.  
  133.     // ID3DXFont
  134.     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
  135.     STDMETHOD(GetLogFont)(THIS_ LOGFONT* pLogFont) PURE;
  136.  
  137.     STDMETHOD(Begin)(THIS) PURE;
  138.     STDMETHOD_(INT, DrawTextA)(THIS_ LPCSTR  pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
  139.     STDMETHOD_(INT, DrawTextW)(THIS_ LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
  140.     STDMETHOD(End)(THIS) PURE;
  141.  
  142.     STDMETHOD(OnLostDevice)(THIS) PURE;
  143.     STDMETHOD(OnResetDevice)(THIS) PURE;
  144. };
  145.  
  146. #ifndef DrawText
  147. #ifdef UNICODE
  148. #define DrawText DrawTextW
  149. #else
  150. #define DrawText DrawTextA
  151. #endif
  152. #endif
  153.  
  154.  
  155. #ifdef __cplusplus
  156. extern "C" {
  157. #endif //__cplusplus
  158.  
  159. HRESULT WINAPI
  160.     D3DXCreateFont(
  161.         LPDIRECT3DDEVICE9   pDevice,
  162.         HFONT               hFont,
  163.         LPD3DXFONT*         ppFont);
  164.  
  165.  
  166. HRESULT WINAPI
  167.     D3DXCreateFontIndirect(
  168.         LPDIRECT3DDEVICE9   pDevice,
  169.         CONST LOGFONT*      pLogFont,
  170.         LPD3DXFONT*         ppFont);
  171.  
  172. #ifdef __cplusplus
  173. }
  174. #endif //__cplusplus
  175.  
  176.  
  177.  
  178.  
  179. ///////////////////////////////////////////////////////////////////////////
  180. // ID3DXSprite:
  181. // ------------
  182. // This object intends to provide an easy way to drawing sprites using D3D.
  183. //
  184. // Begin - 
  185. //    Prepares device for drawing sprites
  186. //
  187. // Draw, DrawAffine, DrawTransform -
  188. //    Draws a sprite in screen-space.  Before transformation, the sprite is
  189. //    the size of SrcRect, with its top-left corner at the origin (0,0).  
  190. //    The color and alpha channels are modulated by Color.
  191. //
  192. // End - 
  193. //     Restores device state to how it was when Begin was called.
  194. //
  195. // OnLostDevice, OnResetDevice -
  196. //    Call OnLostDevice() on this object before calling Reset() on the
  197. //    device, so that this object can release any stateblocks and video
  198. //    memory resources.  After Reset(), the call OnResetDevice().
  199. ///////////////////////////////////////////////////////////////////////////
  200.  
  201. typedef interface ID3DXSprite ID3DXSprite;
  202. typedef interface ID3DXSprite *LPD3DXSPRITE;
  203.  
  204.  
  205. // {B07EC84A-8D35-4e86-A9A0-8DFF21D71075}
  206. DEFINE_GUID( IID_ID3DXSprite, 
  207. 0xb07ec84a, 0x8d35, 0x4e86, 0xa9, 0xa0, 0x8d, 0xff, 0x21, 0xd7, 0x10, 0x75);
  208.  
  209.  
  210. #undef INTERFACE
  211. #define INTERFACE ID3DXSprite
  212.  
  213. DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
  214. {
  215.     // IUnknown
  216.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  217.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  218.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  219.  
  220.     // ID3DXSprite
  221.     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
  222.  
  223.     STDMETHOD(Begin)(THIS) PURE;
  224.  
  225.     STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE9  pSrcTexture, 
  226.         CONST RECT* pSrcRect, CONST D3DXVECTOR2* pScaling, 
  227.         CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation, 
  228.         CONST D3DXVECTOR2* pTranslation, D3DCOLOR Color) PURE;
  229.  
  230.     STDMETHOD(DrawTransform)(THIS_ LPDIRECT3DTEXTURE9 pSrcTexture, 
  231.         CONST RECT* pSrcRect, CONST D3DXMATRIX* pTransform, 
  232.         D3DCOLOR Color) PURE;
  233.  
  234.     STDMETHOD(End)(THIS) PURE;
  235.  
  236.     STDMETHOD(OnLostDevice)(THIS) PURE;
  237.     STDMETHOD(OnResetDevice)(THIS) PURE;
  238. };
  239.  
  240.  
  241. #ifdef __cplusplus
  242. extern "C" {
  243. #endif //__cplusplus
  244.  
  245.  
  246. HRESULT WINAPI
  247.     D3DXCreateSprite(
  248.         LPDIRECT3DDEVICE9   pDevice,
  249.         LPD3DXSPRITE*       ppSprite);
  250.  
  251. #ifdef __cplusplus
  252. }
  253. #endif //__cplusplus
  254.  
  255.  
  256.  
  257.  
  258. ///////////////////////////////////////////////////////////////////////////
  259. // ID3DXRenderToSurface:
  260. // ---------------------
  261. // This object abstracts rendering to surfaces.  These surfaces do not 
  262. // necessarily need to be render targets.  If they are not, a compatible
  263. // render target is used, and the result copied into surface at end scene.
  264. //
  265. // BeginScene, EndScene -
  266. //    Call BeginScene() and EndScene() at the beginning and ending of your
  267. //    scene.  These calls will setup and restore render targets, viewports, 
  268. //    etc.. 
  269. //
  270. // OnLostDevice, OnResetDevice -
  271. //    Call OnLostDevice() on this object before calling Reset() on the
  272. //    device, so that this object can release any stateblocks and video
  273. //    memory resources.  After Reset(), the call OnResetDevice().
  274. ///////////////////////////////////////////////////////////////////////////
  275.  
  276. typedef struct _D3DXRTS_DESC
  277. {
  278.     UINT                Width;
  279.     UINT                Height;
  280.     D3DFORMAT           Format;
  281.     BOOL                DepthStencil;
  282.     D3DFORMAT           DepthStencilFormat;
  283.  
  284. } D3DXRTS_DESC;
  285.  
  286.  
  287. typedef interface ID3DXRenderToSurface ID3DXRenderToSurface;
  288. typedef interface ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
  289.  
  290.  
  291. // {0D014791-8863-4c2c-A1C0-02F3E0C0B653}
  292. DEFINE_GUID( IID_ID3DXRenderToSurface, 
  293. 0xd014791, 0x8863, 0x4c2c, 0xa1, 0xc0, 0x2, 0xf3, 0xe0, 0xc0, 0xb6, 0x53);
  294.  
  295.  
  296. #undef INTERFACE
  297. #define INTERFACE ID3DXRenderToSurface
  298.  
  299. DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
  300. {
  301.     // IUnknown
  302.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  303.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  304.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  305.  
  306.     // ID3DXRenderToSurface
  307.     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
  308.     STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC* pDesc) PURE;
  309.  
  310.     STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE9 pSurface, CONST D3DVIEWPORT9* pViewport) PURE;
  311.     STDMETHOD(EndScene)(THIS_ DWORD MipFilter) PURE;
  312.  
  313.     STDMETHOD(OnLostDevice)(THIS) PURE;
  314.     STDMETHOD(OnResetDevice)(THIS) PURE;
  315. };
  316.  
  317.  
  318. #ifdef __cplusplus
  319. extern "C" {
  320. #endif //__cplusplus
  321.  
  322. HRESULT WINAPI
  323.     D3DXCreateRenderToSurface(
  324.         LPDIRECT3DDEVICE9       pDevice,
  325.         UINT                    Width,
  326.         UINT                    Height,
  327.         D3DFORMAT               Format,
  328.         BOOL                    DepthStencil,
  329.         D3DFORMAT               DepthStencilFormat,
  330.         LPD3DXRENDERTOSURFACE*  ppRenderToSurface);
  331.  
  332. #ifdef __cplusplus
  333. }
  334. #endif //__cplusplus
  335.  
  336.  
  337.  
  338.  
  339. ///////////////////////////////////////////////////////////////////////////
  340. // ID3DXRenderToEnvMap:
  341. // --------------------
  342. // This object abstracts rendering to environment maps.  These surfaces 
  343. // do not necessarily need to be render targets.  If they are not, a 
  344. // compatible render target is used, and the result copied into the
  345. // environment map at end scene.
  346. //
  347. // BeginCube, BeginSphere, BeginHemisphere, BeginParabolic -
  348. //    This function initiates the rendering of the environment map.  As
  349. //    parameters, you pass the textures in which will get filled in with
  350. //    the resulting environment map.
  351. //
  352. // Face -
  353. //    Call this function to initiate the drawing of each face.  For each 
  354. //    environment map, you will call this six times.. once for each face 
  355. //    in D3DCUBEMAP_FACES.
  356. //
  357. // End -
  358. //    This will restore all render targets, and if needed compose all the
  359. //    rendered faces into the environment map surfaces.
  360. //
  361. // OnLostDevice, OnResetDevice -
  362. //    Call OnLostDevice() on this object before calling Reset() on the
  363. //    device, so that this object can release any stateblocks and video
  364. //    memory resources.  After Reset(), the call OnResetDevice().
  365. ///////////////////////////////////////////////////////////////////////////
  366.  
  367. typedef struct _D3DXRTE_DESC
  368. {
  369.     UINT        Size;
  370.     UINT        MipLevels;
  371.     D3DFORMAT   Format;
  372.     BOOL        DepthStencil;
  373.     D3DFORMAT   DepthStencilFormat;
  374. } D3DXRTE_DESC;
  375.  
  376.  
  377. typedef interface ID3DXRenderToEnvMap ID3DXRenderToEnvMap;
  378. typedef interface ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
  379.  
  380.  
  381. // {1561135E-BC78-495b-8586-94EA537BD557}
  382. DEFINE_GUID( IID_ID3DXRenderToEnvMap, 
  383. 0x1561135e, 0xbc78, 0x495b, 0x85, 0x86, 0x94, 0xea, 0x53, 0x7b, 0xd5, 0x57);
  384.  
  385.  
  386. #undef INTERFACE
  387. #define INTERFACE ID3DXRenderToEnvMap
  388.  
  389. DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
  390. {
  391.     // IUnknown
  392.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  393.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  394.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  395.  
  396.     // ID3DXRenderToEnvMap
  397.     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
  398.     STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC* pDesc) PURE;
  399.  
  400.     STDMETHOD(BeginCube)(THIS_ 
  401.         LPDIRECT3DCUBETEXTURE9 pCubeTex) PURE;
  402.  
  403.     STDMETHOD(BeginSphere)(THIS_
  404.         LPDIRECT3DTEXTURE9 pTex) PURE;
  405.  
  406.     STDMETHOD(BeginHemisphere)(THIS_ 
  407.         LPDIRECT3DTEXTURE9 pTexZPos,
  408.         LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
  409.  
  410.     STDMETHOD(BeginParabolic)(THIS_ 
  411.         LPDIRECT3DTEXTURE9 pTexZPos,
  412.         LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
  413.  
  414.     STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face, DWORD MipFilter) PURE;
  415.     STDMETHOD(End)(THIS_ DWORD MipFilter) PURE;
  416.  
  417.     STDMETHOD(OnLostDevice)(THIS) PURE;
  418.     STDMETHOD(OnResetDevice)(THIS) PURE;
  419. };
  420.  
  421.  
  422. #ifdef __cplusplus
  423. extern "C" {
  424. #endif //__cplusplus
  425.  
  426. HRESULT WINAPI
  427.     D3DXCreateRenderToEnvMap(
  428.         LPDIRECT3DDEVICE9       pDevice,
  429.         UINT                    Size,
  430.         UINT                    MipLevels,
  431.         D3DFORMAT               Format,
  432.         BOOL                    DepthStencil,
  433.         D3DFORMAT               DepthStencilFormat,
  434.         LPD3DXRenderToEnvMap*   ppRenderToEnvMap);
  435.  
  436. #ifdef __cplusplus
  437. }
  438. #endif //__cplusplus
  439.  
  440.  
  441.  
  442. ///////////////////////////////////////////////////////////////////////////
  443. // ID3DXLine:
  444. // ------------
  445. // This object intends to provide an easy way to draw lines using D3D.
  446. //
  447. // Begin - 
  448. //    Prepares device for drawing lines
  449. //
  450. // Draw -
  451. //    Draws a line strip in screen-space.
  452. //    Input is in the form of a array defining points on the line strip. of D3DXVECTOR2 
  453. //
  454. // DrawTransform -
  455. //    Draws a line in screen-space with a specified input transformation matrix.
  456. //
  457. // End - 
  458. //     Restores device state to how it was when Begin was called.
  459. //
  460. // SetPattern - 
  461. //     Applies a stipple pattern to the line.  Input is one 32-bit
  462. //     DWORD which describes the stipple pattern. 1 is opaque, 0 is
  463. //     transparent.
  464. //
  465. // SetPatternScale - 
  466. //     Stretches the stipple pattern in the u direction.  Input is one
  467. //     floating-point value.  0.0f is no scaling, whereas 1.0f doubles
  468. //     the length of the stipple pattern.
  469. //
  470. // SetWidth - 
  471. //     Specifies the thickness of the line in the v direction.  Input is
  472. //     one floating-point value.
  473. //
  474. // SetAntialias - 
  475. //     Toggles line antialiasing.  Input is a BOOL.
  476. //     TRUE  = Antialiasing on.
  477. //     FALSE = Antialiasing off.
  478. //
  479. // SetGLLines - 
  480. //     Toggles non-antialiased OpenGL line emulation.  Input is a BOOL.
  481. //     TRUE  = OpenGL line emulation on.
  482. //     FALSE = OpenGL line emulation off.
  483. //
  484. // OpenGL line:     Regular line:  
  485. //   *\                *\
  486. //   | \              /  \
  487. //   |  \            *\   \
  488. //   *\  \             \   \
  489. //     \  \             \   \
  490. //      \  *             \   *
  491. //       \ |              \ /
  492. //        \|               *
  493. //         *
  494. //
  495. // OnLostDevice, OnResetDevice -
  496. //    Call OnLostDevice() on this object before calling Reset() on the
  497. //    device, so that this object can release any stateblocks and video
  498. //    memory resources.  After Reset(), the call OnResetDevice().
  499. ///////////////////////////////////////////////////////////////////////////
  500.  
  501.  
  502. typedef interface ID3DXLine ID3DXLine;
  503. typedef interface ID3DXLine *LPD3DXLINE;
  504.  
  505.  
  506. // {72CE4D70-CC40-4143-A896-32E50AD2EF35}
  507. DEFINE_GUID( IID_ID3DXLine, 
  508. 0x72ce4d70, 0xcc40, 0x4143, 0xa8, 0x96, 0x32, 0xe5, 0xa, 0xd2, 0xef, 0x35);
  509.  
  510. #undef INTERFACE
  511. #define INTERFACE ID3DXLine
  512.  
  513. DECLARE_INTERFACE_(ID3DXLine, IUnknown)
  514. {
  515.     // IUnknown
  516.     STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
  517.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  518.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  519.  
  520.     // ID3DXLine
  521.     STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
  522.  
  523.     STDMETHOD(Begin)(THIS) PURE;
  524.  
  525.     STDMETHOD(Draw)(THIS_ CONST D3DXVECTOR2 *pVertexList,
  526.         DWORD dwVertexListCount, D3DCOLOR Color) PURE;
  527.  
  528.     STDMETHOD(DrawTransform)(THIS_ CONST D3DXVECTOR3 *pVertexList,
  529.         DWORD dwVertexListCount, CONST D3DXMATRIX* pTransform, 
  530.         D3DCOLOR Color) PURE;
  531.  
  532.     STDMETHOD(SetPattern)(THIS_ DWORD dwPattern) PURE;
  533.     STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
  534.  
  535.     STDMETHOD(SetPatternScale)(THIS_ FLOAT fPatternScale) PURE;
  536.     STDMETHOD_(FLOAT, GetPatternScale)(THIS) PURE;
  537.  
  538.     STDMETHOD(SetWidth)(THIS_ FLOAT fWidth) PURE;
  539.     STDMETHOD_(FLOAT, GetWidth)(THIS) PURE;
  540.  
  541.     STDMETHOD(SetAntialias)(THIS_ BOOL bAntialias) PURE;
  542.     STDMETHOD_(BOOL, GetAntialias)(THIS) PURE;
  543.  
  544.     STDMETHOD(SetGLLines)(THIS_ BOOL bGLLines) PURE;
  545.     STDMETHOD_(BOOL, GetGLLines)(THIS) PURE;
  546.  
  547.     STDMETHOD(End)(THIS) PURE;
  548.  
  549.     STDMETHOD(OnLostDevice)(THIS) PURE;
  550.     STDMETHOD(OnResetDevice)(THIS) PURE;
  551. };
  552.  
  553.  
  554. #ifdef __cplusplus
  555. extern "C" {
  556. #endif //__cplusplus
  557.  
  558.  
  559. HRESULT WINAPI
  560.     D3DXCreateLine(
  561.         LPDIRECT3DDEVICE9   pDevice,
  562.         LPD3DXLINE*         ppLine);
  563.  
  564. #ifdef __cplusplus
  565. }
  566. #endif //__cplusplus
  567.  
  568.  
  569.  
  570.  
  571. #endif //__D3DX9CORE_H__
  572.  
  573.