17ec681f3Smrg/* 27ec681f3Smrg * Copyright 2013 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#include "authenticatedchannel9.h" 247ec681f3Smrg#include "basetexture9.h" 257ec681f3Smrg#include "cryptosession9.h" 267ec681f3Smrg#include "cubetexture9.h" 277ec681f3Smrg#include "device9.h" 287ec681f3Smrg#include "device9ex.h" 297ec681f3Smrg#include "device9video.h" 307ec681f3Smrg#include "indexbuffer9.h" 317ec681f3Smrg#include "pixelshader9.h" 327ec681f3Smrg#include "query9.h" 337ec681f3Smrg#include "resource9.h" 347ec681f3Smrg#include "stateblock9.h" 357ec681f3Smrg#include "surface9.h" 367ec681f3Smrg#include "swapchain9.h" 377ec681f3Smrg#include "swapchain9ex.h" 387ec681f3Smrg#include "texture9.h" 397ec681f3Smrg#include "vertexbuffer9.h" 407ec681f3Smrg#include "vertexdeclaration9.h" 417ec681f3Smrg#include "vertexshader9.h" 427ec681f3Smrg#include "volume9.h" 437ec681f3Smrg#include "volumetexture9.h" 447ec681f3Smrg 457ec681f3Smrg#include "d3d9.h" 467ec681f3Smrg#include "nine_lock.h" 477ec681f3Smrg 487ec681f3Smrg#include "os/os_thread.h" 497ec681f3Smrg 507ec681f3Smrg/* Global mutex as described by MSDN */ 517ec681f3Smrgstatic mtx_t d3dlock_global = _MTX_INITIALIZER_NP; 527ec681f3Smrg 537ec681f3Smrgvoid 547ec681f3SmrgNineLockGlobalMutex() 557ec681f3Smrg{ 567ec681f3Smrg mtx_lock(&d3dlock_global); 577ec681f3Smrg} 587ec681f3Smrg 597ec681f3Smrgvoid 607ec681f3SmrgNineUnlockGlobalMutex() 617ec681f3Smrg{ 627ec681f3Smrg mtx_unlock(&d3dlock_global); 637ec681f3Smrg} 647ec681f3Smrg 657ec681f3Smrgstatic HRESULT NINE_WINAPI 667ec681f3SmrgLockAuthenticatedChannel9_GetCertificateSize( struct NineAuthenticatedChannel9 *This, 677ec681f3Smrg UINT *pCertificateSize ) 687ec681f3Smrg{ 697ec681f3Smrg HRESULT r; 707ec681f3Smrg mtx_lock(&d3dlock_global); 717ec681f3Smrg r = NineAuthenticatedChannel9_GetCertificateSize(This, pCertificateSize); 727ec681f3Smrg mtx_unlock(&d3dlock_global); 737ec681f3Smrg return r; 747ec681f3Smrg} 757ec681f3Smrg 767ec681f3Smrgstatic HRESULT NINE_WINAPI 777ec681f3SmrgLockAuthenticatedChannel9_GetCertificate( struct NineAuthenticatedChannel9 *This, 787ec681f3Smrg UINT CertifacteSize, 797ec681f3Smrg BYTE *ppCertificate ) 807ec681f3Smrg{ 817ec681f3Smrg HRESULT r; 827ec681f3Smrg mtx_lock(&d3dlock_global); 837ec681f3Smrg r = NineAuthenticatedChannel9_GetCertificate(This, CertifacteSize, ppCertificate); 847ec681f3Smrg mtx_unlock(&d3dlock_global); 857ec681f3Smrg return r; 867ec681f3Smrg} 877ec681f3Smrg 887ec681f3Smrgstatic HRESULT NINE_WINAPI 897ec681f3SmrgLockAuthenticatedChannel9_NegotiateKeyExchange( struct NineAuthenticatedChannel9 *This, 907ec681f3Smrg UINT DataSize, 917ec681f3Smrg void *pData ) 927ec681f3Smrg{ 937ec681f3Smrg HRESULT r; 947ec681f3Smrg mtx_lock(&d3dlock_global); 957ec681f3Smrg r = NineAuthenticatedChannel9_NegotiateKeyExchange(This, DataSize, pData); 967ec681f3Smrg mtx_unlock(&d3dlock_global); 977ec681f3Smrg return r; 987ec681f3Smrg} 997ec681f3Smrg 1007ec681f3Smrgstatic HRESULT NINE_WINAPI 1017ec681f3SmrgLockAuthenticatedChannel9_Query( struct NineAuthenticatedChannel9 *This, 1027ec681f3Smrg UINT InputSize, 1037ec681f3Smrg const void *pInput, 1047ec681f3Smrg UINT OutputSize, 1057ec681f3Smrg void *pOutput ) 1067ec681f3Smrg{ 1077ec681f3Smrg HRESULT r; 1087ec681f3Smrg mtx_lock(&d3dlock_global); 1097ec681f3Smrg r = NineAuthenticatedChannel9_Query(This, InputSize, pInput, OutputSize, pOutput); 1107ec681f3Smrg mtx_unlock(&d3dlock_global); 1117ec681f3Smrg return r; 1127ec681f3Smrg} 1137ec681f3Smrg 1147ec681f3Smrgstatic HRESULT NINE_WINAPI 1157ec681f3SmrgLockAuthenticatedChannel9_Configure( struct NineAuthenticatedChannel9 *This, 1167ec681f3Smrg UINT InputSize, 1177ec681f3Smrg const void *pInput, 1187ec681f3Smrg D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT *pOutput ) 1197ec681f3Smrg{ 1207ec681f3Smrg HRESULT r; 1217ec681f3Smrg mtx_lock(&d3dlock_global); 1227ec681f3Smrg r = NineAuthenticatedChannel9_Configure(This, InputSize, pInput, pOutput); 1237ec681f3Smrg mtx_unlock(&d3dlock_global); 1247ec681f3Smrg return r; 1257ec681f3Smrg} 1267ec681f3Smrg 1277ec681f3SmrgIDirect3DAuthenticatedChannel9Vtbl LockAuthenticatedChannel9_vtable = { 1287ec681f3Smrg (void *)NineUnknown_QueryInterface, 1297ec681f3Smrg (void *)NineUnknown_AddRef, 1307ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 1317ec681f3Smrg (void *)LockAuthenticatedChannel9_GetCertificateSize, 1327ec681f3Smrg (void *)LockAuthenticatedChannel9_GetCertificate, 1337ec681f3Smrg (void *)LockAuthenticatedChannel9_NegotiateKeyExchange, 1347ec681f3Smrg (void *)LockAuthenticatedChannel9_Query, 1357ec681f3Smrg (void *)LockAuthenticatedChannel9_Configure 1367ec681f3Smrg}; 1377ec681f3Smrg 1387ec681f3Smrgstatic HRESULT NINE_WINAPI 1397ec681f3SmrgLockUnknown_SetPrivateData( struct NineUnknown *This, 1407ec681f3Smrg REFGUID refguid, 1417ec681f3Smrg const void *pData, 1427ec681f3Smrg DWORD SizeOfData, 1437ec681f3Smrg DWORD Flags ) 1447ec681f3Smrg{ 1457ec681f3Smrg HRESULT r; 1467ec681f3Smrg mtx_lock(&d3dlock_global); 1477ec681f3Smrg r = NineUnknown_SetPrivateData(This, refguid, pData, SizeOfData, Flags); 1487ec681f3Smrg mtx_unlock(&d3dlock_global); 1497ec681f3Smrg return r; 1507ec681f3Smrg} 1517ec681f3Smrg 1527ec681f3Smrgstatic HRESULT NINE_WINAPI 1537ec681f3SmrgLockUnknown_GetPrivateData( struct NineUnknown *This, 1547ec681f3Smrg REFGUID refguid, 1557ec681f3Smrg void *pData, 1567ec681f3Smrg DWORD *pSizeOfData ) 1577ec681f3Smrg{ 1587ec681f3Smrg HRESULT r; 1597ec681f3Smrg mtx_lock(&d3dlock_global); 1607ec681f3Smrg r = NineUnknown_GetPrivateData(This, refguid, pData, pSizeOfData); 1617ec681f3Smrg mtx_unlock(&d3dlock_global); 1627ec681f3Smrg return r; 1637ec681f3Smrg} 1647ec681f3Smrg 1657ec681f3Smrgstatic HRESULT NINE_WINAPI 1667ec681f3SmrgLockUnknown_FreePrivateData( struct NineUnknown *This, 1677ec681f3Smrg REFGUID refguid ) 1687ec681f3Smrg{ 1697ec681f3Smrg HRESULT r; 1707ec681f3Smrg mtx_lock(&d3dlock_global); 1717ec681f3Smrg r = NineUnknown_FreePrivateData(This, refguid); 1727ec681f3Smrg mtx_unlock(&d3dlock_global); 1737ec681f3Smrg return r; 1747ec681f3Smrg} 1757ec681f3Smrg 1767ec681f3Smrg#if 0 1777ec681f3Smrgstatic HRESULT NINE_WINAPI 1787ec681f3SmrgLockResource9_GetDevice( struct NineResource9 *This, 1797ec681f3Smrg IDirect3DDevice9 **ppDevice ) 1807ec681f3Smrg{ 1817ec681f3Smrg HRESULT r; 1827ec681f3Smrg mtx_lock(&d3dlock_global); 1837ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 1847ec681f3Smrg mtx_unlock(&d3dlock_global); 1857ec681f3Smrg return r; 1867ec681f3Smrg} 1877ec681f3Smrg#endif 1887ec681f3Smrg 1897ec681f3Smrgstatic DWORD NINE_WINAPI 1907ec681f3SmrgLockResource9_SetPriority( struct NineResource9 *This, 1917ec681f3Smrg DWORD PriorityNew ) 1927ec681f3Smrg{ 1937ec681f3Smrg DWORD r; 1947ec681f3Smrg mtx_lock(&d3dlock_global); 1957ec681f3Smrg r = NineResource9_SetPriority(This, PriorityNew); 1967ec681f3Smrg mtx_unlock(&d3dlock_global); 1977ec681f3Smrg return r; 1987ec681f3Smrg} 1997ec681f3Smrg 2007ec681f3Smrgstatic DWORD NINE_WINAPI 2017ec681f3SmrgLockResource9_GetPriority( struct NineResource9 *This ) 2027ec681f3Smrg{ 2037ec681f3Smrg DWORD r; 2047ec681f3Smrg mtx_lock(&d3dlock_global); 2057ec681f3Smrg r = NineResource9_GetPriority(This); 2067ec681f3Smrg mtx_unlock(&d3dlock_global); 2077ec681f3Smrg return r; 2087ec681f3Smrg} 2097ec681f3Smrg 2107ec681f3Smrg#if 0 2117ec681f3Smrgstatic void NINE_WINAPI 2127ec681f3SmrgLockResource9_PreLoad( struct NineResource9 *This ) 2137ec681f3Smrg{ 2147ec681f3Smrg mtx_lock(&d3dlock_global); 2157ec681f3Smrg NineResource9_PreLoad(This); 2167ec681f3Smrg mtx_unlock(&d3dlock_global); 2177ec681f3Smrg} 2187ec681f3Smrg#endif 2197ec681f3Smrg 2207ec681f3Smrg#if 0 2217ec681f3Smrgstatic D3DRESOURCETYPE NINE_WINAPI 2227ec681f3SmrgLockResource9_GetType( struct NineResource9 *This ) 2237ec681f3Smrg{ 2247ec681f3Smrg D3DRESOURCETYPE r; 2257ec681f3Smrg mtx_lock(&d3dlock_global); 2267ec681f3Smrg r = NineResource9_GetType(This); 2277ec681f3Smrg mtx_unlock(&d3dlock_global); 2287ec681f3Smrg return r; 2297ec681f3Smrg} 2307ec681f3Smrg#endif 2317ec681f3Smrg 2327ec681f3Smrgstatic DWORD NINE_WINAPI 2337ec681f3SmrgLockBaseTexture9_SetLOD( struct NineBaseTexture9 *This, 2347ec681f3Smrg DWORD LODNew ) 2357ec681f3Smrg{ 2367ec681f3Smrg DWORD r; 2377ec681f3Smrg mtx_lock(&d3dlock_global); 2387ec681f3Smrg r = NineBaseTexture9_SetLOD(This, LODNew); 2397ec681f3Smrg mtx_unlock(&d3dlock_global); 2407ec681f3Smrg return r; 2417ec681f3Smrg} 2427ec681f3Smrg 2437ec681f3Smrgstatic DWORD NINE_WINAPI 2447ec681f3SmrgLockBaseTexture9_GetLOD( struct NineBaseTexture9 *This ) 2457ec681f3Smrg{ 2467ec681f3Smrg DWORD r; 2477ec681f3Smrg mtx_lock(&d3dlock_global); 2487ec681f3Smrg r = NineBaseTexture9_GetLOD(This); 2497ec681f3Smrg mtx_unlock(&d3dlock_global); 2507ec681f3Smrg return r; 2517ec681f3Smrg} 2527ec681f3Smrg 2537ec681f3Smrgstatic DWORD NINE_WINAPI 2547ec681f3SmrgLockBaseTexture9_GetLevelCount( struct NineBaseTexture9 *This ) 2557ec681f3Smrg{ 2567ec681f3Smrg DWORD r; 2577ec681f3Smrg mtx_lock(&d3dlock_global); 2587ec681f3Smrg r = NineBaseTexture9_GetLevelCount(This); 2597ec681f3Smrg mtx_unlock(&d3dlock_global); 2607ec681f3Smrg return r; 2617ec681f3Smrg} 2627ec681f3Smrg 2637ec681f3Smrgstatic HRESULT NINE_WINAPI 2647ec681f3SmrgLockBaseTexture9_SetAutoGenFilterType( struct NineBaseTexture9 *This, 2657ec681f3Smrg D3DTEXTUREFILTERTYPE FilterType ) 2667ec681f3Smrg{ 2677ec681f3Smrg HRESULT r; 2687ec681f3Smrg mtx_lock(&d3dlock_global); 2697ec681f3Smrg r = NineBaseTexture9_SetAutoGenFilterType(This, FilterType); 2707ec681f3Smrg mtx_unlock(&d3dlock_global); 2717ec681f3Smrg return r; 2727ec681f3Smrg} 2737ec681f3Smrg 2747ec681f3Smrgstatic D3DTEXTUREFILTERTYPE NINE_WINAPI 2757ec681f3SmrgLockBaseTexture9_GetAutoGenFilterType( struct NineBaseTexture9 *This ) 2767ec681f3Smrg{ 2777ec681f3Smrg D3DTEXTUREFILTERTYPE r; 2787ec681f3Smrg mtx_lock(&d3dlock_global); 2797ec681f3Smrg r = NineBaseTexture9_GetAutoGenFilterType(This); 2807ec681f3Smrg mtx_unlock(&d3dlock_global); 2817ec681f3Smrg return r; 2827ec681f3Smrg} 2837ec681f3Smrg 2847ec681f3Smrgstatic void NINE_WINAPI 2857ec681f3SmrgLockBaseTexture9_PreLoad( struct NineBaseTexture9 *This ) 2867ec681f3Smrg{ 2877ec681f3Smrg mtx_lock(&d3dlock_global); 2887ec681f3Smrg NineBaseTexture9_PreLoad(This); 2897ec681f3Smrg mtx_unlock(&d3dlock_global); 2907ec681f3Smrg} 2917ec681f3Smrg 2927ec681f3Smrgstatic void NINE_WINAPI 2937ec681f3SmrgLockBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9 *This ) 2947ec681f3Smrg{ 2957ec681f3Smrg mtx_lock(&d3dlock_global); 2967ec681f3Smrg NineBaseTexture9_GenerateMipSubLevels(This); 2977ec681f3Smrg mtx_unlock(&d3dlock_global); 2987ec681f3Smrg} 2997ec681f3Smrg 3007ec681f3Smrgstatic HRESULT NINE_WINAPI 3017ec681f3SmrgLockCryptoSession9_GetCertificateSize( struct NineCryptoSession9 *This, 3027ec681f3Smrg UINT *pCertificateSize ) 3037ec681f3Smrg{ 3047ec681f3Smrg HRESULT r; 3057ec681f3Smrg mtx_lock(&d3dlock_global); 3067ec681f3Smrg r = NineCryptoSession9_GetCertificateSize(This, pCertificateSize); 3077ec681f3Smrg mtx_unlock(&d3dlock_global); 3087ec681f3Smrg return r; 3097ec681f3Smrg} 3107ec681f3Smrg 3117ec681f3Smrgstatic HRESULT NINE_WINAPI 3127ec681f3SmrgLockCryptoSession9_GetCertificate( struct NineCryptoSession9 *This, 3137ec681f3Smrg UINT CertifacteSize, 3147ec681f3Smrg BYTE *ppCertificate ) 3157ec681f3Smrg{ 3167ec681f3Smrg HRESULT r; 3177ec681f3Smrg mtx_lock(&d3dlock_global); 3187ec681f3Smrg r = NineCryptoSession9_GetCertificate(This, CertifacteSize, ppCertificate); 3197ec681f3Smrg mtx_unlock(&d3dlock_global); 3207ec681f3Smrg return r; 3217ec681f3Smrg} 3227ec681f3Smrg 3237ec681f3Smrgstatic HRESULT NINE_WINAPI 3247ec681f3SmrgLockCryptoSession9_NegotiateKeyExchange( struct NineCryptoSession9 *This, 3257ec681f3Smrg UINT DataSize, 3267ec681f3Smrg void *pData ) 3277ec681f3Smrg{ 3287ec681f3Smrg HRESULT r; 3297ec681f3Smrg mtx_lock(&d3dlock_global); 3307ec681f3Smrg r = NineCryptoSession9_NegotiateKeyExchange(This, DataSize, pData); 3317ec681f3Smrg mtx_unlock(&d3dlock_global); 3327ec681f3Smrg return r; 3337ec681f3Smrg} 3347ec681f3Smrg 3357ec681f3Smrgstatic HRESULT NINE_WINAPI 3367ec681f3SmrgLockCryptoSession9_EncryptionBlt( struct NineCryptoSession9 *This, 3377ec681f3Smrg IDirect3DSurface9 *pSrcSurface, 3387ec681f3Smrg IDirect3DSurface9 *pDstSurface, 3397ec681f3Smrg UINT DstSurfaceSize, 3407ec681f3Smrg void *pIV ) 3417ec681f3Smrg{ 3427ec681f3Smrg HRESULT r; 3437ec681f3Smrg mtx_lock(&d3dlock_global); 3447ec681f3Smrg r = NineCryptoSession9_EncryptionBlt(This, pSrcSurface, pDstSurface, DstSurfaceSize, pIV); 3457ec681f3Smrg mtx_unlock(&d3dlock_global); 3467ec681f3Smrg return r; 3477ec681f3Smrg} 3487ec681f3Smrg 3497ec681f3Smrgstatic HRESULT NINE_WINAPI 3507ec681f3SmrgLockCryptoSession9_DecryptionBlt( struct NineCryptoSession9 *This, 3517ec681f3Smrg IDirect3DSurface9 *pSrcSurface, 3527ec681f3Smrg IDirect3DSurface9 *pDstSurface, 3537ec681f3Smrg UINT SrcSurfaceSize, 3547ec681f3Smrg D3DENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo, 3557ec681f3Smrg void *pContentKey, 3567ec681f3Smrg void *pIV ) 3577ec681f3Smrg{ 3587ec681f3Smrg HRESULT r; 3597ec681f3Smrg mtx_lock(&d3dlock_global); 3607ec681f3Smrg r = NineCryptoSession9_DecryptionBlt(This, pSrcSurface, pDstSurface, SrcSurfaceSize, pEncryptedBlockInfo, pContentKey, pIV); 3617ec681f3Smrg mtx_unlock(&d3dlock_global); 3627ec681f3Smrg return r; 3637ec681f3Smrg} 3647ec681f3Smrg 3657ec681f3Smrgstatic HRESULT NINE_WINAPI 3667ec681f3SmrgLockCryptoSession9_GetSurfacePitch( struct NineCryptoSession9 *This, 3677ec681f3Smrg IDirect3DSurface9 *pSrcSurface, 3687ec681f3Smrg UINT *pSurfacePitch ) 3697ec681f3Smrg{ 3707ec681f3Smrg HRESULT r; 3717ec681f3Smrg mtx_lock(&d3dlock_global); 3727ec681f3Smrg r = NineCryptoSession9_GetSurfacePitch(This, pSrcSurface, pSurfacePitch); 3737ec681f3Smrg mtx_unlock(&d3dlock_global); 3747ec681f3Smrg return r; 3757ec681f3Smrg} 3767ec681f3Smrg 3777ec681f3Smrgstatic HRESULT NINE_WINAPI 3787ec681f3SmrgLockCryptoSession9_StartSessionKeyRefresh( struct NineCryptoSession9 *This, 3797ec681f3Smrg void *pRandomNumber, 3807ec681f3Smrg UINT RandomNumberSize ) 3817ec681f3Smrg{ 3827ec681f3Smrg HRESULT r; 3837ec681f3Smrg mtx_lock(&d3dlock_global); 3847ec681f3Smrg r = NineCryptoSession9_StartSessionKeyRefresh(This, pRandomNumber, RandomNumberSize); 3857ec681f3Smrg mtx_unlock(&d3dlock_global); 3867ec681f3Smrg return r; 3877ec681f3Smrg} 3887ec681f3Smrg 3897ec681f3Smrgstatic HRESULT NINE_WINAPI 3907ec681f3SmrgLockCryptoSession9_FinishSessionKeyRefresh( struct NineCryptoSession9 *This ) 3917ec681f3Smrg{ 3927ec681f3Smrg HRESULT r; 3937ec681f3Smrg mtx_lock(&d3dlock_global); 3947ec681f3Smrg r = NineCryptoSession9_FinishSessionKeyRefresh(This); 3957ec681f3Smrg mtx_unlock(&d3dlock_global); 3967ec681f3Smrg return r; 3977ec681f3Smrg} 3987ec681f3Smrg 3997ec681f3Smrgstatic HRESULT NINE_WINAPI 4007ec681f3SmrgLockCryptoSession9_GetEncryptionBltKey( struct NineCryptoSession9 *This, 4017ec681f3Smrg void *pReadbackKey, 4027ec681f3Smrg UINT KeySize ) 4037ec681f3Smrg{ 4047ec681f3Smrg HRESULT r; 4057ec681f3Smrg mtx_lock(&d3dlock_global); 4067ec681f3Smrg r = NineCryptoSession9_GetEncryptionBltKey(This, pReadbackKey, KeySize); 4077ec681f3Smrg mtx_unlock(&d3dlock_global); 4087ec681f3Smrg return r; 4097ec681f3Smrg} 4107ec681f3Smrg 4117ec681f3SmrgIDirect3DCryptoSession9Vtbl LockCryptoSession9_vtable = { 4127ec681f3Smrg (void *)NineUnknown_QueryInterface, 4137ec681f3Smrg (void *)NineUnknown_AddRef, 4147ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 4157ec681f3Smrg (void *)LockCryptoSession9_GetCertificateSize, 4167ec681f3Smrg (void *)LockCryptoSession9_GetCertificate, 4177ec681f3Smrg (void *)LockCryptoSession9_NegotiateKeyExchange, 4187ec681f3Smrg (void *)LockCryptoSession9_EncryptionBlt, 4197ec681f3Smrg (void *)LockCryptoSession9_DecryptionBlt, 4207ec681f3Smrg (void *)LockCryptoSession9_GetSurfacePitch, 4217ec681f3Smrg (void *)LockCryptoSession9_StartSessionKeyRefresh, 4227ec681f3Smrg (void *)LockCryptoSession9_FinishSessionKeyRefresh, 4237ec681f3Smrg (void *)LockCryptoSession9_GetEncryptionBltKey 4247ec681f3Smrg}; 4257ec681f3Smrg 4267ec681f3Smrg#if 0 4277ec681f3Smrgstatic HRESULT NINE_WINAPI 4287ec681f3SmrgLockCubeTexture9_GetLevelDesc( struct NineCubeTexture9 *This, 4297ec681f3Smrg UINT Level, 4307ec681f3Smrg D3DSURFACE_DESC *pDesc ) 4317ec681f3Smrg{ 4327ec681f3Smrg HRESULT r; 4337ec681f3Smrg mtx_lock(&d3dlock_global); 4347ec681f3Smrg r = NineCubeTexture9_GetLevelDesc(This, Level, pDesc); 4357ec681f3Smrg mtx_unlock(&d3dlock_global); 4367ec681f3Smrg return r; 4377ec681f3Smrg} 4387ec681f3Smrg#endif 4397ec681f3Smrg 4407ec681f3Smrg#if 0 4417ec681f3Smrgstatic HRESULT NINE_WINAPI 4427ec681f3SmrgLockCubeTexture9_GetCubeMapSurface( struct NineCubeTexture9 *This, 4437ec681f3Smrg D3DCUBEMAP_FACES FaceType, 4447ec681f3Smrg UINT Level, 4457ec681f3Smrg IDirect3DSurface9 **ppCubeMapSurface ) 4467ec681f3Smrg{ 4477ec681f3Smrg HRESULT r; 4487ec681f3Smrg mtx_lock(&d3dlock_global); 4497ec681f3Smrg r = NineCubeTexture9_GetCubeMapSurface(This, FaceType, Level, ppCubeMapSurface); 4507ec681f3Smrg mtx_unlock(&d3dlock_global); 4517ec681f3Smrg return r; 4527ec681f3Smrg} 4537ec681f3Smrg#endif 4547ec681f3Smrg 4557ec681f3Smrgstatic HRESULT NINE_WINAPI 4567ec681f3SmrgLockCubeTexture9_LockRect( struct NineCubeTexture9 *This, 4577ec681f3Smrg D3DCUBEMAP_FACES FaceType, 4587ec681f3Smrg UINT Level, 4597ec681f3Smrg D3DLOCKED_RECT *pLockedRect, 4607ec681f3Smrg const RECT *pRect, 4617ec681f3Smrg DWORD Flags ) 4627ec681f3Smrg{ 4637ec681f3Smrg HRESULT r; 4647ec681f3Smrg mtx_lock(&d3dlock_global); 4657ec681f3Smrg r = NineCubeTexture9_LockRect(This, FaceType, Level, pLockedRect, pRect, Flags); 4667ec681f3Smrg mtx_unlock(&d3dlock_global); 4677ec681f3Smrg return r; 4687ec681f3Smrg} 4697ec681f3Smrg 4707ec681f3Smrgstatic HRESULT NINE_WINAPI 4717ec681f3SmrgLockCubeTexture9_UnlockRect( struct NineCubeTexture9 *This, 4727ec681f3Smrg D3DCUBEMAP_FACES FaceType, 4737ec681f3Smrg UINT Level ) 4747ec681f3Smrg{ 4757ec681f3Smrg HRESULT r; 4767ec681f3Smrg mtx_lock(&d3dlock_global); 4777ec681f3Smrg r = NineCubeTexture9_UnlockRect(This, FaceType, Level); 4787ec681f3Smrg mtx_unlock(&d3dlock_global); 4797ec681f3Smrg return r; 4807ec681f3Smrg} 4817ec681f3Smrg 4827ec681f3Smrgstatic HRESULT NINE_WINAPI 4837ec681f3SmrgLockCubeTexture9_AddDirtyRect( struct NineCubeTexture9 *This, 4847ec681f3Smrg D3DCUBEMAP_FACES FaceType, 4857ec681f3Smrg const RECT *pDirtyRect ) 4867ec681f3Smrg{ 4877ec681f3Smrg HRESULT r; 4887ec681f3Smrg mtx_lock(&d3dlock_global); 4897ec681f3Smrg r = NineCubeTexture9_AddDirtyRect(This, FaceType, pDirtyRect); 4907ec681f3Smrg mtx_unlock(&d3dlock_global); 4917ec681f3Smrg return r; 4927ec681f3Smrg} 4937ec681f3Smrg 4947ec681f3SmrgIDirect3DCubeTexture9Vtbl LockCubeTexture9_vtable = { 4957ec681f3Smrg (void *)NineUnknown_QueryInterface, 4967ec681f3Smrg (void *)NineUnknown_AddRef, 4977ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 4987ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 4997ec681f3Smrg (void *)LockUnknown_SetPrivateData, 5007ec681f3Smrg (void *)LockUnknown_GetPrivateData, 5017ec681f3Smrg (void *)LockUnknown_FreePrivateData, 5027ec681f3Smrg (void *)LockResource9_SetPriority, 5037ec681f3Smrg (void *)LockResource9_GetPriority, 5047ec681f3Smrg (void *)LockBaseTexture9_PreLoad, 5057ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 5067ec681f3Smrg (void *)LockBaseTexture9_SetLOD, 5077ec681f3Smrg (void *)LockBaseTexture9_GetLOD, 5087ec681f3Smrg (void *)LockBaseTexture9_GetLevelCount, 5097ec681f3Smrg (void *)LockBaseTexture9_SetAutoGenFilterType, 5107ec681f3Smrg (void *)LockBaseTexture9_GetAutoGenFilterType, 5117ec681f3Smrg (void *)LockBaseTexture9_GenerateMipSubLevels, 5127ec681f3Smrg (void *)NineCubeTexture9_GetLevelDesc, /* immutable */ 5137ec681f3Smrg (void *)NineCubeTexture9_GetCubeMapSurface, /* AddRef */ 5147ec681f3Smrg (void *)LockCubeTexture9_LockRect, 5157ec681f3Smrg (void *)LockCubeTexture9_UnlockRect, 5167ec681f3Smrg (void *)LockCubeTexture9_AddDirtyRect 5177ec681f3Smrg}; 5187ec681f3Smrg 5197ec681f3Smrgstatic HRESULT NINE_WINAPI 5207ec681f3SmrgLockDevice9_TestCooperativeLevel( struct NineDevice9 *This ) 5217ec681f3Smrg{ 5227ec681f3Smrg HRESULT r; 5237ec681f3Smrg mtx_lock(&d3dlock_global); 5247ec681f3Smrg r = NineDevice9_TestCooperativeLevel(This); 5257ec681f3Smrg mtx_unlock(&d3dlock_global); 5267ec681f3Smrg return r; 5277ec681f3Smrg} 5287ec681f3Smrg 5297ec681f3Smrgstatic UINT NINE_WINAPI 5307ec681f3SmrgLockDevice9_GetAvailableTextureMem( struct NineDevice9 *This ) 5317ec681f3Smrg{ 5327ec681f3Smrg UINT r; 5337ec681f3Smrg mtx_lock(&d3dlock_global); 5347ec681f3Smrg r = NineDevice9_GetAvailableTextureMem(This); 5357ec681f3Smrg mtx_unlock(&d3dlock_global); 5367ec681f3Smrg return r; 5377ec681f3Smrg} 5387ec681f3Smrg 5397ec681f3Smrgstatic HRESULT NINE_WINAPI 5407ec681f3SmrgLockDevice9_EvictManagedResources( struct NineDevice9 *This ) 5417ec681f3Smrg{ 5427ec681f3Smrg HRESULT r; 5437ec681f3Smrg mtx_lock(&d3dlock_global); 5447ec681f3Smrg r = NineDevice9_EvictManagedResources(This); 5457ec681f3Smrg mtx_unlock(&d3dlock_global); 5467ec681f3Smrg return r; 5477ec681f3Smrg} 5487ec681f3Smrg 5497ec681f3Smrgstatic HRESULT NINE_WINAPI 5507ec681f3SmrgLockDevice9_GetDirect3D( struct NineDevice9 *This, 5517ec681f3Smrg IDirect3D9 **ppD3D9 ) 5527ec681f3Smrg{ 5537ec681f3Smrg HRESULT r; 5547ec681f3Smrg mtx_lock(&d3dlock_global); 5557ec681f3Smrg r = NineDevice9_GetDirect3D(This, ppD3D9); 5567ec681f3Smrg mtx_unlock(&d3dlock_global); 5577ec681f3Smrg return r; 5587ec681f3Smrg} 5597ec681f3Smrg 5607ec681f3Smrg#if 0 5617ec681f3Smrgstatic HRESULT NINE_WINAPI 5627ec681f3SmrgLockDevice9_GetDeviceCaps( struct NineDevice9 *This, 5637ec681f3Smrg D3DCAPS9 *pCaps ) 5647ec681f3Smrg{ 5657ec681f3Smrg HRESULT r; 5667ec681f3Smrg mtx_lock(&d3dlock_global); 5677ec681f3Smrg r = NineDevice9_GetDeviceCaps(This, pCaps); 5687ec681f3Smrg mtx_unlock(&d3dlock_global); 5697ec681f3Smrg return r; 5707ec681f3Smrg} 5717ec681f3Smrg#endif 5727ec681f3Smrg 5737ec681f3Smrgstatic HRESULT NINE_WINAPI 5747ec681f3SmrgLockDevice9_GetDisplayMode( struct NineDevice9 *This, 5757ec681f3Smrg UINT iSwapChain, 5767ec681f3Smrg D3DDISPLAYMODE *pMode ) 5777ec681f3Smrg{ 5787ec681f3Smrg HRESULT r; 5797ec681f3Smrg mtx_lock(&d3dlock_global); 5807ec681f3Smrg r = NineDevice9_GetDisplayMode(This, iSwapChain, pMode); 5817ec681f3Smrg mtx_unlock(&d3dlock_global); 5827ec681f3Smrg return r; 5837ec681f3Smrg} 5847ec681f3Smrg 5857ec681f3Smrg#if 0 5867ec681f3Smrgstatic HRESULT NINE_WINAPI 5877ec681f3SmrgLockDevice9_GetCreationParameters( struct NineDevice9 *This, 5887ec681f3Smrg D3DDEVICE_CREATION_PARAMETERS *pParameters ) 5897ec681f3Smrg{ 5907ec681f3Smrg HRESULT r; 5917ec681f3Smrg mtx_lock(&d3dlock_global); 5927ec681f3Smrg r = NineDevice9_GetCreationParameters(This, pParameters); 5937ec681f3Smrg mtx_unlock(&d3dlock_global); 5947ec681f3Smrg return r; 5957ec681f3Smrg} 5967ec681f3Smrg#endif 5977ec681f3Smrg 5987ec681f3Smrgstatic HRESULT NINE_WINAPI 5997ec681f3SmrgLockDevice9_SetCursorProperties( struct NineDevice9 *This, 6007ec681f3Smrg UINT XHotSpot, 6017ec681f3Smrg UINT YHotSpot, 6027ec681f3Smrg IDirect3DSurface9 *pCursorBitmap ) 6037ec681f3Smrg{ 6047ec681f3Smrg HRESULT r; 6057ec681f3Smrg mtx_lock(&d3dlock_global); 6067ec681f3Smrg r = NineDevice9_SetCursorProperties(This, XHotSpot, YHotSpot, pCursorBitmap); 6077ec681f3Smrg mtx_unlock(&d3dlock_global); 6087ec681f3Smrg return r; 6097ec681f3Smrg} 6107ec681f3Smrg 6117ec681f3Smrgstatic void NINE_WINAPI 6127ec681f3SmrgLockDevice9_SetCursorPosition( struct NineDevice9 *This, 6137ec681f3Smrg int X, 6147ec681f3Smrg int Y, 6157ec681f3Smrg DWORD Flags ) 6167ec681f3Smrg{ 6177ec681f3Smrg mtx_lock(&d3dlock_global); 6187ec681f3Smrg NineDevice9_SetCursorPosition(This, X, Y, Flags); 6197ec681f3Smrg mtx_unlock(&d3dlock_global); 6207ec681f3Smrg} 6217ec681f3Smrg 6227ec681f3Smrgstatic BOOL NINE_WINAPI 6237ec681f3SmrgLockDevice9_ShowCursor( struct NineDevice9 *This, 6247ec681f3Smrg BOOL bShow ) 6257ec681f3Smrg{ 6267ec681f3Smrg BOOL r; 6277ec681f3Smrg mtx_lock(&d3dlock_global); 6287ec681f3Smrg r = NineDevice9_ShowCursor(This, bShow); 6297ec681f3Smrg mtx_unlock(&d3dlock_global); 6307ec681f3Smrg return r; 6317ec681f3Smrg} 6327ec681f3Smrg 6337ec681f3Smrgstatic HRESULT NINE_WINAPI 6347ec681f3SmrgLockDevice9_CreateAdditionalSwapChain( struct NineDevice9 *This, 6357ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters, 6367ec681f3Smrg IDirect3DSwapChain9 **pSwapChain ) 6377ec681f3Smrg{ 6387ec681f3Smrg HRESULT r; 6397ec681f3Smrg mtx_lock(&d3dlock_global); 6407ec681f3Smrg r = NineDevice9_CreateAdditionalSwapChain(This, pPresentationParameters, pSwapChain); 6417ec681f3Smrg mtx_unlock(&d3dlock_global); 6427ec681f3Smrg return r; 6437ec681f3Smrg} 6447ec681f3Smrg 6457ec681f3Smrgstatic HRESULT NINE_WINAPI 6467ec681f3SmrgLockDevice9_GetSwapChain( struct NineDevice9 *This, 6477ec681f3Smrg UINT iSwapChain, 6487ec681f3Smrg IDirect3DSwapChain9 **pSwapChain ) 6497ec681f3Smrg{ 6507ec681f3Smrg HRESULT r; 6517ec681f3Smrg mtx_lock(&d3dlock_global); 6527ec681f3Smrg r = NineDevice9_GetSwapChain(This, iSwapChain, pSwapChain); 6537ec681f3Smrg mtx_unlock(&d3dlock_global); 6547ec681f3Smrg return r; 6557ec681f3Smrg} 6567ec681f3Smrg 6577ec681f3Smrgstatic UINT NINE_WINAPI 6587ec681f3SmrgLockDevice9_GetNumberOfSwapChains( struct NineDevice9 *This ) 6597ec681f3Smrg{ 6607ec681f3Smrg UINT r; 6617ec681f3Smrg mtx_lock(&d3dlock_global); 6627ec681f3Smrg r = NineDevice9_GetNumberOfSwapChains(This); 6637ec681f3Smrg mtx_unlock(&d3dlock_global); 6647ec681f3Smrg return r; 6657ec681f3Smrg} 6667ec681f3Smrg 6677ec681f3Smrgstatic HRESULT NINE_WINAPI 6687ec681f3SmrgLockDevice9_Reset( struct NineDevice9 *This, 6697ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters ) 6707ec681f3Smrg{ 6717ec681f3Smrg HRESULT r; 6727ec681f3Smrg mtx_lock(&d3dlock_global); 6737ec681f3Smrg r = NineDevice9_Reset(This, pPresentationParameters); 6747ec681f3Smrg mtx_unlock(&d3dlock_global); 6757ec681f3Smrg return r; 6767ec681f3Smrg} 6777ec681f3Smrg 6787ec681f3Smrgstatic HRESULT NINE_WINAPI 6797ec681f3SmrgLockDevice9_Present( struct NineDevice9 *This, 6807ec681f3Smrg const RECT *pSourceRect, 6817ec681f3Smrg const RECT *pDestRect, 6827ec681f3Smrg HWND hDestWindowOverride, 6837ec681f3Smrg const RGNDATA *pDirtyRegion ) 6847ec681f3Smrg{ 6857ec681f3Smrg HRESULT r; 6867ec681f3Smrg mtx_lock(&d3dlock_global); 6877ec681f3Smrg r = NineDevice9_Present(This, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion); 6887ec681f3Smrg mtx_unlock(&d3dlock_global); 6897ec681f3Smrg return r; 6907ec681f3Smrg} 6917ec681f3Smrg 6927ec681f3Smrgstatic HRESULT NINE_WINAPI 6937ec681f3SmrgLockDevice9_GetBackBuffer( struct NineDevice9 *This, 6947ec681f3Smrg UINT iSwapChain, 6957ec681f3Smrg UINT iBackBuffer, 6967ec681f3Smrg D3DBACKBUFFER_TYPE Type, 6977ec681f3Smrg IDirect3DSurface9 **ppBackBuffer ) 6987ec681f3Smrg{ 6997ec681f3Smrg HRESULT r; 7007ec681f3Smrg mtx_lock(&d3dlock_global); 7017ec681f3Smrg r = NineDevice9_GetBackBuffer(This, iSwapChain, iBackBuffer, Type, ppBackBuffer); 7027ec681f3Smrg mtx_unlock(&d3dlock_global); 7037ec681f3Smrg return r; 7047ec681f3Smrg} 7057ec681f3Smrg 7067ec681f3Smrgstatic HRESULT NINE_WINAPI 7077ec681f3SmrgLockDevice9_GetRasterStatus( struct NineDevice9 *This, 7087ec681f3Smrg UINT iSwapChain, 7097ec681f3Smrg D3DRASTER_STATUS *pRasterStatus ) 7107ec681f3Smrg{ 7117ec681f3Smrg HRESULT r; 7127ec681f3Smrg mtx_lock(&d3dlock_global); 7137ec681f3Smrg r = NineDevice9_GetRasterStatus(This, iSwapChain, pRasterStatus); 7147ec681f3Smrg mtx_unlock(&d3dlock_global); 7157ec681f3Smrg return r; 7167ec681f3Smrg} 7177ec681f3Smrg 7187ec681f3Smrgstatic HRESULT NINE_WINAPI 7197ec681f3SmrgLockDevice9_SetDialogBoxMode( struct NineDevice9 *This, 7207ec681f3Smrg BOOL bEnableDialogs ) 7217ec681f3Smrg{ 7227ec681f3Smrg HRESULT r; 7237ec681f3Smrg mtx_lock(&d3dlock_global); 7247ec681f3Smrg r = NineDevice9_SetDialogBoxMode(This, bEnableDialogs); 7257ec681f3Smrg mtx_unlock(&d3dlock_global); 7267ec681f3Smrg return r; 7277ec681f3Smrg} 7287ec681f3Smrg 7297ec681f3Smrgstatic void NINE_WINAPI 7307ec681f3SmrgLockDevice9_SetGammaRamp( struct NineDevice9 *This, 7317ec681f3Smrg UINT iSwapChain, 7327ec681f3Smrg DWORD Flags, 7337ec681f3Smrg const D3DGAMMARAMP *pRamp ) 7347ec681f3Smrg{ 7357ec681f3Smrg mtx_lock(&d3dlock_global); 7367ec681f3Smrg NineDevice9_SetGammaRamp(This, iSwapChain, Flags, pRamp); 7377ec681f3Smrg mtx_unlock(&d3dlock_global); 7387ec681f3Smrg} 7397ec681f3Smrg 7407ec681f3Smrgstatic void NINE_WINAPI 7417ec681f3SmrgLockDevice9_GetGammaRamp( struct NineDevice9 *This, 7427ec681f3Smrg UINT iSwapChain, 7437ec681f3Smrg D3DGAMMARAMP *pRamp ) 7447ec681f3Smrg{ 7457ec681f3Smrg mtx_lock(&d3dlock_global); 7467ec681f3Smrg NineDevice9_GetGammaRamp(This, iSwapChain, pRamp); 7477ec681f3Smrg mtx_unlock(&d3dlock_global); 7487ec681f3Smrg} 7497ec681f3Smrg 7507ec681f3Smrgstatic HRESULT NINE_WINAPI 7517ec681f3SmrgLockDevice9_CreateTexture( struct NineDevice9 *This, 7527ec681f3Smrg UINT Width, 7537ec681f3Smrg UINT Height, 7547ec681f3Smrg UINT Levels, 7557ec681f3Smrg DWORD Usage, 7567ec681f3Smrg D3DFORMAT Format, 7577ec681f3Smrg D3DPOOL Pool, 7587ec681f3Smrg IDirect3DTexture9 **ppTexture, 7597ec681f3Smrg HANDLE *pSharedHandle ) 7607ec681f3Smrg{ 7617ec681f3Smrg HRESULT r; 7627ec681f3Smrg mtx_lock(&d3dlock_global); 7637ec681f3Smrg r = NineDevice9_CreateTexture(This, Width, Height, Levels, Usage, Format, Pool, ppTexture, pSharedHandle); 7647ec681f3Smrg mtx_unlock(&d3dlock_global); 7657ec681f3Smrg return r; 7667ec681f3Smrg} 7677ec681f3Smrg 7687ec681f3Smrgstatic HRESULT NINE_WINAPI 7697ec681f3SmrgLockDevice9_CreateVolumeTexture( struct NineDevice9 *This, 7707ec681f3Smrg UINT Width, 7717ec681f3Smrg UINT Height, 7727ec681f3Smrg UINT Depth, 7737ec681f3Smrg UINT Levels, 7747ec681f3Smrg DWORD Usage, 7757ec681f3Smrg D3DFORMAT Format, 7767ec681f3Smrg D3DPOOL Pool, 7777ec681f3Smrg IDirect3DVolumeTexture9 **ppVolumeTexture, 7787ec681f3Smrg HANDLE *pSharedHandle ) 7797ec681f3Smrg{ 7807ec681f3Smrg HRESULT r; 7817ec681f3Smrg mtx_lock(&d3dlock_global); 7827ec681f3Smrg r = NineDevice9_CreateVolumeTexture(This, Width, Height, Depth, Levels, Usage, Format, Pool, ppVolumeTexture, pSharedHandle); 7837ec681f3Smrg mtx_unlock(&d3dlock_global); 7847ec681f3Smrg return r; 7857ec681f3Smrg} 7867ec681f3Smrg 7877ec681f3Smrgstatic HRESULT NINE_WINAPI 7887ec681f3SmrgLockDevice9_CreateCubeTexture( struct NineDevice9 *This, 7897ec681f3Smrg UINT EdgeLength, 7907ec681f3Smrg UINT Levels, 7917ec681f3Smrg DWORD Usage, 7927ec681f3Smrg D3DFORMAT Format, 7937ec681f3Smrg D3DPOOL Pool, 7947ec681f3Smrg IDirect3DCubeTexture9 **ppCubeTexture, 7957ec681f3Smrg HANDLE *pSharedHandle ) 7967ec681f3Smrg{ 7977ec681f3Smrg HRESULT r; 7987ec681f3Smrg mtx_lock(&d3dlock_global); 7997ec681f3Smrg r = NineDevice9_CreateCubeTexture(This, EdgeLength, Levels, Usage, Format, Pool, ppCubeTexture, pSharedHandle); 8007ec681f3Smrg mtx_unlock(&d3dlock_global); 8017ec681f3Smrg return r; 8027ec681f3Smrg} 8037ec681f3Smrg 8047ec681f3Smrgstatic HRESULT NINE_WINAPI 8057ec681f3SmrgLockDevice9_CreateVertexBuffer( struct NineDevice9 *This, 8067ec681f3Smrg UINT Length, 8077ec681f3Smrg DWORD Usage, 8087ec681f3Smrg DWORD FVF, 8097ec681f3Smrg D3DPOOL Pool, 8107ec681f3Smrg IDirect3DVertexBuffer9 **ppVertexBuffer, 8117ec681f3Smrg HANDLE *pSharedHandle ) 8127ec681f3Smrg{ 8137ec681f3Smrg HRESULT r; 8147ec681f3Smrg mtx_lock(&d3dlock_global); 8157ec681f3Smrg r = NineDevice9_CreateVertexBuffer(This, Length, Usage, FVF, Pool, ppVertexBuffer, pSharedHandle); 8167ec681f3Smrg mtx_unlock(&d3dlock_global); 8177ec681f3Smrg return r; 8187ec681f3Smrg} 8197ec681f3Smrg 8207ec681f3Smrgstatic HRESULT NINE_WINAPI 8217ec681f3SmrgLockDevice9_CreateIndexBuffer( struct NineDevice9 *This, 8227ec681f3Smrg UINT Length, 8237ec681f3Smrg DWORD Usage, 8247ec681f3Smrg D3DFORMAT Format, 8257ec681f3Smrg D3DPOOL Pool, 8267ec681f3Smrg IDirect3DIndexBuffer9 **ppIndexBuffer, 8277ec681f3Smrg HANDLE *pSharedHandle ) 8287ec681f3Smrg{ 8297ec681f3Smrg HRESULT r; 8307ec681f3Smrg mtx_lock(&d3dlock_global); 8317ec681f3Smrg r = NineDevice9_CreateIndexBuffer(This, Length, Usage, Format, Pool, ppIndexBuffer, pSharedHandle); 8327ec681f3Smrg mtx_unlock(&d3dlock_global); 8337ec681f3Smrg return r; 8347ec681f3Smrg} 8357ec681f3Smrg 8367ec681f3Smrgstatic HRESULT NINE_WINAPI 8377ec681f3SmrgLockDevice9_CreateRenderTarget( struct NineDevice9 *This, 8387ec681f3Smrg UINT Width, 8397ec681f3Smrg UINT Height, 8407ec681f3Smrg D3DFORMAT Format, 8417ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 8427ec681f3Smrg DWORD MultisampleQuality, 8437ec681f3Smrg BOOL Lockable, 8447ec681f3Smrg IDirect3DSurface9 **ppSurface, 8457ec681f3Smrg HANDLE *pSharedHandle ) 8467ec681f3Smrg{ 8477ec681f3Smrg HRESULT r; 8487ec681f3Smrg mtx_lock(&d3dlock_global); 8497ec681f3Smrg r = NineDevice9_CreateRenderTarget(This, Width, Height, Format, MultiSample, MultisampleQuality, Lockable, ppSurface, pSharedHandle); 8507ec681f3Smrg mtx_unlock(&d3dlock_global); 8517ec681f3Smrg return r; 8527ec681f3Smrg} 8537ec681f3Smrg 8547ec681f3Smrgstatic HRESULT NINE_WINAPI 8557ec681f3SmrgLockDevice9_CreateDepthStencilSurface( struct NineDevice9 *This, 8567ec681f3Smrg UINT Width, 8577ec681f3Smrg UINT Height, 8587ec681f3Smrg D3DFORMAT Format, 8597ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 8607ec681f3Smrg DWORD MultisampleQuality, 8617ec681f3Smrg BOOL Discard, 8627ec681f3Smrg IDirect3DSurface9 **ppSurface, 8637ec681f3Smrg HANDLE *pSharedHandle ) 8647ec681f3Smrg{ 8657ec681f3Smrg HRESULT r; 8667ec681f3Smrg mtx_lock(&d3dlock_global); 8677ec681f3Smrg r = NineDevice9_CreateDepthStencilSurface(This, Width, Height, Format, MultiSample, MultisampleQuality, Discard, ppSurface, pSharedHandle); 8687ec681f3Smrg mtx_unlock(&d3dlock_global); 8697ec681f3Smrg return r; 8707ec681f3Smrg} 8717ec681f3Smrg 8727ec681f3Smrgstatic HRESULT NINE_WINAPI 8737ec681f3SmrgLockDevice9_UpdateSurface( struct NineDevice9 *This, 8747ec681f3Smrg IDirect3DSurface9 *pSourceSurface, 8757ec681f3Smrg const RECT *pSourceRect, 8767ec681f3Smrg IDirect3DSurface9 *pDestinationSurface, 8777ec681f3Smrg const POINT *pDestPoint ) 8787ec681f3Smrg{ 8797ec681f3Smrg HRESULT r; 8807ec681f3Smrg mtx_lock(&d3dlock_global); 8817ec681f3Smrg r = NineDevice9_UpdateSurface(This, pSourceSurface, pSourceRect, pDestinationSurface, pDestPoint); 8827ec681f3Smrg mtx_unlock(&d3dlock_global); 8837ec681f3Smrg return r; 8847ec681f3Smrg} 8857ec681f3Smrg 8867ec681f3Smrgstatic HRESULT NINE_WINAPI 8877ec681f3SmrgLockDevice9_UpdateTexture( struct NineDevice9 *This, 8887ec681f3Smrg IDirect3DBaseTexture9 *pSourceTexture, 8897ec681f3Smrg IDirect3DBaseTexture9 *pDestinationTexture ) 8907ec681f3Smrg{ 8917ec681f3Smrg HRESULT r; 8927ec681f3Smrg mtx_lock(&d3dlock_global); 8937ec681f3Smrg r = NineDevice9_UpdateTexture(This, pSourceTexture, pDestinationTexture); 8947ec681f3Smrg mtx_unlock(&d3dlock_global); 8957ec681f3Smrg return r; 8967ec681f3Smrg} 8977ec681f3Smrg 8987ec681f3Smrgstatic HRESULT NINE_WINAPI 8997ec681f3SmrgLockDevice9_GetRenderTargetData( struct NineDevice9 *This, 9007ec681f3Smrg IDirect3DSurface9 *pRenderTarget, 9017ec681f3Smrg IDirect3DSurface9 *pDestSurface ) 9027ec681f3Smrg{ 9037ec681f3Smrg HRESULT r; 9047ec681f3Smrg mtx_lock(&d3dlock_global); 9057ec681f3Smrg r = NineDevice9_GetRenderTargetData(This, pRenderTarget, pDestSurface); 9067ec681f3Smrg mtx_unlock(&d3dlock_global); 9077ec681f3Smrg return r; 9087ec681f3Smrg} 9097ec681f3Smrg 9107ec681f3Smrgstatic HRESULT NINE_WINAPI 9117ec681f3SmrgLockDevice9_GetFrontBufferData( struct NineDevice9 *This, 9127ec681f3Smrg UINT iSwapChain, 9137ec681f3Smrg IDirect3DSurface9 *pDestSurface ) 9147ec681f3Smrg{ 9157ec681f3Smrg HRESULT r; 9167ec681f3Smrg mtx_lock(&d3dlock_global); 9177ec681f3Smrg r = NineDevice9_GetFrontBufferData(This, iSwapChain, pDestSurface); 9187ec681f3Smrg mtx_unlock(&d3dlock_global); 9197ec681f3Smrg return r; 9207ec681f3Smrg} 9217ec681f3Smrg 9227ec681f3Smrgstatic HRESULT NINE_WINAPI 9237ec681f3SmrgLockDevice9_StretchRect( struct NineDevice9 *This, 9247ec681f3Smrg IDirect3DSurface9 *pSourceSurface, 9257ec681f3Smrg const RECT *pSourceRect, 9267ec681f3Smrg IDirect3DSurface9 *pDestSurface, 9277ec681f3Smrg const RECT *pDestRect, 9287ec681f3Smrg D3DTEXTUREFILTERTYPE Filter ) 9297ec681f3Smrg{ 9307ec681f3Smrg HRESULT r; 9317ec681f3Smrg mtx_lock(&d3dlock_global); 9327ec681f3Smrg r = NineDevice9_StretchRect(This, pSourceSurface, pSourceRect, pDestSurface, pDestRect, Filter); 9337ec681f3Smrg mtx_unlock(&d3dlock_global); 9347ec681f3Smrg return r; 9357ec681f3Smrg} 9367ec681f3Smrg 9377ec681f3Smrgstatic HRESULT NINE_WINAPI 9387ec681f3SmrgLockDevice9_ColorFill( struct NineDevice9 *This, 9397ec681f3Smrg IDirect3DSurface9 *pSurface, 9407ec681f3Smrg const RECT *pRect, 9417ec681f3Smrg D3DCOLOR color ) 9427ec681f3Smrg{ 9437ec681f3Smrg HRESULT r; 9447ec681f3Smrg mtx_lock(&d3dlock_global); 9457ec681f3Smrg r = NineDevice9_ColorFill(This, pSurface, pRect, color); 9467ec681f3Smrg mtx_unlock(&d3dlock_global); 9477ec681f3Smrg return r; 9487ec681f3Smrg} 9497ec681f3Smrg 9507ec681f3Smrgstatic HRESULT NINE_WINAPI 9517ec681f3SmrgLockDevice9_CreateOffscreenPlainSurface( struct NineDevice9 *This, 9527ec681f3Smrg UINT Width, 9537ec681f3Smrg UINT Height, 9547ec681f3Smrg D3DFORMAT Format, 9557ec681f3Smrg D3DPOOL Pool, 9567ec681f3Smrg IDirect3DSurface9 **ppSurface, 9577ec681f3Smrg HANDLE *pSharedHandle ) 9587ec681f3Smrg{ 9597ec681f3Smrg HRESULT r; 9607ec681f3Smrg mtx_lock(&d3dlock_global); 9617ec681f3Smrg r = NineDevice9_CreateOffscreenPlainSurface(This, Width, Height, Format, Pool, ppSurface, pSharedHandle); 9627ec681f3Smrg mtx_unlock(&d3dlock_global); 9637ec681f3Smrg return r; 9647ec681f3Smrg} 9657ec681f3Smrg 9667ec681f3Smrgstatic HRESULT NINE_WINAPI 9677ec681f3SmrgLockDevice9_SetRenderTarget( struct NineDevice9 *This, 9687ec681f3Smrg DWORD RenderTargetIndex, 9697ec681f3Smrg IDirect3DSurface9 *pRenderTarget ) 9707ec681f3Smrg{ 9717ec681f3Smrg HRESULT r; 9727ec681f3Smrg mtx_lock(&d3dlock_global); 9737ec681f3Smrg r = NineDevice9_SetRenderTarget(This, RenderTargetIndex, pRenderTarget); 9747ec681f3Smrg mtx_unlock(&d3dlock_global); 9757ec681f3Smrg return r; 9767ec681f3Smrg} 9777ec681f3Smrg 9787ec681f3Smrgstatic HRESULT NINE_WINAPI 9797ec681f3SmrgLockDevice9_GetRenderTarget( struct NineDevice9 *This, 9807ec681f3Smrg DWORD RenderTargetIndex, 9817ec681f3Smrg IDirect3DSurface9 **ppRenderTarget ) 9827ec681f3Smrg{ 9837ec681f3Smrg HRESULT r; 9847ec681f3Smrg mtx_lock(&d3dlock_global); 9857ec681f3Smrg r = NineDevice9_GetRenderTarget(This, RenderTargetIndex, ppRenderTarget); 9867ec681f3Smrg mtx_unlock(&d3dlock_global); 9877ec681f3Smrg return r; 9887ec681f3Smrg} 9897ec681f3Smrg 9907ec681f3Smrgstatic HRESULT NINE_WINAPI 9917ec681f3SmrgLockDevice9_SetDepthStencilSurface( struct NineDevice9 *This, 9927ec681f3Smrg IDirect3DSurface9 *pNewZStencil ) 9937ec681f3Smrg{ 9947ec681f3Smrg HRESULT r; 9957ec681f3Smrg mtx_lock(&d3dlock_global); 9967ec681f3Smrg r = NineDevice9_SetDepthStencilSurface(This, pNewZStencil); 9977ec681f3Smrg mtx_unlock(&d3dlock_global); 9987ec681f3Smrg return r; 9997ec681f3Smrg} 10007ec681f3Smrg 10017ec681f3Smrgstatic HRESULT NINE_WINAPI 10027ec681f3SmrgLockDevice9_GetDepthStencilSurface( struct NineDevice9 *This, 10037ec681f3Smrg IDirect3DSurface9 **ppZStencilSurface ) 10047ec681f3Smrg{ 10057ec681f3Smrg HRESULT r; 10067ec681f3Smrg mtx_lock(&d3dlock_global); 10077ec681f3Smrg r = NineDevice9_GetDepthStencilSurface(This, ppZStencilSurface); 10087ec681f3Smrg mtx_unlock(&d3dlock_global); 10097ec681f3Smrg return r; 10107ec681f3Smrg} 10117ec681f3Smrg 10127ec681f3Smrgstatic HRESULT NINE_WINAPI 10137ec681f3SmrgLockDevice9_BeginScene( struct NineDevice9 *This ) 10147ec681f3Smrg{ 10157ec681f3Smrg HRESULT r; 10167ec681f3Smrg mtx_lock(&d3dlock_global); 10177ec681f3Smrg r = NineDevice9_BeginScene(This); 10187ec681f3Smrg mtx_unlock(&d3dlock_global); 10197ec681f3Smrg return r; 10207ec681f3Smrg} 10217ec681f3Smrg 10227ec681f3Smrgstatic HRESULT NINE_WINAPI 10237ec681f3SmrgLockDevice9_EndScene( struct NineDevice9 *This ) 10247ec681f3Smrg{ 10257ec681f3Smrg HRESULT r; 10267ec681f3Smrg mtx_lock(&d3dlock_global); 10277ec681f3Smrg r = NineDevice9_EndScene(This); 10287ec681f3Smrg mtx_unlock(&d3dlock_global); 10297ec681f3Smrg return r; 10307ec681f3Smrg} 10317ec681f3Smrg 10327ec681f3Smrgstatic HRESULT NINE_WINAPI 10337ec681f3SmrgLockDevice9_Clear( struct NineDevice9 *This, 10347ec681f3Smrg DWORD Count, 10357ec681f3Smrg const D3DRECT *pRects, 10367ec681f3Smrg DWORD Flags, 10377ec681f3Smrg D3DCOLOR Color, 10387ec681f3Smrg float Z, 10397ec681f3Smrg DWORD Stencil ) 10407ec681f3Smrg{ 10417ec681f3Smrg HRESULT r; 10427ec681f3Smrg mtx_lock(&d3dlock_global); 10437ec681f3Smrg r = NineDevice9_Clear(This, Count, pRects, Flags, Color, Z, Stencil); 10447ec681f3Smrg mtx_unlock(&d3dlock_global); 10457ec681f3Smrg return r; 10467ec681f3Smrg} 10477ec681f3Smrg 10487ec681f3Smrgstatic HRESULT NINE_WINAPI 10497ec681f3SmrgLockDevice9_SetTransform( struct NineDevice9 *This, 10507ec681f3Smrg D3DTRANSFORMSTATETYPE State, 10517ec681f3Smrg const D3DMATRIX *pMatrix ) 10527ec681f3Smrg{ 10537ec681f3Smrg HRESULT r; 10547ec681f3Smrg mtx_lock(&d3dlock_global); 10557ec681f3Smrg r = NineDevice9_SetTransform(This, State, pMatrix); 10567ec681f3Smrg mtx_unlock(&d3dlock_global); 10577ec681f3Smrg return r; 10587ec681f3Smrg} 10597ec681f3Smrg 10607ec681f3Smrgstatic HRESULT NINE_WINAPI 10617ec681f3SmrgLockDevice9_GetTransform( struct NineDevice9 *This, 10627ec681f3Smrg D3DTRANSFORMSTATETYPE State, 10637ec681f3Smrg D3DMATRIX *pMatrix ) 10647ec681f3Smrg{ 10657ec681f3Smrg HRESULT r; 10667ec681f3Smrg mtx_lock(&d3dlock_global); 10677ec681f3Smrg r = NineDevice9_GetTransform(This, State, pMatrix); 10687ec681f3Smrg mtx_unlock(&d3dlock_global); 10697ec681f3Smrg return r; 10707ec681f3Smrg} 10717ec681f3Smrg 10727ec681f3Smrgstatic HRESULT NINE_WINAPI 10737ec681f3SmrgLockDevice9_MultiplyTransform( struct NineDevice9 *This, 10747ec681f3Smrg D3DTRANSFORMSTATETYPE State, 10757ec681f3Smrg const D3DMATRIX *pMatrix ) 10767ec681f3Smrg{ 10777ec681f3Smrg HRESULT r; 10787ec681f3Smrg mtx_lock(&d3dlock_global); 10797ec681f3Smrg r = NineDevice9_MultiplyTransform(This, State, pMatrix); 10807ec681f3Smrg mtx_unlock(&d3dlock_global); 10817ec681f3Smrg return r; 10827ec681f3Smrg} 10837ec681f3Smrg 10847ec681f3Smrgstatic HRESULT NINE_WINAPI 10857ec681f3SmrgLockDevice9_SetViewport( struct NineDevice9 *This, 10867ec681f3Smrg const D3DVIEWPORT9 *pViewport ) 10877ec681f3Smrg{ 10887ec681f3Smrg HRESULT r; 10897ec681f3Smrg mtx_lock(&d3dlock_global); 10907ec681f3Smrg r = NineDevice9_SetViewport(This, pViewport); 10917ec681f3Smrg mtx_unlock(&d3dlock_global); 10927ec681f3Smrg return r; 10937ec681f3Smrg} 10947ec681f3Smrg 10957ec681f3Smrgstatic HRESULT NINE_WINAPI 10967ec681f3SmrgLockDevice9_GetViewport( struct NineDevice9 *This, 10977ec681f3Smrg D3DVIEWPORT9 *pViewport ) 10987ec681f3Smrg{ 10997ec681f3Smrg HRESULT r; 11007ec681f3Smrg mtx_lock(&d3dlock_global); 11017ec681f3Smrg r = NineDevice9_GetViewport(This, pViewport); 11027ec681f3Smrg mtx_unlock(&d3dlock_global); 11037ec681f3Smrg return r; 11047ec681f3Smrg} 11057ec681f3Smrg 11067ec681f3Smrgstatic HRESULT NINE_WINAPI 11077ec681f3SmrgLockDevice9_SetMaterial( struct NineDevice9 *This, 11087ec681f3Smrg const D3DMATERIAL9 *pMaterial ) 11097ec681f3Smrg{ 11107ec681f3Smrg HRESULT r; 11117ec681f3Smrg mtx_lock(&d3dlock_global); 11127ec681f3Smrg r = NineDevice9_SetMaterial(This, pMaterial); 11137ec681f3Smrg mtx_unlock(&d3dlock_global); 11147ec681f3Smrg return r; 11157ec681f3Smrg} 11167ec681f3Smrg 11177ec681f3Smrgstatic HRESULT NINE_WINAPI 11187ec681f3SmrgLockDevice9_GetMaterial( struct NineDevice9 *This, 11197ec681f3Smrg D3DMATERIAL9 *pMaterial ) 11207ec681f3Smrg{ 11217ec681f3Smrg HRESULT r; 11227ec681f3Smrg mtx_lock(&d3dlock_global); 11237ec681f3Smrg r = NineDevice9_GetMaterial(This, pMaterial); 11247ec681f3Smrg mtx_unlock(&d3dlock_global); 11257ec681f3Smrg return r; 11267ec681f3Smrg} 11277ec681f3Smrg 11287ec681f3Smrgstatic HRESULT NINE_WINAPI 11297ec681f3SmrgLockDevice9_SetLight( struct NineDevice9 *This, 11307ec681f3Smrg DWORD Index, 11317ec681f3Smrg const D3DLIGHT9 *pLight ) 11327ec681f3Smrg{ 11337ec681f3Smrg HRESULT r; 11347ec681f3Smrg mtx_lock(&d3dlock_global); 11357ec681f3Smrg r = NineDevice9_SetLight(This, Index, pLight); 11367ec681f3Smrg mtx_unlock(&d3dlock_global); 11377ec681f3Smrg return r; 11387ec681f3Smrg} 11397ec681f3Smrg 11407ec681f3Smrgstatic HRESULT NINE_WINAPI 11417ec681f3SmrgLockDevice9_GetLight( struct NineDevice9 *This, 11427ec681f3Smrg DWORD Index, 11437ec681f3Smrg D3DLIGHT9 *pLight ) 11447ec681f3Smrg{ 11457ec681f3Smrg HRESULT r; 11467ec681f3Smrg mtx_lock(&d3dlock_global); 11477ec681f3Smrg r = NineDevice9_GetLight(This, Index, pLight); 11487ec681f3Smrg mtx_unlock(&d3dlock_global); 11497ec681f3Smrg return r; 11507ec681f3Smrg} 11517ec681f3Smrg 11527ec681f3Smrgstatic HRESULT NINE_WINAPI 11537ec681f3SmrgLockDevice9_LightEnable( struct NineDevice9 *This, 11547ec681f3Smrg DWORD Index, 11557ec681f3Smrg BOOL Enable ) 11567ec681f3Smrg{ 11577ec681f3Smrg HRESULT r; 11587ec681f3Smrg mtx_lock(&d3dlock_global); 11597ec681f3Smrg r = NineDevice9_LightEnable(This, Index, Enable); 11607ec681f3Smrg mtx_unlock(&d3dlock_global); 11617ec681f3Smrg return r; 11627ec681f3Smrg} 11637ec681f3Smrg 11647ec681f3Smrgstatic HRESULT NINE_WINAPI 11657ec681f3SmrgLockDevice9_GetLightEnable( struct NineDevice9 *This, 11667ec681f3Smrg DWORD Index, 11677ec681f3Smrg BOOL *pEnable ) 11687ec681f3Smrg{ 11697ec681f3Smrg HRESULT r; 11707ec681f3Smrg mtx_lock(&d3dlock_global); 11717ec681f3Smrg r = NineDevice9_GetLightEnable(This, Index, pEnable); 11727ec681f3Smrg mtx_unlock(&d3dlock_global); 11737ec681f3Smrg return r; 11747ec681f3Smrg} 11757ec681f3Smrg 11767ec681f3Smrgstatic HRESULT NINE_WINAPI 11777ec681f3SmrgLockDevice9_SetClipPlane( struct NineDevice9 *This, 11787ec681f3Smrg DWORD Index, 11797ec681f3Smrg const float *pPlane ) 11807ec681f3Smrg{ 11817ec681f3Smrg HRESULT r; 11827ec681f3Smrg mtx_lock(&d3dlock_global); 11837ec681f3Smrg r = NineDevice9_SetClipPlane(This, Index, pPlane); 11847ec681f3Smrg mtx_unlock(&d3dlock_global); 11857ec681f3Smrg return r; 11867ec681f3Smrg} 11877ec681f3Smrg 11887ec681f3Smrgstatic HRESULT NINE_WINAPI 11897ec681f3SmrgLockDevice9_GetClipPlane( struct NineDevice9 *This, 11907ec681f3Smrg DWORD Index, 11917ec681f3Smrg float *pPlane ) 11927ec681f3Smrg{ 11937ec681f3Smrg HRESULT r; 11947ec681f3Smrg mtx_lock(&d3dlock_global); 11957ec681f3Smrg r = NineDevice9_GetClipPlane(This, Index, pPlane); 11967ec681f3Smrg mtx_unlock(&d3dlock_global); 11977ec681f3Smrg return r; 11987ec681f3Smrg} 11997ec681f3Smrg 12007ec681f3Smrgstatic HRESULT NINE_WINAPI 12017ec681f3SmrgLockDevice9_SetRenderState( struct NineDevice9 *This, 12027ec681f3Smrg D3DRENDERSTATETYPE State, 12037ec681f3Smrg DWORD Value ) 12047ec681f3Smrg{ 12057ec681f3Smrg HRESULT r; 12067ec681f3Smrg mtx_lock(&d3dlock_global); 12077ec681f3Smrg r = NineDevice9_SetRenderState(This, State, Value); 12087ec681f3Smrg mtx_unlock(&d3dlock_global); 12097ec681f3Smrg return r; 12107ec681f3Smrg} 12117ec681f3Smrg 12127ec681f3Smrgstatic HRESULT NINE_WINAPI 12137ec681f3SmrgLockDevice9_GetRenderState( struct NineDevice9 *This, 12147ec681f3Smrg D3DRENDERSTATETYPE State, 12157ec681f3Smrg DWORD *pValue ) 12167ec681f3Smrg{ 12177ec681f3Smrg HRESULT r; 12187ec681f3Smrg mtx_lock(&d3dlock_global); 12197ec681f3Smrg r = NineDevice9_GetRenderState(This, State, pValue); 12207ec681f3Smrg mtx_unlock(&d3dlock_global); 12217ec681f3Smrg return r; 12227ec681f3Smrg} 12237ec681f3Smrg 12247ec681f3Smrgstatic HRESULT NINE_WINAPI 12257ec681f3SmrgLockDevice9_CreateStateBlock( struct NineDevice9 *This, 12267ec681f3Smrg D3DSTATEBLOCKTYPE Type, 12277ec681f3Smrg IDirect3DStateBlock9 **ppSB ) 12287ec681f3Smrg{ 12297ec681f3Smrg HRESULT r; 12307ec681f3Smrg mtx_lock(&d3dlock_global); 12317ec681f3Smrg r = NineDevice9_CreateStateBlock(This, Type, ppSB); 12327ec681f3Smrg mtx_unlock(&d3dlock_global); 12337ec681f3Smrg return r; 12347ec681f3Smrg} 12357ec681f3Smrg 12367ec681f3Smrgstatic HRESULT NINE_WINAPI 12377ec681f3SmrgLockDevice9_BeginStateBlock( struct NineDevice9 *This ) 12387ec681f3Smrg{ 12397ec681f3Smrg HRESULT r; 12407ec681f3Smrg mtx_lock(&d3dlock_global); 12417ec681f3Smrg r = NineDevice9_BeginStateBlock(This); 12427ec681f3Smrg mtx_unlock(&d3dlock_global); 12437ec681f3Smrg return r; 12447ec681f3Smrg} 12457ec681f3Smrg 12467ec681f3Smrgstatic HRESULT NINE_WINAPI 12477ec681f3SmrgLockDevice9_EndStateBlock( struct NineDevice9 *This, 12487ec681f3Smrg IDirect3DStateBlock9 **ppSB ) 12497ec681f3Smrg{ 12507ec681f3Smrg HRESULT r; 12517ec681f3Smrg mtx_lock(&d3dlock_global); 12527ec681f3Smrg r = NineDevice9_EndStateBlock(This, ppSB); 12537ec681f3Smrg mtx_unlock(&d3dlock_global); 12547ec681f3Smrg return r; 12557ec681f3Smrg} 12567ec681f3Smrg 12577ec681f3Smrgstatic HRESULT NINE_WINAPI 12587ec681f3SmrgLockDevice9_SetClipStatus( struct NineDevice9 *This, 12597ec681f3Smrg const D3DCLIPSTATUS9 *pClipStatus ) 12607ec681f3Smrg{ 12617ec681f3Smrg HRESULT r; 12627ec681f3Smrg mtx_lock(&d3dlock_global); 12637ec681f3Smrg r = NineDevice9_SetClipStatus(This, pClipStatus); 12647ec681f3Smrg mtx_unlock(&d3dlock_global); 12657ec681f3Smrg return r; 12667ec681f3Smrg} 12677ec681f3Smrg 12687ec681f3Smrgstatic HRESULT NINE_WINAPI 12697ec681f3SmrgLockDevice9_GetClipStatus( struct NineDevice9 *This, 12707ec681f3Smrg D3DCLIPSTATUS9 *pClipStatus ) 12717ec681f3Smrg{ 12727ec681f3Smrg HRESULT r; 12737ec681f3Smrg mtx_lock(&d3dlock_global); 12747ec681f3Smrg r = NineDevice9_GetClipStatus(This, pClipStatus); 12757ec681f3Smrg mtx_unlock(&d3dlock_global); 12767ec681f3Smrg return r; 12777ec681f3Smrg} 12787ec681f3Smrg 12797ec681f3Smrgstatic HRESULT NINE_WINAPI 12807ec681f3SmrgLockDevice9_GetTexture( struct NineDevice9 *This, 12817ec681f3Smrg DWORD Stage, 12827ec681f3Smrg IDirect3DBaseTexture9 **ppTexture ) 12837ec681f3Smrg{ 12847ec681f3Smrg HRESULT r; 12857ec681f3Smrg mtx_lock(&d3dlock_global); 12867ec681f3Smrg r = NineDevice9_GetTexture(This, Stage, ppTexture); 12877ec681f3Smrg mtx_unlock(&d3dlock_global); 12887ec681f3Smrg return r; 12897ec681f3Smrg} 12907ec681f3Smrg 12917ec681f3Smrgstatic HRESULT NINE_WINAPI 12927ec681f3SmrgLockDevice9_SetTexture( struct NineDevice9 *This, 12937ec681f3Smrg DWORD Stage, 12947ec681f3Smrg IDirect3DBaseTexture9 *pTexture ) 12957ec681f3Smrg{ 12967ec681f3Smrg HRESULT r; 12977ec681f3Smrg mtx_lock(&d3dlock_global); 12987ec681f3Smrg r = NineDevice9_SetTexture(This, Stage, pTexture); 12997ec681f3Smrg mtx_unlock(&d3dlock_global); 13007ec681f3Smrg return r; 13017ec681f3Smrg} 13027ec681f3Smrg 13037ec681f3Smrgstatic HRESULT NINE_WINAPI 13047ec681f3SmrgLockDevice9_GetTextureStageState( struct NineDevice9 *This, 13057ec681f3Smrg DWORD Stage, 13067ec681f3Smrg D3DTEXTURESTAGESTATETYPE Type, 13077ec681f3Smrg DWORD *pValue ) 13087ec681f3Smrg{ 13097ec681f3Smrg HRESULT r; 13107ec681f3Smrg mtx_lock(&d3dlock_global); 13117ec681f3Smrg r = NineDevice9_GetTextureStageState(This, Stage, Type, pValue); 13127ec681f3Smrg mtx_unlock(&d3dlock_global); 13137ec681f3Smrg return r; 13147ec681f3Smrg} 13157ec681f3Smrg 13167ec681f3Smrgstatic HRESULT NINE_WINAPI 13177ec681f3SmrgLockDevice9_SetTextureStageState( struct NineDevice9 *This, 13187ec681f3Smrg DWORD Stage, 13197ec681f3Smrg D3DTEXTURESTAGESTATETYPE Type, 13207ec681f3Smrg DWORD Value ) 13217ec681f3Smrg{ 13227ec681f3Smrg HRESULT r; 13237ec681f3Smrg mtx_lock(&d3dlock_global); 13247ec681f3Smrg r = NineDevice9_SetTextureStageState(This, Stage, Type, Value); 13257ec681f3Smrg mtx_unlock(&d3dlock_global); 13267ec681f3Smrg return r; 13277ec681f3Smrg} 13287ec681f3Smrg 13297ec681f3Smrgstatic HRESULT NINE_WINAPI 13307ec681f3SmrgLockDevice9_GetSamplerState( struct NineDevice9 *This, 13317ec681f3Smrg DWORD Sampler, 13327ec681f3Smrg D3DSAMPLERSTATETYPE Type, 13337ec681f3Smrg DWORD *pValue ) 13347ec681f3Smrg{ 13357ec681f3Smrg HRESULT r; 13367ec681f3Smrg mtx_lock(&d3dlock_global); 13377ec681f3Smrg r = NineDevice9_GetSamplerState(This, Sampler, Type, pValue); 13387ec681f3Smrg mtx_unlock(&d3dlock_global); 13397ec681f3Smrg return r; 13407ec681f3Smrg} 13417ec681f3Smrg 13427ec681f3Smrgstatic HRESULT NINE_WINAPI 13437ec681f3SmrgLockDevice9_SetSamplerState( struct NineDevice9 *This, 13447ec681f3Smrg DWORD Sampler, 13457ec681f3Smrg D3DSAMPLERSTATETYPE Type, 13467ec681f3Smrg DWORD Value ) 13477ec681f3Smrg{ 13487ec681f3Smrg HRESULT r; 13497ec681f3Smrg mtx_lock(&d3dlock_global); 13507ec681f3Smrg r = NineDevice9_SetSamplerState(This, Sampler, Type, Value); 13517ec681f3Smrg mtx_unlock(&d3dlock_global); 13527ec681f3Smrg return r; 13537ec681f3Smrg} 13547ec681f3Smrg 13557ec681f3Smrgstatic HRESULT NINE_WINAPI 13567ec681f3SmrgLockDevice9_ValidateDevice( struct NineDevice9 *This, 13577ec681f3Smrg DWORD *pNumPasses ) 13587ec681f3Smrg{ 13597ec681f3Smrg HRESULT r; 13607ec681f3Smrg mtx_lock(&d3dlock_global); 13617ec681f3Smrg r = NineDevice9_ValidateDevice(This, pNumPasses); 13627ec681f3Smrg mtx_unlock(&d3dlock_global); 13637ec681f3Smrg return r; 13647ec681f3Smrg} 13657ec681f3Smrg 13667ec681f3Smrgstatic HRESULT NINE_WINAPI 13677ec681f3SmrgLockDevice9_SetPaletteEntries( struct NineDevice9 *This, 13687ec681f3Smrg UINT PaletteNumber, 13697ec681f3Smrg const PALETTEENTRY *pEntries ) 13707ec681f3Smrg{ 13717ec681f3Smrg HRESULT r; 13727ec681f3Smrg mtx_lock(&d3dlock_global); 13737ec681f3Smrg r = NineDevice9_SetPaletteEntries(This, PaletteNumber, pEntries); 13747ec681f3Smrg mtx_unlock(&d3dlock_global); 13757ec681f3Smrg return r; 13767ec681f3Smrg} 13777ec681f3Smrg 13787ec681f3Smrgstatic HRESULT NINE_WINAPI 13797ec681f3SmrgLockDevice9_GetPaletteEntries( struct NineDevice9 *This, 13807ec681f3Smrg UINT PaletteNumber, 13817ec681f3Smrg PALETTEENTRY *pEntries ) 13827ec681f3Smrg{ 13837ec681f3Smrg HRESULT r; 13847ec681f3Smrg mtx_lock(&d3dlock_global); 13857ec681f3Smrg r = NineDevice9_GetPaletteEntries(This, PaletteNumber, pEntries); 13867ec681f3Smrg mtx_unlock(&d3dlock_global); 13877ec681f3Smrg return r; 13887ec681f3Smrg} 13897ec681f3Smrg 13907ec681f3Smrgstatic HRESULT NINE_WINAPI 13917ec681f3SmrgLockDevice9_SetCurrentTexturePalette( struct NineDevice9 *This, 13927ec681f3Smrg UINT PaletteNumber ) 13937ec681f3Smrg{ 13947ec681f3Smrg HRESULT r; 13957ec681f3Smrg mtx_lock(&d3dlock_global); 13967ec681f3Smrg r = NineDevice9_SetCurrentTexturePalette(This, PaletteNumber); 13977ec681f3Smrg mtx_unlock(&d3dlock_global); 13987ec681f3Smrg return r; 13997ec681f3Smrg} 14007ec681f3Smrg 14017ec681f3Smrgstatic HRESULT NINE_WINAPI 14027ec681f3SmrgLockDevice9_GetCurrentTexturePalette( struct NineDevice9 *This, 14037ec681f3Smrg UINT *PaletteNumber ) 14047ec681f3Smrg{ 14057ec681f3Smrg HRESULT r; 14067ec681f3Smrg mtx_lock(&d3dlock_global); 14077ec681f3Smrg r = NineDevice9_GetCurrentTexturePalette(This, PaletteNumber); 14087ec681f3Smrg mtx_unlock(&d3dlock_global); 14097ec681f3Smrg return r; 14107ec681f3Smrg} 14117ec681f3Smrg 14127ec681f3Smrgstatic HRESULT NINE_WINAPI 14137ec681f3SmrgLockDevice9_SetScissorRect( struct NineDevice9 *This, 14147ec681f3Smrg const RECT *pRect ) 14157ec681f3Smrg{ 14167ec681f3Smrg HRESULT r; 14177ec681f3Smrg mtx_lock(&d3dlock_global); 14187ec681f3Smrg r = NineDevice9_SetScissorRect(This, pRect); 14197ec681f3Smrg mtx_unlock(&d3dlock_global); 14207ec681f3Smrg return r; 14217ec681f3Smrg} 14227ec681f3Smrg 14237ec681f3Smrgstatic HRESULT NINE_WINAPI 14247ec681f3SmrgLockDevice9_GetScissorRect( struct NineDevice9 *This, 14257ec681f3Smrg RECT *pRect ) 14267ec681f3Smrg{ 14277ec681f3Smrg HRESULT r; 14287ec681f3Smrg mtx_lock(&d3dlock_global); 14297ec681f3Smrg r = NineDevice9_GetScissorRect(This, pRect); 14307ec681f3Smrg mtx_unlock(&d3dlock_global); 14317ec681f3Smrg return r; 14327ec681f3Smrg} 14337ec681f3Smrg 14347ec681f3Smrgstatic HRESULT NINE_WINAPI 14357ec681f3SmrgLockDevice9_SetSoftwareVertexProcessing( struct NineDevice9 *This, 14367ec681f3Smrg BOOL bSoftware ) 14377ec681f3Smrg{ 14387ec681f3Smrg HRESULT r; 14397ec681f3Smrg mtx_lock(&d3dlock_global); 14407ec681f3Smrg r = NineDevice9_SetSoftwareVertexProcessing(This, bSoftware); 14417ec681f3Smrg mtx_unlock(&d3dlock_global); 14427ec681f3Smrg return r; 14437ec681f3Smrg} 14447ec681f3Smrg 14457ec681f3Smrgstatic BOOL NINE_WINAPI 14467ec681f3SmrgLockDevice9_GetSoftwareVertexProcessing( struct NineDevice9 *This ) 14477ec681f3Smrg{ 14487ec681f3Smrg BOOL r; 14497ec681f3Smrg mtx_lock(&d3dlock_global); 14507ec681f3Smrg r = NineDevice9_GetSoftwareVertexProcessing(This); 14517ec681f3Smrg mtx_unlock(&d3dlock_global); 14527ec681f3Smrg return r; 14537ec681f3Smrg} 14547ec681f3Smrg 14557ec681f3Smrgstatic HRESULT NINE_WINAPI 14567ec681f3SmrgLockDevice9_SetNPatchMode( struct NineDevice9 *This, 14577ec681f3Smrg float nSegments ) 14587ec681f3Smrg{ 14597ec681f3Smrg HRESULT r; 14607ec681f3Smrg mtx_lock(&d3dlock_global); 14617ec681f3Smrg r = NineDevice9_SetNPatchMode(This, nSegments); 14627ec681f3Smrg mtx_unlock(&d3dlock_global); 14637ec681f3Smrg return r; 14647ec681f3Smrg} 14657ec681f3Smrg 14667ec681f3Smrgstatic float NINE_WINAPI 14677ec681f3SmrgLockDevice9_GetNPatchMode( struct NineDevice9 *This ) 14687ec681f3Smrg{ 14697ec681f3Smrg float r; 14707ec681f3Smrg mtx_lock(&d3dlock_global); 14717ec681f3Smrg r = NineDevice9_GetNPatchMode(This); 14727ec681f3Smrg mtx_unlock(&d3dlock_global); 14737ec681f3Smrg return r; 14747ec681f3Smrg} 14757ec681f3Smrg 14767ec681f3Smrgstatic HRESULT NINE_WINAPI 14777ec681f3SmrgLockDevice9_DrawPrimitive( struct NineDevice9 *This, 14787ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 14797ec681f3Smrg UINT StartVertex, 14807ec681f3Smrg UINT PrimitiveCount ) 14817ec681f3Smrg{ 14827ec681f3Smrg HRESULT r; 14837ec681f3Smrg mtx_lock(&d3dlock_global); 14847ec681f3Smrg r = NineDevice9_DrawPrimitive(This, PrimitiveType, StartVertex, PrimitiveCount); 14857ec681f3Smrg mtx_unlock(&d3dlock_global); 14867ec681f3Smrg return r; 14877ec681f3Smrg} 14887ec681f3Smrg 14897ec681f3Smrgstatic HRESULT NINE_WINAPI 14907ec681f3SmrgLockDevice9_DrawIndexedPrimitive( struct NineDevice9 *This, 14917ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 14927ec681f3Smrg INT BaseVertexIndex, 14937ec681f3Smrg UINT MinVertexIndex, 14947ec681f3Smrg UINT NumVertices, 14957ec681f3Smrg UINT startIndex, 14967ec681f3Smrg UINT primCount ) 14977ec681f3Smrg{ 14987ec681f3Smrg HRESULT r; 14997ec681f3Smrg mtx_lock(&d3dlock_global); 15007ec681f3Smrg r = NineDevice9_DrawIndexedPrimitive(This, PrimitiveType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount); 15017ec681f3Smrg mtx_unlock(&d3dlock_global); 15027ec681f3Smrg return r; 15037ec681f3Smrg} 15047ec681f3Smrg 15057ec681f3Smrgstatic HRESULT NINE_WINAPI 15067ec681f3SmrgLockDevice9_DrawPrimitiveUP( struct NineDevice9 *This, 15077ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 15087ec681f3Smrg UINT PrimitiveCount, 15097ec681f3Smrg const void *pVertexStreamZeroData, 15107ec681f3Smrg UINT VertexStreamZeroStride ) 15117ec681f3Smrg{ 15127ec681f3Smrg HRESULT r; 15137ec681f3Smrg mtx_lock(&d3dlock_global); 15147ec681f3Smrg r = NineDevice9_DrawPrimitiveUP(This, PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride); 15157ec681f3Smrg mtx_unlock(&d3dlock_global); 15167ec681f3Smrg return r; 15177ec681f3Smrg} 15187ec681f3Smrg 15197ec681f3Smrgstatic HRESULT NINE_WINAPI 15207ec681f3SmrgLockDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, 15217ec681f3Smrg D3DPRIMITIVETYPE PrimitiveType, 15227ec681f3Smrg UINT MinVertexIndex, 15237ec681f3Smrg UINT NumVertices, 15247ec681f3Smrg UINT PrimitiveCount, 15257ec681f3Smrg const void *pIndexData, 15267ec681f3Smrg D3DFORMAT IndexDataFormat, 15277ec681f3Smrg const void *pVertexStreamZeroData, 15287ec681f3Smrg UINT VertexStreamZeroStride ) 15297ec681f3Smrg{ 15307ec681f3Smrg HRESULT r; 15317ec681f3Smrg mtx_lock(&d3dlock_global); 15327ec681f3Smrg r = NineDevice9_DrawIndexedPrimitiveUP(This, PrimitiveType, MinVertexIndex, NumVertices, PrimitiveCount, pIndexData, IndexDataFormat, pVertexStreamZeroData, VertexStreamZeroStride); 15337ec681f3Smrg mtx_unlock(&d3dlock_global); 15347ec681f3Smrg return r; 15357ec681f3Smrg} 15367ec681f3Smrg 15377ec681f3Smrgstatic HRESULT NINE_WINAPI 15387ec681f3SmrgLockDevice9_ProcessVertices( struct NineDevice9 *This, 15397ec681f3Smrg UINT SrcStartIndex, 15407ec681f3Smrg UINT DestIndex, 15417ec681f3Smrg UINT VertexCount, 15427ec681f3Smrg IDirect3DVertexBuffer9 *pDestBuffer, 15437ec681f3Smrg IDirect3DVertexDeclaration9 *pVertexDecl, 15447ec681f3Smrg DWORD Flags ) 15457ec681f3Smrg{ 15467ec681f3Smrg HRESULT r; 15477ec681f3Smrg mtx_lock(&d3dlock_global); 15487ec681f3Smrg r = NineDevice9_ProcessVertices(This, SrcStartIndex, DestIndex, VertexCount, pDestBuffer, pVertexDecl, Flags); 15497ec681f3Smrg mtx_unlock(&d3dlock_global); 15507ec681f3Smrg return r; 15517ec681f3Smrg} 15527ec681f3Smrg 15537ec681f3Smrgstatic HRESULT NINE_WINAPI 15547ec681f3SmrgLockDevice9_CreateVertexDeclaration( struct NineDevice9 *This, 15557ec681f3Smrg const D3DVERTEXELEMENT9 *pVertexElements, 15567ec681f3Smrg IDirect3DVertexDeclaration9 **ppDecl ) 15577ec681f3Smrg{ 15587ec681f3Smrg HRESULT r; 15597ec681f3Smrg mtx_lock(&d3dlock_global); 15607ec681f3Smrg r = NineDevice9_CreateVertexDeclaration(This, pVertexElements, ppDecl); 15617ec681f3Smrg mtx_unlock(&d3dlock_global); 15627ec681f3Smrg return r; 15637ec681f3Smrg} 15647ec681f3Smrg 15657ec681f3Smrgstatic HRESULT NINE_WINAPI 15667ec681f3SmrgLockDevice9_SetVertexDeclaration( struct NineDevice9 *This, 15677ec681f3Smrg IDirect3DVertexDeclaration9 *pDecl ) 15687ec681f3Smrg{ 15697ec681f3Smrg HRESULT r; 15707ec681f3Smrg mtx_lock(&d3dlock_global); 15717ec681f3Smrg r = NineDevice9_SetVertexDeclaration(This, pDecl); 15727ec681f3Smrg mtx_unlock(&d3dlock_global); 15737ec681f3Smrg return r; 15747ec681f3Smrg} 15757ec681f3Smrg 15767ec681f3Smrgstatic HRESULT NINE_WINAPI 15777ec681f3SmrgLockDevice9_GetVertexDeclaration( struct NineDevice9 *This, 15787ec681f3Smrg IDirect3DVertexDeclaration9 **ppDecl ) 15797ec681f3Smrg{ 15807ec681f3Smrg HRESULT r; 15817ec681f3Smrg mtx_lock(&d3dlock_global); 15827ec681f3Smrg r = NineDevice9_GetVertexDeclaration(This, ppDecl); 15837ec681f3Smrg mtx_unlock(&d3dlock_global); 15847ec681f3Smrg return r; 15857ec681f3Smrg} 15867ec681f3Smrg 15877ec681f3Smrgstatic HRESULT NINE_WINAPI 15887ec681f3SmrgLockDevice9_SetFVF( struct NineDevice9 *This, 15897ec681f3Smrg DWORD FVF ) 15907ec681f3Smrg{ 15917ec681f3Smrg HRESULT r; 15927ec681f3Smrg mtx_lock(&d3dlock_global); 15937ec681f3Smrg r = NineDevice9_SetFVF(This, FVF); 15947ec681f3Smrg mtx_unlock(&d3dlock_global); 15957ec681f3Smrg return r; 15967ec681f3Smrg} 15977ec681f3Smrg 15987ec681f3Smrgstatic HRESULT NINE_WINAPI 15997ec681f3SmrgLockDevice9_GetFVF( struct NineDevice9 *This, 16007ec681f3Smrg DWORD *pFVF ) 16017ec681f3Smrg{ 16027ec681f3Smrg HRESULT r; 16037ec681f3Smrg mtx_lock(&d3dlock_global); 16047ec681f3Smrg r = NineDevice9_GetFVF(This, pFVF); 16057ec681f3Smrg mtx_unlock(&d3dlock_global); 16067ec681f3Smrg return r; 16077ec681f3Smrg} 16087ec681f3Smrg 16097ec681f3Smrgstatic HRESULT NINE_WINAPI 16107ec681f3SmrgLockDevice9_CreateVertexShader( struct NineDevice9 *This, 16117ec681f3Smrg const DWORD *pFunction, 16127ec681f3Smrg IDirect3DVertexShader9 **ppShader ) 16137ec681f3Smrg{ 16147ec681f3Smrg HRESULT r; 16157ec681f3Smrg mtx_lock(&d3dlock_global); 16167ec681f3Smrg r = NineDevice9_CreateVertexShader(This, pFunction, ppShader); 16177ec681f3Smrg mtx_unlock(&d3dlock_global); 16187ec681f3Smrg return r; 16197ec681f3Smrg} 16207ec681f3Smrg 16217ec681f3Smrgstatic HRESULT NINE_WINAPI 16227ec681f3SmrgLockDevice9_SetVertexShader( struct NineDevice9 *This, 16237ec681f3Smrg IDirect3DVertexShader9 *pShader ) 16247ec681f3Smrg{ 16257ec681f3Smrg HRESULT r; 16267ec681f3Smrg mtx_lock(&d3dlock_global); 16277ec681f3Smrg r = NineDevice9_SetVertexShader(This, pShader); 16287ec681f3Smrg mtx_unlock(&d3dlock_global); 16297ec681f3Smrg return r; 16307ec681f3Smrg} 16317ec681f3Smrg 16327ec681f3Smrgstatic HRESULT NINE_WINAPI 16337ec681f3SmrgLockDevice9_GetVertexShader( struct NineDevice9 *This, 16347ec681f3Smrg IDirect3DVertexShader9 **ppShader ) 16357ec681f3Smrg{ 16367ec681f3Smrg HRESULT r; 16377ec681f3Smrg mtx_lock(&d3dlock_global); 16387ec681f3Smrg r = NineDevice9_GetVertexShader(This, ppShader); 16397ec681f3Smrg mtx_unlock(&d3dlock_global); 16407ec681f3Smrg return r; 16417ec681f3Smrg} 16427ec681f3Smrg 16437ec681f3Smrgstatic HRESULT NINE_WINAPI 16447ec681f3SmrgLockDevice9_SetVertexShaderConstantF( struct NineDevice9 *This, 16457ec681f3Smrg UINT StartRegister, 16467ec681f3Smrg const float *pConstantData, 16477ec681f3Smrg UINT Vector4fCount ) 16487ec681f3Smrg{ 16497ec681f3Smrg HRESULT r; 16507ec681f3Smrg mtx_lock(&d3dlock_global); 16517ec681f3Smrg r = NineDevice9_SetVertexShaderConstantF(This, StartRegister, pConstantData, Vector4fCount); 16527ec681f3Smrg mtx_unlock(&d3dlock_global); 16537ec681f3Smrg return r; 16547ec681f3Smrg} 16557ec681f3Smrg 16567ec681f3Smrgstatic HRESULT NINE_WINAPI 16577ec681f3SmrgLockDevice9_GetVertexShaderConstantF( struct NineDevice9 *This, 16587ec681f3Smrg UINT StartRegister, 16597ec681f3Smrg float *pConstantData, 16607ec681f3Smrg UINT Vector4fCount ) 16617ec681f3Smrg{ 16627ec681f3Smrg HRESULT r; 16637ec681f3Smrg mtx_lock(&d3dlock_global); 16647ec681f3Smrg r = NineDevice9_GetVertexShaderConstantF(This, StartRegister, pConstantData, Vector4fCount); 16657ec681f3Smrg mtx_unlock(&d3dlock_global); 16667ec681f3Smrg return r; 16677ec681f3Smrg} 16687ec681f3Smrg 16697ec681f3Smrgstatic HRESULT NINE_WINAPI 16707ec681f3SmrgLockDevice9_SetVertexShaderConstantI( struct NineDevice9 *This, 16717ec681f3Smrg UINT StartRegister, 16727ec681f3Smrg const int *pConstantData, 16737ec681f3Smrg UINT Vector4iCount ) 16747ec681f3Smrg{ 16757ec681f3Smrg HRESULT r; 16767ec681f3Smrg mtx_lock(&d3dlock_global); 16777ec681f3Smrg r = NineDevice9_SetVertexShaderConstantI(This, StartRegister, pConstantData, Vector4iCount); 16787ec681f3Smrg mtx_unlock(&d3dlock_global); 16797ec681f3Smrg return r; 16807ec681f3Smrg} 16817ec681f3Smrg 16827ec681f3Smrgstatic HRESULT NINE_WINAPI 16837ec681f3SmrgLockDevice9_GetVertexShaderConstantI( struct NineDevice9 *This, 16847ec681f3Smrg UINT StartRegister, 16857ec681f3Smrg int *pConstantData, 16867ec681f3Smrg UINT Vector4iCount ) 16877ec681f3Smrg{ 16887ec681f3Smrg HRESULT r; 16897ec681f3Smrg mtx_lock(&d3dlock_global); 16907ec681f3Smrg r = NineDevice9_GetVertexShaderConstantI(This, StartRegister, pConstantData, Vector4iCount); 16917ec681f3Smrg mtx_unlock(&d3dlock_global); 16927ec681f3Smrg return r; 16937ec681f3Smrg} 16947ec681f3Smrg 16957ec681f3Smrgstatic HRESULT NINE_WINAPI 16967ec681f3SmrgLockDevice9_SetVertexShaderConstantB( struct NineDevice9 *This, 16977ec681f3Smrg UINT StartRegister, 16987ec681f3Smrg const BOOL *pConstantData, 16997ec681f3Smrg UINT BoolCount ) 17007ec681f3Smrg{ 17017ec681f3Smrg HRESULT r; 17027ec681f3Smrg mtx_lock(&d3dlock_global); 17037ec681f3Smrg r = NineDevice9_SetVertexShaderConstantB(This, StartRegister, pConstantData, BoolCount); 17047ec681f3Smrg mtx_unlock(&d3dlock_global); 17057ec681f3Smrg return r; 17067ec681f3Smrg} 17077ec681f3Smrg 17087ec681f3Smrgstatic HRESULT NINE_WINAPI 17097ec681f3SmrgLockDevice9_GetVertexShaderConstantB( struct NineDevice9 *This, 17107ec681f3Smrg UINT StartRegister, 17117ec681f3Smrg BOOL *pConstantData, 17127ec681f3Smrg UINT BoolCount ) 17137ec681f3Smrg{ 17147ec681f3Smrg HRESULT r; 17157ec681f3Smrg mtx_lock(&d3dlock_global); 17167ec681f3Smrg r = NineDevice9_GetVertexShaderConstantB(This, StartRegister, pConstantData, BoolCount); 17177ec681f3Smrg mtx_unlock(&d3dlock_global); 17187ec681f3Smrg return r; 17197ec681f3Smrg} 17207ec681f3Smrg 17217ec681f3Smrgstatic HRESULT NINE_WINAPI 17227ec681f3SmrgLockDevice9_SetStreamSource( struct NineDevice9 *This, 17237ec681f3Smrg UINT StreamNumber, 17247ec681f3Smrg IDirect3DVertexBuffer9 *pStreamData, 17257ec681f3Smrg UINT OffsetInBytes, 17267ec681f3Smrg UINT Stride ) 17277ec681f3Smrg{ 17287ec681f3Smrg HRESULT r; 17297ec681f3Smrg mtx_lock(&d3dlock_global); 17307ec681f3Smrg r = NineDevice9_SetStreamSource(This, StreamNumber, pStreamData, OffsetInBytes, Stride); 17317ec681f3Smrg mtx_unlock(&d3dlock_global); 17327ec681f3Smrg return r; 17337ec681f3Smrg} 17347ec681f3Smrg 17357ec681f3Smrgstatic HRESULT NINE_WINAPI 17367ec681f3SmrgLockDevice9_GetStreamSource( struct NineDevice9 *This, 17377ec681f3Smrg UINT StreamNumber, 17387ec681f3Smrg IDirect3DVertexBuffer9 **ppStreamData, 17397ec681f3Smrg UINT *pOffsetInBytes, 17407ec681f3Smrg UINT *pStride ) 17417ec681f3Smrg{ 17427ec681f3Smrg HRESULT r; 17437ec681f3Smrg mtx_lock(&d3dlock_global); 17447ec681f3Smrg r = NineDevice9_GetStreamSource(This, StreamNumber, ppStreamData, pOffsetInBytes, pStride); 17457ec681f3Smrg mtx_unlock(&d3dlock_global); 17467ec681f3Smrg return r; 17477ec681f3Smrg} 17487ec681f3Smrg 17497ec681f3Smrgstatic HRESULT NINE_WINAPI 17507ec681f3SmrgLockDevice9_SetStreamSourceFreq( struct NineDevice9 *This, 17517ec681f3Smrg UINT StreamNumber, 17527ec681f3Smrg UINT Setting ) 17537ec681f3Smrg{ 17547ec681f3Smrg HRESULT r; 17557ec681f3Smrg mtx_lock(&d3dlock_global); 17567ec681f3Smrg r = NineDevice9_SetStreamSourceFreq(This, StreamNumber, Setting); 17577ec681f3Smrg mtx_unlock(&d3dlock_global); 17587ec681f3Smrg return r; 17597ec681f3Smrg} 17607ec681f3Smrg 17617ec681f3Smrgstatic HRESULT NINE_WINAPI 17627ec681f3SmrgLockDevice9_GetStreamSourceFreq( struct NineDevice9 *This, 17637ec681f3Smrg UINT StreamNumber, 17647ec681f3Smrg UINT *pSetting ) 17657ec681f3Smrg{ 17667ec681f3Smrg HRESULT r; 17677ec681f3Smrg mtx_lock(&d3dlock_global); 17687ec681f3Smrg r = NineDevice9_GetStreamSourceFreq(This, StreamNumber, pSetting); 17697ec681f3Smrg mtx_unlock(&d3dlock_global); 17707ec681f3Smrg return r; 17717ec681f3Smrg} 17727ec681f3Smrg 17737ec681f3Smrgstatic HRESULT NINE_WINAPI 17747ec681f3SmrgLockDevice9_SetIndices( struct NineDevice9 *This, 17757ec681f3Smrg IDirect3DIndexBuffer9 *pIndexData ) 17767ec681f3Smrg{ 17777ec681f3Smrg HRESULT r; 17787ec681f3Smrg mtx_lock(&d3dlock_global); 17797ec681f3Smrg r = NineDevice9_SetIndices(This, pIndexData); 17807ec681f3Smrg mtx_unlock(&d3dlock_global); 17817ec681f3Smrg return r; 17827ec681f3Smrg} 17837ec681f3Smrg 17847ec681f3Smrgstatic HRESULT NINE_WINAPI 17857ec681f3SmrgLockDevice9_GetIndices( struct NineDevice9 *This, 17867ec681f3Smrg IDirect3DIndexBuffer9 **ppIndexData ) 17877ec681f3Smrg{ 17887ec681f3Smrg HRESULT r; 17897ec681f3Smrg mtx_lock(&d3dlock_global); 17907ec681f3Smrg r = NineDevice9_GetIndices(This, ppIndexData); 17917ec681f3Smrg mtx_unlock(&d3dlock_global); 17927ec681f3Smrg return r; 17937ec681f3Smrg} 17947ec681f3Smrg 17957ec681f3Smrgstatic HRESULT NINE_WINAPI 17967ec681f3SmrgLockDevice9_CreatePixelShader( struct NineDevice9 *This, 17977ec681f3Smrg const DWORD *pFunction, 17987ec681f3Smrg IDirect3DPixelShader9 **ppShader ) 17997ec681f3Smrg{ 18007ec681f3Smrg HRESULT r; 18017ec681f3Smrg mtx_lock(&d3dlock_global); 18027ec681f3Smrg r = NineDevice9_CreatePixelShader(This, pFunction, ppShader); 18037ec681f3Smrg mtx_unlock(&d3dlock_global); 18047ec681f3Smrg return r; 18057ec681f3Smrg} 18067ec681f3Smrg 18077ec681f3Smrgstatic HRESULT NINE_WINAPI 18087ec681f3SmrgLockDevice9_SetPixelShader( struct NineDevice9 *This, 18097ec681f3Smrg IDirect3DPixelShader9 *pShader ) 18107ec681f3Smrg{ 18117ec681f3Smrg HRESULT r; 18127ec681f3Smrg mtx_lock(&d3dlock_global); 18137ec681f3Smrg r = NineDevice9_SetPixelShader(This, pShader); 18147ec681f3Smrg mtx_unlock(&d3dlock_global); 18157ec681f3Smrg return r; 18167ec681f3Smrg} 18177ec681f3Smrg 18187ec681f3Smrgstatic HRESULT NINE_WINAPI 18197ec681f3SmrgLockDevice9_GetPixelShader( struct NineDevice9 *This, 18207ec681f3Smrg IDirect3DPixelShader9 **ppShader ) 18217ec681f3Smrg{ 18227ec681f3Smrg HRESULT r; 18237ec681f3Smrg mtx_lock(&d3dlock_global); 18247ec681f3Smrg r = NineDevice9_GetPixelShader(This, ppShader); 18257ec681f3Smrg mtx_unlock(&d3dlock_global); 18267ec681f3Smrg return r; 18277ec681f3Smrg} 18287ec681f3Smrg 18297ec681f3Smrgstatic HRESULT NINE_WINAPI 18307ec681f3SmrgLockDevice9_SetPixelShaderConstantF( struct NineDevice9 *This, 18317ec681f3Smrg UINT StartRegister, 18327ec681f3Smrg const float *pConstantData, 18337ec681f3Smrg UINT Vector4fCount ) 18347ec681f3Smrg{ 18357ec681f3Smrg HRESULT r; 18367ec681f3Smrg mtx_lock(&d3dlock_global); 18377ec681f3Smrg r = NineDevice9_SetPixelShaderConstantF(This, StartRegister, pConstantData, Vector4fCount); 18387ec681f3Smrg mtx_unlock(&d3dlock_global); 18397ec681f3Smrg return r; 18407ec681f3Smrg} 18417ec681f3Smrg 18427ec681f3Smrgstatic HRESULT NINE_WINAPI 18437ec681f3SmrgLockDevice9_GetPixelShaderConstantF( struct NineDevice9 *This, 18447ec681f3Smrg UINT StartRegister, 18457ec681f3Smrg float *pConstantData, 18467ec681f3Smrg UINT Vector4fCount ) 18477ec681f3Smrg{ 18487ec681f3Smrg HRESULT r; 18497ec681f3Smrg mtx_lock(&d3dlock_global); 18507ec681f3Smrg r = NineDevice9_GetPixelShaderConstantF(This, StartRegister, pConstantData, Vector4fCount); 18517ec681f3Smrg mtx_unlock(&d3dlock_global); 18527ec681f3Smrg return r; 18537ec681f3Smrg} 18547ec681f3Smrg 18557ec681f3Smrgstatic HRESULT NINE_WINAPI 18567ec681f3SmrgLockDevice9_SetPixelShaderConstantI( struct NineDevice9 *This, 18577ec681f3Smrg UINT StartRegister, 18587ec681f3Smrg const int *pConstantData, 18597ec681f3Smrg UINT Vector4iCount ) 18607ec681f3Smrg{ 18617ec681f3Smrg HRESULT r; 18627ec681f3Smrg mtx_lock(&d3dlock_global); 18637ec681f3Smrg r = NineDevice9_SetPixelShaderConstantI(This, StartRegister, pConstantData, Vector4iCount); 18647ec681f3Smrg mtx_unlock(&d3dlock_global); 18657ec681f3Smrg return r; 18667ec681f3Smrg} 18677ec681f3Smrg 18687ec681f3Smrgstatic HRESULT NINE_WINAPI 18697ec681f3SmrgLockDevice9_GetPixelShaderConstantI( struct NineDevice9 *This, 18707ec681f3Smrg UINT StartRegister, 18717ec681f3Smrg int *pConstantData, 18727ec681f3Smrg UINT Vector4iCount ) 18737ec681f3Smrg{ 18747ec681f3Smrg HRESULT r; 18757ec681f3Smrg mtx_lock(&d3dlock_global); 18767ec681f3Smrg r = NineDevice9_GetPixelShaderConstantI(This, StartRegister, pConstantData, Vector4iCount); 18777ec681f3Smrg mtx_unlock(&d3dlock_global); 18787ec681f3Smrg return r; 18797ec681f3Smrg} 18807ec681f3Smrg 18817ec681f3Smrgstatic HRESULT NINE_WINAPI 18827ec681f3SmrgLockDevice9_SetPixelShaderConstantB( struct NineDevice9 *This, 18837ec681f3Smrg UINT StartRegister, 18847ec681f3Smrg const BOOL *pConstantData, 18857ec681f3Smrg UINT BoolCount ) 18867ec681f3Smrg{ 18877ec681f3Smrg HRESULT r; 18887ec681f3Smrg mtx_lock(&d3dlock_global); 18897ec681f3Smrg r = NineDevice9_SetPixelShaderConstantB(This, StartRegister, pConstantData, BoolCount); 18907ec681f3Smrg mtx_unlock(&d3dlock_global); 18917ec681f3Smrg return r; 18927ec681f3Smrg} 18937ec681f3Smrg 18947ec681f3Smrgstatic HRESULT NINE_WINAPI 18957ec681f3SmrgLockDevice9_GetPixelShaderConstantB( struct NineDevice9 *This, 18967ec681f3Smrg UINT StartRegister, 18977ec681f3Smrg BOOL *pConstantData, 18987ec681f3Smrg UINT BoolCount ) 18997ec681f3Smrg{ 19007ec681f3Smrg HRESULT r; 19017ec681f3Smrg mtx_lock(&d3dlock_global); 19027ec681f3Smrg r = NineDevice9_GetPixelShaderConstantB(This, StartRegister, pConstantData, BoolCount); 19037ec681f3Smrg mtx_unlock(&d3dlock_global); 19047ec681f3Smrg return r; 19057ec681f3Smrg} 19067ec681f3Smrg 19077ec681f3Smrgstatic HRESULT NINE_WINAPI 19087ec681f3SmrgLockDevice9_DrawRectPatch( struct NineDevice9 *This, 19097ec681f3Smrg UINT Handle, 19107ec681f3Smrg const float *pNumSegs, 19117ec681f3Smrg const D3DRECTPATCH_INFO *pRectPatchInfo ) 19127ec681f3Smrg{ 19137ec681f3Smrg HRESULT r; 19147ec681f3Smrg mtx_lock(&d3dlock_global); 19157ec681f3Smrg r = NineDevice9_DrawRectPatch(This, Handle, pNumSegs, pRectPatchInfo); 19167ec681f3Smrg mtx_unlock(&d3dlock_global); 19177ec681f3Smrg return r; 19187ec681f3Smrg} 19197ec681f3Smrg 19207ec681f3Smrgstatic HRESULT NINE_WINAPI 19217ec681f3SmrgLockDevice9_DrawTriPatch( struct NineDevice9 *This, 19227ec681f3Smrg UINT Handle, 19237ec681f3Smrg const float *pNumSegs, 19247ec681f3Smrg const D3DTRIPATCH_INFO *pTriPatchInfo ) 19257ec681f3Smrg{ 19267ec681f3Smrg HRESULT r; 19277ec681f3Smrg mtx_lock(&d3dlock_global); 19287ec681f3Smrg r = NineDevice9_DrawTriPatch(This, Handle, pNumSegs, pTriPatchInfo); 19297ec681f3Smrg mtx_unlock(&d3dlock_global); 19307ec681f3Smrg return r; 19317ec681f3Smrg} 19327ec681f3Smrg 19337ec681f3Smrgstatic HRESULT NINE_WINAPI 19347ec681f3SmrgLockDevice9_DeletePatch( struct NineDevice9 *This, 19357ec681f3Smrg UINT Handle ) 19367ec681f3Smrg{ 19377ec681f3Smrg HRESULT r; 19387ec681f3Smrg mtx_lock(&d3dlock_global); 19397ec681f3Smrg r = NineDevice9_DeletePatch(This, Handle); 19407ec681f3Smrg mtx_unlock(&d3dlock_global); 19417ec681f3Smrg return r; 19427ec681f3Smrg} 19437ec681f3Smrg 19447ec681f3Smrgstatic HRESULT NINE_WINAPI 19457ec681f3SmrgLockDevice9_CreateQuery( struct NineDevice9 *This, 19467ec681f3Smrg D3DQUERYTYPE Type, 19477ec681f3Smrg IDirect3DQuery9 **ppQuery ) 19487ec681f3Smrg{ 19497ec681f3Smrg HRESULT r; 19507ec681f3Smrg mtx_lock(&d3dlock_global); 19517ec681f3Smrg r = NineDevice9_CreateQuery(This, Type, ppQuery); 19527ec681f3Smrg mtx_unlock(&d3dlock_global); 19537ec681f3Smrg return r; 19547ec681f3Smrg} 19557ec681f3Smrg 19567ec681f3SmrgIDirect3DDevice9Vtbl LockDevice9_vtable = { 19577ec681f3Smrg (void *)NineUnknown_QueryInterface, 19587ec681f3Smrg (void *)NineUnknown_AddRef, 19597ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 19607ec681f3Smrg (void *)LockDevice9_TestCooperativeLevel, 19617ec681f3Smrg (void *)LockDevice9_GetAvailableTextureMem, 19627ec681f3Smrg (void *)LockDevice9_EvictManagedResources, 19637ec681f3Smrg (void *)LockDevice9_GetDirect3D, 19647ec681f3Smrg (void *)NineDevice9_GetDeviceCaps, /* immutable */ 19657ec681f3Smrg (void *)LockDevice9_GetDisplayMode, 19667ec681f3Smrg (void *)NineDevice9_GetCreationParameters, /* immutable */ 19677ec681f3Smrg (void *)LockDevice9_SetCursorProperties, 19687ec681f3Smrg (void *)LockDevice9_SetCursorPosition, 19697ec681f3Smrg (void *)LockDevice9_ShowCursor, 19707ec681f3Smrg (void *)LockDevice9_CreateAdditionalSwapChain, 19717ec681f3Smrg (void *)LockDevice9_GetSwapChain, 19727ec681f3Smrg (void *)LockDevice9_GetNumberOfSwapChains, 19737ec681f3Smrg (void *)LockDevice9_Reset, 19747ec681f3Smrg (void *)LockDevice9_Present, 19757ec681f3Smrg (void *)LockDevice9_GetBackBuffer, 19767ec681f3Smrg (void *)LockDevice9_GetRasterStatus, 19777ec681f3Smrg (void *)LockDevice9_SetDialogBoxMode, 19787ec681f3Smrg (void *)LockDevice9_SetGammaRamp, 19797ec681f3Smrg (void *)LockDevice9_GetGammaRamp, 19807ec681f3Smrg (void *)LockDevice9_CreateTexture, 19817ec681f3Smrg (void *)LockDevice9_CreateVolumeTexture, 19827ec681f3Smrg (void *)LockDevice9_CreateCubeTexture, 19837ec681f3Smrg (void *)LockDevice9_CreateVertexBuffer, 19847ec681f3Smrg (void *)LockDevice9_CreateIndexBuffer, 19857ec681f3Smrg (void *)LockDevice9_CreateRenderTarget, 19867ec681f3Smrg (void *)LockDevice9_CreateDepthStencilSurface, 19877ec681f3Smrg (void *)LockDevice9_UpdateSurface, 19887ec681f3Smrg (void *)LockDevice9_UpdateTexture, 19897ec681f3Smrg (void *)LockDevice9_GetRenderTargetData, 19907ec681f3Smrg (void *)LockDevice9_GetFrontBufferData, 19917ec681f3Smrg (void *)LockDevice9_StretchRect, 19927ec681f3Smrg (void *)LockDevice9_ColorFill, 19937ec681f3Smrg (void *)LockDevice9_CreateOffscreenPlainSurface, 19947ec681f3Smrg (void *)LockDevice9_SetRenderTarget, 19957ec681f3Smrg (void *)LockDevice9_GetRenderTarget, 19967ec681f3Smrg (void *)LockDevice9_SetDepthStencilSurface, 19977ec681f3Smrg (void *)LockDevice9_GetDepthStencilSurface, 19987ec681f3Smrg (void *)LockDevice9_BeginScene, 19997ec681f3Smrg (void *)LockDevice9_EndScene, 20007ec681f3Smrg (void *)LockDevice9_Clear, 20017ec681f3Smrg (void *)LockDevice9_SetTransform, 20027ec681f3Smrg (void *)LockDevice9_GetTransform, 20037ec681f3Smrg (void *)LockDevice9_MultiplyTransform, 20047ec681f3Smrg (void *)LockDevice9_SetViewport, 20057ec681f3Smrg (void *)LockDevice9_GetViewport, 20067ec681f3Smrg (void *)LockDevice9_SetMaterial, 20077ec681f3Smrg (void *)LockDevice9_GetMaterial, 20087ec681f3Smrg (void *)LockDevice9_SetLight, 20097ec681f3Smrg (void *)LockDevice9_GetLight, 20107ec681f3Smrg (void *)LockDevice9_LightEnable, 20117ec681f3Smrg (void *)LockDevice9_GetLightEnable, 20127ec681f3Smrg (void *)LockDevice9_SetClipPlane, 20137ec681f3Smrg (void *)LockDevice9_GetClipPlane, 20147ec681f3Smrg (void *)LockDevice9_SetRenderState, 20157ec681f3Smrg (void *)LockDevice9_GetRenderState, 20167ec681f3Smrg (void *)LockDevice9_CreateStateBlock, 20177ec681f3Smrg (void *)LockDevice9_BeginStateBlock, 20187ec681f3Smrg (void *)LockDevice9_EndStateBlock, 20197ec681f3Smrg (void *)LockDevice9_SetClipStatus, 20207ec681f3Smrg (void *)LockDevice9_GetClipStatus, 20217ec681f3Smrg (void *)LockDevice9_GetTexture, 20227ec681f3Smrg (void *)LockDevice9_SetTexture, 20237ec681f3Smrg (void *)LockDevice9_GetTextureStageState, 20247ec681f3Smrg (void *)LockDevice9_SetTextureStageState, 20257ec681f3Smrg (void *)LockDevice9_GetSamplerState, 20267ec681f3Smrg (void *)LockDevice9_SetSamplerState, 20277ec681f3Smrg (void *)LockDevice9_ValidateDevice, 20287ec681f3Smrg (void *)LockDevice9_SetPaletteEntries, 20297ec681f3Smrg (void *)LockDevice9_GetPaletteEntries, 20307ec681f3Smrg (void *)LockDevice9_SetCurrentTexturePalette, 20317ec681f3Smrg (void *)LockDevice9_GetCurrentTexturePalette, 20327ec681f3Smrg (void *)LockDevice9_SetScissorRect, 20337ec681f3Smrg (void *)LockDevice9_GetScissorRect, 20347ec681f3Smrg (void *)LockDevice9_SetSoftwareVertexProcessing, 20357ec681f3Smrg (void *)LockDevice9_GetSoftwareVertexProcessing, 20367ec681f3Smrg (void *)LockDevice9_SetNPatchMode, 20377ec681f3Smrg (void *)LockDevice9_GetNPatchMode, 20387ec681f3Smrg (void *)LockDevice9_DrawPrimitive, 20397ec681f3Smrg (void *)LockDevice9_DrawIndexedPrimitive, 20407ec681f3Smrg (void *)LockDevice9_DrawPrimitiveUP, 20417ec681f3Smrg (void *)LockDevice9_DrawIndexedPrimitiveUP, 20427ec681f3Smrg (void *)LockDevice9_ProcessVertices, 20437ec681f3Smrg (void *)LockDevice9_CreateVertexDeclaration, 20447ec681f3Smrg (void *)LockDevice9_SetVertexDeclaration, 20457ec681f3Smrg (void *)LockDevice9_GetVertexDeclaration, 20467ec681f3Smrg (void *)LockDevice9_SetFVF, 20477ec681f3Smrg (void *)LockDevice9_GetFVF, 20487ec681f3Smrg (void *)LockDevice9_CreateVertexShader, 20497ec681f3Smrg (void *)LockDevice9_SetVertexShader, 20507ec681f3Smrg (void *)LockDevice9_GetVertexShader, 20517ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantF, 20527ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantF, 20537ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantI, 20547ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantI, 20557ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantB, 20567ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantB, 20577ec681f3Smrg (void *)LockDevice9_SetStreamSource, 20587ec681f3Smrg (void *)LockDevice9_GetStreamSource, 20597ec681f3Smrg (void *)LockDevice9_SetStreamSourceFreq, 20607ec681f3Smrg (void *)LockDevice9_GetStreamSourceFreq, 20617ec681f3Smrg (void *)LockDevice9_SetIndices, 20627ec681f3Smrg (void *)LockDevice9_GetIndices, 20637ec681f3Smrg (void *)LockDevice9_CreatePixelShader, 20647ec681f3Smrg (void *)LockDevice9_SetPixelShader, 20657ec681f3Smrg (void *)LockDevice9_GetPixelShader, 20667ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantF, 20677ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantF, 20687ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantI, 20697ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantI, 20707ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantB, 20717ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantB, 20727ec681f3Smrg (void *)LockDevice9_DrawRectPatch, 20737ec681f3Smrg (void *)LockDevice9_DrawTriPatch, 20747ec681f3Smrg (void *)LockDevice9_DeletePatch, 20757ec681f3Smrg (void *)LockDevice9_CreateQuery 20767ec681f3Smrg}; 20777ec681f3Smrg 20787ec681f3Smrgstatic HRESULT NINE_WINAPI 20797ec681f3SmrgLockDevice9Ex_SetConvolutionMonoKernel( struct NineDevice9Ex *This, 20807ec681f3Smrg UINT width, 20817ec681f3Smrg UINT height, 20827ec681f3Smrg float *rows, 20837ec681f3Smrg float *columns ) 20847ec681f3Smrg{ 20857ec681f3Smrg HRESULT r; 20867ec681f3Smrg mtx_lock(&d3dlock_global); 20877ec681f3Smrg r = NineDevice9Ex_SetConvolutionMonoKernel(This, width, height, rows, columns); 20887ec681f3Smrg mtx_unlock(&d3dlock_global); 20897ec681f3Smrg return r; 20907ec681f3Smrg} 20917ec681f3Smrg 20927ec681f3Smrgstatic HRESULT NINE_WINAPI 20937ec681f3SmrgLockDevice9Ex_ComposeRects( struct NineDevice9Ex *This, 20947ec681f3Smrg IDirect3DSurface9 *pSrc, 20957ec681f3Smrg IDirect3DSurface9 *pDst, 20967ec681f3Smrg IDirect3DVertexBuffer9 *pSrcRectDescs, 20977ec681f3Smrg UINT NumRects, 20987ec681f3Smrg IDirect3DVertexBuffer9 *pDstRectDescs, 20997ec681f3Smrg D3DCOMPOSERECTSOP Operation, 21007ec681f3Smrg int Xoffset, 21017ec681f3Smrg int Yoffset ) 21027ec681f3Smrg{ 21037ec681f3Smrg HRESULT r; 21047ec681f3Smrg mtx_lock(&d3dlock_global); 21057ec681f3Smrg r = NineDevice9Ex_ComposeRects(This, pSrc, pDst, pSrcRectDescs, NumRects, pDstRectDescs, Operation, Xoffset, Yoffset); 21067ec681f3Smrg mtx_unlock(&d3dlock_global); 21077ec681f3Smrg return r; 21087ec681f3Smrg} 21097ec681f3Smrg 21107ec681f3Smrgstatic HRESULT NINE_WINAPI 21117ec681f3SmrgLockDevice9Ex_PresentEx( struct NineDevice9Ex *This, 21127ec681f3Smrg const RECT *pSourceRect, 21137ec681f3Smrg const RECT *pDestRect, 21147ec681f3Smrg HWND hDestWindowOverride, 21157ec681f3Smrg const RGNDATA *pDirtyRegion, 21167ec681f3Smrg DWORD dwFlags ) 21177ec681f3Smrg{ 21187ec681f3Smrg HRESULT r; 21197ec681f3Smrg mtx_lock(&d3dlock_global); 21207ec681f3Smrg r = NineDevice9Ex_PresentEx(This, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion, dwFlags); 21217ec681f3Smrg mtx_unlock(&d3dlock_global); 21227ec681f3Smrg return r; 21237ec681f3Smrg} 21247ec681f3Smrg 21257ec681f3Smrgstatic HRESULT NINE_WINAPI 21267ec681f3SmrgLockDevice9Ex_GetGPUThreadPriority( struct NineDevice9Ex *This, 21277ec681f3Smrg INT *pPriority ) 21287ec681f3Smrg{ 21297ec681f3Smrg HRESULT r; 21307ec681f3Smrg mtx_lock(&d3dlock_global); 21317ec681f3Smrg r = NineDevice9Ex_GetGPUThreadPriority(This, pPriority); 21327ec681f3Smrg mtx_unlock(&d3dlock_global); 21337ec681f3Smrg return r; 21347ec681f3Smrg} 21357ec681f3Smrg 21367ec681f3Smrgstatic HRESULT NINE_WINAPI 21377ec681f3SmrgLockDevice9Ex_SetGPUThreadPriority( struct NineDevice9Ex *This, 21387ec681f3Smrg INT Priority ) 21397ec681f3Smrg{ 21407ec681f3Smrg HRESULT r; 21417ec681f3Smrg mtx_lock(&d3dlock_global); 21427ec681f3Smrg r = NineDevice9Ex_SetGPUThreadPriority(This, Priority); 21437ec681f3Smrg mtx_unlock(&d3dlock_global); 21447ec681f3Smrg return r; 21457ec681f3Smrg} 21467ec681f3Smrg 21477ec681f3Smrgstatic HRESULT NINE_WINAPI 21487ec681f3SmrgLockDevice9Ex_WaitForVBlank( struct NineDevice9Ex *This, 21497ec681f3Smrg UINT iSwapChain ) 21507ec681f3Smrg{ 21517ec681f3Smrg HRESULT r; 21527ec681f3Smrg mtx_lock(&d3dlock_global); 21537ec681f3Smrg r = NineDevice9Ex_WaitForVBlank(This, iSwapChain); 21547ec681f3Smrg mtx_unlock(&d3dlock_global); 21557ec681f3Smrg return r; 21567ec681f3Smrg} 21577ec681f3Smrg 21587ec681f3Smrgstatic HRESULT NINE_WINAPI 21597ec681f3SmrgLockDevice9Ex_CheckResourceResidency( struct NineDevice9Ex *This, 21607ec681f3Smrg IDirect3DResource9 **pResourceArray, 21617ec681f3Smrg UINT32 NumResources ) 21627ec681f3Smrg{ 21637ec681f3Smrg HRESULT r; 21647ec681f3Smrg mtx_lock(&d3dlock_global); 21657ec681f3Smrg r = NineDevice9Ex_CheckResourceResidency(This, pResourceArray, NumResources); 21667ec681f3Smrg mtx_unlock(&d3dlock_global); 21677ec681f3Smrg return r; 21687ec681f3Smrg} 21697ec681f3Smrg 21707ec681f3Smrgstatic HRESULT NINE_WINAPI 21717ec681f3SmrgLockDevice9Ex_SetMaximumFrameLatency( struct NineDevice9Ex *This, 21727ec681f3Smrg UINT MaxLatency ) 21737ec681f3Smrg{ 21747ec681f3Smrg HRESULT r; 21757ec681f3Smrg mtx_lock(&d3dlock_global); 21767ec681f3Smrg r = NineDevice9Ex_SetMaximumFrameLatency(This, MaxLatency); 21777ec681f3Smrg mtx_unlock(&d3dlock_global); 21787ec681f3Smrg return r; 21797ec681f3Smrg} 21807ec681f3Smrg 21817ec681f3Smrgstatic HRESULT NINE_WINAPI 21827ec681f3SmrgLockDevice9Ex_GetMaximumFrameLatency( struct NineDevice9Ex *This, 21837ec681f3Smrg UINT *pMaxLatency ) 21847ec681f3Smrg{ 21857ec681f3Smrg HRESULT r; 21867ec681f3Smrg mtx_lock(&d3dlock_global); 21877ec681f3Smrg r = NineDevice9Ex_GetMaximumFrameLatency(This, pMaxLatency); 21887ec681f3Smrg mtx_unlock(&d3dlock_global); 21897ec681f3Smrg return r; 21907ec681f3Smrg} 21917ec681f3Smrg 21927ec681f3Smrgstatic HRESULT NINE_WINAPI 21937ec681f3SmrgLockDevice9Ex_CheckDeviceState( struct NineDevice9Ex *This, 21947ec681f3Smrg HWND hDestinationWindow ) 21957ec681f3Smrg{ 21967ec681f3Smrg HRESULT r; 21977ec681f3Smrg mtx_lock(&d3dlock_global); 21987ec681f3Smrg r = NineDevice9Ex_CheckDeviceState(This, hDestinationWindow); 21997ec681f3Smrg mtx_unlock(&d3dlock_global); 22007ec681f3Smrg return r; 22017ec681f3Smrg} 22027ec681f3Smrg 22037ec681f3Smrgstatic HRESULT NINE_WINAPI 22047ec681f3SmrgLockDevice9Ex_CreateRenderTargetEx( struct NineDevice9Ex *This, 22057ec681f3Smrg UINT Width, 22067ec681f3Smrg UINT Height, 22077ec681f3Smrg D3DFORMAT Format, 22087ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 22097ec681f3Smrg DWORD MultisampleQuality, 22107ec681f3Smrg BOOL Lockable, 22117ec681f3Smrg IDirect3DSurface9 **ppSurface, 22127ec681f3Smrg HANDLE *pSharedHandle, 22137ec681f3Smrg DWORD Usage ) 22147ec681f3Smrg{ 22157ec681f3Smrg HRESULT r; 22167ec681f3Smrg mtx_lock(&d3dlock_global); 22177ec681f3Smrg r = NineDevice9Ex_CreateRenderTargetEx(This, Width, Height, Format, MultiSample, MultisampleQuality, Lockable, ppSurface, pSharedHandle, Usage); 22187ec681f3Smrg mtx_unlock(&d3dlock_global); 22197ec681f3Smrg return r; 22207ec681f3Smrg} 22217ec681f3Smrg 22227ec681f3Smrgstatic HRESULT NINE_WINAPI 22237ec681f3SmrgLockDevice9Ex_CreateOffscreenPlainSurfaceEx( struct NineDevice9Ex *This, 22247ec681f3Smrg UINT Width, 22257ec681f3Smrg UINT Height, 22267ec681f3Smrg D3DFORMAT Format, 22277ec681f3Smrg D3DPOOL Pool, 22287ec681f3Smrg IDirect3DSurface9 **ppSurface, 22297ec681f3Smrg HANDLE *pSharedHandle, 22307ec681f3Smrg DWORD Usage ) 22317ec681f3Smrg{ 22327ec681f3Smrg HRESULT r; 22337ec681f3Smrg mtx_lock(&d3dlock_global); 22347ec681f3Smrg r = NineDevice9Ex_CreateOffscreenPlainSurfaceEx(This, Width, Height, Format, Pool, ppSurface, pSharedHandle, Usage); 22357ec681f3Smrg mtx_unlock(&d3dlock_global); 22367ec681f3Smrg return r; 22377ec681f3Smrg} 22387ec681f3Smrg 22397ec681f3Smrgstatic HRESULT NINE_WINAPI 22407ec681f3SmrgLockDevice9Ex_CreateDepthStencilSurfaceEx( struct NineDevice9Ex *This, 22417ec681f3Smrg UINT Width, 22427ec681f3Smrg UINT Height, 22437ec681f3Smrg D3DFORMAT Format, 22447ec681f3Smrg D3DMULTISAMPLE_TYPE MultiSample, 22457ec681f3Smrg DWORD MultisampleQuality, 22467ec681f3Smrg BOOL Discard, 22477ec681f3Smrg IDirect3DSurface9 **ppSurface, 22487ec681f3Smrg HANDLE *pSharedHandle, 22497ec681f3Smrg DWORD Usage ) 22507ec681f3Smrg{ 22517ec681f3Smrg HRESULT r; 22527ec681f3Smrg mtx_lock(&d3dlock_global); 22537ec681f3Smrg r = NineDevice9Ex_CreateDepthStencilSurfaceEx(This, Width, Height, Format, MultiSample, MultisampleQuality, Discard, ppSurface, pSharedHandle, Usage); 22547ec681f3Smrg mtx_unlock(&d3dlock_global); 22557ec681f3Smrg return r; 22567ec681f3Smrg} 22577ec681f3Smrg 22587ec681f3Smrgstatic HRESULT NINE_WINAPI 22597ec681f3SmrgLockDevice9Ex_ResetEx( struct NineDevice9Ex *This, 22607ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters, 22617ec681f3Smrg D3DDISPLAYMODEEX *pFullscreenDisplayMode ) 22627ec681f3Smrg{ 22637ec681f3Smrg HRESULT r; 22647ec681f3Smrg mtx_lock(&d3dlock_global); 22657ec681f3Smrg r = NineDevice9Ex_ResetEx(This, pPresentationParameters, pFullscreenDisplayMode); 22667ec681f3Smrg mtx_unlock(&d3dlock_global); 22677ec681f3Smrg return r; 22687ec681f3Smrg} 22697ec681f3Smrg 22707ec681f3Smrgstatic HRESULT NINE_WINAPI 22717ec681f3SmrgLockDevice9Ex_GetDisplayModeEx( struct NineDevice9Ex *This, 22727ec681f3Smrg UINT iSwapChain, 22737ec681f3Smrg D3DDISPLAYMODEEX *pMode, 22747ec681f3Smrg D3DDISPLAYROTATION *pRotation ) 22757ec681f3Smrg{ 22767ec681f3Smrg HRESULT r; 22777ec681f3Smrg mtx_lock(&d3dlock_global); 22787ec681f3Smrg r = NineDevice9Ex_GetDisplayModeEx(This, iSwapChain, pMode, pRotation); 22797ec681f3Smrg mtx_unlock(&d3dlock_global); 22807ec681f3Smrg return r; 22817ec681f3Smrg} 22827ec681f3Smrg 22837ec681f3SmrgIDirect3DDevice9ExVtbl LockDevice9Ex_vtable = { 22847ec681f3Smrg (void *)NineUnknown_QueryInterface, 22857ec681f3Smrg (void *)NineUnknown_AddRef, 22867ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 22877ec681f3Smrg (void *)LockDevice9_TestCooperativeLevel, 22887ec681f3Smrg (void *)LockDevice9_GetAvailableTextureMem, 22897ec681f3Smrg (void *)LockDevice9_EvictManagedResources, 22907ec681f3Smrg (void *)LockDevice9_GetDirect3D, 22917ec681f3Smrg (void *)NineDevice9_GetDeviceCaps, 22927ec681f3Smrg (void *)LockDevice9_GetDisplayMode, 22937ec681f3Smrg (void *)NineDevice9_GetCreationParameters, 22947ec681f3Smrg (void *)LockDevice9_SetCursorProperties, 22957ec681f3Smrg (void *)LockDevice9_SetCursorPosition, 22967ec681f3Smrg (void *)LockDevice9_ShowCursor, 22977ec681f3Smrg (void *)LockDevice9_CreateAdditionalSwapChain, 22987ec681f3Smrg (void *)LockDevice9_GetSwapChain, 22997ec681f3Smrg (void *)LockDevice9_GetNumberOfSwapChains, 23007ec681f3Smrg (void *)LockDevice9_Reset, 23017ec681f3Smrg (void *)LockDevice9_Present, 23027ec681f3Smrg (void *)LockDevice9_GetBackBuffer, 23037ec681f3Smrg (void *)LockDevice9_GetRasterStatus, 23047ec681f3Smrg (void *)LockDevice9_SetDialogBoxMode, 23057ec681f3Smrg (void *)LockDevice9_SetGammaRamp, 23067ec681f3Smrg (void *)LockDevice9_GetGammaRamp, 23077ec681f3Smrg (void *)LockDevice9_CreateTexture, 23087ec681f3Smrg (void *)LockDevice9_CreateVolumeTexture, 23097ec681f3Smrg (void *)LockDevice9_CreateCubeTexture, 23107ec681f3Smrg (void *)LockDevice9_CreateVertexBuffer, 23117ec681f3Smrg (void *)LockDevice9_CreateIndexBuffer, 23127ec681f3Smrg (void *)LockDevice9_CreateRenderTarget, 23137ec681f3Smrg (void *)LockDevice9_CreateDepthStencilSurface, 23147ec681f3Smrg (void *)LockDevice9_UpdateSurface, 23157ec681f3Smrg (void *)LockDevice9_UpdateTexture, 23167ec681f3Smrg (void *)LockDevice9_GetRenderTargetData, 23177ec681f3Smrg (void *)LockDevice9_GetFrontBufferData, 23187ec681f3Smrg (void *)LockDevice9_StretchRect, 23197ec681f3Smrg (void *)LockDevice9_ColorFill, 23207ec681f3Smrg (void *)LockDevice9_CreateOffscreenPlainSurface, 23217ec681f3Smrg (void *)LockDevice9_SetRenderTarget, 23227ec681f3Smrg (void *)LockDevice9_GetRenderTarget, 23237ec681f3Smrg (void *)LockDevice9_SetDepthStencilSurface, 23247ec681f3Smrg (void *)LockDevice9_GetDepthStencilSurface, 23257ec681f3Smrg (void *)LockDevice9_BeginScene, 23267ec681f3Smrg (void *)LockDevice9_EndScene, 23277ec681f3Smrg (void *)LockDevice9_Clear, 23287ec681f3Smrg (void *)LockDevice9_SetTransform, 23297ec681f3Smrg (void *)LockDevice9_GetTransform, 23307ec681f3Smrg (void *)LockDevice9_MultiplyTransform, 23317ec681f3Smrg (void *)LockDevice9_SetViewport, 23327ec681f3Smrg (void *)LockDevice9_GetViewport, 23337ec681f3Smrg (void *)LockDevice9_SetMaterial, 23347ec681f3Smrg (void *)LockDevice9_GetMaterial, 23357ec681f3Smrg (void *)LockDevice9_SetLight, 23367ec681f3Smrg (void *)LockDevice9_GetLight, 23377ec681f3Smrg (void *)LockDevice9_LightEnable, 23387ec681f3Smrg (void *)LockDevice9_GetLightEnable, 23397ec681f3Smrg (void *)LockDevice9_SetClipPlane, 23407ec681f3Smrg (void *)LockDevice9_GetClipPlane, 23417ec681f3Smrg (void *)LockDevice9_SetRenderState, 23427ec681f3Smrg (void *)LockDevice9_GetRenderState, 23437ec681f3Smrg (void *)LockDevice9_CreateStateBlock, 23447ec681f3Smrg (void *)LockDevice9_BeginStateBlock, 23457ec681f3Smrg (void *)LockDevice9_EndStateBlock, 23467ec681f3Smrg (void *)LockDevice9_SetClipStatus, 23477ec681f3Smrg (void *)LockDevice9_GetClipStatus, 23487ec681f3Smrg (void *)LockDevice9_GetTexture, 23497ec681f3Smrg (void *)LockDevice9_SetTexture, 23507ec681f3Smrg (void *)LockDevice9_GetTextureStageState, 23517ec681f3Smrg (void *)LockDevice9_SetTextureStageState, 23527ec681f3Smrg (void *)LockDevice9_GetSamplerState, 23537ec681f3Smrg (void *)LockDevice9_SetSamplerState, 23547ec681f3Smrg (void *)LockDevice9_ValidateDevice, 23557ec681f3Smrg (void *)LockDevice9_SetPaletteEntries, 23567ec681f3Smrg (void *)LockDevice9_GetPaletteEntries, 23577ec681f3Smrg (void *)LockDevice9_SetCurrentTexturePalette, 23587ec681f3Smrg (void *)LockDevice9_GetCurrentTexturePalette, 23597ec681f3Smrg (void *)LockDevice9_SetScissorRect, 23607ec681f3Smrg (void *)LockDevice9_GetScissorRect, 23617ec681f3Smrg (void *)LockDevice9_SetSoftwareVertexProcessing, 23627ec681f3Smrg (void *)LockDevice9_GetSoftwareVertexProcessing, 23637ec681f3Smrg (void *)LockDevice9_SetNPatchMode, 23647ec681f3Smrg (void *)LockDevice9_GetNPatchMode, 23657ec681f3Smrg (void *)LockDevice9_DrawPrimitive, 23667ec681f3Smrg (void *)LockDevice9_DrawIndexedPrimitive, 23677ec681f3Smrg (void *)LockDevice9_DrawPrimitiveUP, 23687ec681f3Smrg (void *)LockDevice9_DrawIndexedPrimitiveUP, 23697ec681f3Smrg (void *)LockDevice9_ProcessVertices, 23707ec681f3Smrg (void *)LockDevice9_CreateVertexDeclaration, 23717ec681f3Smrg (void *)LockDevice9_SetVertexDeclaration, 23727ec681f3Smrg (void *)LockDevice9_GetVertexDeclaration, 23737ec681f3Smrg (void *)LockDevice9_SetFVF, 23747ec681f3Smrg (void *)LockDevice9_GetFVF, 23757ec681f3Smrg (void *)LockDevice9_CreateVertexShader, 23767ec681f3Smrg (void *)LockDevice9_SetVertexShader, 23777ec681f3Smrg (void *)LockDevice9_GetVertexShader, 23787ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantF, 23797ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantF, 23807ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantI, 23817ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantI, 23827ec681f3Smrg (void *)LockDevice9_SetVertexShaderConstantB, 23837ec681f3Smrg (void *)LockDevice9_GetVertexShaderConstantB, 23847ec681f3Smrg (void *)LockDevice9_SetStreamSource, 23857ec681f3Smrg (void *)LockDevice9_GetStreamSource, 23867ec681f3Smrg (void *)LockDevice9_SetStreamSourceFreq, 23877ec681f3Smrg (void *)LockDevice9_GetStreamSourceFreq, 23887ec681f3Smrg (void *)LockDevice9_SetIndices, 23897ec681f3Smrg (void *)LockDevice9_GetIndices, 23907ec681f3Smrg (void *)LockDevice9_CreatePixelShader, 23917ec681f3Smrg (void *)LockDevice9_SetPixelShader, 23927ec681f3Smrg (void *)LockDevice9_GetPixelShader, 23937ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantF, 23947ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantF, 23957ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantI, 23967ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantI, 23977ec681f3Smrg (void *)LockDevice9_SetPixelShaderConstantB, 23987ec681f3Smrg (void *)LockDevice9_GetPixelShaderConstantB, 23997ec681f3Smrg (void *)LockDevice9_DrawRectPatch, 24007ec681f3Smrg (void *)LockDevice9_DrawTriPatch, 24017ec681f3Smrg (void *)LockDevice9_DeletePatch, 24027ec681f3Smrg (void *)LockDevice9_CreateQuery, 24037ec681f3Smrg (void *)LockDevice9Ex_SetConvolutionMonoKernel, 24047ec681f3Smrg (void *)LockDevice9Ex_ComposeRects, 24057ec681f3Smrg (void *)LockDevice9Ex_PresentEx, 24067ec681f3Smrg (void *)LockDevice9Ex_GetGPUThreadPriority, 24077ec681f3Smrg (void *)LockDevice9Ex_SetGPUThreadPriority, 24087ec681f3Smrg (void *)LockDevice9Ex_WaitForVBlank, 24097ec681f3Smrg (void *)LockDevice9Ex_CheckResourceResidency, 24107ec681f3Smrg (void *)LockDevice9Ex_SetMaximumFrameLatency, 24117ec681f3Smrg (void *)LockDevice9Ex_GetMaximumFrameLatency, 24127ec681f3Smrg (void *)LockDevice9Ex_CheckDeviceState, 24137ec681f3Smrg (void *)LockDevice9Ex_CreateRenderTargetEx, 24147ec681f3Smrg (void *)LockDevice9Ex_CreateOffscreenPlainSurfaceEx, 24157ec681f3Smrg (void *)LockDevice9Ex_CreateDepthStencilSurfaceEx, 24167ec681f3Smrg (void *)LockDevice9Ex_ResetEx, 24177ec681f3Smrg (void *)LockDevice9Ex_GetDisplayModeEx 24187ec681f3Smrg}; 24197ec681f3Smrg 24207ec681f3Smrgstatic HRESULT NINE_WINAPI 24217ec681f3SmrgLockDevice9Video_GetContentProtectionCaps( struct NineDevice9Video *This, 24227ec681f3Smrg const GUID *pCryptoType, 24237ec681f3Smrg const GUID *pDecodeProfile, 24247ec681f3Smrg D3DCONTENTPROTECTIONCAPS *pCaps ) 24257ec681f3Smrg{ 24267ec681f3Smrg HRESULT r; 24277ec681f3Smrg mtx_lock(&d3dlock_global); 24287ec681f3Smrg r = NineDevice9Video_GetContentProtectionCaps(This, pCryptoType, pDecodeProfile, pCaps); 24297ec681f3Smrg mtx_unlock(&d3dlock_global); 24307ec681f3Smrg return r; 24317ec681f3Smrg} 24327ec681f3Smrg 24337ec681f3Smrgstatic HRESULT NINE_WINAPI 24347ec681f3SmrgLockDevice9Video_CreateAuthenticatedChannel( struct NineDevice9Video *This, 24357ec681f3Smrg D3DAUTHENTICATEDCHANNELTYPE ChannelType, 24367ec681f3Smrg IDirect3DAuthenticatedChannel9 **ppAuthenticatedChannel, 24377ec681f3Smrg HANDLE *pChannelHandle ) 24387ec681f3Smrg{ 24397ec681f3Smrg HRESULT r; 24407ec681f3Smrg mtx_lock(&d3dlock_global); 24417ec681f3Smrg r = NineDevice9Video_CreateAuthenticatedChannel(This, ChannelType, ppAuthenticatedChannel, pChannelHandle); 24427ec681f3Smrg mtx_unlock(&d3dlock_global); 24437ec681f3Smrg return r; 24447ec681f3Smrg} 24457ec681f3Smrg 24467ec681f3Smrgstatic HRESULT NINE_WINAPI 24477ec681f3SmrgLockDevice9Video_CreateCryptoSession( struct NineDevice9Video *This, 24487ec681f3Smrg const GUID *pCryptoType, 24497ec681f3Smrg const GUID *pDecodeProfile, 24507ec681f3Smrg IDirect3DCryptoSession9 **ppCryptoSession, 24517ec681f3Smrg HANDLE *pCryptoHandle ) 24527ec681f3Smrg{ 24537ec681f3Smrg HRESULT r; 24547ec681f3Smrg mtx_lock(&d3dlock_global); 24557ec681f3Smrg r = NineDevice9Video_CreateCryptoSession(This, pCryptoType, pDecodeProfile, ppCryptoSession, pCryptoHandle); 24567ec681f3Smrg mtx_unlock(&d3dlock_global); 24577ec681f3Smrg return r; 24587ec681f3Smrg} 24597ec681f3Smrg 24607ec681f3SmrgIDirect3DDevice9VideoVtbl LockDevice9Video_vtable = { 24617ec681f3Smrg (void *)NineUnknown_QueryInterface, 24627ec681f3Smrg (void *)NineUnknown_AddRef, 24637ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 24647ec681f3Smrg (void *)LockDevice9Video_GetContentProtectionCaps, 24657ec681f3Smrg (void *)LockDevice9Video_CreateAuthenticatedChannel, 24667ec681f3Smrg (void *)LockDevice9Video_CreateCryptoSession 24677ec681f3Smrg}; 24687ec681f3Smrg 24697ec681f3Smrgstatic HRESULT NINE_WINAPI 24707ec681f3SmrgLockIndexBuffer9_Lock( struct NineIndexBuffer9 *This, 24717ec681f3Smrg UINT OffsetToLock, 24727ec681f3Smrg UINT SizeToLock, 24737ec681f3Smrg void **ppbData, 24747ec681f3Smrg DWORD Flags ) 24757ec681f3Smrg{ 24767ec681f3Smrg HRESULT r; 24777ec681f3Smrg mtx_lock(&d3dlock_global); 24787ec681f3Smrg r = NineIndexBuffer9_Lock(This, OffsetToLock, SizeToLock, ppbData, Flags); 24797ec681f3Smrg mtx_unlock(&d3dlock_global); 24807ec681f3Smrg return r; 24817ec681f3Smrg} 24827ec681f3Smrg 24837ec681f3Smrgstatic HRESULT NINE_WINAPI 24847ec681f3SmrgLockIndexBuffer9_Unlock( struct NineIndexBuffer9 *This ) 24857ec681f3Smrg{ 24867ec681f3Smrg HRESULT r; 24877ec681f3Smrg mtx_lock(&d3dlock_global); 24887ec681f3Smrg r = NineIndexBuffer9_Unlock(This); 24897ec681f3Smrg mtx_unlock(&d3dlock_global); 24907ec681f3Smrg return r; 24917ec681f3Smrg} 24927ec681f3Smrg 24937ec681f3Smrg#if 0 24947ec681f3Smrgstatic HRESULT NINE_WINAPI 24957ec681f3SmrgLockIndexBuffer9_GetDesc( struct NineIndexBuffer9 *This, 24967ec681f3Smrg D3DINDEXBUFFER_DESC *pDesc ) 24977ec681f3Smrg{ 24987ec681f3Smrg HRESULT r; 24997ec681f3Smrg mtx_lock(&d3dlock_global); 25007ec681f3Smrg r = NineIndexBuffer9_GetDesc(This, pDesc); 25017ec681f3Smrg mtx_unlock(&d3dlock_global); 25027ec681f3Smrg return r; 25037ec681f3Smrg} 25047ec681f3Smrg#endif 25057ec681f3Smrg 25067ec681f3SmrgIDirect3DIndexBuffer9Vtbl LockIndexBuffer9_vtable = { 25077ec681f3Smrg (void *)NineUnknown_QueryInterface, 25087ec681f3Smrg (void *)NineUnknown_AddRef, 25097ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 25107ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 25117ec681f3Smrg (void *)LockUnknown_SetPrivateData, 25127ec681f3Smrg (void *)LockUnknown_GetPrivateData, 25137ec681f3Smrg (void *)LockUnknown_FreePrivateData, 25147ec681f3Smrg (void *)LockResource9_SetPriority, 25157ec681f3Smrg (void *)LockResource9_GetPriority, 25167ec681f3Smrg (void *)NineResource9_PreLoad, /* nop */ 25177ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 25187ec681f3Smrg (void *)LockIndexBuffer9_Lock, 25197ec681f3Smrg (void *)LockIndexBuffer9_Unlock, 25207ec681f3Smrg (void *)NineIndexBuffer9_GetDesc /* immutable */ 25217ec681f3Smrg}; 25227ec681f3Smrg 25237ec681f3Smrg#if 0 25247ec681f3Smrgstatic HRESULT NINE_WINAPI 25257ec681f3SmrgLockPixelShader9_GetDevice( struct NinePixelShader9 *This, 25267ec681f3Smrg IDirect3DDevice9 **ppDevice ) 25277ec681f3Smrg{ 25287ec681f3Smrg HRESULT r; 25297ec681f3Smrg mtx_lock(&d3dlock_global); 25307ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 25317ec681f3Smrg mtx_unlock(&d3dlock_global); 25327ec681f3Smrg return r; 25337ec681f3Smrg} 25347ec681f3Smrg#endif 25357ec681f3Smrg 25367ec681f3Smrgstatic HRESULT NINE_WINAPI 25377ec681f3SmrgLockPixelShader9_GetFunction( struct NinePixelShader9 *This, 25387ec681f3Smrg void *pData, 25397ec681f3Smrg UINT *pSizeOfData ) 25407ec681f3Smrg{ 25417ec681f3Smrg HRESULT r; 25427ec681f3Smrg mtx_lock(&d3dlock_global); 25437ec681f3Smrg r = NinePixelShader9_GetFunction(This, pData, pSizeOfData); 25447ec681f3Smrg mtx_unlock(&d3dlock_global); 25457ec681f3Smrg return r; 25467ec681f3Smrg} 25477ec681f3Smrg 25487ec681f3SmrgIDirect3DPixelShader9Vtbl LockPixelShader9_vtable = { 25497ec681f3Smrg (void *)NineUnknown_QueryInterface, 25507ec681f3Smrg (void *)NineUnknown_AddRef, 25517ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 25527ec681f3Smrg (void *)NineUnknown_GetDevice, 25537ec681f3Smrg (void *)LockPixelShader9_GetFunction 25547ec681f3Smrg}; 25557ec681f3Smrg 25567ec681f3Smrg#if 0 25577ec681f3Smrgstatic HRESULT NINE_WINAPI 25587ec681f3SmrgLockQuery9_GetDevice( struct NineQuery9 *This, 25597ec681f3Smrg IDirect3DDevice9 **ppDevice ) 25607ec681f3Smrg{ 25617ec681f3Smrg HRESULT r; 25627ec681f3Smrg mtx_lock(&d3dlock_global); 25637ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 25647ec681f3Smrg mtx_unlock(&d3dlock_global); 25657ec681f3Smrg return r; 25667ec681f3Smrg} 25677ec681f3Smrg#endif 25687ec681f3Smrg 25697ec681f3Smrg#if 0 25707ec681f3Smrgstatic D3DQUERYTYPE NINE_WINAPI 25717ec681f3SmrgLockQuery9_GetType( struct NineQuery9 *This ) 25727ec681f3Smrg{ 25737ec681f3Smrg D3DQUERYTYPE r; 25747ec681f3Smrg mtx_lock(&d3dlock_global); 25757ec681f3Smrg r = NineQuery9_GetType(This); 25767ec681f3Smrg mtx_unlock(&d3dlock_global); 25777ec681f3Smrg return r; 25787ec681f3Smrg} 25797ec681f3Smrg#endif 25807ec681f3Smrg 25817ec681f3Smrg#if 0 25827ec681f3Smrgstatic DWORD NINE_WINAPI 25837ec681f3SmrgLockQuery9_GetDataSize( struct NineQuery9 *This ) 25847ec681f3Smrg{ 25857ec681f3Smrg DWORD r; 25867ec681f3Smrg mtx_lock(&d3dlock_global); 25877ec681f3Smrg r = NineQuery9_GetDataSize(This); 25887ec681f3Smrg mtx_unlock(&d3dlock_global); 25897ec681f3Smrg return r; 25907ec681f3Smrg} 25917ec681f3Smrg#endif 25927ec681f3Smrg 25937ec681f3Smrgstatic HRESULT NINE_WINAPI 25947ec681f3SmrgLockQuery9_Issue( struct NineQuery9 *This, 25957ec681f3Smrg DWORD dwIssueFlags ) 25967ec681f3Smrg{ 25977ec681f3Smrg HRESULT r; 25987ec681f3Smrg mtx_lock(&d3dlock_global); 25997ec681f3Smrg r = NineQuery9_Issue(This, dwIssueFlags); 26007ec681f3Smrg mtx_unlock(&d3dlock_global); 26017ec681f3Smrg return r; 26027ec681f3Smrg} 26037ec681f3Smrg 26047ec681f3Smrgstatic HRESULT NINE_WINAPI 26057ec681f3SmrgLockQuery9_GetData( struct NineQuery9 *This, 26067ec681f3Smrg void *pData, 26077ec681f3Smrg DWORD dwSize, 26087ec681f3Smrg DWORD dwGetDataFlags ) 26097ec681f3Smrg{ 26107ec681f3Smrg HRESULT r; 26117ec681f3Smrg mtx_lock(&d3dlock_global); 26127ec681f3Smrg r = NineQuery9_GetData(This, pData, dwSize, dwGetDataFlags); 26137ec681f3Smrg mtx_unlock(&d3dlock_global); 26147ec681f3Smrg return r; 26157ec681f3Smrg} 26167ec681f3Smrg 26177ec681f3SmrgIDirect3DQuery9Vtbl LockQuery9_vtable = { 26187ec681f3Smrg (void *)NineUnknown_QueryInterface, 26197ec681f3Smrg (void *)NineUnknown_AddRef, 26207ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 26217ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Query9 iface */ 26227ec681f3Smrg (void *)NineQuery9_GetType, /* immutable */ 26237ec681f3Smrg (void *)NineQuery9_GetDataSize, /* immutable */ 26247ec681f3Smrg (void *)LockQuery9_Issue, 26257ec681f3Smrg (void *)LockQuery9_GetData 26267ec681f3Smrg}; 26277ec681f3Smrg 26287ec681f3Smrg#if 0 26297ec681f3Smrgstatic HRESULT NINE_WINAPI 26307ec681f3SmrgLockStateBlock9_GetDevice( struct NineStateBlock9 *This, 26317ec681f3Smrg IDirect3DDevice9 **ppDevice ) 26327ec681f3Smrg{ 26337ec681f3Smrg HRESULT r; 26347ec681f3Smrg mtx_lock(&d3dlock_global); 26357ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 26367ec681f3Smrg mtx_unlock(&d3dlock_global); 26377ec681f3Smrg return r; 26387ec681f3Smrg} 26397ec681f3Smrg#endif 26407ec681f3Smrg 26417ec681f3Smrgstatic HRESULT NINE_WINAPI 26427ec681f3SmrgLockStateBlock9_Capture( struct NineStateBlock9 *This ) 26437ec681f3Smrg{ 26447ec681f3Smrg HRESULT r; 26457ec681f3Smrg mtx_lock(&d3dlock_global); 26467ec681f3Smrg r = NineStateBlock9_Capture(This); 26477ec681f3Smrg mtx_unlock(&d3dlock_global); 26487ec681f3Smrg return r; 26497ec681f3Smrg} 26507ec681f3Smrg 26517ec681f3Smrgstatic HRESULT NINE_WINAPI 26527ec681f3SmrgLockStateBlock9_Apply( struct NineStateBlock9 *This ) 26537ec681f3Smrg{ 26547ec681f3Smrg HRESULT r; 26557ec681f3Smrg mtx_lock(&d3dlock_global); 26567ec681f3Smrg r = NineStateBlock9_Apply(This); 26577ec681f3Smrg mtx_unlock(&d3dlock_global); 26587ec681f3Smrg return r; 26597ec681f3Smrg} 26607ec681f3Smrg 26617ec681f3SmrgIDirect3DStateBlock9Vtbl LockStateBlock9_vtable = { 26627ec681f3Smrg (void *)NineUnknown_QueryInterface, 26637ec681f3Smrg (void *)NineUnknown_AddRef, 26647ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 26657ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of StateBlock9 iface */ 26667ec681f3Smrg (void *)LockStateBlock9_Capture, 26677ec681f3Smrg (void *)LockStateBlock9_Apply 26687ec681f3Smrg}; 26697ec681f3Smrg 26707ec681f3Smrgstatic HRESULT NINE_WINAPI 26717ec681f3SmrgLockSurface9_GetContainer( struct NineSurface9 *This, 26727ec681f3Smrg REFIID riid, 26737ec681f3Smrg void **ppContainer ) 26747ec681f3Smrg{ 26757ec681f3Smrg HRESULT r; 26767ec681f3Smrg mtx_lock(&d3dlock_global); 26777ec681f3Smrg r = NineSurface9_GetContainer(This, riid, ppContainer); 26787ec681f3Smrg mtx_unlock(&d3dlock_global); 26797ec681f3Smrg return r; 26807ec681f3Smrg} 26817ec681f3Smrg 26827ec681f3Smrg#if 0 26837ec681f3Smrgstatic HRESULT NINE_WINAPI 26847ec681f3SmrgLockSurface9_GetDesc( struct NineSurface9 *This, 26857ec681f3Smrg D3DSURFACE_DESC *pDesc ) 26867ec681f3Smrg{ 26877ec681f3Smrg HRESULT r; 26887ec681f3Smrg mtx_lock(&d3dlock_global); 26897ec681f3Smrg r = NineSurface9_GetDesc(This, pDesc); 26907ec681f3Smrg mtx_unlock(&d3dlock_global); 26917ec681f3Smrg return r; 26927ec681f3Smrg} 26937ec681f3Smrg#endif 26947ec681f3Smrg 26957ec681f3Smrgstatic HRESULT NINE_WINAPI 26967ec681f3SmrgLockSurface9_LockRect( struct NineSurface9 *This, 26977ec681f3Smrg D3DLOCKED_RECT *pLockedRect, 26987ec681f3Smrg const RECT *pRect, 26997ec681f3Smrg DWORD Flags ) 27007ec681f3Smrg{ 27017ec681f3Smrg HRESULT r; 27027ec681f3Smrg mtx_lock(&d3dlock_global); 27037ec681f3Smrg r = NineSurface9_LockRect(This, pLockedRect, pRect, Flags); 27047ec681f3Smrg mtx_unlock(&d3dlock_global); 27057ec681f3Smrg return r; 27067ec681f3Smrg} 27077ec681f3Smrg 27087ec681f3Smrgstatic HRESULT NINE_WINAPI 27097ec681f3SmrgLockSurface9_UnlockRect( struct NineSurface9 *This ) 27107ec681f3Smrg{ 27117ec681f3Smrg HRESULT r; 27127ec681f3Smrg mtx_lock(&d3dlock_global); 27137ec681f3Smrg r = NineSurface9_UnlockRect(This); 27147ec681f3Smrg mtx_unlock(&d3dlock_global); 27157ec681f3Smrg return r; 27167ec681f3Smrg} 27177ec681f3Smrg 27187ec681f3Smrgstatic HRESULT NINE_WINAPI 27197ec681f3SmrgLockSurface9_GetDC( struct NineSurface9 *This, 27207ec681f3Smrg HDC *phdc ) 27217ec681f3Smrg{ 27227ec681f3Smrg HRESULT r; 27237ec681f3Smrg mtx_lock(&d3dlock_global); 27247ec681f3Smrg r = NineSurface9_GetDC(This, phdc); 27257ec681f3Smrg mtx_unlock(&d3dlock_global); 27267ec681f3Smrg return r; 27277ec681f3Smrg} 27287ec681f3Smrg 27297ec681f3Smrgstatic HRESULT NINE_WINAPI 27307ec681f3SmrgLockSurface9_ReleaseDC( struct NineSurface9 *This, 27317ec681f3Smrg HDC hdc ) 27327ec681f3Smrg{ 27337ec681f3Smrg HRESULT r; 27347ec681f3Smrg mtx_lock(&d3dlock_global); 27357ec681f3Smrg r = NineSurface9_ReleaseDC(This, hdc); 27367ec681f3Smrg mtx_unlock(&d3dlock_global); 27377ec681f3Smrg return r; 27387ec681f3Smrg} 27397ec681f3Smrg 27407ec681f3SmrgIDirect3DSurface9Vtbl LockSurface9_vtable = { 27417ec681f3Smrg (void *)NineUnknown_QueryInterface, 27427ec681f3Smrg (void *)NineUnknown_AddRef, 27437ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 27447ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 27457ec681f3Smrg (void *)LockUnknown_SetPrivateData, 27467ec681f3Smrg (void *)LockUnknown_GetPrivateData, 27477ec681f3Smrg (void *)LockUnknown_FreePrivateData, 27487ec681f3Smrg (void *)LockResource9_SetPriority, 27497ec681f3Smrg (void *)LockResource9_GetPriority, 27507ec681f3Smrg (void *)NineResource9_PreLoad, /* nop */ 27517ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 27527ec681f3Smrg (void *)LockSurface9_GetContainer, 27537ec681f3Smrg (void *)NineSurface9_GetDesc, /* immutable */ 27547ec681f3Smrg (void *)LockSurface9_LockRect, 27557ec681f3Smrg (void *)LockSurface9_UnlockRect, 27567ec681f3Smrg (void *)LockSurface9_GetDC, 27577ec681f3Smrg (void *)LockSurface9_ReleaseDC 27587ec681f3Smrg}; 27597ec681f3Smrg 27607ec681f3Smrgstatic HRESULT NINE_WINAPI 27617ec681f3SmrgLockSwapChain9_Present( struct NineSwapChain9 *This, 27627ec681f3Smrg const RECT *pSourceRect, 27637ec681f3Smrg const RECT *pDestRect, 27647ec681f3Smrg HWND hDestWindowOverride, 27657ec681f3Smrg const RGNDATA *pDirtyRegion, 27667ec681f3Smrg DWORD dwFlags ) 27677ec681f3Smrg{ 27687ec681f3Smrg HRESULT r; 27697ec681f3Smrg mtx_lock(&d3dlock_global); 27707ec681f3Smrg r = NineSwapChain9_Present(This, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion, dwFlags); 27717ec681f3Smrg mtx_unlock(&d3dlock_global); 27727ec681f3Smrg return r; 27737ec681f3Smrg} 27747ec681f3Smrg 27757ec681f3Smrgstatic HRESULT NINE_WINAPI 27767ec681f3SmrgLockSwapChain9_GetFrontBufferData( struct NineSwapChain9 *This, 27777ec681f3Smrg IDirect3DSurface9 *pDestSurface ) 27787ec681f3Smrg{ 27797ec681f3Smrg HRESULT r; 27807ec681f3Smrg mtx_lock(&d3dlock_global); 27817ec681f3Smrg r = NineSwapChain9_GetFrontBufferData(This, pDestSurface); 27827ec681f3Smrg mtx_unlock(&d3dlock_global); 27837ec681f3Smrg return r; 27847ec681f3Smrg} 27857ec681f3Smrg 27867ec681f3Smrgstatic HRESULT NINE_WINAPI 27877ec681f3SmrgLockSwapChain9_GetBackBuffer( struct NineSwapChain9 *This, 27887ec681f3Smrg UINT iBackBuffer, 27897ec681f3Smrg D3DBACKBUFFER_TYPE Type, 27907ec681f3Smrg IDirect3DSurface9 **ppBackBuffer ) 27917ec681f3Smrg{ 27927ec681f3Smrg HRESULT r; 27937ec681f3Smrg mtx_lock(&d3dlock_global); 27947ec681f3Smrg r = NineSwapChain9_GetBackBuffer(This, iBackBuffer, Type, ppBackBuffer); 27957ec681f3Smrg mtx_unlock(&d3dlock_global); 27967ec681f3Smrg return r; 27977ec681f3Smrg} 27987ec681f3Smrg 27997ec681f3Smrgstatic HRESULT NINE_WINAPI 28007ec681f3SmrgLockSwapChain9_GetRasterStatus( struct NineSwapChain9 *This, 28017ec681f3Smrg D3DRASTER_STATUS *pRasterStatus ) 28027ec681f3Smrg{ 28037ec681f3Smrg HRESULT r; 28047ec681f3Smrg mtx_lock(&d3dlock_global); 28057ec681f3Smrg r = NineSwapChain9_GetRasterStatus(This, pRasterStatus); 28067ec681f3Smrg mtx_unlock(&d3dlock_global); 28077ec681f3Smrg return r; 28087ec681f3Smrg} 28097ec681f3Smrg 28107ec681f3Smrgstatic HRESULT NINE_WINAPI 28117ec681f3SmrgLockSwapChain9_GetDisplayMode( struct NineSwapChain9 *This, 28127ec681f3Smrg D3DDISPLAYMODE *pMode ) 28137ec681f3Smrg{ 28147ec681f3Smrg HRESULT r; 28157ec681f3Smrg mtx_lock(&d3dlock_global); 28167ec681f3Smrg r = NineSwapChain9_GetDisplayMode(This, pMode); 28177ec681f3Smrg mtx_unlock(&d3dlock_global); 28187ec681f3Smrg return r; 28197ec681f3Smrg} 28207ec681f3Smrg 28217ec681f3Smrg#if 0 28227ec681f3Smrgstatic HRESULT NINE_WINAPI 28237ec681f3SmrgLockSwapChain9_GetDevice( struct NineSwapChain9 *This, 28247ec681f3Smrg IDirect3DDevice9 **ppDevice ) 28257ec681f3Smrg{ 28267ec681f3Smrg HRESULT r; 28277ec681f3Smrg mtx_lock(&d3dlock_global); 28287ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 28297ec681f3Smrg mtx_unlock(&d3dlock_global); 28307ec681f3Smrg return r; 28317ec681f3Smrg} 28327ec681f3Smrg#endif 28337ec681f3Smrg 28347ec681f3Smrgstatic HRESULT NINE_WINAPI 28357ec681f3SmrgLockSwapChain9_GetPresentParameters( struct NineSwapChain9 *This, 28367ec681f3Smrg D3DPRESENT_PARAMETERS *pPresentationParameters ) 28377ec681f3Smrg{ 28387ec681f3Smrg HRESULT r; 28397ec681f3Smrg mtx_lock(&d3dlock_global); 28407ec681f3Smrg r = NineSwapChain9_GetPresentParameters(This, pPresentationParameters); 28417ec681f3Smrg mtx_unlock(&d3dlock_global); 28427ec681f3Smrg return r; 28437ec681f3Smrg} 28447ec681f3Smrg 28457ec681f3SmrgIDirect3DSwapChain9Vtbl LockSwapChain9_vtable = { 28467ec681f3Smrg (void *)NineUnknown_QueryInterface, 28477ec681f3Smrg (void *)NineUnknown_AddRef, 28487ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 28497ec681f3Smrg (void *)LockSwapChain9_Present, 28507ec681f3Smrg (void *)LockSwapChain9_GetFrontBufferData, 28517ec681f3Smrg (void *)LockSwapChain9_GetBackBuffer, 28527ec681f3Smrg (void *)LockSwapChain9_GetRasterStatus, 28537ec681f3Smrg (void *)LockSwapChain9_GetDisplayMode, 28547ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of SwapChain9 iface */ 28557ec681f3Smrg (void *)LockSwapChain9_GetPresentParameters 28567ec681f3Smrg}; 28577ec681f3Smrg 28587ec681f3Smrgstatic HRESULT NINE_WINAPI 28597ec681f3SmrgLockSwapChain9Ex_GetLastPresentCount( struct NineSwapChain9Ex *This, 28607ec681f3Smrg UINT *pLastPresentCount ) 28617ec681f3Smrg{ 28627ec681f3Smrg HRESULT r; 28637ec681f3Smrg mtx_lock(&d3dlock_global); 28647ec681f3Smrg r = NineSwapChain9Ex_GetLastPresentCount(This, pLastPresentCount); 28657ec681f3Smrg mtx_unlock(&d3dlock_global); 28667ec681f3Smrg return r; 28677ec681f3Smrg} 28687ec681f3Smrg 28697ec681f3Smrgstatic HRESULT NINE_WINAPI 28707ec681f3SmrgLockSwapChain9Ex_GetPresentStats( struct NineSwapChain9Ex *This, 28717ec681f3Smrg D3DPRESENTSTATS *pPresentationStatistics ) 28727ec681f3Smrg{ 28737ec681f3Smrg HRESULT r; 28747ec681f3Smrg mtx_lock(&d3dlock_global); 28757ec681f3Smrg r = NineSwapChain9Ex_GetPresentStats(This, pPresentationStatistics); 28767ec681f3Smrg mtx_unlock(&d3dlock_global); 28777ec681f3Smrg return r; 28787ec681f3Smrg} 28797ec681f3Smrg 28807ec681f3Smrgstatic HRESULT NINE_WINAPI 28817ec681f3SmrgLockSwapChain9Ex_GetDisplayModeEx( struct NineSwapChain9Ex *This, 28827ec681f3Smrg D3DDISPLAYMODEEX *pMode, 28837ec681f3Smrg D3DDISPLAYROTATION *pRotation ) 28847ec681f3Smrg{ 28857ec681f3Smrg HRESULT r; 28867ec681f3Smrg mtx_lock(&d3dlock_global); 28877ec681f3Smrg r = NineSwapChain9Ex_GetDisplayModeEx(This, pMode, pRotation); 28887ec681f3Smrg mtx_unlock(&d3dlock_global); 28897ec681f3Smrg return r; 28907ec681f3Smrg} 28917ec681f3Smrg 28927ec681f3SmrgIDirect3DSwapChain9ExVtbl LockSwapChain9Ex_vtable = { 28937ec681f3Smrg (void *)NineUnknown_QueryInterface, 28947ec681f3Smrg (void *)NineUnknown_AddRef, 28957ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 28967ec681f3Smrg (void *)LockSwapChain9_Present, 28977ec681f3Smrg (void *)LockSwapChain9_GetFrontBufferData, 28987ec681f3Smrg (void *)LockSwapChain9_GetBackBuffer, 28997ec681f3Smrg (void *)LockSwapChain9_GetRasterStatus, 29007ec681f3Smrg (void *)LockSwapChain9_GetDisplayMode, 29017ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of NineSwapChain9 iface */ 29027ec681f3Smrg (void *)LockSwapChain9_GetPresentParameters, 29037ec681f3Smrg (void *)LockSwapChain9Ex_GetLastPresentCount, 29047ec681f3Smrg (void *)LockSwapChain9Ex_GetPresentStats, 29057ec681f3Smrg (void *)LockSwapChain9Ex_GetDisplayModeEx 29067ec681f3Smrg}; 29077ec681f3Smrg 29087ec681f3Smrg#if 0 29097ec681f3Smrgstatic HRESULT NINE_WINAPI 29107ec681f3SmrgLockTexture9_GetLevelDesc( struct NineTexture9 *This, 29117ec681f3Smrg UINT Level, 29127ec681f3Smrg D3DSURFACE_DESC *pDesc ) 29137ec681f3Smrg{ 29147ec681f3Smrg HRESULT r; 29157ec681f3Smrg mtx_lock(&d3dlock_global); 29167ec681f3Smrg r = NineTexture9_GetLevelDesc(This, Level, pDesc); 29177ec681f3Smrg mtx_unlock(&d3dlock_global); 29187ec681f3Smrg return r; 29197ec681f3Smrg} 29207ec681f3Smrg#endif 29217ec681f3Smrg 29227ec681f3Smrg#if 0 29237ec681f3Smrgstatic HRESULT NINE_WINAPI 29247ec681f3SmrgLockTexture9_GetSurfaceLevel( struct NineTexture9 *This, 29257ec681f3Smrg UINT Level, 29267ec681f3Smrg IDirect3DSurface9 **ppSurfaceLevel ) 29277ec681f3Smrg{ 29287ec681f3Smrg HRESULT r; 29297ec681f3Smrg mtx_lock(&d3dlock_global); 29307ec681f3Smrg r = NineTexture9_GetSurfaceLevel(This, Level, ppSurfaceLevel); 29317ec681f3Smrg mtx_unlock(&d3dlock_global); 29327ec681f3Smrg return r; 29337ec681f3Smrg} 29347ec681f3Smrg#endif 29357ec681f3Smrg 29367ec681f3Smrgstatic HRESULT NINE_WINAPI 29377ec681f3SmrgLockTexture9_LockRect( struct NineTexture9 *This, 29387ec681f3Smrg UINT Level, 29397ec681f3Smrg D3DLOCKED_RECT *pLockedRect, 29407ec681f3Smrg const RECT *pRect, 29417ec681f3Smrg DWORD Flags ) 29427ec681f3Smrg{ 29437ec681f3Smrg HRESULT r; 29447ec681f3Smrg mtx_lock(&d3dlock_global); 29457ec681f3Smrg r = NineTexture9_LockRect(This, Level, pLockedRect, pRect, Flags); 29467ec681f3Smrg mtx_unlock(&d3dlock_global); 29477ec681f3Smrg return r; 29487ec681f3Smrg} 29497ec681f3Smrg 29507ec681f3Smrgstatic HRESULT NINE_WINAPI 29517ec681f3SmrgLockTexture9_UnlockRect( struct NineTexture9 *This, 29527ec681f3Smrg UINT Level ) 29537ec681f3Smrg{ 29547ec681f3Smrg HRESULT r; 29557ec681f3Smrg mtx_lock(&d3dlock_global); 29567ec681f3Smrg r = NineTexture9_UnlockRect(This, Level); 29577ec681f3Smrg mtx_unlock(&d3dlock_global); 29587ec681f3Smrg return r; 29597ec681f3Smrg} 29607ec681f3Smrg 29617ec681f3Smrgstatic HRESULT NINE_WINAPI 29627ec681f3SmrgLockTexture9_AddDirtyRect( struct NineTexture9 *This, 29637ec681f3Smrg const RECT *pDirtyRect ) 29647ec681f3Smrg{ 29657ec681f3Smrg HRESULT r; 29667ec681f3Smrg mtx_lock(&d3dlock_global); 29677ec681f3Smrg r = NineTexture9_AddDirtyRect(This, pDirtyRect); 29687ec681f3Smrg mtx_unlock(&d3dlock_global); 29697ec681f3Smrg return r; 29707ec681f3Smrg} 29717ec681f3Smrg 29727ec681f3SmrgIDirect3DTexture9Vtbl LockTexture9_vtable = { 29737ec681f3Smrg (void *)NineUnknown_QueryInterface, 29747ec681f3Smrg (void *)NineUnknown_AddRef, 29757ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 29767ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 29777ec681f3Smrg (void *)LockUnknown_SetPrivateData, 29787ec681f3Smrg (void *)LockUnknown_GetPrivateData, 29797ec681f3Smrg (void *)LockUnknown_FreePrivateData, 29807ec681f3Smrg (void *)LockResource9_SetPriority, 29817ec681f3Smrg (void *)LockResource9_GetPriority, 29827ec681f3Smrg (void *)LockBaseTexture9_PreLoad, 29837ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 29847ec681f3Smrg (void *)LockBaseTexture9_SetLOD, 29857ec681f3Smrg (void *)LockBaseTexture9_GetLOD, 29867ec681f3Smrg (void *)LockBaseTexture9_GetLevelCount, 29877ec681f3Smrg (void *)LockBaseTexture9_SetAutoGenFilterType, 29887ec681f3Smrg (void *)LockBaseTexture9_GetAutoGenFilterType, 29897ec681f3Smrg (void *)LockBaseTexture9_GenerateMipSubLevels, 29907ec681f3Smrg (void *)NineTexture9_GetLevelDesc, /* immutable */ 29917ec681f3Smrg (void *)NineTexture9_GetSurfaceLevel, /* AddRef */ 29927ec681f3Smrg (void *)LockTexture9_LockRect, 29937ec681f3Smrg (void *)LockTexture9_UnlockRect, 29947ec681f3Smrg (void *)LockTexture9_AddDirtyRect 29957ec681f3Smrg}; 29967ec681f3Smrg 29977ec681f3Smrgstatic HRESULT NINE_WINAPI 29987ec681f3SmrgLockVertexBuffer9_Lock( struct NineVertexBuffer9 *This, 29997ec681f3Smrg UINT OffsetToLock, 30007ec681f3Smrg UINT SizeToLock, 30017ec681f3Smrg void **ppbData, 30027ec681f3Smrg DWORD Flags ) 30037ec681f3Smrg{ 30047ec681f3Smrg HRESULT r; 30057ec681f3Smrg mtx_lock(&d3dlock_global); 30067ec681f3Smrg r = NineVertexBuffer9_Lock(This, OffsetToLock, SizeToLock, ppbData, Flags); 30077ec681f3Smrg mtx_unlock(&d3dlock_global); 30087ec681f3Smrg return r; 30097ec681f3Smrg} 30107ec681f3Smrg 30117ec681f3Smrgstatic HRESULT NINE_WINAPI 30127ec681f3SmrgLockVertexBuffer9_Unlock( struct NineVertexBuffer9 *This ) 30137ec681f3Smrg{ 30147ec681f3Smrg HRESULT r; 30157ec681f3Smrg mtx_lock(&d3dlock_global); 30167ec681f3Smrg r = NineVertexBuffer9_Unlock(This); 30177ec681f3Smrg mtx_unlock(&d3dlock_global); 30187ec681f3Smrg return r; 30197ec681f3Smrg} 30207ec681f3Smrg 30217ec681f3Smrg#if 0 30227ec681f3Smrgstatic HRESULT NINE_WINAPI 30237ec681f3SmrgLockVertexBuffer9_GetDesc( struct NineVertexBuffer9 *This, 30247ec681f3Smrg D3DVERTEXBUFFER_DESC *pDesc ) 30257ec681f3Smrg{ 30267ec681f3Smrg HRESULT r; 30277ec681f3Smrg mtx_lock(&d3dlock_global); 30287ec681f3Smrg r = NineVertexBuffer9_GetDesc(This, pDesc); 30297ec681f3Smrg mtx_unlock(&d3dlock_global); 30307ec681f3Smrg return r; 30317ec681f3Smrg} 30327ec681f3Smrg#endif 30337ec681f3Smrg 30347ec681f3SmrgIDirect3DVertexBuffer9Vtbl LockVertexBuffer9_vtable = { 30357ec681f3Smrg (void *)NineUnknown_QueryInterface, 30367ec681f3Smrg (void *)NineUnknown_AddRef, 30377ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 30387ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 30397ec681f3Smrg (void *)LockUnknown_SetPrivateData, 30407ec681f3Smrg (void *)LockUnknown_GetPrivateData, 30417ec681f3Smrg (void *)LockUnknown_FreePrivateData, 30427ec681f3Smrg (void *)LockResource9_SetPriority, 30437ec681f3Smrg (void *)LockResource9_GetPriority, 30447ec681f3Smrg (void *)NineResource9_PreLoad, /* nop */ 30457ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 30467ec681f3Smrg (void *)LockVertexBuffer9_Lock, 30477ec681f3Smrg (void *)LockVertexBuffer9_Unlock, 30487ec681f3Smrg (void *)NineVertexBuffer9_GetDesc /* immutable */ 30497ec681f3Smrg}; 30507ec681f3Smrg 30517ec681f3Smrg#if 0 30527ec681f3Smrgstatic HRESULT NINE_WINAPI 30537ec681f3SmrgLockVertexDeclaration9_GetDevice( struct NineVertexDeclaration9 *This, 30547ec681f3Smrg IDirect3DDevice9 **ppDevice ) 30557ec681f3Smrg{ 30567ec681f3Smrg HRESULT r; 30577ec681f3Smrg mtx_lock(&d3dlock_global); 30587ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 30597ec681f3Smrg mtx_unlock(&d3dlock_global); 30607ec681f3Smrg return r; 30617ec681f3Smrg} 30627ec681f3Smrg#endif 30637ec681f3Smrg 30647ec681f3Smrgstatic HRESULT NINE_WINAPI 30657ec681f3SmrgLockVertexDeclaration9_GetDeclaration( struct NineVertexDeclaration9 *This, 30667ec681f3Smrg D3DVERTEXELEMENT9 *pElement, 30677ec681f3Smrg UINT *pNumElements ) 30687ec681f3Smrg{ 30697ec681f3Smrg HRESULT r; 30707ec681f3Smrg mtx_lock(&d3dlock_global); 30717ec681f3Smrg r = NineVertexDeclaration9_GetDeclaration(This, pElement, pNumElements); 30727ec681f3Smrg mtx_unlock(&d3dlock_global); 30737ec681f3Smrg return r; 30747ec681f3Smrg} 30757ec681f3Smrg 30767ec681f3SmrgIDirect3DVertexDeclaration9Vtbl LockVertexDeclaration9_vtable = { 30777ec681f3Smrg (void *)NineUnknown_QueryInterface, 30787ec681f3Smrg (void *)NineUnknown_AddRef, 30797ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 30807ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of VertexDecl9 iface */ 30817ec681f3Smrg (void *)LockVertexDeclaration9_GetDeclaration 30827ec681f3Smrg}; 30837ec681f3Smrg 30847ec681f3Smrg#if 0 30857ec681f3Smrgstatic HRESULT NINE_WINAPI 30867ec681f3SmrgLockVertexShader9_GetDevice( struct NineVertexShader9 *This, 30877ec681f3Smrg IDirect3DDevice9 **ppDevice ) 30887ec681f3Smrg{ 30897ec681f3Smrg HRESULT r; 30907ec681f3Smrg mtx_lock(&d3dlock_global); 30917ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 30927ec681f3Smrg mtx_unlock(&d3dlock_global); 30937ec681f3Smrg return r; 30947ec681f3Smrg} 30957ec681f3Smrg#endif 30967ec681f3Smrg 30977ec681f3Smrgstatic HRESULT NINE_WINAPI 30987ec681f3SmrgLockVertexShader9_GetFunction( struct NineVertexShader9 *This, 30997ec681f3Smrg void *pData, 31007ec681f3Smrg UINT *pSizeOfData ) 31017ec681f3Smrg{ 31027ec681f3Smrg HRESULT r; 31037ec681f3Smrg mtx_lock(&d3dlock_global); 31047ec681f3Smrg r = NineVertexShader9_GetFunction(This, pData, pSizeOfData); 31057ec681f3Smrg mtx_unlock(&d3dlock_global); 31067ec681f3Smrg return r; 31077ec681f3Smrg} 31087ec681f3Smrg 31097ec681f3SmrgIDirect3DVertexShader9Vtbl LockVertexShader9_vtable = { 31107ec681f3Smrg (void *)NineUnknown_QueryInterface, 31117ec681f3Smrg (void *)NineUnknown_AddRef, 31127ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 31137ec681f3Smrg (void *)NineUnknown_GetDevice, 31147ec681f3Smrg (void *)LockVertexShader9_GetFunction 31157ec681f3Smrg}; 31167ec681f3Smrg 31177ec681f3Smrg#if 0 31187ec681f3Smrgstatic HRESULT NINE_WINAPI 31197ec681f3SmrgLockVolume9_GetDevice( struct NineVolume9 *This, 31207ec681f3Smrg IDirect3DDevice9 **ppDevice ) 31217ec681f3Smrg{ 31227ec681f3Smrg HRESULT r; 31237ec681f3Smrg mtx_lock(&d3dlock_global); 31247ec681f3Smrg r = NineUnknown_GetDevice(NineUnknown(This), ppDevice); 31257ec681f3Smrg mtx_unlock(&d3dlock_global); 31267ec681f3Smrg return r; 31277ec681f3Smrg} 31287ec681f3Smrg#endif 31297ec681f3Smrg 31307ec681f3Smrgstatic HRESULT NINE_WINAPI 31317ec681f3SmrgLockVolume9_GetContainer( struct NineVolume9 *This, 31327ec681f3Smrg REFIID riid, 31337ec681f3Smrg void **ppContainer ) 31347ec681f3Smrg{ 31357ec681f3Smrg HRESULT r; 31367ec681f3Smrg mtx_lock(&d3dlock_global); 31377ec681f3Smrg r = NineVolume9_GetContainer(This, riid, ppContainer); 31387ec681f3Smrg mtx_unlock(&d3dlock_global); 31397ec681f3Smrg return r; 31407ec681f3Smrg} 31417ec681f3Smrg 31427ec681f3Smrg#if 0 31437ec681f3Smrgstatic HRESULT NINE_WINAPI 31447ec681f3SmrgLockVolume9_GetDesc( struct NineVolume9 *This, 31457ec681f3Smrg D3DVOLUME_DESC *pDesc ) 31467ec681f3Smrg{ 31477ec681f3Smrg HRESULT r; 31487ec681f3Smrg mtx_lock(&d3dlock_global); 31497ec681f3Smrg r = NineVolume9_GetDesc(This, pDesc); 31507ec681f3Smrg mtx_unlock(&d3dlock_global); 31517ec681f3Smrg return r; 31527ec681f3Smrg} 31537ec681f3Smrg#endif 31547ec681f3Smrg 31557ec681f3Smrgstatic HRESULT NINE_WINAPI 31567ec681f3SmrgLockVolume9_LockBox( struct NineVolume9 *This, 31577ec681f3Smrg D3DLOCKED_BOX *pLockedVolume, 31587ec681f3Smrg const D3DBOX *pBox, 31597ec681f3Smrg DWORD Flags ) 31607ec681f3Smrg{ 31617ec681f3Smrg HRESULT r; 31627ec681f3Smrg mtx_lock(&d3dlock_global); 31637ec681f3Smrg r = NineVolume9_LockBox(This, pLockedVolume, pBox, Flags); 31647ec681f3Smrg mtx_unlock(&d3dlock_global); 31657ec681f3Smrg return r; 31667ec681f3Smrg} 31677ec681f3Smrg 31687ec681f3Smrgstatic HRESULT NINE_WINAPI 31697ec681f3SmrgLockVolume9_UnlockBox( struct NineVolume9 *This ) 31707ec681f3Smrg{ 31717ec681f3Smrg HRESULT r; 31727ec681f3Smrg mtx_lock(&d3dlock_global); 31737ec681f3Smrg r = NineVolume9_UnlockBox(This); 31747ec681f3Smrg mtx_unlock(&d3dlock_global); 31757ec681f3Smrg return r; 31767ec681f3Smrg} 31777ec681f3Smrg 31787ec681f3SmrgIDirect3DVolume9Vtbl LockVolume9_vtable = { 31797ec681f3Smrg (void *)NineUnknown_QueryInterface, 31807ec681f3Smrg (void *)NineUnknown_AddRef, 31817ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 31827ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Volume9 iface */ 31837ec681f3Smrg (void *)LockUnknown_SetPrivateData, 31847ec681f3Smrg (void *)LockUnknown_GetPrivateData, 31857ec681f3Smrg (void *)LockUnknown_FreePrivateData, 31867ec681f3Smrg (void *)LockVolume9_GetContainer, 31877ec681f3Smrg (void *)NineVolume9_GetDesc, /* immutable */ 31887ec681f3Smrg (void *)LockVolume9_LockBox, 31897ec681f3Smrg (void *)LockVolume9_UnlockBox 31907ec681f3Smrg}; 31917ec681f3Smrg 31927ec681f3Smrg#if 0 31937ec681f3Smrgstatic HRESULT NINE_WINAPI 31947ec681f3SmrgLockVolumeTexture9_GetLevelDesc( struct NineVolumeTexture9 *This, 31957ec681f3Smrg UINT Level, 31967ec681f3Smrg D3DVOLUME_DESC *pDesc ) 31977ec681f3Smrg{ 31987ec681f3Smrg HRESULT r; 31997ec681f3Smrg mtx_lock(&d3dlock_global); 32007ec681f3Smrg r = NineVolumeTexture9_GetLevelDesc(This, Level, pDesc); 32017ec681f3Smrg mtx_unlock(&d3dlock_global); 32027ec681f3Smrg return r; 32037ec681f3Smrg} 32047ec681f3Smrg#endif 32057ec681f3Smrg 32067ec681f3Smrg#if 0 32077ec681f3Smrgstatic HRESULT NINE_WINAPI 32087ec681f3SmrgLockVolumeTexture9_GetVolumeLevel( struct NineVolumeTexture9 *This, 32097ec681f3Smrg UINT Level, 32107ec681f3Smrg IDirect3DVolume9 **ppVolumeLevel ) 32117ec681f3Smrg{ 32127ec681f3Smrg HRESULT r; 32137ec681f3Smrg mtx_lock(&d3dlock_global); 32147ec681f3Smrg r = NineVolumeTexture9_GetVolumeLevel(This, Level, ppVolumeLevel); 32157ec681f3Smrg mtx_unlock(&d3dlock_global); 32167ec681f3Smrg return r; 32177ec681f3Smrg} 32187ec681f3Smrg#endif 32197ec681f3Smrg 32207ec681f3Smrgstatic HRESULT NINE_WINAPI 32217ec681f3SmrgLockVolumeTexture9_LockBox( struct NineVolumeTexture9 *This, 32227ec681f3Smrg UINT Level, 32237ec681f3Smrg D3DLOCKED_BOX *pLockedVolume, 32247ec681f3Smrg const D3DBOX *pBox, 32257ec681f3Smrg DWORD Flags ) 32267ec681f3Smrg{ 32277ec681f3Smrg HRESULT r; 32287ec681f3Smrg mtx_lock(&d3dlock_global); 32297ec681f3Smrg r = NineVolumeTexture9_LockBox(This, Level, pLockedVolume, pBox, Flags); 32307ec681f3Smrg mtx_unlock(&d3dlock_global); 32317ec681f3Smrg return r; 32327ec681f3Smrg} 32337ec681f3Smrg 32347ec681f3Smrgstatic HRESULT NINE_WINAPI 32357ec681f3SmrgLockVolumeTexture9_UnlockBox( struct NineVolumeTexture9 *This, 32367ec681f3Smrg UINT Level ) 32377ec681f3Smrg{ 32387ec681f3Smrg HRESULT r; 32397ec681f3Smrg mtx_lock(&d3dlock_global); 32407ec681f3Smrg r = NineVolumeTexture9_UnlockBox(This, Level); 32417ec681f3Smrg mtx_unlock(&d3dlock_global); 32427ec681f3Smrg return r; 32437ec681f3Smrg} 32447ec681f3Smrg 32457ec681f3Smrgstatic HRESULT NINE_WINAPI 32467ec681f3SmrgLockVolumeTexture9_AddDirtyBox( struct NineVolumeTexture9 *This, 32477ec681f3Smrg const D3DBOX *pDirtyBox ) 32487ec681f3Smrg{ 32497ec681f3Smrg HRESULT r; 32507ec681f3Smrg mtx_lock(&d3dlock_global); 32517ec681f3Smrg r = NineVolumeTexture9_AddDirtyBox(This, pDirtyBox); 32527ec681f3Smrg mtx_unlock(&d3dlock_global); 32537ec681f3Smrg return r; 32547ec681f3Smrg} 32557ec681f3Smrg 32567ec681f3SmrgIDirect3DVolumeTexture9Vtbl LockVolumeTexture9_vtable = { 32577ec681f3Smrg (void *)NineUnknown_QueryInterface, 32587ec681f3Smrg (void *)NineUnknown_AddRef, 32597ec681f3Smrg (void *)NineUnknown_ReleaseWithDtorLock, 32607ec681f3Smrg (void *)NineUnknown_GetDevice, /* actually part of Resource9 iface */ 32617ec681f3Smrg (void *)LockUnknown_SetPrivateData, 32627ec681f3Smrg (void *)LockUnknown_GetPrivateData, 32637ec681f3Smrg (void *)LockUnknown_FreePrivateData, 32647ec681f3Smrg (void *)LockResource9_SetPriority, 32657ec681f3Smrg (void *)LockResource9_GetPriority, 32667ec681f3Smrg (void *)LockBaseTexture9_PreLoad, 32677ec681f3Smrg (void *)NineResource9_GetType, /* immutable */ 32687ec681f3Smrg (void *)LockBaseTexture9_SetLOD, 32697ec681f3Smrg (void *)LockBaseTexture9_GetLOD, 32707ec681f3Smrg (void *)LockBaseTexture9_GetLevelCount, 32717ec681f3Smrg (void *)LockBaseTexture9_SetAutoGenFilterType, 32727ec681f3Smrg (void *)LockBaseTexture9_GetAutoGenFilterType, 32737ec681f3Smrg (void *)LockBaseTexture9_GenerateMipSubLevels, 32747ec681f3Smrg (void *)NineVolumeTexture9_GetLevelDesc, /* immutable */ 32757ec681f3Smrg (void *)NineVolumeTexture9_GetVolumeLevel, /* AddRef */ 32767ec681f3Smrg (void *)LockVolumeTexture9_LockBox, 32777ec681f3Smrg (void *)LockVolumeTexture9_UnlockBox, 32787ec681f3Smrg (void *)LockVolumeTexture9_AddDirtyBox 32797ec681f3Smrg}; 32807ec681f3Smrg 32817ec681f3SmrgID3DAdapter9Vtbl LockAdapter9_vtable = { /* not used */ 32827ec681f3Smrg (void *)NULL, 32837ec681f3Smrg (void *)NULL, 32847ec681f3Smrg (void *)NULL, 32857ec681f3Smrg (void *)NULL, 32867ec681f3Smrg (void *)NULL, 32877ec681f3Smrg (void *)NULL, 32887ec681f3Smrg (void *)NULL, 32897ec681f3Smrg (void *)NULL, 32907ec681f3Smrg (void *)NULL, 32917ec681f3Smrg (void *)NULL, 32927ec681f3Smrg (void *)NULL, 32937ec681f3Smrg (void *)NULL 32947ec681f3Smrg}; 3295