ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

d3d8_private.h
Go to the documentation of this file.
00001 /*
00002  * Direct3D 8 private include file
00003  *
00004  * Copyright 2002-2004 Jason Edmeades
00005  * Copyright 2003-2004 Raphael Junqueira
00006  * Copyright 2004 Christian Costa
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2.1 of the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00021  */
00022 
00023 #ifndef __WINE_D3D8_PRIVATE_H
00024 #define __WINE_D3D8_PRIVATE_H
00025 
00026 #include <stdarg.h>
00027 
00028 #define NONAMELESSUNION
00029 #define NONAMELESSSTRUCT
00030 #define COBJMACROS
00031 #include "windef.h"
00032 #include "winbase.h"
00033 #include "wingdi.h"
00034 #include "wine/debug.h"
00035 #include "d3d8.h"
00036 #include "wine/wined3d.h"
00037 
00038 /* CreateVertexShader can return > 0xFFFF */
00039 #define VS_HIGHESTFIXEDFXF 0xF0000000
00040 
00041 /* ===========================================================================
00042     Macros
00043    =========================================================================== */
00044 /* Not nice, but it lets wined3d support different versions of directx */
00045 #define WINECAPSTOD3D8CAPS(_pD3D8Caps, _pWineCaps) \
00046     _pD3D8Caps->DeviceType                        = (D3DDEVTYPE) _pWineCaps->DeviceType; \
00047     _pD3D8Caps->AdapterOrdinal                    = _pWineCaps->AdapterOrdinal; \
00048     _pD3D8Caps->Caps                              = _pWineCaps->Caps; \
00049     _pD3D8Caps->Caps2                             = _pWineCaps->Caps2; \
00050     _pD3D8Caps->Caps3                             = _pWineCaps->Caps3; \
00051     _pD3D8Caps->PresentationIntervals             = _pWineCaps->PresentationIntervals; \
00052     _pD3D8Caps->CursorCaps                        = _pWineCaps->CursorCaps; \
00053     _pD3D8Caps->DevCaps                           = _pWineCaps->DevCaps; \
00054     _pD3D8Caps->PrimitiveMiscCaps                 = _pWineCaps->PrimitiveMiscCaps; \
00055     _pD3D8Caps->RasterCaps                        = _pWineCaps->RasterCaps; \
00056     _pD3D8Caps->ZCmpCaps                          = _pWineCaps->ZCmpCaps; \
00057     _pD3D8Caps->SrcBlendCaps                      = _pWineCaps->SrcBlendCaps; \
00058     _pD3D8Caps->DestBlendCaps                     = _pWineCaps->DestBlendCaps; \
00059     _pD3D8Caps->AlphaCmpCaps                      = _pWineCaps->AlphaCmpCaps; \
00060     _pD3D8Caps->ShadeCaps                         = _pWineCaps->ShadeCaps; \
00061     _pD3D8Caps->TextureCaps                       = _pWineCaps->TextureCaps; \
00062     _pD3D8Caps->TextureFilterCaps                 = _pWineCaps->TextureFilterCaps; \
00063     _pD3D8Caps->CubeTextureFilterCaps             = _pWineCaps->CubeTextureFilterCaps; \
00064     _pD3D8Caps->VolumeTextureFilterCaps           = _pWineCaps->VolumeTextureFilterCaps; \
00065     _pD3D8Caps->TextureAddressCaps                = _pWineCaps->TextureAddressCaps; \
00066     _pD3D8Caps->VolumeTextureAddressCaps          = _pWineCaps->VolumeTextureAddressCaps; \
00067     _pD3D8Caps->LineCaps                          = _pWineCaps->LineCaps; \
00068     _pD3D8Caps->MaxTextureWidth                   = _pWineCaps->MaxTextureWidth; \
00069     _pD3D8Caps->MaxTextureHeight                  = _pWineCaps->MaxTextureHeight; \
00070     _pD3D8Caps->MaxVolumeExtent                   = _pWineCaps->MaxVolumeExtent; \
00071     _pD3D8Caps->MaxTextureRepeat                  = _pWineCaps->MaxTextureRepeat; \
00072     _pD3D8Caps->MaxTextureAspectRatio             = _pWineCaps->MaxTextureAspectRatio; \
00073     _pD3D8Caps->MaxAnisotropy                     = _pWineCaps->MaxAnisotropy; \
00074     _pD3D8Caps->MaxVertexW                        = _pWineCaps->MaxVertexW; \
00075     _pD3D8Caps->GuardBandLeft                     = _pWineCaps->GuardBandLeft; \
00076     _pD3D8Caps->GuardBandTop                      = _pWineCaps->GuardBandTop; \
00077     _pD3D8Caps->GuardBandRight                    = _pWineCaps->GuardBandRight; \
00078     _pD3D8Caps->GuardBandBottom                   = _pWineCaps->GuardBandBottom; \
00079     _pD3D8Caps->ExtentsAdjust                     = _pWineCaps->ExtentsAdjust; \
00080     _pD3D8Caps->StencilCaps                       = _pWineCaps->StencilCaps; \
00081     _pD3D8Caps->FVFCaps                           = _pWineCaps->FVFCaps; \
00082     _pD3D8Caps->TextureOpCaps                     = _pWineCaps->TextureOpCaps; \
00083     _pD3D8Caps->MaxTextureBlendStages             = _pWineCaps->MaxTextureBlendStages; \
00084     _pD3D8Caps->MaxSimultaneousTextures           = _pWineCaps->MaxSimultaneousTextures; \
00085     _pD3D8Caps->VertexProcessingCaps              = _pWineCaps->VertexProcessingCaps; \
00086     _pD3D8Caps->MaxActiveLights                   = _pWineCaps->MaxActiveLights; \
00087     _pD3D8Caps->MaxUserClipPlanes                 = _pWineCaps->MaxUserClipPlanes; \
00088     _pD3D8Caps->MaxVertexBlendMatrices            = _pWineCaps->MaxVertexBlendMatrices; \
00089     _pD3D8Caps->MaxVertexBlendMatrixIndex         = _pWineCaps->MaxVertexBlendMatrixIndex; \
00090     _pD3D8Caps->MaxPointSize                      = _pWineCaps->MaxPointSize; \
00091     _pD3D8Caps->MaxPrimitiveCount                 = _pWineCaps->MaxPrimitiveCount; \
00092     _pD3D8Caps->MaxVertexIndex                    = _pWineCaps->MaxVertexIndex; \
00093     _pD3D8Caps->MaxStreams                        = _pWineCaps->MaxStreams; \
00094     _pD3D8Caps->MaxStreamStride                   = _pWineCaps->MaxStreamStride; \
00095     _pD3D8Caps->VertexShaderVersion               = _pWineCaps->VertexShaderVersion; \
00096     _pD3D8Caps->MaxVertexShaderConst              = _pWineCaps->MaxVertexShaderConst; \
00097     _pD3D8Caps->PixelShaderVersion                = _pWineCaps->PixelShaderVersion; \
00098     _pD3D8Caps->MaxPixelShaderValue               = _pWineCaps->PixelShader1xMaxValue;
00099 
00100 void fixup_caps(WINED3DCAPS *pWineCaps) DECLSPEC_HIDDEN;
00101 
00102 /* Direct3D8 Interfaces: */
00103 typedef struct IDirect3DBaseTexture8Impl IDirect3DBaseTexture8Impl;
00104 typedef struct IDirect3DVolumeTexture8Impl IDirect3DVolumeTexture8Impl;
00105 typedef struct IDirect3D8Impl IDirect3D8Impl;
00106 typedef struct IDirect3DDevice8Impl IDirect3DDevice8Impl;
00107 typedef struct IDirect3DTexture8Impl IDirect3DTexture8Impl;
00108 typedef struct IDirect3DCubeTexture8Impl IDirect3DCubeTexture8Impl;
00109 typedef struct IDirect3DIndexBuffer8Impl IDirect3DIndexBuffer8Impl;
00110 typedef struct IDirect3DSurface8Impl IDirect3DSurface8Impl;
00111 typedef struct IDirect3DSwapChain8Impl IDirect3DSwapChain8Impl;
00112 typedef struct IDirect3DVolume8Impl IDirect3DVolume8Impl;
00113 typedef struct IDirect3DVertexBuffer8Impl IDirect3DVertexBuffer8Impl;
00114 typedef struct IDirect3DVertexShader8Impl IDirect3DVertexShader8Impl;
00115 
00116 /* ===========================================================================
00117     The interfaces themselves
00118    =========================================================================== */
00119 
00120 /* ---------- */
00121 /* IDirect3D8 */
00122 /* ---------- */
00123 
00124 /*****************************************************************************
00125  * Predeclare the interface implementation structures
00126  */
00127 extern const IDirect3D8Vtbl Direct3D8_Vtbl DECLSPEC_HIDDEN;
00128 
00129 /*****************************************************************************
00130  * IDirect3D implementation structure
00131  */
00132 struct IDirect3D8Impl
00133 {
00134     IDirect3D8 IDirect3D8_iface;
00135     LONG       ref;
00136     struct wined3d *WineD3D;
00137 };
00138 
00139 /*****************************************************************************
00140  * IDirect3DDevice8 implementation structure
00141  */
00142 
00143 #define D3D8_INITIAL_HANDLE_TABLE_SIZE 64
00144 #define D3D8_INVALID_HANDLE ~0U
00145 
00146 enum d3d8_handle_type
00147 {
00148     D3D8_HANDLE_FREE,
00149     D3D8_HANDLE_VS,
00150     D3D8_HANDLE_PS,
00151     D3D8_HANDLE_SB,
00152 };
00153 
00154 struct d3d8_handle_entry
00155 {
00156     void *object;
00157     enum d3d8_handle_type type;
00158 };
00159 
00160 struct d3d8_handle_table
00161 {
00162     struct d3d8_handle_entry *entries;
00163     struct d3d8_handle_entry *free_entries;
00164     UINT table_size;
00165     UINT entry_count;
00166 };
00167 
00168 struct FvfToDecl
00169 {
00170     DWORD fvf;
00171     struct IDirect3DVertexDeclaration8 *decl;
00172 };
00173 
00174 struct IDirect3DDevice8Impl
00175 {
00176     /* IUnknown fields */
00177     IDirect3DDevice8        IDirect3DDevice8_iface;
00178     struct wined3d_device_parent device_parent;
00179     LONG                    ref;
00180     struct wined3d_device  *wined3d_device;
00181     IDirect3D8             *d3d_parent;
00182     struct                  d3d8_handle_table handle_table;
00183 
00184     /* FVF management */
00185     struct FvfToDecl       *decls;
00186     UINT                    numConvertedDecls, declArraySize;
00187 
00188     /* Avoids recursion with nested ReleaseRef to 0 */
00189     BOOL                    inDestruction;
00190     BOOL lost;
00191 };
00192 
00193 HRESULT device_init(IDirect3DDevice8Impl *device, IDirect3D8Impl *parent, struct wined3d *wined3d, UINT adapter,
00194         D3DDEVTYPE device_type, HWND focus_window, DWORD flags, D3DPRESENT_PARAMETERS *parameters) DECLSPEC_HIDDEN;
00195 
00196 /* ---------------- */
00197 /* IDirect3DVolume8 */
00198 /* ---------------- */
00199 
00200 /*****************************************************************************
00201  * IDirect3DVolume8 implementation structure
00202  */
00203 struct IDirect3DVolume8Impl
00204 {
00205     IDirect3DVolume8    IDirect3DVolume8_iface;
00206     LONG                ref;
00207     struct wined3d_volume *wined3d_volume;
00208     IUnknown *container;
00209     IUnknown *forwardReference;
00210 };
00211 
00212 HRESULT volume_init(IDirect3DVolume8Impl *volume, IDirect3DDevice8Impl *device, UINT width, UINT height,
00213         UINT depth, DWORD usage, enum wined3d_format_id format, enum wined3d_pool pool) DECLSPEC_HIDDEN;
00214 
00215 /* ------------------- */
00216 /* IDirect3DSwapChain8 */
00217 /* ------------------- */
00218 
00219 /*****************************************************************************
00220  * IDirect3DSwapChain8 implementation structure
00221  */
00222 struct IDirect3DSwapChain8Impl
00223 {
00224     /* IUnknown fields */
00225     IDirect3DSwapChain8 IDirect3DSwapChain8_iface;
00226     LONG                ref;
00227     struct wined3d_swapchain *wined3d_swapchain;
00228     IDirect3DDevice8 *parentDevice;
00229 };
00230 
00231 HRESULT swapchain_init(IDirect3DSwapChain8Impl *swapchain, IDirect3DDevice8Impl *device,
00232         D3DPRESENT_PARAMETERS *present_parameters) DECLSPEC_HIDDEN;
00233 
00234 /* ----------------- */
00235 /* IDirect3DSurface8 */
00236 /* ----------------- */
00237 
00238 /*****************************************************************************
00239  * IDirect3DSurface8 implementation structure
00240  */
00241 struct IDirect3DSurface8Impl
00242 {
00243     IDirect3DSurface8 IDirect3DSurface8_iface;
00244     LONG ref;
00245     struct wined3d_surface *wined3d_surface;
00246     IDirect3DDevice8 *parentDevice;
00247 
00248     /* The surface container */
00249     IUnknown                    *container;
00250 
00251     /* If set forward refcounting to this object */
00252     IUnknown                    *forwardReference;
00253 };
00254 
00255 HRESULT surface_init(IDirect3DSurface8Impl *surface, IDirect3DDevice8Impl *device,
00256         UINT width, UINT height, D3DFORMAT format, BOOL lockable, BOOL discard, UINT level,
00257         DWORD usage, D3DPOOL pool, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality) DECLSPEC_HIDDEN;
00258 IDirect3DSurface8Impl *unsafe_impl_from_IDirect3DSurface8(IDirect3DSurface8 *iface) DECLSPEC_HIDDEN;
00259 
00260 /* ---------------------- */
00261 /* IDirect3DVertexBuffer8 */
00262 /* ---------------------- */
00263 
00264 /*****************************************************************************
00265  * IDirect3DVertexBuffer8 implementation structure
00266  */
00267 struct IDirect3DVertexBuffer8Impl
00268 {
00269     IDirect3DVertexBuffer8 IDirect3DVertexBuffer8_iface;
00270     LONG ref;
00271     struct wined3d_buffer *wineD3DVertexBuffer;
00272     IDirect3DDevice8 *parentDevice;
00273     DWORD fvf;
00274 };
00275 
00276 HRESULT vertexbuffer_init(IDirect3DVertexBuffer8Impl *buffer, IDirect3DDevice8Impl *device,
00277         UINT size, DWORD usage, DWORD fvf, D3DPOOL pool) DECLSPEC_HIDDEN;
00278 IDirect3DVertexBuffer8Impl *unsafe_impl_from_IDirect3DVertexBuffer8(IDirect3DVertexBuffer8 *iface) DECLSPEC_HIDDEN;
00279 
00280 /* --------------------- */
00281 /* IDirect3DIndexBuffer8 */
00282 /* --------------------- */
00283 
00284 /*****************************************************************************
00285  * IDirect3DIndexBuffer8 implementation structure
00286  */
00287 struct IDirect3DIndexBuffer8Impl
00288 {
00289     IDirect3DIndexBuffer8 IDirect3DIndexBuffer8_iface;
00290     LONG ref;
00291     struct wined3d_buffer *wineD3DIndexBuffer;
00292     IDirect3DDevice8 *parentDevice;
00293     enum wined3d_format_id format;
00294 };
00295 
00296 HRESULT indexbuffer_init(IDirect3DIndexBuffer8Impl *buffer, IDirect3DDevice8Impl *device,
00297         UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
00298 IDirect3DIndexBuffer8Impl *unsafe_impl_from_IDirect3DIndexBuffer8(IDirect3DIndexBuffer8 *iface) DECLSPEC_HIDDEN;
00299 
00300 /* --------------------- */
00301 /* IDirect3DBaseTexture8 */
00302 /* --------------------- */
00303 
00304 /*****************************************************************************
00305  * IDirect3DBaseTexture8 implementation structure
00306  */
00307 struct IDirect3DBaseTexture8Impl
00308 {
00309     /* IUnknown fields */
00310     const IDirect3DBaseTexture8Vtbl *lpVtbl;
00311     LONG                   ref;
00312     struct wined3d_texture *wined3d_texture;
00313 };
00314 
00315 /* --------------------- */
00316 /* IDirect3DCubeTexture8 */
00317 /* --------------------- */
00318 
00319 /*****************************************************************************
00320  * IDirect3DCubeTexture8 implementation structure
00321  */
00322 struct IDirect3DCubeTexture8Impl
00323 {
00324     IDirect3DCubeTexture8   IDirect3DCubeTexture8_iface;
00325     LONG                    ref;
00326     struct wined3d_texture *wined3d_texture;
00327     IDirect3DDevice8 *parentDevice;
00328 };
00329 
00330 HRESULT cubetexture_init(IDirect3DCubeTexture8Impl *texture, IDirect3DDevice8Impl *device,
00331         UINT edge_length, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
00332 
00333 /* ----------------- */
00334 /* IDirect3DTexture8 */
00335 /* ----------------- */
00336 
00337 /*****************************************************************************
00338  * IDirect3DTexture8 implementation structure
00339  */
00340 struct IDirect3DTexture8Impl
00341 {
00342     IDirect3DTexture8   IDirect3DTexture8_iface;
00343     LONG                ref;
00344     struct wined3d_texture *wined3d_texture;
00345     IDirect3DDevice8 *parentDevice;
00346 };
00347 
00348 HRESULT texture_init(IDirect3DTexture8Impl *texture, IDirect3DDevice8Impl *device,
00349         UINT width, UINT height, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
00350 
00351 /* ----------------------- */
00352 /* IDirect3DVolumeTexture8 */
00353 /* ----------------------- */
00354 
00355 /*****************************************************************************
00356  * IDirect3DVolumeTexture8 implementation structure
00357  */
00358 struct IDirect3DVolumeTexture8Impl
00359 {
00360     IDirect3DVolumeTexture8 IDirect3DVolumeTexture8_iface;
00361     LONG ref;
00362     struct wined3d_texture *wined3d_texture;
00363     IDirect3DDevice8 *parentDevice;
00364 };
00365 
00366 HRESULT volumetexture_init(IDirect3DVolumeTexture8Impl *texture, IDirect3DDevice8Impl *device,
00367         UINT width, UINT height, UINT depth, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
00368 
00369 DEFINE_GUID(IID_IDirect3DVertexDeclaration8,
00370 0x5dd7478d, 0xcbf3, 0x41a6, 0x8c, 0xfd, 0xfd, 0x19, 0x2b, 0x11, 0xc7, 0x90);
00371 
00372 DEFINE_GUID(IID_IDirect3DVertexShader8,
00373 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
00374 
00375 DEFINE_GUID(IID_IDirect3DPixelShader8,
00376 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
00377 
00378 /*****************************************************************************
00379  * IDirect3DVertexDeclaration8 interface
00380  */
00381 #define INTERFACE IDirect3DVertexDeclaration8
00382 DECLARE_INTERFACE_(IDirect3DVertexDeclaration8, IUnknown)
00383 {
00384     /*** IUnknown methods ***/
00385     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** obj_ptr) PURE;
00386     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00387     STDMETHOD_(ULONG,Release)(THIS) PURE;
00388 };
00389 #undef INTERFACE
00390 
00391 /*** IUnknown methods ***/
00392 #define IDirect3DVertexDeclaration8_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
00393 #define IDirect3DVertexDeclaration8_AddRef(p)              (p)->lpVtbl->AddRef(p)
00394 #define IDirect3DVertexDeclaration8_Release(p)             (p)->lpVtbl->Release(p)
00395 
00396 typedef struct {
00397     const IDirect3DVertexDeclaration8Vtbl *lpVtbl;
00398     LONG ref_count;
00399 
00400     DWORD *elements;
00401     DWORD elements_size; /* Size of elements, in bytes */
00402 
00403     struct wined3d_vertex_declaration *wined3d_vertex_declaration;
00404     DWORD shader_handle;
00405 } IDirect3DVertexDeclaration8Impl;
00406 
00407 HRESULT vertexdeclaration_init(IDirect3DVertexDeclaration8Impl *declaration,
00408         IDirect3DDevice8Impl *device, const DWORD *elements, DWORD shader_handle) DECLSPEC_HIDDEN;
00409 HRESULT vertexdeclaration_init_fvf(IDirect3DVertexDeclaration8Impl *declaration,
00410         IDirect3DDevice8Impl *device, DWORD fvf) DECLSPEC_HIDDEN;
00411 
00412 /*****************************************************************************
00413  * IDirect3DVertexShader8 interface
00414  */
00415 #define INTERFACE IDirect3DVertexShader8
00416 DECLARE_INTERFACE_(IDirect3DVertexShader8, IUnknown)
00417 {
00418     /*** IUnknown methods ***/
00419     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00420     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00421     STDMETHOD_(ULONG,Release)(THIS) PURE;
00422 };
00423 #undef INTERFACE
00424 
00425 /*** IUnknown methods ***/
00426 #define IDirect3DVertexShader8_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
00427 #define IDirect3DVertexShader8_AddRef(p)              (p)->lpVtbl->AddRef(p)
00428 #define IDirect3DVertexShader8_Release(p)             (p)->lpVtbl->Release(p)
00429 
00430 /* ------------------------- */
00431 /* IDirect3DVertexShader8Impl */
00432 /* ------------------------- */
00433 
00434 /*****************************************************************************
00435  * IDirect3DPixelShader8 interface
00436  */
00437 #define INTERFACE IDirect3DPixelShader8
00438 DECLARE_INTERFACE_(IDirect3DPixelShader8,IUnknown)
00439 {
00440     /*** IUnknown methods ***/
00441     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
00442     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
00443     STDMETHOD_(ULONG,Release)(THIS) PURE;
00444 };
00445 #undef INTERFACE
00446 
00447 /*** IUnknown methods ***/
00448 #define IDirect3DPixelShader8_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
00449 #define IDirect3DPixelShader8_AddRef(p)              (p)->lpVtbl->AddRef(p)
00450 #define IDirect3DPixelShader8_Release(p)             (p)->lpVtbl->Release(p)
00451 
00452 /*****************************************************************************
00453  * IDirect3DVertexShader implementation structure
00454  */
00455 
00456 struct IDirect3DVertexShader8Impl {
00457   IDirect3DVertexShader8            IDirect3DVertexShader8_iface;
00458   LONG                              ref;
00459   IDirect3DVertexDeclaration8 *vertex_declaration;
00460   struct wined3d_shader *wined3d_shader;
00461 };
00462 
00463 HRESULT vertexshader_init(IDirect3DVertexShader8Impl *shader, IDirect3DDevice8Impl *device,
00464         const DWORD *declaration, const DWORD *byte_code, DWORD shader_handle, DWORD usage) DECLSPEC_HIDDEN;
00465 
00466 #define D3D8_MAX_VERTEX_SHADER_CONSTANTF 256
00467 
00468 /*****************************************************************************
00469  * IDirect3DPixelShader implementation structure
00470  */
00471 typedef struct IDirect3DPixelShader8Impl {
00472     IDirect3DPixelShader8            IDirect3DPixelShader8_iface;
00473     LONG                             ref;
00474     DWORD handle;
00475     struct wined3d_shader *wined3d_shader;
00476 } IDirect3DPixelShader8Impl;
00477 
00478 HRESULT pixelshader_init(IDirect3DPixelShader8Impl *shader, IDirect3DDevice8Impl *device,
00479         const DWORD *byte_code, DWORD shader_handle) DECLSPEC_HIDDEN;
00480 
00481 D3DFORMAT d3dformat_from_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN;
00482 enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format) DECLSPEC_HIDDEN;
00483 void load_local_constants(const DWORD *d3d8_elements, struct wined3d_shader *wined3d_vertex_shader) DECLSPEC_HIDDEN;
00484 size_t parse_token(const DWORD *pToken) DECLSPEC_HIDDEN;
00485 
00486 #endif /* __WINE_D3DX8_PRIVATE_H */

Generated on Sat May 26 2012 04:20:34 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.