17ec681f3Smrg/* 27ec681f3Smrg * Copyright 2011 Joakim Sindholt <opensource@zhasha.com> 37ec681f3Smrg * 47ec681f3Smrg * Permission is hereby granted, free of charge, to any person obtaining a 57ec681f3Smrg * copy of this software and associated documentation files (the "Software"), 67ec681f3Smrg * to deal in the Software without restriction, including without limitation 77ec681f3Smrg * on the rights to use, copy, modify, merge, publish, distribute, sub 87ec681f3Smrg * license, and/or sell copies of the Software, and to permit persons to whom 97ec681f3Smrg * the Software is furnished to do so, subject to the following conditions: 107ec681f3Smrg * 117ec681f3Smrg * The above copyright notice and this permission notice (including the next 127ec681f3Smrg * paragraph) shall be included in all copies or substantial portions of the 137ec681f3Smrg * Software. 147ec681f3Smrg * 157ec681f3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 167ec681f3Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 177ec681f3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 187ec681f3Smrg * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 197ec681f3Smrg * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 207ec681f3Smrg * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 217ec681f3Smrg * USE OR OTHER DEALINGS IN THE SOFTWARE. */ 227ec681f3Smrg 237ec681f3Smrg#ifndef _NINE_DEVICE9_H_ 247ec681f3Smrg#define _NINE_DEVICE9_H_ 257ec681f3Smrg 267ec681f3Smrg#include "d3dadapter/d3dadapter9.h" 277ec681f3Smrg 287ec681f3Smrg#include "iunknown.h" 297ec681f3Smrg#include "adapter9.h" 307ec681f3Smrg 317ec681f3Smrg#include "nine_helpers.h" 327ec681f3Smrg#include "nine_memory_helper.h" 337ec681f3Smrg#include "nine_state.h" 347ec681f3Smrg 357ec681f3Smrgstruct gen_mipmap_state; 367ec681f3Smrgstruct hash_table; 377ec681f3Smrgstruct pipe_screen; 387ec681f3Smrgstruct pipe_context; 397ec681f3Smrgstruct cso_context; 407ec681f3Smrgstruct hud_context; 417ec681f3Smrgstruct u_upload_mgr; 427ec681f3Smrgstruct csmt_context; 437ec681f3Smrg 447ec681f3Smrgstruct NineSwapChain9; 457ec681f3Smrgstruct NineStateBlock9; 467ec681f3Smrg 477ec681f3Smrg#include "util/list.h" 487ec681f3Smrg 497ec681f3Smrgstruct NineDevice9 507ec681f3Smrg{ 517ec681f3Smrg struct NineUnknown base; 527ec681f3Smrg boolean ex; 537ec681f3Smrg boolean may_swvp; 547ec681f3Smrg 557ec681f3Smrg /* G3D context */ 567ec681f3Smrg struct pipe_screen *screen; 577ec681f3Smrg /* For first time upload. No Sync with rendering thread */ 587ec681f3Smrg struct pipe_context *pipe_secondary; 597ec681f3Smrg struct pipe_screen *screen_sw; 607ec681f3Smrg struct pipe_context *pipe_sw; 617ec681f3Smrg struct cso_context *cso_sw; 627ec681f3Smrg 637ec681f3Smrg /* CSMT context */ 647ec681f3Smrg struct csmt_context *csmt_ctx; 657ec681f3Smrg BOOL csmt_active; 667ec681f3Smrg 677ec681f3Smrg /* For DISCARD/NOOVERWRITE */ 687ec681f3Smrg struct nine_buffer_upload *buffer_upload; 697ec681f3Smrg 707ec681f3Smrg /* creation parameters */ 717ec681f3Smrg D3DCAPS9 caps; 727ec681f3Smrg D3DDEVICE_CREATION_PARAMETERS params; 737ec681f3Smrg IDirect3D9 *d3d9; 747ec681f3Smrg 757ec681f3Smrg /* swapchain stuff */ 767ec681f3Smrg ID3DPresentGroup *present; 777ec681f3Smrg struct NineSwapChain9 **swapchains; 787ec681f3Smrg unsigned nswapchains; 797ec681f3Smrg 807ec681f3Smrg struct NineStateBlock9 *record; 817ec681f3Smrg struct nine_state *update; /* state to update (&state / &record->state) */ 827ec681f3Smrg struct nine_state state; /* device state */ 837ec681f3Smrg struct nine_context context; 847ec681f3Smrg struct nine_state_sw_internal state_sw_internal; 857ec681f3Smrg 867ec681f3Smrg struct list_head update_buffers; 877ec681f3Smrg struct list_head update_textures; 887ec681f3Smrg struct list_head managed_buffers; 897ec681f3Smrg struct list_head managed_textures; 907ec681f3Smrg 917ec681f3Smrg boolean is_recording; 927ec681f3Smrg boolean in_scene; 937ec681f3Smrg unsigned end_scene_since_present; 947ec681f3Smrg 957ec681f3Smrg uint16_t vs_const_size; 967ec681f3Smrg uint16_t ps_const_size; 977ec681f3Smrg uint16_t max_vs_const_f; 987ec681f3Smrg uint16_t max_ps_const_f; 997ec681f3Smrg 1007ec681f3Smrg struct pipe_resource *dummy_texture; 1017ec681f3Smrg struct pipe_sampler_view *dummy_sampler_view; 1027ec681f3Smrg struct pipe_sampler_state dummy_sampler_state; 1037ec681f3Smrg 1047ec681f3Smrg struct gen_mipmap_state *gen_mipmap; 1057ec681f3Smrg 1067ec681f3Smrg struct { 1077ec681f3Smrg struct hash_table *ht_vs; 1087ec681f3Smrg struct hash_table *ht_ps; 1097ec681f3Smrg struct NineVertexShader9 *vs; 1107ec681f3Smrg struct NinePixelShader9 *ps; 1117ec681f3Smrg unsigned num_vs; 1127ec681f3Smrg unsigned num_ps; 1137ec681f3Smrg float *vs_const; 1147ec681f3Smrg float *ps_const; 1157ec681f3Smrg 1167ec681f3Smrg struct hash_table *ht_fvf; 1177ec681f3Smrg } ff; 1187ec681f3Smrg 1197ec681f3Smrg struct { 1207ec681f3Smrg struct pipe_resource *image; 1217ec681f3Smrg unsigned w; 1227ec681f3Smrg unsigned h; 1237ec681f3Smrg POINT hotspot; /* -1, -1 if no cursor image set */ 1247ec681f3Smrg POINT pos; 1257ec681f3Smrg BOOL visible; 1267ec681f3Smrg boolean software; 1277ec681f3Smrg void *hw_upload_temp; 1287ec681f3Smrg } cursor; 1297ec681f3Smrg 1307ec681f3Smrg struct { 1317ec681f3Smrg boolean user_sw_vbufs; 1327ec681f3Smrg boolean window_space_position_support; 1337ec681f3Smrg boolean vs_integer; 1347ec681f3Smrg boolean ps_integer; 1357ec681f3Smrg boolean offset_units_unscaled; 1367ec681f3Smrg } driver_caps; 1377ec681f3Smrg 1387ec681f3Smrg struct { 1397ec681f3Smrg boolean buggy_barycentrics; 1407ec681f3Smrg } driver_bugs; 1417ec681f3Smrg 1427ec681f3Smrg struct { 1437ec681f3Smrg boolean dynamic_texture_workaround; 1447ec681f3Smrg } workarounds; 1457ec681f3Smrg 1467ec681f3Smrg struct u_upload_mgr *vertex_uploader; 1477ec681f3Smrg 1487ec681f3Smrg struct nine_range_pool range_pool; 1497ec681f3Smrg 1507ec681f3Smrg struct hud_context *hud; /* NULL if hud is disabled */ 1517ec681f3Smrg 1527ec681f3Smrg struct nine_allocator *allocator; 1537ec681f3Smrg 1547ec681f3Smrg /* dummy vbo (containing 0 0 0 0) to bind if vertex shader input 1557ec681f3Smrg * is not bound to anything by the vertex declaration */ 1567ec681f3Smrg struct pipe_resource *dummy_vbo; 1577ec681f3Smrg BOOL device_needs_reset; 1587ec681f3Smrg int minor_version_num; 1597ec681f3Smrg long long available_texture_mem; 1607ec681f3Smrg long long available_texture_limit; 1617ec681f3Smrg 1627ec681f3Smrg /* software vertex processing */ 1637ec681f3Smrg boolean swvp; 1647ec681f3Smrg /* pure device */ 1657ec681f3Smrg boolean pure; 1667ec681f3Smrg 1677ec681f3Smrg unsigned frame_count; /* It's ok if we overflow */ 1687ec681f3Smrg 1697ec681f3Smrg /* Ex */ 1707ec681f3Smrg int gpu_priority; 1717ec681f3Smrg unsigned max_frame_latency; 1727ec681f3Smrg}; 1737ec681f3Smrgstatic inline struct NineDevice9 * 1747ec681f3SmrgNineDevice9( void *data ) 1757ec681f3Smrg{ 1767ec681f3Smrg return (struct NineDevice9 *)data; 1777ec681f3Smrg} 1787ec681f3Smrg 1797ec681f3SmrgHRESULT 1807ec681f3SmrgNineDevice9_new( struct pipe_screen *pScreen, 1817ec681f3Smrg D3DDEVICE_CREATION_PARAMETERS *pCreationParameters, 1827ec681f3Smrg D3DCAPS9 *pCaps, 1837ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters, 1847ec681f3Smrg IDirect3D9 *pD3D9, 1857ec681f3Smrg ID3DPresentGroup *pPresentationGroup, 1867ec681f3Smrg struct d3dadapter9_context *pCTX, 1877ec681f3Smrg boolean ex, 1887ec681f3Smrg D3DDISPLAYMODEEX *pFullscreenDisplayMode, 1897ec681f3Smrg struct NineDevice9 **ppOut, 1907ec681f3Smrg int minorVersionNum ); 1917ec681f3Smrg 1927ec681f3SmrgHRESULT 1937ec681f3SmrgNineDevice9_ctor( struct NineDevice9 *This, 1947ec681f3Smrg struct NineUnknownParams *pParams, 1957ec681f3Smrg struct pipe_screen *pScreen, 1967ec681f3Smrg D3DDEVICE_CREATION_PARAMETERS *pCreationParameters, 1977ec681f3Smrg D3DCAPS9 *pCaps, 1987ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters, 1997ec681f3Smrg IDirect3D9 *pD3D9, 2007ec681f3Smrg ID3DPresentGroup *pPresentationGroup, 2017ec681f3Smrg struct d3dadapter9_context *pCTX, 2027ec681f3Smrg boolean ex, 2037ec681f3Smrg D3DDISPLAYMODEEX *pFullscreenDisplayMode, 2047ec681f3Smrg int minorVersionNum ); 2057ec681f3Smrg 2067ec681f3Smrgvoid 2077ec681f3SmrgNineDevice9_dtor( struct NineDevice9 *This ); 2087ec681f3Smrg 2097ec681f3Smrg/*** Nine private ***/ 2107ec681f3Smrgstruct pipe_resource * 2117ec681f3Smrgnine_resource_create_with_retry( struct NineDevice9 *This, 2127ec681f3Smrg struct pipe_screen *screen, 2137ec681f3Smrg const struct pipe_resource *templat ); 2147ec681f3Smrg 2157ec681f3Smrgvoid 2167ec681f3SmrgNineDevice9_SetDefaultState( struct NineDevice9 *This, boolean is_reset ); 2177ec681f3Smrg 2187ec681f3Smrgstruct pipe_screen * 2197ec681f3SmrgNineDevice9_GetScreen( struct NineDevice9 *This ); 2207ec681f3Smrg 2217ec681f3Smrgstruct pipe_context * 2227ec681f3SmrgNineDevice9_GetPipe( struct NineDevice9 *This ); 2237ec681f3Smrg 2247ec681f3Smrgconst D3DCAPS9 * 2257ec681f3SmrgNineDevice9_GetCaps( struct NineDevice9 *This ); 2267ec681f3Smrg 2277ec681f3Smrgvoid 2287ec681f3SmrgNineDevice9_EvictManagedResourcesInternal( struct NineDevice9 *This ); 2297ec681f3Smrg 2307ec681f3Smrg/*** Direct3D public ***/ 2317ec681f3Smrg 2327ec681f3SmrgHRESULT NINE_WINAPI 2337ec681f3SmrgNineDevice9_TestCooperativeLevel( struct NineDevice9 *This ); 2347ec681f3Smrg 2357ec681f3SmrgUINT NINE_WINAPI 2367ec681f3SmrgNineDevice9_GetAvailableTextureMem( struct NineDevice9 *This ); 2377ec681f3Smrg 2387ec681f3SmrgHRESULT NINE_WINAPI 2397ec681f3SmrgNineDevice9_EvictManagedResources( struct NineDevice9 *This ); 2407ec681f3Smrg 2417ec681f3SmrgHRESULT NINE_WINAPI 2427ec681f3SmrgNineDevice9_GetDirect3D( struct NineDevice9 *This, 2437ec681f3Smrg IDirect3D9 **ppD3D9 ); 2447ec681f3Smrg 2457ec681f3SmrgHRESULT NINE_WINAPI 2467ec681f3SmrgNineDevice9_GetDeviceCaps( struct NineDevice9 *This, 2477ec681f3Smrg D3DCAPS9 *pCaps ); 2487ec681f3Smrg 2497ec681f3SmrgHRESULT NINE_WINAPI 2507ec681f3SmrgNineDevice9_GetDisplayMode( struct NineDevice9 *This, 2517ec681f3Smrg UINT iSwapChain, 2527ec681f3Smrg D3DDISPLAYMODE *pMode ); 2537ec681f3Smrg 2547ec681f3SmrgHRESULT NINE_WINAPI 2557ec681f3SmrgNineDevice9_GetCreationParameters( struct NineDevice9 *This, 2567ec681f3Smrg D3DDEVICE_CREATION_PARAMETERS *pParameters ); 2577ec681f3Smrg 2587ec681f3SmrgHRESULT NINE_WINAPI 2597ec681f3SmrgNineDevice9_SetCursorProperties( struct NineDevice9 *This, 2607ec681f3Smrg UINT XHotSpot, 2617ec681f3Smrg UINT YHotSpot, 2627ec681f3Smrg IDirect3DSurface9 *pCursorBitmap ); 2637ec681f3Smrg 2647ec681f3Smrgvoid NINE_WINAPI 2657ec681f3SmrgNineDevice9_SetCursorPosition( struct NineDevice9 *This, 2667ec681f3Smrg int X, 2677ec681f3Smrg int Y, 2687ec681f3Smrg DWORD Flags ); 2697ec681f3Smrg 2707ec681f3SmrgBOOL NINE_WINAPI 2717ec681f3SmrgNineDevice9_ShowCursor( struct NineDevice9 *This, 2727ec681f3Smrg BOOL bShow ); 2737ec681f3Smrg 2747ec681f3SmrgHRESULT NINE_WINAPI 2757ec681f3SmrgNineDevice9_CreateAdditionalSwapChain( struct NineDevice9 *This, 2767ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters, 2777ec681f3Smrg IDirect3DSwapChain9 **pSwapChain ); 2787ec681f3Smrg 2797ec681f3SmrgHRESULT NINE_WINAPI 2807ec681f3SmrgNineDevice9_GetSwapChain( struct NineDevice9 *This, 2817ec681f3Smrg UINT iSwapChain, 2827ec681f3Smrg IDirect3DSwapChain9 **pSwapChain ); 2837ec681f3Smrg 2847ec681f3SmrgUINT NINE_WINAPI 2857ec681f3SmrgNineDevice9_GetNumberOfSwapChains( struct NineDevice9 *This ); 2867ec681f3Smrg 2877ec681f3SmrgHRESULT NINE_WINAPI 2887ec681f3SmrgNineDevice9_Reset( struct NineDevice9 *This, 2897ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters ); 2907ec681f3Smrg 2917ec681f3SmrgHRESULT NINE_WINAPI 2927ec681f3SmrgNineDevice9_Present( struct NineDevice9 *This, 2937ec681f3Smrg const RECT *pSourceRect, 2947ec681f3Smrg const RECT *pDestRect, 2957ec681f3Smrg HWND hDestWindowOverride, 2967ec681f3Smrg const RGNDATA *pDirtyRegion ); 2977ec681f3Smrg 2987ec681f3SmrgHRESULT NINE_WINAPI 2997ec681f3SmrgNineDevice9_GetBackBuffer( struct NineDevice9 *This, 3007ec681f3Smrg UINT iSwapChain, 3017ec681f3Smrg UINT iBackBuffer, 3027ec681f3Smrg D3DBACKBUFFER_TYPE Type, 3037ec681f3Smrg IDirect3DSurface9 **ppBackBuffer ); 3047ec681f3Smrg 3057ec681f3SmrgHRESULT NINE_WINAPI 3067ec681f3SmrgNineDevice9_GetRasterStatus( struct NineDevice9 *This, 3077ec681f3Smrg UINT iSwapChain, 3087ec681f3Smrg D3DRASTER_STATUS *pRasterStatus ); 3097ec681f3Smrg 3107ec681f3SmrgHRESULT NINE_WINAPI 3117ec681f3SmrgNineDevice9_SetDialogBoxMode( struct NineDevice9 *This, 3127ec681f3Smrg BOOL bEnableDialogs ); 3137ec681f3Smrg 3147ec681f3Smrgvoid NINE_WINAPI 3157ec681f3SmrgNineDevice9_SetGammaRamp( struct NineDevice9 *This, 3167ec681f3Smrg UINT iSwapChain, 3177ec681f3Smrg DWORD Flags, 3187ec681f3Smrg const D3DGAMMARAMP *pRamp ); 3197ec681f3Smrg 3207ec681f3Smrgvoid NINE_WINAPI 3217ec681f3SmrgNineDevice9_GetGammaRamp( struct NineDevice9 *This, 3227ec681f3Smrg UINT iSwapChain, 3237ec681f3Smrg D3DGAMMARAMP *pRamp ); 3247ec681f3Smrg 3257ec681f3SmrgHRESULT NINE_WINAPI 3267ec681f3SmrgNineDevice9_CreateTexture( struct NineDevice9 *This, 3277ec681f3Smrg UINT Width, 3287ec681f3Smrg UINT Height, 3297ec681f3Smrg UINT Levels, 3307ec681f3Smrg DWORD Usage, 3317ec681f3Smrg D3DFORMAT Format, 3327ec681f3Smrg D3DPOOL Pool, 3337ec681f3Smrg IDirect3DTexture9 **ppTexture, 3347ec681f3Smrg HANDLE *pSharedHandle ); 3357ec681f3Smrg 3367ec681f3SmrgHRESULT NINE_WINAPI 3377ec681f3SmrgNineDevice9_CreateVolumeTexture( struct NineDevice9 *This, 3387ec681f3Smrg UINT Width, 3397ec681f3Smrg UINT Height, 3407ec681f3Smrg UINT Depth, 3417ec681f3Smrg UINT Levels, 3427ec681f3Smrg DWORD Usage, 3437ec681f3Smrg D3DFORMAT Format, 3447ec681f3Smrg D3DPOOL Pool, 3457ec681f3Smrg IDirect3DVolumeTexture9 **ppVolumeTexture, 3467ec681f3Smrg HANDLE *pSharedHandle ); 3477ec681f3Smrg 3487ec681f3SmrgHRESULT NINE_WINAPI 3497ec681f3SmrgNineDevice9_CreateCubeTexture( struct NineDevice9 *This, 3507ec681f3Smrg UINT EdgeLength, 3517ec681f3Smrg UINT Levels, 3527ec681f3Smrg DWORD Usage, 3537ec681f3Smrg D3DFORMAT Format, 3547ec681f3Smrg D3DPOOL Pool, 3557ec681f3Smrg IDirect3DCubeTexture9 **ppCubeTexture, 3567ec681f3Smrg HANDLE *pSharedHandle ); 3577ec681f3Smrg 3587ec681f3SmrgHRESULT NINE_WINAPI 3597ec681f3SmrgNineDevice9_CreateVertexBuffer( struct NineDevice9 *This, 3607ec681f3Smrg UINT Length, 3617ec681f3Smrg DWORD Usage, 3627ec681f3Smrg DWORD FVF, 3637ec681f3Smrg D3DPOOL Pool, 3647ec681f3Smrg IDirect3DVertexBuffer9 **ppVertexBuffer, 3657ec681f3Smrg HANDLE *pSharedHandle ); 3667ec681f3Smrg 3677ec681f3SmrgHRESULT NINE_WINAPI 3687ec681f3SmrgNineDevice9_CreateIndexBuffer( struct NineDevice9 *This, 3697ec681f3Smrg UINT Length, 3707ec681f3Smrg DWORD Usage, 3717ec681f3Smrg D3DFORMAT Format, 3727ec681f3Smrg D3DPOOL Pool, 3737ec681f3Smrg IDirect3DIndexBuffer9 **ppIndexBuffer, 3747ec681f3Smrg HANDLE *pSharedHandle ); 3757ec681f3Smrg 3767ec681f3SmrgHRESULT NINE_WINAPI 3777ec681f3SmrgNineDevice9_CreateRenderTarget( struct NineDevice9 *This, 3787ec681f3Smrg UINT Width, 3797ec681f3Smrg UINT Height, 3807ec681f3Smrg D3DFORMAT Format, 3817ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 3827ec681f3Smrg DWORD MultisampleQuality, 3837ec681f3Smrg BOOL Lockable, 3847ec681f3Smrg IDirect3DSurface9 **ppSurface, 3857ec681f3Smrg HANDLE *pSharedHandle ); 3867ec681f3Smrg 3877ec681f3SmrgHRESULT NINE_WINAPI 3887ec681f3SmrgNineDevice9_CreateDepthStencilSurface( struct NineDevice9 *This, 3897ec681f3Smrg UINT Width, 3907ec681f3Smrg UINT Height, 3917ec681f3Smrg D3DFORMAT Format, 3927ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 3937ec681f3Smrg DWORD MultisampleQuality, 3947ec681f3Smrg BOOL Discard, 3957ec681f3Smrg IDirect3DSurface9 **ppSurface, 3967ec681f3Smrg HANDLE *pSharedHandle ); 3977ec681f3Smrg 3987ec681f3SmrgHRESULT NINE_WINAPI 3997ec681f3SmrgNineDevice9_UpdateSurface( struct NineDevice9 *This, 4007ec681f3Smrg IDirect3DSurface9 *pSourceSurface, 4017ec681f3Smrg const RECT *pSourceRect, 4027ec681f3Smrg IDirect3DSurface9 *pDestinationSurface, 4037ec681f3Smrg const POINT *pDestPoint ); 4047ec681f3Smrg 4057ec681f3SmrgHRESULT NINE_WINAPI 4067ec681f3SmrgNineDevice9_UpdateTexture( struct NineDevice9 *This, 4077ec681f3Smrg IDirect3DBaseTexture9 *pSourceTexture, 4087ec681f3Smrg IDirect3DBaseTexture9 *pDestinationTexture ); 4097ec681f3Smrg 4107ec681f3SmrgHRESULT NINE_WINAPI 4117ec681f3SmrgNineDevice9_GetRenderTargetData( struct NineDevice9 *This, 4127ec681f3Smrg IDirect3DSurface9 *pRenderTarget, 4137ec681f3Smrg IDirect3DSurface9 *pDestSurface ); 4147ec681f3Smrg 4157ec681f3SmrgHRESULT NINE_WINAPI 4167ec681f3SmrgNineDevice9_GetFrontBufferData( struct NineDevice9 *This, 4177ec681f3Smrg UINT iSwapChain, 4187ec681f3Smrg IDirect3DSurface9 *pDestSurface ); 4197ec681f3Smrg 4207ec681f3SmrgHRESULT NINE_WINAPI 4217ec681f3SmrgNineDevice9_StretchRect( struct NineDevice9 *This, 4227ec681f3Smrg IDirect3DSurface9 *pSourceSurface, 4237ec681f3Smrg const RECT *pSourceRect, 4247ec681f3Smrg IDirect3DSurface9 *pDestSurface, 4257ec681f3Smrg const RECT *pDestRect, 4267ec681f3Smrg D3DTEXTUREFILTERTYPE Filter ); 4277ec681f3Smrg 4287ec681f3SmrgHRESULT NINE_WINAPI 4297ec681f3SmrgNineDevice9_ColorFill( struct NineDevice9 *This, 4307ec681f3Smrg IDirect3DSurface9 *pSurface, 4317ec681f3Smrg const RECT *pRect, 4327ec681f3Smrg D3DCOLOR color ); 4337ec681f3Smrg 4347ec681f3SmrgHRESULT NINE_WINAPI 4357ec681f3SmrgNineDevice9_CreateOffscreenPlainSurface( struct NineDevice9 *This, 4367ec681f3Smrg UINT Width, 4377ec681f3Smrg UINT Height, 4387ec681f3Smrg D3DFORMAT Format, 4397ec681f3Smrg D3DPOOL Pool, 4407ec681f3Smrg IDirect3DSurface9 **ppSurface, 4417ec681f3Smrg HANDLE *pSharedHandle ); 4427ec681f3Smrg 4437ec681f3SmrgHRESULT NINE_WINAPI 4447ec681f3SmrgNineDevice9_SetRenderTarget( struct NineDevice9 *This, 4457ec681f3Smrg DWORD RenderTargetIndex, 4467ec681f3Smrg IDirect3DSurface9 *pRenderTarget ); 4477ec681f3Smrg 4487ec681f3SmrgHRESULT NINE_WINAPI 4497ec681f3SmrgNineDevice9_GetRenderTarget( struct NineDevice9 *This, 4507ec681f3Smrg DWORD RenderTargetIndex, 4517ec681f3Smrg IDirect3DSurface9 **ppRenderTarget ); 4527ec681f3Smrg 4537ec681f3SmrgHRESULT NINE_WINAPI 4547ec681f3SmrgNineDevice9_SetDepthStencilSurface( struct NineDevice9 *This, 4557ec681f3Smrg IDirect3DSurface9 *pNewZStencil ); 4567ec681f3Smrg 4577ec681f3SmrgHRESULT NINE_WINAPI 4587ec681f3SmrgNineDevice9_GetDepthStencilSurface( struct NineDevice9 *This, 4597ec681f3Smrg IDirect3DSurface9 **ppZStencilSurface ); 4607ec681f3Smrg 4617ec681f3SmrgHRESULT NINE_WINAPI 4627ec681f3SmrgNineDevice9_BeginScene( struct NineDevice9 *This ); 4637ec681f3Smrg 4647ec681f3SmrgHRESULT NINE_WINAPI 4657ec681f3SmrgNineDevice9_EndScene( struct NineDevice9 *This ); 4667ec681f3Smrg 4677ec681f3SmrgHRESULT NINE_WINAPI 4687ec681f3SmrgNineDevice9_Clear( struct NineDevice9 *This, 4697ec681f3Smrg DWORD Count, 4707ec681f3Smrg const D3DRECT *pRects, 4717ec681f3Smrg DWORD Flags, 4727ec681f3Smrg D3DCOLOR Color, 4737ec681f3Smrg float Z, 4747ec681f3Smrg DWORD Stencil ); 4757ec681f3Smrg 4767ec681f3SmrgHRESULT NINE_WINAPI 4777ec681f3SmrgNineDevice9_SetTransform( struct NineDevice9 *This, 4787ec681f3Smrg D3DTRANSFORMSTATETYPE State, 4797ec681f3Smrg const D3DMATRIX *pMatrix ); 4807ec681f3Smrg 4817ec681f3SmrgHRESULT NINE_WINAPI 4827ec681f3SmrgNineDevice9_GetTransform( struct NineDevice9 *This, 4837ec681f3Smrg D3DTRANSFORMSTATETYPE State, 4847ec681f3Smrg D3DMATRIX *pMatrix ); 4857ec681f3Smrg 4867ec681f3SmrgHRESULT NINE_WINAPI 4877ec681f3SmrgNineDevice9_MultiplyTransform( struct NineDevice9 *This, 4887ec681f3Smrg D3DTRANSFORMSTATETYPE State, 4897ec681f3Smrg const D3DMATRIX *pMatrix ); 4907ec681f3Smrg 4917ec681f3SmrgHRESULT NINE_WINAPI 4927ec681f3SmrgNineDevice9_SetViewport( struct NineDevice9 *This, 4937ec681f3Smrg const D3DVIEWPORT9 *pViewport ); 4947ec681f3Smrg 4957ec681f3SmrgHRESULT NINE_WINAPI 4967ec681f3SmrgNineDevice9_GetViewport( struct NineDevice9 *This, 4977ec681f3Smrg D3DVIEWPORT9 *pViewport ); 4987ec681f3Smrg 4997ec681f3SmrgHRESULT NINE_WINAPI 5007ec681f3SmrgNineDevice9_SetMaterial( struct NineDevice9 *This, 5017ec681f3Smrg const D3DMATERIAL9 *pMaterial ); 5027ec681f3Smrg 5037ec681f3SmrgHRESULT NINE_WINAPI 5047ec681f3SmrgNineDevice9_GetMaterial( struct NineDevice9 *This, 5057ec681f3Smrg D3DMATERIAL9 *pMaterial ); 5067ec681f3Smrg 5077ec681f3SmrgHRESULT NINE_WINAPI 5087ec681f3SmrgNineDevice9_SetLight( struct NineDevice9 *This, 5097ec681f3Smrg DWORD Index, 5107ec681f3Smrg const D3DLIGHT9 *pLight ); 5117ec681f3Smrg 5127ec681f3SmrgHRESULT NINE_WINAPI 5137ec681f3SmrgNineDevice9_GetLight( struct NineDevice9 *This, 5147ec681f3Smrg DWORD Index, 5157ec681f3Smrg D3DLIGHT9 *pLight ); 5167ec681f3Smrg 5177ec681f3SmrgHRESULT NINE_WINAPI 5187ec681f3SmrgNineDevice9_LightEnable( struct NineDevice9 *This, 5197ec681f3Smrg DWORD Index, 5207ec681f3Smrg BOOL Enable ); 5217ec681f3Smrg 5227ec681f3SmrgHRESULT NINE_WINAPI 5237ec681f3SmrgNineDevice9_GetLightEnable( struct NineDevice9 *This, 5247ec681f3Smrg DWORD Index, 5257ec681f3Smrg BOOL *pEnable ); 5267ec681f3Smrg 5277ec681f3SmrgHRESULT NINE_WINAPI 5287ec681f3SmrgNineDevice9_SetClipPlane( struct NineDevice9 *This, 5297ec681f3Smrg DWORD Index, 5307ec681f3Smrg const float *pPlane ); 5317ec681f3Smrg 5327ec681f3SmrgHRESULT NINE_WINAPI 5337ec681f3SmrgNineDevice9_GetClipPlane( struct NineDevice9 *This, 5347ec681f3Smrg DWORD Index, 5357ec681f3Smrg float *pPlane ); 5367ec681f3Smrg 5377ec681f3SmrgHRESULT NINE_WINAPI 5387ec681f3SmrgNineDevice9_SetRenderState( struct NineDevice9 *This, 5397ec681f3Smrg D3DRENDERSTATETYPE State, 5407ec681f3Smrg DWORD Value ); 5417ec681f3Smrg 5427ec681f3SmrgHRESULT NINE_WINAPI 5437ec681f3SmrgNineDevice9_GetRenderState( struct NineDevice9 *This, 5447ec681f3Smrg D3DRENDERSTATETYPE State, 5457ec681f3Smrg DWORD *pValue ); 5467ec681f3Smrg 5477ec681f3SmrgHRESULT NINE_WINAPI 5487ec681f3SmrgNineDevice9_CreateStateBlock( struct NineDevice9 *This, 5497ec681f3Smrg D3DSTATEBLOCKTYPE Type, 5507ec681f3Smrg IDirect3DStateBlock9 **ppSB ); 5517ec681f3Smrg 5527ec681f3SmrgHRESULT NINE_WINAPI 5537ec681f3SmrgNineDevice9_BeginStateBlock( struct NineDevice9 *This ); 5547ec681f3Smrg 5557ec681f3SmrgHRESULT NINE_WINAPI 5567ec681f3SmrgNineDevice9_EndStateBlock( struct NineDevice9 *This, 5577ec681f3Smrg IDirect3DStateBlock9 **ppSB ); 5587ec681f3Smrg 5597ec681f3SmrgHRESULT NINE_WINAPI 5607ec681f3SmrgNineDevice9_SetClipStatus( struct NineDevice9 *This, 5617ec681f3Smrg const D3DCLIPSTATUS9 *pClipStatus ); 5627ec681f3Smrg 5637ec681f3SmrgHRESULT NINE_WINAPI 5647ec681f3SmrgNineDevice9_GetClipStatus( struct NineDevice9 *This, 5657ec681f3Smrg D3DCLIPSTATUS9 *pClipStatus ); 5667ec681f3Smrg 5677ec681f3SmrgHRESULT NINE_WINAPI 5687ec681f3SmrgNineDevice9_GetTexture( struct NineDevice9 *This, 5697ec681f3Smrg DWORD Stage, 5707ec681f3Smrg IDirect3DBaseTexture9 **ppTexture ); 5717ec681f3Smrg 5727ec681f3SmrgHRESULT NINE_WINAPI 5737ec681f3SmrgNineDevice9_SetTexture( struct NineDevice9 *This, 5747ec681f3Smrg DWORD Stage, 5757ec681f3Smrg IDirect3DBaseTexture9 *pTexture ); 5767ec681f3Smrg 5777ec681f3SmrgHRESULT NINE_WINAPI 5787ec681f3SmrgNineDevice9_GetTextureStageState( struct NineDevice9 *This, 5797ec681f3Smrg DWORD Stage, 5807ec681f3Smrg D3DTEXTURESTAGESTATETYPE Type, 5817ec681f3Smrg DWORD *pValue ); 5827ec681f3Smrg 5837ec681f3SmrgHRESULT NINE_WINAPI 5847ec681f3SmrgNineDevice9_SetTextureStageState( struct NineDevice9 *This, 5857ec681f3Smrg DWORD Stage, 5867ec681f3Smrg D3DTEXTURESTAGESTATETYPE Type, 5877ec681f3Smrg DWORD Value ); 5887ec681f3Smrg 5897ec681f3SmrgHRESULT NINE_WINAPI 5907ec681f3SmrgNineDevice9_GetSamplerState( struct NineDevice9 *This, 5917ec681f3Smrg DWORD Sampler, 5927ec681f3Smrg D3DSAMPLERSTATETYPE Type, 5937ec681f3Smrg DWORD *pValue ); 5947ec681f3Smrg 5957ec681f3SmrgHRESULT NINE_WINAPI 5967ec681f3SmrgNineDevice9_SetSamplerState( struct NineDevice9 *This, 5977ec681f3Smrg DWORD Sampler, 5987ec681f3Smrg D3DSAMPLERSTATETYPE Type, 5997ec681f3Smrg DWORD Value ); 6007ec681f3Smrg 6017ec681f3SmrgHRESULT NINE_WINAPI 6027ec681f3SmrgNineDevice9_ValidateDevice( struct NineDevice9 *This, 6037ec681f3Smrg DWORD *pNumPasses ); 6047ec681f3Smrg 6057ec681f3SmrgHRESULT NINE_WINAPI 6067ec681f3SmrgNineDevice9_SetPaletteEntries( struct NineDevice9 *This, 6077ec681f3Smrg UINT PaletteNumber, 6087ec681f3Smrg const PALETTEENTRY *pEntries ); 6097ec681f3Smrg 6107ec681f3SmrgHRESULT NINE_WINAPI 6117ec681f3SmrgNineDevice9_GetPaletteEntries( struct NineDevice9 *This, 6127ec681f3Smrg UINT PaletteNumber, 6137ec681f3Smrg PALETTEENTRY *pEntries ); 6147ec681f3Smrg 6157ec681f3SmrgHRESULT NINE_WINAPI 6167ec681f3SmrgNineDevice9_SetCurrentTexturePalette( struct NineDevice9 *This, 6177ec681f3Smrg UINT PaletteNumber ); 6187ec681f3Smrg 6197ec681f3SmrgHRESULT NINE_WINAPI 6207ec681f3SmrgNineDevice9_GetCurrentTexturePalette( struct NineDevice9 *This, 6217ec681f3Smrg UINT *PaletteNumber ); 6227ec681f3Smrg 6237ec681f3SmrgHRESULT NINE_WINAPI 6247ec681f3SmrgNineDevice9_SetScissorRect( struct NineDevice9 *This, 6257ec681f3Smrg const RECT *pRect ); 6267ec681f3Smrg 6277ec681f3SmrgHRESULT NINE_WINAPI 6287ec681f3SmrgNineDevice9_GetScissorRect( struct NineDevice9 *This, 6297ec681f3Smrg RECT *pRect ); 6307ec681f3Smrg 6317ec681f3SmrgHRESULT NINE_WINAPI 6327ec681f3SmrgNineDevice9_SetSoftwareVertexProcessing( struct NineDevice9 *This, 6337ec681f3Smrg BOOL bSoftware ); 6347ec681f3Smrg 6357ec681f3SmrgBOOL NINE_WINAPI 6367ec681f3SmrgNineDevice9_GetSoftwareVertexProcessing( struct NineDevice9 *This ); 6377ec681f3Smrg 6387ec681f3SmrgHRESULT NINE_WINAPI 6397ec681f3SmrgNineDevice9_SetNPatchMode( struct NineDevice9 *This, 6407ec681f3Smrg float nSegments ); 6417ec681f3Smrg 6427ec681f3Smrgfloat NINE_WINAPI 6437ec681f3SmrgNineDevice9_GetNPatchMode( struct NineDevice9 *This ); 6447ec681f3Smrg 6457ec681f3SmrgHRESULT NINE_WINAPI 6467ec681f3SmrgNineDevice9_DrawPrimitive( struct NineDevice9 *This, 6477ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 6487ec681f3Smrg UINT StartVertex, 6497ec681f3Smrg UINT PrimitiveCount ); 6507ec681f3Smrg 6517ec681f3SmrgHRESULT NINE_WINAPI 6527ec681f3SmrgNineDevice9_DrawIndexedPrimitive( struct NineDevice9 *This, 6537ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 6547ec681f3Smrg INT BaseVertexIndex, 6557ec681f3Smrg UINT MinVertexIndex, 6567ec681f3Smrg UINT NumVertices, 6577ec681f3Smrg UINT startIndex, 6587ec681f3Smrg UINT primCount ); 6597ec681f3Smrg 6607ec681f3SmrgHRESULT NINE_WINAPI 6617ec681f3SmrgNineDevice9_DrawPrimitiveUP( struct NineDevice9 *This, 6627ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 6637ec681f3Smrg UINT PrimitiveCount, 6647ec681f3Smrg const void *pVertexStreamZeroData, 6657ec681f3Smrg UINT VertexStreamZeroStride ); 6667ec681f3Smrg 6677ec681f3SmrgHRESULT NINE_WINAPI 6687ec681f3SmrgNineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, 6697ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 6707ec681f3Smrg UINT MinVertexIndex, 6717ec681f3Smrg UINT NumVertices, 6727ec681f3Smrg UINT PrimitiveCount, 6737ec681f3Smrg const void *pIndexData, 6747ec681f3Smrg D3DFORMAT IndexDataFormat, 6757ec681f3Smrg const void *pVertexStreamZeroData, 6767ec681f3Smrg UINT VertexStreamZeroStride ); 6777ec681f3Smrg 6787ec681f3SmrgHRESULT NINE_WINAPI 6797ec681f3SmrgNineDevice9_ProcessVertices( struct NineDevice9 *This, 6807ec681f3Smrg UINT SrcStartIndex, 6817ec681f3Smrg UINT DestIndex, 6827ec681f3Smrg UINT VertexCount, 6837ec681f3Smrg IDirect3DVertexBuffer9 *pDestBuffer, 6847ec681f3Smrg IDirect3DVertexDeclaration9 *pVertexDecl, 6857ec681f3Smrg DWORD Flags ); 6867ec681f3Smrg 6877ec681f3SmrgHRESULT NINE_WINAPI 6887ec681f3SmrgNineDevice9_CreateVertexDeclaration( struct NineDevice9 *This, 6897ec681f3Smrg const D3DVERTEXELEMENT9 *pVertexElements, 6907ec681f3Smrg IDirect3DVertexDeclaration9 **ppDecl ); 6917ec681f3Smrg 6927ec681f3SmrgHRESULT NINE_WINAPI 6937ec681f3SmrgNineDevice9_SetVertexDeclaration( struct NineDevice9 *This, 6947ec681f3Smrg IDirect3DVertexDeclaration9 *pDecl ); 6957ec681f3Smrg 6967ec681f3SmrgHRESULT NINE_WINAPI 6977ec681f3SmrgNineDevice9_GetVertexDeclaration( struct NineDevice9 *This, 6987ec681f3Smrg IDirect3DVertexDeclaration9 **ppDecl ); 6997ec681f3Smrg 7007ec681f3SmrgHRESULT NINE_WINAPI 7017ec681f3SmrgNineDevice9_SetFVF( struct NineDevice9 *This, 7027ec681f3Smrg DWORD FVF ); 7037ec681f3Smrg 7047ec681f3SmrgHRESULT NINE_WINAPI 7057ec681f3SmrgNineDevice9_GetFVF( struct NineDevice9 *This, 7067ec681f3Smrg DWORD *pFVF ); 7077ec681f3Smrg 7087ec681f3SmrgHRESULT NINE_WINAPI 7097ec681f3SmrgNineDevice9_CreateVertexShader( struct NineDevice9 *This, 7107ec681f3Smrg const DWORD *pFunction, 7117ec681f3Smrg IDirect3DVertexShader9 **ppShader ); 7127ec681f3Smrg 7137ec681f3SmrgHRESULT NINE_WINAPI 7147ec681f3SmrgNineDevice9_SetVertexShader( struct NineDevice9 *This, 7157ec681f3Smrg IDirect3DVertexShader9 *pShader ); 7167ec681f3Smrg 7177ec681f3SmrgHRESULT NINE_WINAPI 7187ec681f3SmrgNineDevice9_GetVertexShader( struct NineDevice9 *This, 7197ec681f3Smrg IDirect3DVertexShader9 **ppShader ); 7207ec681f3Smrg 7217ec681f3SmrgHRESULT NINE_WINAPI 7227ec681f3SmrgNineDevice9_SetVertexShaderConstantF( struct NineDevice9 *This, 7237ec681f3Smrg UINT StartRegister, 7247ec681f3Smrg const float *pConstantData, 7257ec681f3Smrg UINT Vector4fCount ); 7267ec681f3Smrg 7277ec681f3SmrgHRESULT NINE_WINAPI 7287ec681f3SmrgNineDevice9_GetVertexShaderConstantF( struct NineDevice9 *This, 7297ec681f3Smrg UINT StartRegister, 7307ec681f3Smrg float *pConstantData, 7317ec681f3Smrg UINT Vector4fCount ); 7327ec681f3Smrg 7337ec681f3SmrgHRESULT NINE_WINAPI 7347ec681f3SmrgNineDevice9_SetVertexShaderConstantI( struct NineDevice9 *This, 7357ec681f3Smrg UINT StartRegister, 7367ec681f3Smrg const int *pConstantData, 7377ec681f3Smrg UINT Vector4iCount ); 7387ec681f3Smrg 7397ec681f3SmrgHRESULT NINE_WINAPI 7407ec681f3SmrgNineDevice9_GetVertexShaderConstantI( struct NineDevice9 *This, 7417ec681f3Smrg UINT StartRegister, 7427ec681f3Smrg int *pConstantData, 7437ec681f3Smrg UINT Vector4iCount ); 7447ec681f3Smrg 7457ec681f3SmrgHRESULT NINE_WINAPI 7467ec681f3SmrgNineDevice9_SetVertexShaderConstantB( struct NineDevice9 *This, 7477ec681f3Smrg UINT StartRegister, 7487ec681f3Smrg const BOOL *pConstantData, 7497ec681f3Smrg UINT BoolCount ); 7507ec681f3Smrg 7517ec681f3SmrgHRESULT NINE_WINAPI 7527ec681f3SmrgNineDevice9_GetVertexShaderConstantB( struct NineDevice9 *This, 7537ec681f3Smrg UINT StartRegister, 7547ec681f3Smrg BOOL *pConstantData, 7557ec681f3Smrg UINT BoolCount ); 7567ec681f3Smrg 7577ec681f3SmrgHRESULT NINE_WINAPI 7587ec681f3SmrgNineDevice9_SetStreamSource( struct NineDevice9 *This, 7597ec681f3Smrg UINT StreamNumber, 7607ec681f3Smrg IDirect3DVertexBuffer9 *pStreamData, 7617ec681f3Smrg UINT OffsetInBytes, 7627ec681f3Smrg UINT Stride ); 7637ec681f3Smrg 7647ec681f3SmrgHRESULT NINE_WINAPI 7657ec681f3SmrgNineDevice9_GetStreamSource( struct NineDevice9 *This, 7667ec681f3Smrg UINT StreamNumber, 7677ec681f3Smrg IDirect3DVertexBuffer9 **ppStreamData, 7687ec681f3Smrg UINT *pOffsetInBytes, 7697ec681f3Smrg UINT *pStride ); 7707ec681f3Smrg 7717ec681f3SmrgHRESULT NINE_WINAPI 7727ec681f3SmrgNineDevice9_SetStreamSourceFreq( struct NineDevice9 *This, 7737ec681f3Smrg UINT StreamNumber, 7747ec681f3Smrg UINT Setting ); 7757ec681f3Smrg 7767ec681f3SmrgHRESULT NINE_WINAPI 7777ec681f3SmrgNineDevice9_GetStreamSourceFreq( struct NineDevice9 *This, 7787ec681f3Smrg UINT StreamNumber, 7797ec681f3Smrg UINT *pSetting ); 7807ec681f3Smrg 7817ec681f3SmrgHRESULT NINE_WINAPI 7827ec681f3SmrgNineDevice9_SetIndices( struct NineDevice9 *This, 7837ec681f3Smrg IDirect3DIndexBuffer9 *pIndexData ); 7847ec681f3Smrg 7857ec681f3SmrgHRESULT NINE_WINAPI 7867ec681f3SmrgNineDevice9_GetIndices( struct NineDevice9 *This, 7877ec681f3Smrg IDirect3DIndexBuffer9 **ppIndexData /*, 7887ec681f3Smrg UINT *pBaseVertexIndex */ ); 7897ec681f3Smrg 7907ec681f3SmrgHRESULT NINE_WINAPI 7917ec681f3SmrgNineDevice9_CreatePixelShader( struct NineDevice9 *This, 7927ec681f3Smrg const DWORD *pFunction, 7937ec681f3Smrg IDirect3DPixelShader9 **ppShader ); 7947ec681f3Smrg 7957ec681f3SmrgHRESULT NINE_WINAPI 7967ec681f3SmrgNineDevice9_SetPixelShader( struct NineDevice9 *This, 7977ec681f3Smrg IDirect3DPixelShader9 *pShader ); 7987ec681f3Smrg 7997ec681f3SmrgHRESULT NINE_WINAPI 8007ec681f3SmrgNineDevice9_GetPixelShader( struct NineDevice9 *This, 8017ec681f3Smrg IDirect3DPixelShader9 **ppShader ); 8027ec681f3Smrg 8037ec681f3SmrgHRESULT NINE_WINAPI 8047ec681f3SmrgNineDevice9_SetPixelShaderConstantF( struct NineDevice9 *This, 8057ec681f3Smrg UINT StartRegister, 8067ec681f3Smrg const float *pConstantData, 8077ec681f3Smrg UINT Vector4fCount ); 8087ec681f3Smrg 8097ec681f3SmrgHRESULT NINE_WINAPI 8107ec681f3SmrgNineDevice9_GetPixelShaderConstantF( struct NineDevice9 *This, 8117ec681f3Smrg UINT StartRegister, 8127ec681f3Smrg float *pConstantData, 8137ec681f3Smrg UINT Vector4fCount ); 8147ec681f3Smrg 8157ec681f3SmrgHRESULT NINE_WINAPI 8167ec681f3SmrgNineDevice9_SetPixelShaderConstantI( struct NineDevice9 *This, 8177ec681f3Smrg UINT StartRegister, 8187ec681f3Smrg const int *pConstantData, 8197ec681f3Smrg UINT Vector4iCount ); 8207ec681f3Smrg 8217ec681f3SmrgHRESULT NINE_WINAPI 8227ec681f3SmrgNineDevice9_GetPixelShaderConstantI( struct NineDevice9 *This, 8237ec681f3Smrg UINT StartRegister, 8247ec681f3Smrg int *pConstantData, 8257ec681f3Smrg UINT Vector4iCount ); 8267ec681f3Smrg 8277ec681f3SmrgHRESULT NINE_WINAPI 8287ec681f3SmrgNineDevice9_SetPixelShaderConstantB( struct NineDevice9 *This, 8297ec681f3Smrg UINT StartRegister, 8307ec681f3Smrg const BOOL *pConstantData, 8317ec681f3Smrg UINT BoolCount ); 8327ec681f3Smrg 8337ec681f3SmrgHRESULT NINE_WINAPI 8347ec681f3SmrgNineDevice9_GetPixelShaderConstantB( struct NineDevice9 *This, 8357ec681f3Smrg UINT StartRegister, 8367ec681f3Smrg BOOL *pConstantData, 8377ec681f3Smrg UINT BoolCount ); 8387ec681f3Smrg 8397ec681f3SmrgHRESULT NINE_WINAPI 8407ec681f3SmrgNineDevice9_DrawRectPatch( struct NineDevice9 *This, 8417ec681f3Smrg UINT Handle, 8427ec681f3Smrg const float *pNumSegs, 8437ec681f3Smrg const D3DRECTPATCH_INFO *pRectPatchInfo ); 8447ec681f3Smrg 8457ec681f3SmrgHRESULT NINE_WINAPI 8467ec681f3SmrgNineDevice9_DrawTriPatch( struct NineDevice9 *This, 8477ec681f3Smrg UINT Handle, 8487ec681f3Smrg const float *pNumSegs, 8497ec681f3Smrg const D3DTRIPATCH_INFO *pTriPatchInfo ); 8507ec681f3Smrg 8517ec681f3SmrgHRESULT NINE_WINAPI 8527ec681f3SmrgNineDevice9_DeletePatch( struct NineDevice9 *This, 8537ec681f3Smrg UINT Handle ); 8547ec681f3Smrg 8557ec681f3SmrgHRESULT NINE_WINAPI 8567ec681f3SmrgNineDevice9_CreateQuery( struct NineDevice9 *This, 8577ec681f3Smrg D3DQUERYTYPE Type, 8587ec681f3Smrg IDirect3DQuery9 **ppQuery ); 8597ec681f3Smrg 8607ec681f3Smrg#endif /* _NINE_DEVICE9_H_ */ 861