d3d9_private.h revision e068057c82b010bc7cc663e8f57ac3ef1890a33c
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Direct3D 9 private include file
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Copyright 2002-2003 Jason Edmeades
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Copyright 2002-2003 Raphael Junqueira
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Copyright 2005 Oliver Stieber
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * This library is free software; you can redistribute it and/or
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * modify it under the terms of the GNU Lesser General Public
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * License as published by the Free Software Foundation; either
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * version 2.1 of the License, or (at your option) any later version.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * This library is distributed in the hope that it will be useful,
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Lesser General Public License for more details.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * You should have received a copy of the GNU Lesser General Public
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * License along with this library; if not, write to the Free Software
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * a choice of LGPL license versions is made available with the language indicating
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * of the LGPL is applied is otherwise unspecified.
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync/* ===========================================================================
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync Internal use
6febf3149010855617e4a37e2c49f93d68930d44vboxsync =========================================================================== */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncextern HRESULT vdecl_convert_fvf(DWORD FVF, D3DVERTEXELEMENT9 **ppVertexElements) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncD3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncWINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsync/* ===========================================================================
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync =========================================================================== */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* Not nice, but it lets wined3d support different versions of directx */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync#define WINECAPSTOD3D9CAPS(_pD3D9Caps, _pWineCaps) \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->DeviceType = (D3DDEVTYPE) _pWineCaps->DeviceType; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->AdapterOrdinal = _pWineCaps->AdapterOrdinal; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->PresentationIntervals = _pWineCaps->PresentationIntervals; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PrimitiveMiscCaps = _pWineCaps->PrimitiveMiscCaps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->SrcBlendCaps = _pWineCaps->SrcBlendCaps; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->DestBlendCaps = _pWineCaps->DestBlendCaps; \
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync _pD3D9Caps->AlphaCmpCaps = _pWineCaps->AlphaCmpCaps; \
06782e19f5e2144408396dcec922c423c5ef9da8vboxsync _pD3D9Caps->TextureCaps = _pWineCaps->TextureCaps; \
80e46f984efd827517661c0e081a36014ca41af8vboxsync _pD3D9Caps->TextureFilterCaps = _pWineCaps->TextureFilterCaps; \
80e46f984efd827517661c0e081a36014ca41af8vboxsync _pD3D9Caps->CubeTextureFilterCaps = _pWineCaps->CubeTextureFilterCaps; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->VolumeTextureFilterCaps = _pWineCaps->VolumeTextureFilterCaps; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->TextureAddressCaps = _pWineCaps->TextureAddressCaps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->VolumeTextureAddressCaps = _pWineCaps->VolumeTextureAddressCaps; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->MaxTextureWidth = _pWineCaps->MaxTextureWidth; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->MaxTextureHeight = _pWineCaps->MaxTextureHeight; \
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync _pD3D9Caps->MaxVolumeExtent = _pWineCaps->MaxVolumeExtent; \
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync _pD3D9Caps->MaxTextureRepeat = _pWineCaps->MaxTextureRepeat; \
6febf3149010855617e4a37e2c49f93d68930d44vboxsync _pD3D9Caps->MaxTextureAspectRatio = _pWineCaps->MaxTextureAspectRatio; \
63b785c3291332a86a9bc473e68f08121368898bvboxsync _pD3D9Caps->MaxAnisotropy = _pWineCaps->MaxAnisotropy; \
80e46f984efd827517661c0e081a36014ca41af8vboxsync _pD3D9Caps->GuardBandLeft = _pWineCaps->GuardBandLeft; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->GuardBandTop = _pWineCaps->GuardBandTop; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->GuardBandRight = _pWineCaps->GuardBandRight; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->GuardBandBottom = _pWineCaps->GuardBandBottom; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->ExtentsAdjust = _pWineCaps->ExtentsAdjust; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->StencilCaps = _pWineCaps->StencilCaps; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->TextureOpCaps = _pWineCaps->TextureOpCaps; \
48dafba24ef28f07a241e5857a43b327822574a8vboxsync _pD3D9Caps->MaxTextureBlendStages = _pWineCaps->MaxTextureBlendStages; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->MaxSimultaneousTextures = _pWineCaps->MaxSimultaneousTextures; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->VertexProcessingCaps = _pWineCaps->VertexProcessingCaps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxActiveLights = _pWineCaps->MaxActiveLights; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxUserClipPlanes = _pWineCaps->MaxUserClipPlanes; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxVertexBlendMatrices = _pWineCaps->MaxVertexBlendMatrices; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxVertexBlendMatrixIndex = _pWineCaps->MaxVertexBlendMatrixIndex; \
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync _pD3D9Caps->MaxPointSize = _pWineCaps->MaxPointSize; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxPrimitiveCount = _pWineCaps->MaxPrimitiveCount; \
1dc37bff2fb26897f5892d8330fe2bc0c9859aecvboxsync _pD3D9Caps->MaxVertexIndex = _pWineCaps->MaxVertexIndex; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxStreamStride = _pWineCaps->MaxStreamStride; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->VertexShaderVersion = _pWineCaps->VertexShaderVersion; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxVertexShaderConst = _pWineCaps->MaxVertexShaderConst; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->PixelShaderVersion = _pWineCaps->PixelShaderVersion; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->PixelShader1xMaxValue = _pWineCaps->PixelShader1xMaxValue; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->MaxNpatchTessellationLevel = _pWineCaps->MaxNpatchTessellationLevel; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MasterAdapterOrdinal = _pWineCaps->MasterAdapterOrdinal; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->AdapterOrdinalInGroup = _pWineCaps->AdapterOrdinalInGroup; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->NumberOfAdaptersInGroup = _pWineCaps->NumberOfAdaptersInGroup; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->NumSimultaneousRTs = _pWineCaps->NumSimultaneousRTs; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->StretchRectFilterCaps = _pWineCaps->StretchRectFilterCaps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->VS20Caps.Caps = _pWineCaps->VS20Caps.Caps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->VS20Caps.DynamicFlowControlDepth = _pWineCaps->VS20Caps.DynamicFlowControlDepth; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->VS20Caps.NumTemps = _pWineCaps->VS20Caps.NumTemps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->VS20Caps.NumTemps = _pWineCaps->VS20Caps.NumTemps; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->VS20Caps.StaticFlowControlDepth = _pWineCaps->VS20Caps.StaticFlowControlDepth; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PS20Caps.Caps = _pWineCaps->PS20Caps.Caps; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PS20Caps.DynamicFlowControlDepth = _pWineCaps->PS20Caps.DynamicFlowControlDepth; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PS20Caps.NumTemps = _pWineCaps->PS20Caps.NumTemps; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PS20Caps.StaticFlowControlDepth = _pWineCaps->PS20Caps.StaticFlowControlDepth; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->PS20Caps.NumInstructionSlots = _pWineCaps->PS20Caps.NumInstructionSlots; \
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync _pD3D9Caps->VertexTextureFilterCaps = _pWineCaps->VertexTextureFilterCaps; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxVShaderInstructionsExecuted = _pWineCaps->MaxVShaderInstructionsExecuted; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxPShaderInstructionsExecuted = _pWineCaps->MaxPShaderInstructionsExecuted; \
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync _pD3D9Caps->MaxVertexShader30InstructionSlots = _pWineCaps->MaxVertexShader30InstructionSlots; \
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync _pD3D9Caps->MaxPixelShader30InstructionSlots = _pWineCaps->MaxPixelShader30InstructionSlots;
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ===========================================================================
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync D3D9 interfaces
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync =========================================================================== */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ---------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* IDirect3D9 */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ---------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*****************************************************************************
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync * Predeclare the interface implementation structures
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncextern const IDirect3D9ExVtbl Direct3D9_Vtbl DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3D implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* The WineD3D device */
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync /* Created via Direct3DCreate9Ex? Can QI extended interfaces */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*****************************************************************************
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * IDirect3DDevice9 implementation structure
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync /* IUnknown fields */
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync const IWineD3DDeviceParentVtbl *device_parent_vtbl;
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync /* IDirect3DDevice9 fields */
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync /* Avoids recursion with nested ReleaseRef to 0 */
6febf3149010855617e4a37e2c49f93d68930d44vboxsyncHRESULT device_init(IDirect3DDevice9Impl *device, IWineD3D *wined3d, UINT adapter, D3DDEVTYPE device_type,
6febf3149010855617e4a37e2c49f93d68930d44vboxsync HWND focus_window, DWORD flags, D3DPRESENT_PARAMETERS *parameters) DECLSPEC_HIDDEN;
6febf3149010855617e4a37e2c49f93d68930d44vboxsync/* IDirect3DDevice9: */
6febf3149010855617e4a37e2c49f93d68930d44vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetSwapChain(IDirect3DDevice9Ex *iface,
6febf3149010855617e4a37e2c49f93d68930d44vboxsync UINT iSwapChain, IDirect3DSwapChain9 **pSwapChain) DECLSPEC_HIDDEN;
6febf3149010855617e4a37e2c49f93d68930d44vboxsyncextern UINT WINAPI IDirect3DDevice9Impl_GetNumberOfSwapChains(IDirect3DDevice9Ex *iface) DECLSPEC_HIDDEN;
6febf3149010855617e4a37e2c49f93d68930d44vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetVertexDeclaration(IDirect3DDevice9Ex *iface,
63b785c3291332a86a9bc473e68f08121368898bvboxsync IDirect3DVertexDeclaration9 *pDecl) DECLSPEC_HIDDEN;
63b785c3291332a86a9bc473e68f08121368898bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetVertexDeclaration(IDirect3DDevice9Ex *iface,
63b785c3291332a86a9bc473e68f08121368898bvboxsync IDirect3DVertexDeclaration9 **ppDecl) DECLSPEC_HIDDEN;
63b785c3291332a86a9bc473e68f08121368898bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShader(IDirect3DDevice9Ex *iface,
63b785c3291332a86a9bc473e68f08121368898bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShader(IDirect3DDevice9Ex *iface,
63b785c3291332a86a9bc473e68f08121368898bvboxsync IDirect3DVertexShader9 **ppShader) DECLSPEC_HIDDEN;
63b785c3291332a86a9bc473e68f08121368898bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantF(IDirect3DDevice9Ex *iface,
63b785c3291332a86a9bc473e68f08121368898bvboxsync UINT StartRegister, const float *pConstantData, UINT Vector4fCount) DECLSPEC_HIDDEN;
80626cd34607c5dbf3f0af51b32396ce58bf493bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantF(IDirect3DDevice9Ex *iface,
41b3442e21c3a79f3bc61ce67e3445757a83f281vboxsync UINT StartRegister, float *pConstantData, UINT Vector4fCount) DECLSPEC_HIDDEN;
80626cd34607c5dbf3f0af51b32396ce58bf493bvboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantI(IDirect3DDevice9Ex *iface,
41b3442e21c3a79f3bc61ce67e3445757a83f281vboxsync UINT StartRegister, const int *pConstantData, UINT Vector4iCount) DECLSPEC_HIDDEN;
41b3442e21c3a79f3bc61ce67e3445757a83f281vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantI(IDirect3DDevice9Ex *iface,
41b3442e21c3a79f3bc61ce67e3445757a83f281vboxsync UINT StartRegister, int *pConstantData, UINT Vector4iCount) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantB(IDirect3DDevice9Ex *iface,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT StartRegister, const BOOL *pConstantData, UINT BoolCount) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShaderConstantB(IDirect3DDevice9Ex *iface,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT StartRegister, BOOL *pConstantData, UINT BoolCount) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShader(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShader(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantF(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, const float *pConstantData, UINT Vector4fCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantF(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, float *pConstantData, UINT Vector4fCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantI(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, const int *pConstantData, UINT Vector4iCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantI(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, int *pConstantData, UINT Vector4iCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_SetPixelShaderConstantB(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, const BOOL *pConstantData, UINT BoolCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsyncextern HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShaderConstantB(IDirect3DDevice9Ex *iface,
80e46f984efd827517661c0e081a36014ca41af8vboxsync UINT StartRegister, BOOL *pConstantData, UINT BoolCount) DECLSPEC_HIDDEN;
80e46f984efd827517661c0e081a36014ca41af8vboxsync/* ---------------- */
80e46f984efd827517661c0e081a36014ca41af8vboxsync/* IDirect3DVolume9 */
80e46f984efd827517661c0e081a36014ca41af8vboxsync/* ---------------- */
80e46f984efd827517661c0e081a36014ca41af8vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DVolume9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DVolume9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* The volume container */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* If set forward refcounting to this object */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT volume_init(IDirect3DVolume9Impl *volume, IDirect3DDevice9Impl *device, UINT width, UINT height,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT depth, DWORD usage, WINED3DFORMAT format, WINED3DPOOL pool) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DSwapChain9 */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DSwapChain9 implementation structure
48dafba24ef28f07a241e5857a43b327822574a8vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DSwapChain9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Flags an implicit swap chain */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT swapchain_init(IDirect3DSwapChain9Impl *swapchain, IDirect3DDevice9Impl *device,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync D3DPRESENT_PARAMETERS *present_parameters) DECLSPEC_HIDDEN;
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ----------------- */
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync/* IDirect3DSurface9 */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ----------------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*****************************************************************************
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * IDirect3DSurface9 implementation structure
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* IUnknown fields */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* IDirect3DResource9 fields */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync /* Parent reference */
508452243fd3328f7b9e0405d39fb9dc004e31b8vboxsync /* The surface container */
f409459bdd4c15cdb8d7fb6c6d54338cce9ac814vboxsync /* If set forward refcounting to this object */
bc04c0fb1382c98fb74fb38ac5dbd3f06ea6a92bvboxsyncHRESULT surface_init(IDirect3DSurface9Impl *surface, IDirect3DDevice9Impl *device,
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync UINT width, UINT height, D3DFORMAT format, BOOL lockable, BOOL discard, UINT level,
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync DWORD usage, D3DPOOL pool, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ---------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DVertexBuffer9 */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ---------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync * IDirect3DVertexBuffer9 implementation structure
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync /* IUnknown fields */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync /* IDirect3DResource9 fields */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync /* Parent reference */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsyncHRESULT vertexbuffer_init(IDirect3DVertexBuffer9Impl *buffer, IDirect3DDevice9Impl *device,
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync UINT size, UINT usage, DWORD fvf, D3DPOOL pool) DECLSPEC_HIDDEN;
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync/* --------------------- */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync/* IDirect3DIndexBuffer9 */
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync/* --------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DIndexBuffer9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync /* IDirect3DResource9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT indexbuffer_init(IDirect3DIndexBuffer9Impl *buffer, IDirect3DDevice9Impl *device,
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* --------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DBaseTexture9 */
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync/* --------------------- */
6320f517ddc16e8d8dd450a47edfaab81f67942avboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DBaseTexture9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DResource9 fields */
6320f517ddc16e8d8dd450a47edfaab81f67942avboxsync/* --------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DCubeTexture9 */
df2a53dee17325742e7464e7f53d3f99dc500f3avboxsync/* --------------------- */
df2a53dee17325742e7464e7f53d3f99dc500f3avboxsync/*****************************************************************************
df2a53dee17325742e7464e7f53d3f99dc500f3avboxsync * IDirect3DCubeTexture9 implementation structure
9113fcf881235e2b3df9ce4760b299c929ac3a62vboxsync /* IUnknown fields */
9113fcf881235e2b3df9ce4760b299c929ac3a62vboxsync /* IDirect3DResource9 fields */
9113fcf881235e2b3df9ce4760b299c929ac3a62vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT cubetexture_init(IDirect3DCubeTexture9Impl *texture, IDirect3DDevice9Impl *device,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT edge_length, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ----------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DTexture9 */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync/* ----------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync * IDirect3DTexture9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync /* IDirect3DResource9 fields */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT texture_init(IDirect3DTexture9Impl *texture, IDirect3DDevice9Impl *device,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT width, UINT height, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ----------------------- */
1871985cb4854e5bfb2ead8174ee28dbfce74df5vboxsync/* IDirect3DVolumeTexture9 */
1871985cb4854e5bfb2ead8174ee28dbfce74df5vboxsync/* ----------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DVolumeTexture9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DResource9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsyncHRESULT volumetexture_init(IDirect3DVolumeTexture9Impl *texture, IDirect3DDevice9Impl *device,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync UINT width, UINT height, UINT depth, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ----------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DStateBlock9 */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ----------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DStateBlock9 implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DStateBlock9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsyncHRESULT stateblock_init(IDirect3DStateBlock9Impl *stateblock, IDirect3DDevice9Impl *device,
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync D3DSTATEBLOCKTYPE type, IWineD3DStateBlock *wined3d_stateblock) DECLSPEC_HIDDEN;
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync/* --------------------------- */
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync/* IDirect3DVertexDeclaration9 */
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync/* --------------------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync * IDirect3DVertexDeclaration implementation structure
ba05e6aeed3cd14961a36e0162c29a267b66d7f7vboxsync /* IUnknown fields */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* IDirect3DVertexDeclaration9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync IWineD3DVertexDeclaration *wineD3DVertexDeclaration;
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncvoid IDirect3DVertexDeclaration9Impl_Destroy(LPDIRECT3DVERTEXDECLARATION9 iface) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT vertexdeclaration_init(IDirect3DVertexDeclaration9Impl *declaration,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync IDirect3DDevice9Impl *device, const D3DVERTEXELEMENT9 *elements) DECLSPEC_HIDDEN;
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* ---------------------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* IDirect3DVertexShader9 */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* ---------------------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DVertexShader implementation structure
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DVertexShader9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncHRESULT vertexshader_init(IDirect3DVertexShader9Impl *shader,
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync IDirect3DDevice9Impl *device, const DWORD *byte_code) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* --------------------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* IDirect3DPixelShader9 */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* --------------------- */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DPixelShader implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DPixelShader9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT pixelshader_init(IDirect3DPixelShader9Impl *shader,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync IDirect3DDevice9Impl *device, const DWORD *byte_code) DECLSPEC_HIDDEN;
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* --------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* IDirect3DQuery9 */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/* --------------- */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync/*****************************************************************************
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * IDirect3DPixelShader implementation structure
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsynctypedef struct IDirect3DQuery9Impl {
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IUnknown fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* IDirect3DQuery9 fields */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync /* Parent reference */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncHRESULT query_init(IDirect3DQuery9Impl *query, IDirect3DDevice9Impl *device,
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#endif /* __WINE_D3D9_PRIVATE_H */