3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VBox extension to Wine D3D
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2010-2012 Oracle Corporation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * available from http://www.virtualbox.org. This file is free software;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * General Public License (GPL) as published by the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* the underlying GL resource can not be used because it can be removed concurrently by other SHRC client */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* the given client is requested to delete the underlying GL resource on SHRC termination */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define VBOXWINEEX_DECL(_type) __declspec(dllimport) _type WINAPI
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define VBOXWINEEX_DECL(_type) __declspec(dllexport) _type WINAPI
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_CREATETEXTURE(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT width, UINT height, UINT levels, DWORD usage, D3DFORMAT format,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3DPOOL pool, IDirect3DTexture9 **texture, HANDLE *shared_handle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_CREATETEXTURE *PFNVBOXWINEEXD3DDEV9_CREATETEXTURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_CREATECUBETEXTURE(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT edge_length, UINT levels, DWORD usage, D3DFORMAT format,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3DPOOL pool, IDirect3DCubeTexture9 **texture, HANDLE *shared_handle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_CREATECUBETEXTURE *PFNVBOXWINEEXD3DDEV9_CREATECUBETEXTURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_CREATEVOLUMETEXTURE(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT width, UINT height, UINT depth, UINT levels, DWORD usage, D3DFORMAT Format, D3DPOOL Pool,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolumeTexture9 **ppVolumeTexture, HANDLE *pSharedHandle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_CREATEVOLUMETEXTURE *PFNVBOXWINEEXD3DDEV9_CREATEVOLUMETEXTURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_VOLBLT(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolume9 *pSourceVolume, IDirect3DVolume9 *pDestinationVolume,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_VOLBLT *PFNVBOXWINEEXD3DDEV9_VOLBLT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_VOLTEXBLT(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolumeTexture9 *pSourceTexture, IDirect3DVolumeTexture9 *pDestinationTexture,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_VOLTEXBLT *PFNVBOXWINEEXD3DDEV9_VOLTEXBLT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_FLUSH(IDirect3DDevice9Ex *iface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_FLUSH *PFNVBOXWINEEXD3DDEV9_FLUSH;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_FLUSHTOHOST(IDirect3DDevice9Ex *iface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_FLUSHTOHOST *PFNVBOXWINEEXD3DDEV9_FLUSHTOHOST;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_FINISH(IDirect3DDevice9Ex *iface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_FINISH *PFNVBOXWINEEXD3DDEV9_FINISH;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_UPDATE(IDirect3DDevice9Ex *iface, D3DPRESENT_PARAMETERS * pParams, IDirect3DDevice9Ex **outIface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_UPDATE *PFNVBOXWINEEXD3DDEV9_UPDATE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DDEV9_TERM(IDirect3DDevice9Ex *iface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DDEV9_TERM *PFNVBOXWINEEXD3DDEV9_TERM;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DRC9_SETSHRCSTATE(IDirect3DResource9 *iface, VBOXWINEEX_SHRC_STATE enmState);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DRC9_SETSHRCSTATE *PFNVBOXWINEEXD3DRC9_SETSHRCSTATE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef VBOXWINEEX_DECL(HRESULT) FNVBOXWINEEXD3DSWAPCHAIN9_PRESENT(IDirect3DSwapChain9 *iface, IDirect3DSurface9 *surf);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef FNVBOXWINEEXD3DSWAPCHAIN9_PRESENT *PFNVBOXWINEEXD3DSWAPCHAIN9_PRESENT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9CreateTexture(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT width, UINT height, UINT levels, DWORD usage, D3DFORMAT format,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3DPOOL pool, IDirect3DTexture9 **texture, HANDLE *shared_handle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void **pavClientMem); /* <- extension arg to pass in the client memory buffer,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * applicable ONLY for SYSMEM textures */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9CreateCubeTexture(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT edge_length, UINT levels, DWORD usage, D3DFORMAT format,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3DPOOL pool, IDirect3DCubeTexture9 **texture, HANDLE *shared_handle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void **pavClientMem); /* <- extension arg to pass in the client memory buffer,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * applicable ONLY for SYSMEM textures */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9CreateVolumeTexture(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT width, UINT height, UINT depth, UINT levels, DWORD usage, D3DFORMAT Format, D3DPOOL Pool,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolumeTexture9 **ppVolumeTexture, HANDLE *pSharedHandle,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9VolBlt(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolume9 *pSourceVolume, IDirect3DVolume9 *pDestinationVolume,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9VolTexBlt(IDirect3DDevice9Ex *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DVolumeTexture9 *pSourceTexture, IDirect3DVolumeTexture9 *pDestinationTexture,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9Flush(IDirect3DDevice9Ex *iface); /* perform glFlush */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9Finish(IDirect3DDevice9Ex *iface); /* perform glFinish */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9FlushToHost(IDirect3DDevice9Ex *iface); /* flash data to host */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9Update(IDirect3DDevice9Ex *iface, D3DPRESENT_PARAMETERS * pParams,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DDevice9Ex **outIface); /* update device parameters */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DDev9Term(IDirect3DDevice9Ex *iface);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DRc9SetShRcState(IDirect3DResource9 *iface, VBOXWINEEX_SHRC_STATE enmState);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncVBOXWINEEX_DECL(HRESULT) VBoxWineExD3DSwapchain9Present(IDirect3DSwapChain9 *iface,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync IDirect3DSurface9 *surf); /* use the given surface as a frontbuffer content source */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} VBOXWINEEX_D3DPRESENT_PARAMETERS, *PVBOXWINEEX_D3DPRESENT_PARAMETERS;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* #ifndef IN_VBOXLIBWINE */