Path: blob/21.2-virgl/src/gallium/frontends/nine/device9ex.h
4561 views
/*1* Copyright 2011 Joakim Sindholt <[email protected]>2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* on the rights to use, copy, modify, merge, publish, distribute, sub7* license, and/or sell copies of the Software, and to permit persons to whom8* the Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL17* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,18* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR19* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20* USE OR OTHER DEALINGS IN THE SOFTWARE. */2122#ifndef _NINE_DEVICE9EX_H_23#define _NINE_DEVICE9EX_H_2425#include "device9.h"2627struct NineDevice9Ex28{29struct NineDevice9 base;30};31static inline struct NineDevice9Ex *32NineDevice9Ex( void *data )33{34return (struct NineDevice9Ex *)data;35}3637HRESULT38NineDevice9Ex_new( struct pipe_screen *pScreen,39D3DDEVICE_CREATION_PARAMETERS *pCreationParameters,40D3DCAPS9 *pCaps,41D3DPRESENT_PARAMETERS *pPresentationParameters,42D3DDISPLAYMODEEX *pFullscreenDisplayMode,43IDirect3D9Ex *pD3D9Ex,44ID3DPresentGroup *pPresentationGroup,45struct d3dadapter9_context *pCTX,46struct NineDevice9Ex **ppOut,47int minorVersionNum );4849HRESULT NINE_WINAPI50NineDevice9Ex_SetConvolutionMonoKernel( struct NineDevice9Ex *This,51UINT width,52UINT height,53float *rows,54float *columns );5556HRESULT NINE_WINAPI57NineDevice9Ex_ComposeRects( struct NineDevice9Ex *This,58IDirect3DSurface9 *pSrc,59IDirect3DSurface9 *pDst,60IDirect3DVertexBuffer9 *pSrcRectDescs,61UINT NumRects,62IDirect3DVertexBuffer9 *pDstRectDescs,63D3DCOMPOSERECTSOP Operation,64int Xoffset,65int Yoffset );6667HRESULT NINE_WINAPI68NineDevice9Ex_PresentEx( struct NineDevice9Ex *This,69const RECT *pSourceRect,70const RECT *pDestRect,71HWND hDestWindowOverride,72const RGNDATA *pDirtyRegion,73DWORD dwFlags );7475HRESULT NINE_WINAPI76NineDevice9Ex_Present( struct NineDevice9Ex *This,77const RECT *pSourceRect,78const RECT *pDestRect,79HWND hDestWindowOverride,80const RGNDATA *pDirtyRegion );8182HRESULT NINE_WINAPI83NineDevice9Ex_GetGPUThreadPriority( struct NineDevice9Ex *This,84INT *pPriority );8586HRESULT NINE_WINAPI87NineDevice9Ex_SetGPUThreadPriority( struct NineDevice9Ex *This,88INT Priority );8990HRESULT NINE_WINAPI91NineDevice9Ex_WaitForVBlank( struct NineDevice9Ex *This,92UINT iSwapChain );9394HRESULT NINE_WINAPI95NineDevice9Ex_CheckResourceResidency( struct NineDevice9Ex *This,96IDirect3DResource9 **pResourceArray,97UINT32 NumResources );9899HRESULT NINE_WINAPI100NineDevice9Ex_SetMaximumFrameLatency( struct NineDevice9Ex *This,101UINT MaxLatency );102103HRESULT NINE_WINAPI104NineDevice9Ex_GetMaximumFrameLatency( struct NineDevice9Ex *This,105UINT *pMaxLatency );106107HRESULT NINE_WINAPI108NineDevice9Ex_CheckDeviceState( struct NineDevice9Ex *This,109HWND hDestinationWindow );110111HRESULT NINE_WINAPI112NineDevice9Ex_CreateRenderTargetEx( struct NineDevice9Ex *This,113UINT Width,114UINT Height,115D3DFORMAT Format,116D3DMULTISAMPLE_TYPE MultiSample,117DWORD MultisampleQuality,118BOOL Lockable,119IDirect3DSurface9 **ppSurface,120HANDLE *pSharedHandle,121DWORD Usage );122123HRESULT NINE_WINAPI124NineDevice9Ex_CreateOffscreenPlainSurfaceEx( struct NineDevice9Ex *This,125UINT Width,126UINT Height,127D3DFORMAT Format,128D3DPOOL Pool,129IDirect3DSurface9 **ppSurface,130HANDLE *pSharedHandle,131DWORD Usage );132133HRESULT NINE_WINAPI134NineDevice9Ex_CreateDepthStencilSurfaceEx( struct NineDevice9Ex *This,135UINT Width,136UINT Height,137D3DFORMAT Format,138D3DMULTISAMPLE_TYPE MultiSample,139DWORD MultisampleQuality,140BOOL Discard,141IDirect3DSurface9 **ppSurface,142HANDLE *pSharedHandle,143DWORD Usage );144145HRESULT NINE_WINAPI146NineDevice9Ex_ResetEx( struct NineDevice9Ex *This,147D3DPRESENT_PARAMETERS *pPresentationParameters,148D3DDISPLAYMODEEX *pFullscreenDisplayMode );149150HRESULT NINE_WINAPI151NineDevice9Ex_Reset( struct NineDevice9Ex *This,152D3DPRESENT_PARAMETERS *pPresentationParameters );153154HRESULT NINE_WINAPI155NineDevice9Ex_GetDisplayModeEx( struct NineDevice9Ex *This,156UINT iSwapChain,157D3DDISPLAYMODEEX *pMode,158D3DDISPLAYROTATION *pRotation );159160HRESULT NINE_WINAPI161NineDevice9Ex_TestCooperativeLevel( struct NineDevice9Ex *This );162163#endif /* _NINE_DEVICE9EX_H_ */164165166