2 * Copyright 2013 Joakim Sindholt <opensource@zhasha.com>
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * on the rights to use, copy, modify, merge, publish, distribute, sub
8 * license, and/or sell copies of the Software, and to permit persons to whom
9 * the Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21 * USE OR OTHER DEALINGS IN THE SOFTWARE. */
23 #include "authenticatedchannel9.h"
24 #include "basetexture9.h"
25 #include "cryptosession9.h"
26 #include "cubetexture9.h"
28 #include "device9ex.h"
29 #include "device9video.h"
30 #include "indexbuffer9.h"
31 #include "pixelshader9.h"
33 #include "resource9.h"
34 #include "stateblock9.h"
36 #include "swapchain9.h"
37 #include "swapchain9ex.h"
39 #include "vertexbuffer9.h"
40 #include "vertexdeclaration9.h"
41 #include "vertexshader9.h"
43 #include "volumetexture9.h"
47 #include "os/os_thread.h"
49 /* Global mutex as described by MSDN */
50 pipe_static_mutex(d3dlock_global
);
53 LockAuthenticatedChannel9_GetCertificateSize( struct NineAuthenticatedChannel9
*This
,
54 UINT
*pCertificateSize
)
57 pipe_mutex_lock(d3dlock_global
);
58 r
= NineAuthenticatedChannel9_GetCertificateSize(This
, pCertificateSize
);
59 pipe_mutex_unlock(d3dlock_global
);
64 LockAuthenticatedChannel9_GetCertificate( struct NineAuthenticatedChannel9
*This
,
69 pipe_mutex_lock(d3dlock_global
);
70 r
= NineAuthenticatedChannel9_GetCertificate(This
, CertifacteSize
, ppCertificate
);
71 pipe_mutex_unlock(d3dlock_global
);
76 LockAuthenticatedChannel9_NegotiateKeyExchange( struct NineAuthenticatedChannel9
*This
,
81 pipe_mutex_lock(d3dlock_global
);
82 r
= NineAuthenticatedChannel9_NegotiateKeyExchange(This
, DataSize
, pData
);
83 pipe_mutex_unlock(d3dlock_global
);
88 LockAuthenticatedChannel9_Query( struct NineAuthenticatedChannel9
*This
,
95 pipe_mutex_lock(d3dlock_global
);
96 r
= NineAuthenticatedChannel9_Query(This
, InputSize
, pInput
, OutputSize
, pOutput
);
97 pipe_mutex_unlock(d3dlock_global
);
101 static HRESULT WINAPI
102 LockAuthenticatedChannel9_Configure( struct NineAuthenticatedChannel9
*This
,
105 D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT
*pOutput
)
108 pipe_mutex_lock(d3dlock_global
);
109 r
= NineAuthenticatedChannel9_Configure(This
, InputSize
, pInput
, pOutput
);
110 pipe_mutex_unlock(d3dlock_global
);
114 IDirect3DAuthenticatedChannel9Vtbl LockAuthenticatedChannel9_vtable
= {
115 (void *)NineUnknown_QueryInterface
,
116 (void *)NineUnknown_AddRef
,
117 (void *)NineUnknown_Release
,
118 (void *)LockAuthenticatedChannel9_GetCertificateSize
,
119 (void *)LockAuthenticatedChannel9_GetCertificate
,
120 (void *)LockAuthenticatedChannel9_NegotiateKeyExchange
,
121 (void *)LockAuthenticatedChannel9_Query
,
122 (void *)LockAuthenticatedChannel9_Configure
126 static HRESULT WINAPI
127 LockResource9_GetDevice( struct NineResource9
*This
,
128 IDirect3DDevice9
**ppDevice
)
131 pipe_mutex_lock(d3dlock_global
);
132 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
133 pipe_mutex_unlock(d3dlock_global
);
138 static HRESULT WINAPI
139 LockResource9_SetPrivateData( struct NineResource9
*This
,
146 pipe_mutex_lock(d3dlock_global
);
147 r
= NineResource9_SetPrivateData(This
, refguid
, pData
, SizeOfData
, Flags
);
148 pipe_mutex_unlock(d3dlock_global
);
152 static HRESULT WINAPI
153 LockResource9_GetPrivateData( struct NineResource9
*This
,
159 pipe_mutex_lock(d3dlock_global
);
160 r
= NineResource9_GetPrivateData(This
, refguid
, pData
, pSizeOfData
);
161 pipe_mutex_unlock(d3dlock_global
);
165 static HRESULT WINAPI
166 LockResource9_FreePrivateData( struct NineResource9
*This
,
170 pipe_mutex_lock(d3dlock_global
);
171 r
= NineResource9_FreePrivateData(This
, refguid
);
172 pipe_mutex_unlock(d3dlock_global
);
177 LockResource9_SetPriority( struct NineResource9
*This
,
181 pipe_mutex_lock(d3dlock_global
);
182 r
= NineResource9_SetPriority(This
, PriorityNew
);
183 pipe_mutex_unlock(d3dlock_global
);
188 LockResource9_GetPriority( struct NineResource9
*This
)
191 pipe_mutex_lock(d3dlock_global
);
192 r
= NineResource9_GetPriority(This
);
193 pipe_mutex_unlock(d3dlock_global
);
199 LockResource9_PreLoad( struct NineResource9
*This
)
201 pipe_mutex_lock(d3dlock_global
);
202 NineResource9_PreLoad(This
);
203 pipe_mutex_unlock(d3dlock_global
);
208 static D3DRESOURCETYPE WINAPI
209 LockResource9_GetType( struct NineResource9
*This
)
212 pipe_mutex_lock(d3dlock_global
);
213 r
= NineResource9_GetType(This
);
214 pipe_mutex_unlock(d3dlock_global
);
220 LockBaseTexture9_SetLOD( struct NineBaseTexture9
*This
,
224 pipe_mutex_lock(d3dlock_global
);
225 r
= NineBaseTexture9_SetLOD(This
, LODNew
);
226 pipe_mutex_unlock(d3dlock_global
);
231 LockBaseTexture9_GetLOD( struct NineBaseTexture9
*This
)
234 pipe_mutex_lock(d3dlock_global
);
235 r
= NineBaseTexture9_GetLOD(This
);
236 pipe_mutex_unlock(d3dlock_global
);
241 LockBaseTexture9_GetLevelCount( struct NineBaseTexture9
*This
)
244 pipe_mutex_lock(d3dlock_global
);
245 r
= NineBaseTexture9_GetLevelCount(This
);
246 pipe_mutex_unlock(d3dlock_global
);
250 static HRESULT WINAPI
251 LockBaseTexture9_SetAutoGenFilterType( struct NineBaseTexture9
*This
,
252 D3DTEXTUREFILTERTYPE FilterType
)
255 pipe_mutex_lock(d3dlock_global
);
256 r
= NineBaseTexture9_SetAutoGenFilterType(This
, FilterType
);
257 pipe_mutex_unlock(d3dlock_global
);
261 static D3DTEXTUREFILTERTYPE WINAPI
262 LockBaseTexture9_GetAutoGenFilterType( struct NineBaseTexture9
*This
)
264 D3DTEXTUREFILTERTYPE r
;
265 pipe_mutex_lock(d3dlock_global
);
266 r
= NineBaseTexture9_GetAutoGenFilterType(This
);
267 pipe_mutex_unlock(d3dlock_global
);
272 LockBaseTexture9_PreLoad( struct NineBaseTexture9
*This
)
274 pipe_mutex_lock(d3dlock_global
);
275 NineBaseTexture9_PreLoad(This
);
276 pipe_mutex_unlock(d3dlock_global
);
280 LockBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9
*This
)
282 pipe_mutex_lock(d3dlock_global
);
283 NineBaseTexture9_GenerateMipSubLevels(This
);
284 pipe_mutex_unlock(d3dlock_global
);
287 static HRESULT WINAPI
288 LockCryptoSession9_GetCertificateSize( struct NineCryptoSession9
*This
,
289 UINT
*pCertificateSize
)
292 pipe_mutex_lock(d3dlock_global
);
293 r
= NineCryptoSession9_GetCertificateSize(This
, pCertificateSize
);
294 pipe_mutex_unlock(d3dlock_global
);
298 static HRESULT WINAPI
299 LockCryptoSession9_GetCertificate( struct NineCryptoSession9
*This
,
301 BYTE
*ppCertificate
)
304 pipe_mutex_lock(d3dlock_global
);
305 r
= NineCryptoSession9_GetCertificate(This
, CertifacteSize
, ppCertificate
);
306 pipe_mutex_unlock(d3dlock_global
);
310 static HRESULT WINAPI
311 LockCryptoSession9_NegotiateKeyExchange( struct NineCryptoSession9
*This
,
316 pipe_mutex_lock(d3dlock_global
);
317 r
= NineCryptoSession9_NegotiateKeyExchange(This
, DataSize
, pData
);
318 pipe_mutex_unlock(d3dlock_global
);
322 static HRESULT WINAPI
323 LockCryptoSession9_EncryptionBlt( struct NineCryptoSession9
*This
,
324 IDirect3DSurface9
*pSrcSurface
,
325 IDirect3DSurface9
*pDstSurface
,
330 pipe_mutex_lock(d3dlock_global
);
331 r
= NineCryptoSession9_EncryptionBlt(This
, pSrcSurface
, pDstSurface
, DstSurfaceSize
, pIV
);
332 pipe_mutex_unlock(d3dlock_global
);
336 static HRESULT WINAPI
337 LockCryptoSession9_DecryptionBlt( struct NineCryptoSession9
*This
,
338 IDirect3DSurface9
*pSrcSurface
,
339 IDirect3DSurface9
*pDstSurface
,
341 D3DENCRYPTED_BLOCK_INFO
*pEncryptedBlockInfo
,
346 pipe_mutex_lock(d3dlock_global
);
347 r
= NineCryptoSession9_DecryptionBlt(This
, pSrcSurface
, pDstSurface
, SrcSurfaceSize
, pEncryptedBlockInfo
, pContentKey
, pIV
);
348 pipe_mutex_unlock(d3dlock_global
);
352 static HRESULT WINAPI
353 LockCryptoSession9_GetSurfacePitch( struct NineCryptoSession9
*This
,
354 IDirect3DSurface9
*pSrcSurface
,
355 UINT
*pSurfacePitch
)
358 pipe_mutex_lock(d3dlock_global
);
359 r
= NineCryptoSession9_GetSurfacePitch(This
, pSrcSurface
, pSurfacePitch
);
360 pipe_mutex_unlock(d3dlock_global
);
364 static HRESULT WINAPI
365 LockCryptoSession9_StartSessionKeyRefresh( struct NineCryptoSession9
*This
,
367 UINT RandomNumberSize
)
370 pipe_mutex_lock(d3dlock_global
);
371 r
= NineCryptoSession9_StartSessionKeyRefresh(This
, pRandomNumber
, RandomNumberSize
);
372 pipe_mutex_unlock(d3dlock_global
);
376 static HRESULT WINAPI
377 LockCryptoSession9_FinishSessionKeyRefresh( struct NineCryptoSession9
*This
)
380 pipe_mutex_lock(d3dlock_global
);
381 r
= NineCryptoSession9_FinishSessionKeyRefresh(This
);
382 pipe_mutex_unlock(d3dlock_global
);
386 static HRESULT WINAPI
387 LockCryptoSession9_GetEncryptionBltKey( struct NineCryptoSession9
*This
,
392 pipe_mutex_lock(d3dlock_global
);
393 r
= NineCryptoSession9_GetEncryptionBltKey(This
, pReadbackKey
, KeySize
);
394 pipe_mutex_unlock(d3dlock_global
);
398 IDirect3DCryptoSession9Vtbl LockCryptoSession9_vtable
= {
399 (void *)NineUnknown_QueryInterface
,
400 (void *)NineUnknown_AddRef
,
401 (void *)NineUnknown_Release
,
402 (void *)LockCryptoSession9_GetCertificateSize
,
403 (void *)LockCryptoSession9_GetCertificate
,
404 (void *)LockCryptoSession9_NegotiateKeyExchange
,
405 (void *)LockCryptoSession9_EncryptionBlt
,
406 (void *)LockCryptoSession9_DecryptionBlt
,
407 (void *)LockCryptoSession9_GetSurfacePitch
,
408 (void *)LockCryptoSession9_StartSessionKeyRefresh
,
409 (void *)LockCryptoSession9_FinishSessionKeyRefresh
,
410 (void *)LockCryptoSession9_GetEncryptionBltKey
414 static HRESULT WINAPI
415 LockCubeTexture9_GetLevelDesc( struct NineCubeTexture9
*This
,
417 D3DSURFACE_DESC
*pDesc
)
420 pipe_mutex_lock(d3dlock_global
);
421 r
= NineCubeTexture9_GetLevelDesc(This
, Level
, pDesc
);
422 pipe_mutex_unlock(d3dlock_global
);
428 static HRESULT WINAPI
429 LockCubeTexture9_GetCubeMapSurface( struct NineCubeTexture9
*This
,
430 D3DCUBEMAP_FACES FaceType
,
432 IDirect3DSurface9
**ppCubeMapSurface
)
435 pipe_mutex_lock(d3dlock_global
);
436 r
= NineCubeTexture9_GetCubeMapSurface(This
, FaceType
, Level
, ppCubeMapSurface
);
437 pipe_mutex_unlock(d3dlock_global
);
442 static HRESULT WINAPI
443 LockCubeTexture9_LockRect( struct NineCubeTexture9
*This
,
444 D3DCUBEMAP_FACES FaceType
,
446 D3DLOCKED_RECT
*pLockedRect
,
451 pipe_mutex_lock(d3dlock_global
);
452 r
= NineCubeTexture9_LockRect(This
, FaceType
, Level
, pLockedRect
, pRect
, Flags
);
453 pipe_mutex_unlock(d3dlock_global
);
457 static HRESULT WINAPI
458 LockCubeTexture9_UnlockRect( struct NineCubeTexture9
*This
,
459 D3DCUBEMAP_FACES FaceType
,
463 pipe_mutex_lock(d3dlock_global
);
464 r
= NineCubeTexture9_UnlockRect(This
, FaceType
, Level
);
465 pipe_mutex_unlock(d3dlock_global
);
469 static HRESULT WINAPI
470 LockCubeTexture9_AddDirtyRect( struct NineCubeTexture9
*This
,
471 D3DCUBEMAP_FACES FaceType
,
472 const RECT
*pDirtyRect
)
475 pipe_mutex_lock(d3dlock_global
);
476 r
= NineCubeTexture9_AddDirtyRect(This
, FaceType
, pDirtyRect
);
477 pipe_mutex_unlock(d3dlock_global
);
481 IDirect3DCubeTexture9Vtbl LockCubeTexture9_vtable
= {
482 (void *)NineUnknown_QueryInterface
,
483 (void *)NineUnknown_AddRef
,
484 (void *)NineUnknown_Release
,
485 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
486 (void *)LockResource9_SetPrivateData
,
487 (void *)LockResource9_GetPrivateData
,
488 (void *)LockResource9_FreePrivateData
,
489 (void *)LockResource9_SetPriority
,
490 (void *)LockResource9_GetPriority
,
491 (void *)LockBaseTexture9_PreLoad
,
492 (void *)NineResource9_GetType
, /* immutable */
493 (void *)LockBaseTexture9_SetLOD
,
494 (void *)LockBaseTexture9_GetLOD
,
495 (void *)LockBaseTexture9_GetLevelCount
,
496 (void *)LockBaseTexture9_SetAutoGenFilterType
,
497 (void *)LockBaseTexture9_GetAutoGenFilterType
,
498 (void *)LockBaseTexture9_GenerateMipSubLevels
,
499 (void *)NineCubeTexture9_GetLevelDesc
, /* immutable */
500 (void *)NineCubeTexture9_GetCubeMapSurface
, /* AddRef */
501 (void *)LockCubeTexture9_LockRect
,
502 (void *)LockCubeTexture9_UnlockRect
,
503 (void *)LockCubeTexture9_AddDirtyRect
506 static HRESULT WINAPI
507 LockDevice9_TestCooperativeLevel( struct NineDevice9
*This
)
510 pipe_mutex_lock(d3dlock_global
);
511 r
= NineDevice9_TestCooperativeLevel(This
);
512 pipe_mutex_unlock(d3dlock_global
);
517 LockDevice9_GetAvailableTextureMem( struct NineDevice9
*This
)
520 pipe_mutex_lock(d3dlock_global
);
521 r
= NineDevice9_GetAvailableTextureMem(This
);
522 pipe_mutex_unlock(d3dlock_global
);
526 static HRESULT WINAPI
527 LockDevice9_EvictManagedResources( struct NineDevice9
*This
)
530 pipe_mutex_lock(d3dlock_global
);
531 r
= NineDevice9_EvictManagedResources(This
);
532 pipe_mutex_unlock(d3dlock_global
);
536 static HRESULT WINAPI
537 LockDevice9_GetDirect3D( struct NineDevice9
*This
,
538 IDirect3D9
**ppD3D9
)
541 pipe_mutex_lock(d3dlock_global
);
542 r
= NineDevice9_GetDirect3D(This
, ppD3D9
);
543 pipe_mutex_unlock(d3dlock_global
);
548 static HRESULT WINAPI
549 LockDevice9_GetDeviceCaps( struct NineDevice9
*This
,
553 pipe_mutex_lock(d3dlock_global
);
554 r
= NineDevice9_GetDeviceCaps(This
, pCaps
);
555 pipe_mutex_unlock(d3dlock_global
);
560 static HRESULT WINAPI
561 LockDevice9_GetDisplayMode( struct NineDevice9
*This
,
563 D3DDISPLAYMODE
*pMode
)
566 pipe_mutex_lock(d3dlock_global
);
567 r
= NineDevice9_GetDisplayMode(This
, iSwapChain
, pMode
);
568 pipe_mutex_unlock(d3dlock_global
);
573 static HRESULT WINAPI
574 LockDevice9_GetCreationParameters( struct NineDevice9
*This
,
575 D3DDEVICE_CREATION_PARAMETERS
*pParameters
)
578 pipe_mutex_lock(d3dlock_global
);
579 r
= NineDevice9_GetCreationParameters(This
, pParameters
);
580 pipe_mutex_unlock(d3dlock_global
);
585 static HRESULT WINAPI
586 LockDevice9_SetCursorProperties( struct NineDevice9
*This
,
589 IDirect3DSurface9
*pCursorBitmap
)
592 pipe_mutex_lock(d3dlock_global
);
593 r
= NineDevice9_SetCursorProperties(This
, XHotSpot
, YHotSpot
, pCursorBitmap
);
594 pipe_mutex_unlock(d3dlock_global
);
599 LockDevice9_SetCursorPosition( struct NineDevice9
*This
,
604 pipe_mutex_lock(d3dlock_global
);
605 NineDevice9_SetCursorPosition(This
, X
, Y
, Flags
);
606 pipe_mutex_unlock(d3dlock_global
);
610 LockDevice9_ShowCursor( struct NineDevice9
*This
,
614 pipe_mutex_lock(d3dlock_global
);
615 r
= NineDevice9_ShowCursor(This
, bShow
);
616 pipe_mutex_unlock(d3dlock_global
);
620 static HRESULT WINAPI
621 LockDevice9_CreateAdditionalSwapChain( struct NineDevice9
*This
,
622 D3DPRESENT_PARAMETERS
*pPresentationParameters
,
623 IDirect3DSwapChain9
**pSwapChain
)
626 pipe_mutex_lock(d3dlock_global
);
627 r
= NineDevice9_CreateAdditionalSwapChain(This
, pPresentationParameters
, pSwapChain
);
628 pipe_mutex_unlock(d3dlock_global
);
632 static HRESULT WINAPI
633 LockDevice9_GetSwapChain( struct NineDevice9
*This
,
635 IDirect3DSwapChain9
**pSwapChain
)
638 pipe_mutex_lock(d3dlock_global
);
639 r
= NineDevice9_GetSwapChain(This
, iSwapChain
, pSwapChain
);
640 pipe_mutex_unlock(d3dlock_global
);
645 LockDevice9_GetNumberOfSwapChains( struct NineDevice9
*This
)
648 pipe_mutex_lock(d3dlock_global
);
649 r
= NineDevice9_GetNumberOfSwapChains(This
);
650 pipe_mutex_unlock(d3dlock_global
);
654 static HRESULT WINAPI
655 LockDevice9_Reset( struct NineDevice9
*This
,
656 D3DPRESENT_PARAMETERS
*pPresentationParameters
)
659 pipe_mutex_lock(d3dlock_global
);
660 r
= NineDevice9_Reset(This
, pPresentationParameters
);
661 pipe_mutex_unlock(d3dlock_global
);
665 static HRESULT WINAPI
666 LockDevice9_Present( struct NineDevice9
*This
,
667 const RECT
*pSourceRect
,
668 const RECT
*pDestRect
,
669 HWND hDestWindowOverride
,
670 const RGNDATA
*pDirtyRegion
)
673 pipe_mutex_lock(d3dlock_global
);
674 r
= NineDevice9_Present(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
);
675 pipe_mutex_unlock(d3dlock_global
);
679 static HRESULT WINAPI
680 LockDevice9_GetBackBuffer( struct NineDevice9
*This
,
683 D3DBACKBUFFER_TYPE Type
,
684 IDirect3DSurface9
**ppBackBuffer
)
687 pipe_mutex_lock(d3dlock_global
);
688 r
= NineDevice9_GetBackBuffer(This
, iSwapChain
, iBackBuffer
, Type
, ppBackBuffer
);
689 pipe_mutex_unlock(d3dlock_global
);
693 static HRESULT WINAPI
694 LockDevice9_GetRasterStatus( struct NineDevice9
*This
,
696 D3DRASTER_STATUS
*pRasterStatus
)
699 pipe_mutex_lock(d3dlock_global
);
700 r
= NineDevice9_GetRasterStatus(This
, iSwapChain
, pRasterStatus
);
701 pipe_mutex_unlock(d3dlock_global
);
705 static HRESULT WINAPI
706 LockDevice9_SetDialogBoxMode( struct NineDevice9
*This
,
707 BOOL bEnableDialogs
)
710 pipe_mutex_lock(d3dlock_global
);
711 r
= NineDevice9_SetDialogBoxMode(This
, bEnableDialogs
);
712 pipe_mutex_unlock(d3dlock_global
);
717 LockDevice9_SetGammaRamp( struct NineDevice9
*This
,
720 const D3DGAMMARAMP
*pRamp
)
722 pipe_mutex_lock(d3dlock_global
);
723 NineDevice9_SetGammaRamp(This
, iSwapChain
, Flags
, pRamp
);
724 pipe_mutex_unlock(d3dlock_global
);
728 LockDevice9_GetGammaRamp( struct NineDevice9
*This
,
730 D3DGAMMARAMP
*pRamp
)
732 pipe_mutex_lock(d3dlock_global
);
733 NineDevice9_GetGammaRamp(This
, iSwapChain
, pRamp
);
734 pipe_mutex_unlock(d3dlock_global
);
737 static HRESULT WINAPI
738 LockDevice9_CreateTexture( struct NineDevice9
*This
,
745 IDirect3DTexture9
**ppTexture
,
746 HANDLE
*pSharedHandle
)
749 pipe_mutex_lock(d3dlock_global
);
750 r
= NineDevice9_CreateTexture(This
, Width
, Height
, Levels
, Usage
, Format
, Pool
, ppTexture
, pSharedHandle
);
751 pipe_mutex_unlock(d3dlock_global
);
755 static HRESULT WINAPI
756 LockDevice9_CreateVolumeTexture( struct NineDevice9
*This
,
764 IDirect3DVolumeTexture9
**ppVolumeTexture
,
765 HANDLE
*pSharedHandle
)
768 pipe_mutex_lock(d3dlock_global
);
769 r
= NineDevice9_CreateVolumeTexture(This
, Width
, Height
, Depth
, Levels
, Usage
, Format
, Pool
, ppVolumeTexture
, pSharedHandle
);
770 pipe_mutex_unlock(d3dlock_global
);
774 static HRESULT WINAPI
775 LockDevice9_CreateCubeTexture( struct NineDevice9
*This
,
781 IDirect3DCubeTexture9
**ppCubeTexture
,
782 HANDLE
*pSharedHandle
)
785 pipe_mutex_lock(d3dlock_global
);
786 r
= NineDevice9_CreateCubeTexture(This
, EdgeLength
, Levels
, Usage
, Format
, Pool
, ppCubeTexture
, pSharedHandle
);
787 pipe_mutex_unlock(d3dlock_global
);
791 static HRESULT WINAPI
792 LockDevice9_CreateVertexBuffer( struct NineDevice9
*This
,
797 IDirect3DVertexBuffer9
**ppVertexBuffer
,
798 HANDLE
*pSharedHandle
)
801 pipe_mutex_lock(d3dlock_global
);
802 r
= NineDevice9_CreateVertexBuffer(This
, Length
, Usage
, FVF
, Pool
, ppVertexBuffer
, pSharedHandle
);
803 pipe_mutex_unlock(d3dlock_global
);
807 static HRESULT WINAPI
808 LockDevice9_CreateIndexBuffer( struct NineDevice9
*This
,
813 IDirect3DIndexBuffer9
**ppIndexBuffer
,
814 HANDLE
*pSharedHandle
)
817 pipe_mutex_lock(d3dlock_global
);
818 r
= NineDevice9_CreateIndexBuffer(This
, Length
, Usage
, Format
, Pool
, ppIndexBuffer
, pSharedHandle
);
819 pipe_mutex_unlock(d3dlock_global
);
823 static HRESULT WINAPI
824 LockDevice9_CreateRenderTarget( struct NineDevice9
*This
,
828 D3DMULTISAMPLE_TYPE MultiSample
,
829 DWORD MultisampleQuality
,
831 IDirect3DSurface9
**ppSurface
,
832 HANDLE
*pSharedHandle
)
835 pipe_mutex_lock(d3dlock_global
);
836 r
= NineDevice9_CreateRenderTarget(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Lockable
, ppSurface
, pSharedHandle
);
837 pipe_mutex_unlock(d3dlock_global
);
841 static HRESULT WINAPI
842 LockDevice9_CreateDepthStencilSurface( struct NineDevice9
*This
,
846 D3DMULTISAMPLE_TYPE MultiSample
,
847 DWORD MultisampleQuality
,
849 IDirect3DSurface9
**ppSurface
,
850 HANDLE
*pSharedHandle
)
853 pipe_mutex_lock(d3dlock_global
);
854 r
= NineDevice9_CreateDepthStencilSurface(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Discard
, ppSurface
, pSharedHandle
);
855 pipe_mutex_unlock(d3dlock_global
);
859 static HRESULT WINAPI
860 LockDevice9_UpdateSurface( struct NineDevice9
*This
,
861 IDirect3DSurface9
*pSourceSurface
,
862 const RECT
*pSourceRect
,
863 IDirect3DSurface9
*pDestinationSurface
,
864 const POINT
*pDestPoint
)
867 pipe_mutex_lock(d3dlock_global
);
868 r
= NineDevice9_UpdateSurface(This
, pSourceSurface
, pSourceRect
, pDestinationSurface
, pDestPoint
);
869 pipe_mutex_unlock(d3dlock_global
);
873 static HRESULT WINAPI
874 LockDevice9_UpdateTexture( struct NineDevice9
*This
,
875 IDirect3DBaseTexture9
*pSourceTexture
,
876 IDirect3DBaseTexture9
*pDestinationTexture
)
879 pipe_mutex_lock(d3dlock_global
);
880 r
= NineDevice9_UpdateTexture(This
, pSourceTexture
, pDestinationTexture
);
881 pipe_mutex_unlock(d3dlock_global
);
885 static HRESULT WINAPI
886 LockDevice9_GetRenderTargetData( struct NineDevice9
*This
,
887 IDirect3DSurface9
*pRenderTarget
,
888 IDirect3DSurface9
*pDestSurface
)
891 pipe_mutex_lock(d3dlock_global
);
892 r
= NineDevice9_GetRenderTargetData(This
, pRenderTarget
, pDestSurface
);
893 pipe_mutex_unlock(d3dlock_global
);
897 static HRESULT WINAPI
898 LockDevice9_GetFrontBufferData( struct NineDevice9
*This
,
900 IDirect3DSurface9
*pDestSurface
)
903 pipe_mutex_lock(d3dlock_global
);
904 r
= NineDevice9_GetFrontBufferData(This
, iSwapChain
, pDestSurface
);
905 pipe_mutex_unlock(d3dlock_global
);
909 static HRESULT WINAPI
910 LockDevice9_StretchRect( struct NineDevice9
*This
,
911 IDirect3DSurface9
*pSourceSurface
,
912 const RECT
*pSourceRect
,
913 IDirect3DSurface9
*pDestSurface
,
914 const RECT
*pDestRect
,
915 D3DTEXTUREFILTERTYPE Filter
)
918 pipe_mutex_lock(d3dlock_global
);
919 r
= NineDevice9_StretchRect(This
, pSourceSurface
, pSourceRect
, pDestSurface
, pDestRect
, Filter
);
920 pipe_mutex_unlock(d3dlock_global
);
924 static HRESULT WINAPI
925 LockDevice9_ColorFill( struct NineDevice9
*This
,
926 IDirect3DSurface9
*pSurface
,
931 pipe_mutex_lock(d3dlock_global
);
932 r
= NineDevice9_ColorFill(This
, pSurface
, pRect
, color
);
933 pipe_mutex_unlock(d3dlock_global
);
937 static HRESULT WINAPI
938 LockDevice9_CreateOffscreenPlainSurface( struct NineDevice9
*This
,
943 IDirect3DSurface9
**ppSurface
,
944 HANDLE
*pSharedHandle
)
947 pipe_mutex_lock(d3dlock_global
);
948 r
= NineDevice9_CreateOffscreenPlainSurface(This
, Width
, Height
, Format
, Pool
, ppSurface
, pSharedHandle
);
949 pipe_mutex_unlock(d3dlock_global
);
953 static HRESULT WINAPI
954 LockDevice9_SetRenderTarget( struct NineDevice9
*This
,
955 DWORD RenderTargetIndex
,
956 IDirect3DSurface9
*pRenderTarget
)
959 pipe_mutex_lock(d3dlock_global
);
960 r
= NineDevice9_SetRenderTarget(This
, RenderTargetIndex
, pRenderTarget
);
961 pipe_mutex_unlock(d3dlock_global
);
965 static HRESULT WINAPI
966 LockDevice9_GetRenderTarget( struct NineDevice9
*This
,
967 DWORD RenderTargetIndex
,
968 IDirect3DSurface9
**ppRenderTarget
)
971 pipe_mutex_lock(d3dlock_global
);
972 r
= NineDevice9_GetRenderTarget(This
, RenderTargetIndex
, ppRenderTarget
);
973 pipe_mutex_unlock(d3dlock_global
);
977 static HRESULT WINAPI
978 LockDevice9_SetDepthStencilSurface( struct NineDevice9
*This
,
979 IDirect3DSurface9
*pNewZStencil
)
982 pipe_mutex_lock(d3dlock_global
);
983 r
= NineDevice9_SetDepthStencilSurface(This
, pNewZStencil
);
984 pipe_mutex_unlock(d3dlock_global
);
988 static HRESULT WINAPI
989 LockDevice9_GetDepthStencilSurface( struct NineDevice9
*This
,
990 IDirect3DSurface9
**ppZStencilSurface
)
993 pipe_mutex_lock(d3dlock_global
);
994 r
= NineDevice9_GetDepthStencilSurface(This
, ppZStencilSurface
);
995 pipe_mutex_unlock(d3dlock_global
);
999 static HRESULT WINAPI
1000 LockDevice9_BeginScene( struct NineDevice9
*This
)
1003 pipe_mutex_lock(d3dlock_global
);
1004 r
= NineDevice9_BeginScene(This
);
1005 pipe_mutex_unlock(d3dlock_global
);
1009 static HRESULT WINAPI
1010 LockDevice9_EndScene( struct NineDevice9
*This
)
1013 pipe_mutex_lock(d3dlock_global
);
1014 r
= NineDevice9_EndScene(This
);
1015 pipe_mutex_unlock(d3dlock_global
);
1019 static HRESULT WINAPI
1020 LockDevice9_Clear( struct NineDevice9
*This
,
1022 const D3DRECT
*pRects
,
1029 pipe_mutex_lock(d3dlock_global
);
1030 r
= NineDevice9_Clear(This
, Count
, pRects
, Flags
, Color
, Z
, Stencil
);
1031 pipe_mutex_unlock(d3dlock_global
);
1035 static HRESULT WINAPI
1036 LockDevice9_SetTransform( struct NineDevice9
*This
,
1037 D3DTRANSFORMSTATETYPE State
,
1038 const D3DMATRIX
*pMatrix
)
1041 pipe_mutex_lock(d3dlock_global
);
1042 r
= NineDevice9_SetTransform(This
, State
, pMatrix
);
1043 pipe_mutex_unlock(d3dlock_global
);
1047 static HRESULT WINAPI
1048 LockDevice9_GetTransform( struct NineDevice9
*This
,
1049 D3DTRANSFORMSTATETYPE State
,
1050 D3DMATRIX
*pMatrix
)
1053 pipe_mutex_lock(d3dlock_global
);
1054 r
= NineDevice9_GetTransform(This
, State
, pMatrix
);
1055 pipe_mutex_unlock(d3dlock_global
);
1059 static HRESULT WINAPI
1060 LockDevice9_MultiplyTransform( struct NineDevice9
*This
,
1061 D3DTRANSFORMSTATETYPE State
,
1062 const D3DMATRIX
*pMatrix
)
1065 pipe_mutex_lock(d3dlock_global
);
1066 r
= NineDevice9_MultiplyTransform(This
, State
, pMatrix
);
1067 pipe_mutex_unlock(d3dlock_global
);
1071 static HRESULT WINAPI
1072 LockDevice9_SetViewport( struct NineDevice9
*This
,
1073 const D3DVIEWPORT9
*pViewport
)
1076 pipe_mutex_lock(d3dlock_global
);
1077 r
= NineDevice9_SetViewport(This
, pViewport
);
1078 pipe_mutex_unlock(d3dlock_global
);
1082 static HRESULT WINAPI
1083 LockDevice9_GetViewport( struct NineDevice9
*This
,
1084 D3DVIEWPORT9
*pViewport
)
1087 pipe_mutex_lock(d3dlock_global
);
1088 r
= NineDevice9_GetViewport(This
, pViewport
);
1089 pipe_mutex_unlock(d3dlock_global
);
1093 static HRESULT WINAPI
1094 LockDevice9_SetMaterial( struct NineDevice9
*This
,
1095 const D3DMATERIAL9
*pMaterial
)
1098 pipe_mutex_lock(d3dlock_global
);
1099 r
= NineDevice9_SetMaterial(This
, pMaterial
);
1100 pipe_mutex_unlock(d3dlock_global
);
1104 static HRESULT WINAPI
1105 LockDevice9_GetMaterial( struct NineDevice9
*This
,
1106 D3DMATERIAL9
*pMaterial
)
1109 pipe_mutex_lock(d3dlock_global
);
1110 r
= NineDevice9_GetMaterial(This
, pMaterial
);
1111 pipe_mutex_unlock(d3dlock_global
);
1115 static HRESULT WINAPI
1116 LockDevice9_SetLight( struct NineDevice9
*This
,
1118 const D3DLIGHT9
*pLight
)
1121 pipe_mutex_lock(d3dlock_global
);
1122 r
= NineDevice9_SetLight(This
, Index
, pLight
);
1123 pipe_mutex_unlock(d3dlock_global
);
1127 static HRESULT WINAPI
1128 LockDevice9_GetLight( struct NineDevice9
*This
,
1133 pipe_mutex_lock(d3dlock_global
);
1134 r
= NineDevice9_GetLight(This
, Index
, pLight
);
1135 pipe_mutex_unlock(d3dlock_global
);
1139 static HRESULT WINAPI
1140 LockDevice9_LightEnable( struct NineDevice9
*This
,
1145 pipe_mutex_lock(d3dlock_global
);
1146 r
= NineDevice9_LightEnable(This
, Index
, Enable
);
1147 pipe_mutex_unlock(d3dlock_global
);
1151 static HRESULT WINAPI
1152 LockDevice9_GetLightEnable( struct NineDevice9
*This
,
1157 pipe_mutex_lock(d3dlock_global
);
1158 r
= NineDevice9_GetLightEnable(This
, Index
, pEnable
);
1159 pipe_mutex_unlock(d3dlock_global
);
1163 static HRESULT WINAPI
1164 LockDevice9_SetClipPlane( struct NineDevice9
*This
,
1166 const float *pPlane
)
1169 pipe_mutex_lock(d3dlock_global
);
1170 r
= NineDevice9_SetClipPlane(This
, Index
, pPlane
);
1171 pipe_mutex_unlock(d3dlock_global
);
1175 static HRESULT WINAPI
1176 LockDevice9_GetClipPlane( struct NineDevice9
*This
,
1181 pipe_mutex_lock(d3dlock_global
);
1182 r
= NineDevice9_GetClipPlane(This
, Index
, pPlane
);
1183 pipe_mutex_unlock(d3dlock_global
);
1187 static HRESULT WINAPI
1188 LockDevice9_SetRenderState( struct NineDevice9
*This
,
1189 D3DRENDERSTATETYPE State
,
1193 pipe_mutex_lock(d3dlock_global
);
1194 r
= NineDevice9_SetRenderState(This
, State
, Value
);
1195 pipe_mutex_unlock(d3dlock_global
);
1199 static HRESULT WINAPI
1200 LockDevice9_GetRenderState( struct NineDevice9
*This
,
1201 D3DRENDERSTATETYPE State
,
1205 pipe_mutex_lock(d3dlock_global
);
1206 r
= NineDevice9_GetRenderState(This
, State
, pValue
);
1207 pipe_mutex_unlock(d3dlock_global
);
1211 static HRESULT WINAPI
1212 LockDevice9_CreateStateBlock( struct NineDevice9
*This
,
1213 D3DSTATEBLOCKTYPE Type
,
1214 IDirect3DStateBlock9
**ppSB
)
1217 pipe_mutex_lock(d3dlock_global
);
1218 r
= NineDevice9_CreateStateBlock(This
, Type
, ppSB
);
1219 pipe_mutex_unlock(d3dlock_global
);
1223 static HRESULT WINAPI
1224 LockDevice9_BeginStateBlock( struct NineDevice9
*This
)
1227 pipe_mutex_lock(d3dlock_global
);
1228 r
= NineDevice9_BeginStateBlock(This
);
1229 pipe_mutex_unlock(d3dlock_global
);
1233 static HRESULT WINAPI
1234 LockDevice9_EndStateBlock( struct NineDevice9
*This
,
1235 IDirect3DStateBlock9
**ppSB
)
1238 pipe_mutex_lock(d3dlock_global
);
1239 r
= NineDevice9_EndStateBlock(This
, ppSB
);
1240 pipe_mutex_unlock(d3dlock_global
);
1244 static HRESULT WINAPI
1245 LockDevice9_SetClipStatus( struct NineDevice9
*This
,
1246 const D3DCLIPSTATUS9
*pClipStatus
)
1249 pipe_mutex_lock(d3dlock_global
);
1250 r
= NineDevice9_SetClipStatus(This
, pClipStatus
);
1251 pipe_mutex_unlock(d3dlock_global
);
1255 static HRESULT WINAPI
1256 LockDevice9_GetClipStatus( struct NineDevice9
*This
,
1257 D3DCLIPSTATUS9
*pClipStatus
)
1260 pipe_mutex_lock(d3dlock_global
);
1261 r
= NineDevice9_GetClipStatus(This
, pClipStatus
);
1262 pipe_mutex_unlock(d3dlock_global
);
1266 static HRESULT WINAPI
1267 LockDevice9_GetTexture( struct NineDevice9
*This
,
1269 IDirect3DBaseTexture9
**ppTexture
)
1272 pipe_mutex_lock(d3dlock_global
);
1273 r
= NineDevice9_GetTexture(This
, Stage
, ppTexture
);
1274 pipe_mutex_unlock(d3dlock_global
);
1278 static HRESULT WINAPI
1279 LockDevice9_SetTexture( struct NineDevice9
*This
,
1281 IDirect3DBaseTexture9
*pTexture
)
1284 pipe_mutex_lock(d3dlock_global
);
1285 r
= NineDevice9_SetTexture(This
, Stage
, pTexture
);
1286 pipe_mutex_unlock(d3dlock_global
);
1290 static HRESULT WINAPI
1291 LockDevice9_GetTextureStageState( struct NineDevice9
*This
,
1293 D3DTEXTURESTAGESTATETYPE Type
,
1297 pipe_mutex_lock(d3dlock_global
);
1298 r
= NineDevice9_GetTextureStageState(This
, Stage
, Type
, pValue
);
1299 pipe_mutex_unlock(d3dlock_global
);
1303 static HRESULT WINAPI
1304 LockDevice9_SetTextureStageState( struct NineDevice9
*This
,
1306 D3DTEXTURESTAGESTATETYPE Type
,
1310 pipe_mutex_lock(d3dlock_global
);
1311 r
= NineDevice9_SetTextureStageState(This
, Stage
, Type
, Value
);
1312 pipe_mutex_unlock(d3dlock_global
);
1316 static HRESULT WINAPI
1317 LockDevice9_GetSamplerState( struct NineDevice9
*This
,
1319 D3DSAMPLERSTATETYPE Type
,
1323 pipe_mutex_lock(d3dlock_global
);
1324 r
= NineDevice9_GetSamplerState(This
, Sampler
, Type
, pValue
);
1325 pipe_mutex_unlock(d3dlock_global
);
1329 static HRESULT WINAPI
1330 LockDevice9_SetSamplerState( struct NineDevice9
*This
,
1332 D3DSAMPLERSTATETYPE Type
,
1336 pipe_mutex_lock(d3dlock_global
);
1337 r
= NineDevice9_SetSamplerState(This
, Sampler
, Type
, Value
);
1338 pipe_mutex_unlock(d3dlock_global
);
1342 static HRESULT WINAPI
1343 LockDevice9_ValidateDevice( struct NineDevice9
*This
,
1347 pipe_mutex_lock(d3dlock_global
);
1348 r
= NineDevice9_ValidateDevice(This
, pNumPasses
);
1349 pipe_mutex_unlock(d3dlock_global
);
1353 static HRESULT WINAPI
1354 LockDevice9_SetPaletteEntries( struct NineDevice9
*This
,
1356 const PALETTEENTRY
*pEntries
)
1359 pipe_mutex_lock(d3dlock_global
);
1360 r
= NineDevice9_SetPaletteEntries(This
, PaletteNumber
, pEntries
);
1361 pipe_mutex_unlock(d3dlock_global
);
1365 static HRESULT WINAPI
1366 LockDevice9_GetPaletteEntries( struct NineDevice9
*This
,
1368 PALETTEENTRY
*pEntries
)
1371 pipe_mutex_lock(d3dlock_global
);
1372 r
= NineDevice9_GetPaletteEntries(This
, PaletteNumber
, pEntries
);
1373 pipe_mutex_unlock(d3dlock_global
);
1377 static HRESULT WINAPI
1378 LockDevice9_SetCurrentTexturePalette( struct NineDevice9
*This
,
1379 UINT PaletteNumber
)
1382 pipe_mutex_lock(d3dlock_global
);
1383 r
= NineDevice9_SetCurrentTexturePalette(This
, PaletteNumber
);
1384 pipe_mutex_unlock(d3dlock_global
);
1388 static HRESULT WINAPI
1389 LockDevice9_GetCurrentTexturePalette( struct NineDevice9
*This
,
1390 UINT
*PaletteNumber
)
1393 pipe_mutex_lock(d3dlock_global
);
1394 r
= NineDevice9_GetCurrentTexturePalette(This
, PaletteNumber
);
1395 pipe_mutex_unlock(d3dlock_global
);
1399 static HRESULT WINAPI
1400 LockDevice9_SetScissorRect( struct NineDevice9
*This
,
1404 pipe_mutex_lock(d3dlock_global
);
1405 r
= NineDevice9_SetScissorRect(This
, pRect
);
1406 pipe_mutex_unlock(d3dlock_global
);
1410 static HRESULT WINAPI
1411 LockDevice9_GetScissorRect( struct NineDevice9
*This
,
1415 pipe_mutex_lock(d3dlock_global
);
1416 r
= NineDevice9_GetScissorRect(This
, pRect
);
1417 pipe_mutex_unlock(d3dlock_global
);
1421 static HRESULT WINAPI
1422 LockDevice9_SetSoftwareVertexProcessing( struct NineDevice9
*This
,
1426 pipe_mutex_lock(d3dlock_global
);
1427 r
= NineDevice9_SetSoftwareVertexProcessing(This
, bSoftware
);
1428 pipe_mutex_unlock(d3dlock_global
);
1433 LockDevice9_GetSoftwareVertexProcessing( struct NineDevice9
*This
)
1436 pipe_mutex_lock(d3dlock_global
);
1437 r
= NineDevice9_GetSoftwareVertexProcessing(This
);
1438 pipe_mutex_unlock(d3dlock_global
);
1442 static HRESULT WINAPI
1443 LockDevice9_SetNPatchMode( struct NineDevice9
*This
,
1447 pipe_mutex_lock(d3dlock_global
);
1448 r
= NineDevice9_SetNPatchMode(This
, nSegments
);
1449 pipe_mutex_unlock(d3dlock_global
);
1454 LockDevice9_GetNPatchMode( struct NineDevice9
*This
)
1457 pipe_mutex_lock(d3dlock_global
);
1458 r
= NineDevice9_GetNPatchMode(This
);
1459 pipe_mutex_unlock(d3dlock_global
);
1463 static HRESULT WINAPI
1464 LockDevice9_DrawPrimitive( struct NineDevice9
*This
,
1465 D3DPRIMITIVETYPE PrimitiveType
,
1467 UINT PrimitiveCount
)
1470 pipe_mutex_lock(d3dlock_global
);
1471 r
= NineDevice9_DrawPrimitive(This
, PrimitiveType
, StartVertex
, PrimitiveCount
);
1472 pipe_mutex_unlock(d3dlock_global
);
1476 static HRESULT WINAPI
1477 LockDevice9_DrawIndexedPrimitive( struct NineDevice9
*This
,
1478 D3DPRIMITIVETYPE PrimitiveType
,
1479 INT BaseVertexIndex
,
1480 UINT MinVertexIndex
,
1486 pipe_mutex_lock(d3dlock_global
);
1487 r
= NineDevice9_DrawIndexedPrimitive(This
, PrimitiveType
, BaseVertexIndex
, MinVertexIndex
, NumVertices
, startIndex
, primCount
);
1488 pipe_mutex_unlock(d3dlock_global
);
1492 static HRESULT WINAPI
1493 LockDevice9_DrawPrimitiveUP( struct NineDevice9
*This
,
1494 D3DPRIMITIVETYPE PrimitiveType
,
1495 UINT PrimitiveCount
,
1496 const void *pVertexStreamZeroData
,
1497 UINT VertexStreamZeroStride
)
1500 pipe_mutex_lock(d3dlock_global
);
1501 r
= NineDevice9_DrawPrimitiveUP(This
, PrimitiveType
, PrimitiveCount
, pVertexStreamZeroData
, VertexStreamZeroStride
);
1502 pipe_mutex_unlock(d3dlock_global
);
1506 static HRESULT WINAPI
1507 LockDevice9_DrawIndexedPrimitiveUP( struct NineDevice9
*This
,
1508 D3DPRIMITIVETYPE PrimitiveType
,
1509 UINT MinVertexIndex
,
1511 UINT PrimitiveCount
,
1512 const void *pIndexData
,
1513 D3DFORMAT IndexDataFormat
,
1514 const void *pVertexStreamZeroData
,
1515 UINT VertexStreamZeroStride
)
1518 pipe_mutex_lock(d3dlock_global
);
1519 r
= NineDevice9_DrawIndexedPrimitiveUP(This
, PrimitiveType
, MinVertexIndex
, NumVertices
, PrimitiveCount
, pIndexData
, IndexDataFormat
, pVertexStreamZeroData
, VertexStreamZeroStride
);
1520 pipe_mutex_unlock(d3dlock_global
);
1524 static HRESULT WINAPI
1525 LockDevice9_ProcessVertices( struct NineDevice9
*This
,
1529 IDirect3DVertexBuffer9
*pDestBuffer
,
1530 IDirect3DVertexDeclaration9
*pVertexDecl
,
1534 pipe_mutex_lock(d3dlock_global
);
1535 r
= NineDevice9_ProcessVertices(This
, SrcStartIndex
, DestIndex
, VertexCount
, pDestBuffer
, pVertexDecl
, Flags
);
1536 pipe_mutex_unlock(d3dlock_global
);
1540 static HRESULT WINAPI
1541 LockDevice9_CreateVertexDeclaration( struct NineDevice9
*This
,
1542 const D3DVERTEXELEMENT9
*pVertexElements
,
1543 IDirect3DVertexDeclaration9
**ppDecl
)
1546 pipe_mutex_lock(d3dlock_global
);
1547 r
= NineDevice9_CreateVertexDeclaration(This
, pVertexElements
, ppDecl
);
1548 pipe_mutex_unlock(d3dlock_global
);
1552 static HRESULT WINAPI
1553 LockDevice9_SetVertexDeclaration( struct NineDevice9
*This
,
1554 IDirect3DVertexDeclaration9
*pDecl
)
1557 pipe_mutex_lock(d3dlock_global
);
1558 r
= NineDevice9_SetVertexDeclaration(This
, pDecl
);
1559 pipe_mutex_unlock(d3dlock_global
);
1563 static HRESULT WINAPI
1564 LockDevice9_GetVertexDeclaration( struct NineDevice9
*This
,
1565 IDirect3DVertexDeclaration9
**ppDecl
)
1568 pipe_mutex_lock(d3dlock_global
);
1569 r
= NineDevice9_GetVertexDeclaration(This
, ppDecl
);
1570 pipe_mutex_unlock(d3dlock_global
);
1574 static HRESULT WINAPI
1575 LockDevice9_SetFVF( struct NineDevice9
*This
,
1579 pipe_mutex_lock(d3dlock_global
);
1580 r
= NineDevice9_SetFVF(This
, FVF
);
1581 pipe_mutex_unlock(d3dlock_global
);
1585 static HRESULT WINAPI
1586 LockDevice9_GetFVF( struct NineDevice9
*This
,
1590 pipe_mutex_lock(d3dlock_global
);
1591 r
= NineDevice9_GetFVF(This
, pFVF
);
1592 pipe_mutex_unlock(d3dlock_global
);
1596 static HRESULT WINAPI
1597 LockDevice9_CreateVertexShader( struct NineDevice9
*This
,
1598 const DWORD
*pFunction
,
1599 IDirect3DVertexShader9
**ppShader
)
1602 pipe_mutex_lock(d3dlock_global
);
1603 r
= NineDevice9_CreateVertexShader(This
, pFunction
, ppShader
);
1604 pipe_mutex_unlock(d3dlock_global
);
1608 static HRESULT WINAPI
1609 LockDevice9_SetVertexShader( struct NineDevice9
*This
,
1610 IDirect3DVertexShader9
*pShader
)
1613 pipe_mutex_lock(d3dlock_global
);
1614 r
= NineDevice9_SetVertexShader(This
, pShader
);
1615 pipe_mutex_unlock(d3dlock_global
);
1619 static HRESULT WINAPI
1620 LockDevice9_GetVertexShader( struct NineDevice9
*This
,
1621 IDirect3DVertexShader9
**ppShader
)
1624 pipe_mutex_lock(d3dlock_global
);
1625 r
= NineDevice9_GetVertexShader(This
, ppShader
);
1626 pipe_mutex_unlock(d3dlock_global
);
1630 static HRESULT WINAPI
1631 LockDevice9_SetVertexShaderConstantF( struct NineDevice9
*This
,
1633 const float *pConstantData
,
1634 UINT Vector4fCount
)
1637 pipe_mutex_lock(d3dlock_global
);
1638 r
= NineDevice9_SetVertexShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1639 pipe_mutex_unlock(d3dlock_global
);
1643 static HRESULT WINAPI
1644 LockDevice9_GetVertexShaderConstantF( struct NineDevice9
*This
,
1646 float *pConstantData
,
1647 UINT Vector4fCount
)
1650 pipe_mutex_lock(d3dlock_global
);
1651 r
= NineDevice9_GetVertexShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1652 pipe_mutex_unlock(d3dlock_global
);
1656 static HRESULT WINAPI
1657 LockDevice9_SetVertexShaderConstantI( struct NineDevice9
*This
,
1659 const int *pConstantData
,
1660 UINT Vector4iCount
)
1663 pipe_mutex_lock(d3dlock_global
);
1664 r
= NineDevice9_SetVertexShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1665 pipe_mutex_unlock(d3dlock_global
);
1669 static HRESULT WINAPI
1670 LockDevice9_GetVertexShaderConstantI( struct NineDevice9
*This
,
1673 UINT Vector4iCount
)
1676 pipe_mutex_lock(d3dlock_global
);
1677 r
= NineDevice9_GetVertexShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1678 pipe_mutex_unlock(d3dlock_global
);
1682 static HRESULT WINAPI
1683 LockDevice9_SetVertexShaderConstantB( struct NineDevice9
*This
,
1685 const BOOL
*pConstantData
,
1689 pipe_mutex_lock(d3dlock_global
);
1690 r
= NineDevice9_SetVertexShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1691 pipe_mutex_unlock(d3dlock_global
);
1695 static HRESULT WINAPI
1696 LockDevice9_GetVertexShaderConstantB( struct NineDevice9
*This
,
1698 BOOL
*pConstantData
,
1702 pipe_mutex_lock(d3dlock_global
);
1703 r
= NineDevice9_GetVertexShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1704 pipe_mutex_unlock(d3dlock_global
);
1708 static HRESULT WINAPI
1709 LockDevice9_SetStreamSource( struct NineDevice9
*This
,
1711 IDirect3DVertexBuffer9
*pStreamData
,
1716 pipe_mutex_lock(d3dlock_global
);
1717 r
= NineDevice9_SetStreamSource(This
, StreamNumber
, pStreamData
, OffsetInBytes
, Stride
);
1718 pipe_mutex_unlock(d3dlock_global
);
1722 static HRESULT WINAPI
1723 LockDevice9_GetStreamSource( struct NineDevice9
*This
,
1725 IDirect3DVertexBuffer9
**ppStreamData
,
1726 UINT
*pOffsetInBytes
,
1730 pipe_mutex_lock(d3dlock_global
);
1731 r
= NineDevice9_GetStreamSource(This
, StreamNumber
, ppStreamData
, pOffsetInBytes
, pStride
);
1732 pipe_mutex_unlock(d3dlock_global
);
1736 static HRESULT WINAPI
1737 LockDevice9_SetStreamSourceFreq( struct NineDevice9
*This
,
1742 pipe_mutex_lock(d3dlock_global
);
1743 r
= NineDevice9_SetStreamSourceFreq(This
, StreamNumber
, Setting
);
1744 pipe_mutex_unlock(d3dlock_global
);
1748 static HRESULT WINAPI
1749 LockDevice9_GetStreamSourceFreq( struct NineDevice9
*This
,
1754 pipe_mutex_lock(d3dlock_global
);
1755 r
= NineDevice9_GetStreamSourceFreq(This
, StreamNumber
, pSetting
);
1756 pipe_mutex_unlock(d3dlock_global
);
1760 static HRESULT WINAPI
1761 LockDevice9_SetIndices( struct NineDevice9
*This
,
1762 IDirect3DIndexBuffer9
*pIndexData
)
1765 pipe_mutex_lock(d3dlock_global
);
1766 r
= NineDevice9_SetIndices(This
, pIndexData
);
1767 pipe_mutex_unlock(d3dlock_global
);
1771 static HRESULT WINAPI
1772 LockDevice9_GetIndices( struct NineDevice9
*This
,
1773 IDirect3DIndexBuffer9
**ppIndexData
)
1776 pipe_mutex_lock(d3dlock_global
);
1777 r
= NineDevice9_GetIndices(This
, ppIndexData
);
1778 pipe_mutex_unlock(d3dlock_global
);
1782 static HRESULT WINAPI
1783 LockDevice9_CreatePixelShader( struct NineDevice9
*This
,
1784 const DWORD
*pFunction
,
1785 IDirect3DPixelShader9
**ppShader
)
1788 pipe_mutex_lock(d3dlock_global
);
1789 r
= NineDevice9_CreatePixelShader(This
, pFunction
, ppShader
);
1790 pipe_mutex_unlock(d3dlock_global
);
1794 static HRESULT WINAPI
1795 LockDevice9_SetPixelShader( struct NineDevice9
*This
,
1796 IDirect3DPixelShader9
*pShader
)
1799 pipe_mutex_lock(d3dlock_global
);
1800 r
= NineDevice9_SetPixelShader(This
, pShader
);
1801 pipe_mutex_unlock(d3dlock_global
);
1805 static HRESULT WINAPI
1806 LockDevice9_GetPixelShader( struct NineDevice9
*This
,
1807 IDirect3DPixelShader9
**ppShader
)
1810 pipe_mutex_lock(d3dlock_global
);
1811 r
= NineDevice9_GetPixelShader(This
, ppShader
);
1812 pipe_mutex_unlock(d3dlock_global
);
1816 static HRESULT WINAPI
1817 LockDevice9_SetPixelShaderConstantF( struct NineDevice9
*This
,
1819 const float *pConstantData
,
1820 UINT Vector4fCount
)
1823 pipe_mutex_lock(d3dlock_global
);
1824 r
= NineDevice9_SetPixelShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1825 pipe_mutex_unlock(d3dlock_global
);
1829 static HRESULT WINAPI
1830 LockDevice9_GetPixelShaderConstantF( struct NineDevice9
*This
,
1832 float *pConstantData
,
1833 UINT Vector4fCount
)
1836 pipe_mutex_lock(d3dlock_global
);
1837 r
= NineDevice9_GetPixelShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1838 pipe_mutex_unlock(d3dlock_global
);
1842 static HRESULT WINAPI
1843 LockDevice9_SetPixelShaderConstantI( struct NineDevice9
*This
,
1845 const int *pConstantData
,
1846 UINT Vector4iCount
)
1849 pipe_mutex_lock(d3dlock_global
);
1850 r
= NineDevice9_SetPixelShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1851 pipe_mutex_unlock(d3dlock_global
);
1855 static HRESULT WINAPI
1856 LockDevice9_GetPixelShaderConstantI( struct NineDevice9
*This
,
1859 UINT Vector4iCount
)
1862 pipe_mutex_lock(d3dlock_global
);
1863 r
= NineDevice9_GetPixelShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1864 pipe_mutex_unlock(d3dlock_global
);
1868 static HRESULT WINAPI
1869 LockDevice9_SetPixelShaderConstantB( struct NineDevice9
*This
,
1871 const BOOL
*pConstantData
,
1875 pipe_mutex_lock(d3dlock_global
);
1876 r
= NineDevice9_SetPixelShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1877 pipe_mutex_unlock(d3dlock_global
);
1881 static HRESULT WINAPI
1882 LockDevice9_GetPixelShaderConstantB( struct NineDevice9
*This
,
1884 BOOL
*pConstantData
,
1888 pipe_mutex_lock(d3dlock_global
);
1889 r
= NineDevice9_GetPixelShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1890 pipe_mutex_unlock(d3dlock_global
);
1894 static HRESULT WINAPI
1895 LockDevice9_DrawRectPatch( struct NineDevice9
*This
,
1897 const float *pNumSegs
,
1898 const D3DRECTPATCH_INFO
*pRectPatchInfo
)
1901 pipe_mutex_lock(d3dlock_global
);
1902 r
= NineDevice9_DrawRectPatch(This
, Handle
, pNumSegs
, pRectPatchInfo
);
1903 pipe_mutex_unlock(d3dlock_global
);
1907 static HRESULT WINAPI
1908 LockDevice9_DrawTriPatch( struct NineDevice9
*This
,
1910 const float *pNumSegs
,
1911 const D3DTRIPATCH_INFO
*pTriPatchInfo
)
1914 pipe_mutex_lock(d3dlock_global
);
1915 r
= NineDevice9_DrawTriPatch(This
, Handle
, pNumSegs
, pTriPatchInfo
);
1916 pipe_mutex_unlock(d3dlock_global
);
1920 static HRESULT WINAPI
1921 LockDevice9_DeletePatch( struct NineDevice9
*This
,
1925 pipe_mutex_lock(d3dlock_global
);
1926 r
= NineDevice9_DeletePatch(This
, Handle
);
1927 pipe_mutex_unlock(d3dlock_global
);
1931 static HRESULT WINAPI
1932 LockDevice9_CreateQuery( struct NineDevice9
*This
,
1934 IDirect3DQuery9
**ppQuery
)
1937 pipe_mutex_lock(d3dlock_global
);
1938 r
= NineDevice9_CreateQuery(This
, Type
, ppQuery
);
1939 pipe_mutex_unlock(d3dlock_global
);
1943 IDirect3DDevice9Vtbl LockDevice9_vtable
= {
1944 (void *)NineUnknown_QueryInterface
,
1945 (void *)NineUnknown_AddRef
,
1946 (void *)NineUnknown_Release
,
1947 (void *)LockDevice9_TestCooperativeLevel
,
1948 (void *)LockDevice9_GetAvailableTextureMem
,
1949 (void *)LockDevice9_EvictManagedResources
,
1950 (void *)LockDevice9_GetDirect3D
,
1951 (void *)NineDevice9_GetDeviceCaps
, /* immutable */
1952 (void *)LockDevice9_GetDisplayMode
,
1953 (void *)NineDevice9_GetCreationParameters
, /* immutable */
1954 (void *)LockDevice9_SetCursorProperties
,
1955 (void *)LockDevice9_SetCursorPosition
,
1956 (void *)LockDevice9_ShowCursor
,
1957 (void *)LockDevice9_CreateAdditionalSwapChain
,
1958 (void *)LockDevice9_GetSwapChain
,
1959 (void *)LockDevice9_GetNumberOfSwapChains
,
1960 (void *)LockDevice9_Reset
,
1961 (void *)LockDevice9_Present
,
1962 (void *)LockDevice9_GetBackBuffer
,
1963 (void *)LockDevice9_GetRasterStatus
,
1964 (void *)LockDevice9_SetDialogBoxMode
,
1965 (void *)LockDevice9_SetGammaRamp
,
1966 (void *)LockDevice9_GetGammaRamp
,
1967 (void *)LockDevice9_CreateTexture
,
1968 (void *)LockDevice9_CreateVolumeTexture
,
1969 (void *)LockDevice9_CreateCubeTexture
,
1970 (void *)LockDevice9_CreateVertexBuffer
,
1971 (void *)LockDevice9_CreateIndexBuffer
,
1972 (void *)LockDevice9_CreateRenderTarget
,
1973 (void *)LockDevice9_CreateDepthStencilSurface
,
1974 (void *)LockDevice9_UpdateSurface
,
1975 (void *)LockDevice9_UpdateTexture
,
1976 (void *)LockDevice9_GetRenderTargetData
,
1977 (void *)LockDevice9_GetFrontBufferData
,
1978 (void *)LockDevice9_StretchRect
,
1979 (void *)LockDevice9_ColorFill
,
1980 (void *)LockDevice9_CreateOffscreenPlainSurface
,
1981 (void *)LockDevice9_SetRenderTarget
,
1982 (void *)LockDevice9_GetRenderTarget
,
1983 (void *)LockDevice9_SetDepthStencilSurface
,
1984 (void *)LockDevice9_GetDepthStencilSurface
,
1985 (void *)LockDevice9_BeginScene
,
1986 (void *)LockDevice9_EndScene
,
1987 (void *)LockDevice9_Clear
,
1988 (void *)LockDevice9_SetTransform
,
1989 (void *)LockDevice9_GetTransform
,
1990 (void *)LockDevice9_MultiplyTransform
,
1991 (void *)LockDevice9_SetViewport
,
1992 (void *)LockDevice9_GetViewport
,
1993 (void *)LockDevice9_SetMaterial
,
1994 (void *)LockDevice9_GetMaterial
,
1995 (void *)LockDevice9_SetLight
,
1996 (void *)LockDevice9_GetLight
,
1997 (void *)LockDevice9_LightEnable
,
1998 (void *)LockDevice9_GetLightEnable
,
1999 (void *)LockDevice9_SetClipPlane
,
2000 (void *)LockDevice9_GetClipPlane
,
2001 (void *)LockDevice9_SetRenderState
,
2002 (void *)LockDevice9_GetRenderState
,
2003 (void *)LockDevice9_CreateStateBlock
,
2004 (void *)LockDevice9_BeginStateBlock
,
2005 (void *)LockDevice9_EndStateBlock
,
2006 (void *)LockDevice9_SetClipStatus
,
2007 (void *)LockDevice9_GetClipStatus
,
2008 (void *)LockDevice9_GetTexture
,
2009 (void *)LockDevice9_SetTexture
,
2010 (void *)LockDevice9_GetTextureStageState
,
2011 (void *)LockDevice9_SetTextureStageState
,
2012 (void *)LockDevice9_GetSamplerState
,
2013 (void *)LockDevice9_SetSamplerState
,
2014 (void *)LockDevice9_ValidateDevice
,
2015 (void *)LockDevice9_SetPaletteEntries
,
2016 (void *)LockDevice9_GetPaletteEntries
,
2017 (void *)LockDevice9_SetCurrentTexturePalette
,
2018 (void *)LockDevice9_GetCurrentTexturePalette
,
2019 (void *)LockDevice9_SetScissorRect
,
2020 (void *)LockDevice9_GetScissorRect
,
2021 (void *)LockDevice9_SetSoftwareVertexProcessing
,
2022 (void *)LockDevice9_GetSoftwareVertexProcessing
,
2023 (void *)LockDevice9_SetNPatchMode
,
2024 (void *)LockDevice9_GetNPatchMode
,
2025 (void *)LockDevice9_DrawPrimitive
,
2026 (void *)LockDevice9_DrawIndexedPrimitive
,
2027 (void *)LockDevice9_DrawPrimitiveUP
,
2028 (void *)LockDevice9_DrawIndexedPrimitiveUP
,
2029 (void *)LockDevice9_ProcessVertices
,
2030 (void *)LockDevice9_CreateVertexDeclaration
,
2031 (void *)LockDevice9_SetVertexDeclaration
,
2032 (void *)LockDevice9_GetVertexDeclaration
,
2033 (void *)LockDevice9_SetFVF
,
2034 (void *)LockDevice9_GetFVF
,
2035 (void *)LockDevice9_CreateVertexShader
,
2036 (void *)LockDevice9_SetVertexShader
,
2037 (void *)LockDevice9_GetVertexShader
,
2038 (void *)LockDevice9_SetVertexShaderConstantF
,
2039 (void *)LockDevice9_GetVertexShaderConstantF
,
2040 (void *)LockDevice9_SetVertexShaderConstantI
,
2041 (void *)LockDevice9_GetVertexShaderConstantI
,
2042 (void *)LockDevice9_SetVertexShaderConstantB
,
2043 (void *)LockDevice9_GetVertexShaderConstantB
,
2044 (void *)LockDevice9_SetStreamSource
,
2045 (void *)LockDevice9_GetStreamSource
,
2046 (void *)LockDevice9_SetStreamSourceFreq
,
2047 (void *)LockDevice9_GetStreamSourceFreq
,
2048 (void *)LockDevice9_SetIndices
,
2049 (void *)LockDevice9_GetIndices
,
2050 (void *)LockDevice9_CreatePixelShader
,
2051 (void *)LockDevice9_SetPixelShader
,
2052 (void *)LockDevice9_GetPixelShader
,
2053 (void *)LockDevice9_SetPixelShaderConstantF
,
2054 (void *)LockDevice9_GetPixelShaderConstantF
,
2055 (void *)LockDevice9_SetPixelShaderConstantI
,
2056 (void *)LockDevice9_GetPixelShaderConstantI
,
2057 (void *)LockDevice9_SetPixelShaderConstantB
,
2058 (void *)LockDevice9_GetPixelShaderConstantB
,
2059 (void *)LockDevice9_DrawRectPatch
,
2060 (void *)LockDevice9_DrawTriPatch
,
2061 (void *)LockDevice9_DeletePatch
,
2062 (void *)LockDevice9_CreateQuery
2065 static HRESULT WINAPI
2066 LockDevice9Ex_SetConvolutionMonoKernel( struct NineDevice9Ex
*This
,
2073 pipe_mutex_lock(d3dlock_global
);
2074 r
= NineDevice9Ex_SetConvolutionMonoKernel(This
, width
, height
, rows
, columns
);
2075 pipe_mutex_unlock(d3dlock_global
);
2079 static HRESULT WINAPI
2080 LockDevice9Ex_ComposeRects( struct NineDevice9Ex
*This
,
2081 IDirect3DSurface9
*pSrc
,
2082 IDirect3DSurface9
*pDst
,
2083 IDirect3DVertexBuffer9
*pSrcRectDescs
,
2085 IDirect3DVertexBuffer9
*pDstRectDescs
,
2086 D3DCOMPOSERECTSOP Operation
,
2091 pipe_mutex_lock(d3dlock_global
);
2092 r
= NineDevice9Ex_ComposeRects(This
, pSrc
, pDst
, pSrcRectDescs
, NumRects
, pDstRectDescs
, Operation
, Xoffset
, Yoffset
);
2093 pipe_mutex_unlock(d3dlock_global
);
2097 static HRESULT WINAPI
2098 LockDevice9Ex_PresentEx( struct NineDevice9Ex
*This
,
2099 const RECT
*pSourceRect
,
2100 const RECT
*pDestRect
,
2101 HWND hDestWindowOverride
,
2102 const RGNDATA
*pDirtyRegion
,
2106 pipe_mutex_lock(d3dlock_global
);
2107 r
= NineDevice9Ex_PresentEx(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
, dwFlags
);
2108 pipe_mutex_unlock(d3dlock_global
);
2112 static HRESULT WINAPI
2113 LockDevice9Ex_GetGPUThreadPriority( struct NineDevice9Ex
*This
,
2117 pipe_mutex_lock(d3dlock_global
);
2118 r
= NineDevice9Ex_GetGPUThreadPriority(This
, pPriority
);
2119 pipe_mutex_unlock(d3dlock_global
);
2123 static HRESULT WINAPI
2124 LockDevice9Ex_SetGPUThreadPriority( struct NineDevice9Ex
*This
,
2128 pipe_mutex_lock(d3dlock_global
);
2129 r
= NineDevice9Ex_SetGPUThreadPriority(This
, Priority
);
2130 pipe_mutex_unlock(d3dlock_global
);
2134 static HRESULT WINAPI
2135 LockDevice9Ex_WaitForVBlank( struct NineDevice9Ex
*This
,
2139 pipe_mutex_lock(d3dlock_global
);
2140 r
= NineDevice9Ex_WaitForVBlank(This
, iSwapChain
);
2141 pipe_mutex_unlock(d3dlock_global
);
2145 static HRESULT WINAPI
2146 LockDevice9Ex_CheckResourceResidency( struct NineDevice9Ex
*This
,
2147 IDirect3DResource9
**pResourceArray
,
2148 UINT32 NumResources
)
2151 pipe_mutex_lock(d3dlock_global
);
2152 r
= NineDevice9Ex_CheckResourceResidency(This
, pResourceArray
, NumResources
);
2153 pipe_mutex_unlock(d3dlock_global
);
2157 static HRESULT WINAPI
2158 LockDevice9Ex_SetMaximumFrameLatency( struct NineDevice9Ex
*This
,
2162 pipe_mutex_lock(d3dlock_global
);
2163 r
= NineDevice9Ex_SetMaximumFrameLatency(This
, MaxLatency
);
2164 pipe_mutex_unlock(d3dlock_global
);
2168 static HRESULT WINAPI
2169 LockDevice9Ex_GetMaximumFrameLatency( struct NineDevice9Ex
*This
,
2173 pipe_mutex_lock(d3dlock_global
);
2174 r
= NineDevice9Ex_GetMaximumFrameLatency(This
, pMaxLatency
);
2175 pipe_mutex_unlock(d3dlock_global
);
2179 static HRESULT WINAPI
2180 LockDevice9Ex_CheckDeviceState( struct NineDevice9Ex
*This
,
2181 HWND hDestinationWindow
)
2184 pipe_mutex_lock(d3dlock_global
);
2185 r
= NineDevice9Ex_CheckDeviceState(This
, hDestinationWindow
);
2186 pipe_mutex_unlock(d3dlock_global
);
2190 static HRESULT WINAPI
2191 LockDevice9Ex_CreateRenderTargetEx( struct NineDevice9Ex
*This
,
2195 D3DMULTISAMPLE_TYPE MultiSample
,
2196 DWORD MultisampleQuality
,
2198 IDirect3DSurface9
**ppSurface
,
2199 HANDLE
*pSharedHandle
,
2203 pipe_mutex_lock(d3dlock_global
);
2204 r
= NineDevice9Ex_CreateRenderTargetEx(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Lockable
, ppSurface
, pSharedHandle
, Usage
);
2205 pipe_mutex_unlock(d3dlock_global
);
2209 static HRESULT WINAPI
2210 LockDevice9Ex_CreateOffscreenPlainSurfaceEx( struct NineDevice9Ex
*This
,
2215 IDirect3DSurface9
**ppSurface
,
2216 HANDLE
*pSharedHandle
,
2220 pipe_mutex_lock(d3dlock_global
);
2221 r
= NineDevice9Ex_CreateOffscreenPlainSurfaceEx(This
, Width
, Height
, Format
, Pool
, ppSurface
, pSharedHandle
, Usage
);
2222 pipe_mutex_unlock(d3dlock_global
);
2226 static HRESULT WINAPI
2227 LockDevice9Ex_CreateDepthStencilSurfaceEx( struct NineDevice9Ex
*This
,
2231 D3DMULTISAMPLE_TYPE MultiSample
,
2232 DWORD MultisampleQuality
,
2234 IDirect3DSurface9
**ppSurface
,
2235 HANDLE
*pSharedHandle
,
2239 pipe_mutex_lock(d3dlock_global
);
2240 r
= NineDevice9Ex_CreateDepthStencilSurfaceEx(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Discard
, ppSurface
, pSharedHandle
, Usage
);
2241 pipe_mutex_unlock(d3dlock_global
);
2245 static HRESULT WINAPI
2246 LockDevice9Ex_ResetEx( struct NineDevice9Ex
*This
,
2247 D3DPRESENT_PARAMETERS
*pPresentationParameters
,
2248 D3DDISPLAYMODEEX
*pFullscreenDisplayMode
)
2251 pipe_mutex_lock(d3dlock_global
);
2252 r
= NineDevice9Ex_ResetEx(This
, pPresentationParameters
, pFullscreenDisplayMode
);
2253 pipe_mutex_unlock(d3dlock_global
);
2257 static HRESULT WINAPI
2258 LockDevice9Ex_GetDisplayModeEx( struct NineDevice9Ex
*This
,
2260 D3DDISPLAYMODEEX
*pMode
,
2261 D3DDISPLAYROTATION
*pRotation
)
2264 pipe_mutex_lock(d3dlock_global
);
2265 r
= NineDevice9Ex_GetDisplayModeEx(This
, iSwapChain
, pMode
, pRotation
);
2266 pipe_mutex_unlock(d3dlock_global
);
2270 IDirect3DDevice9ExVtbl LockDevice9Ex_vtable
= {
2271 (void *)NineUnknown_QueryInterface
,
2272 (void *)NineUnknown_AddRef
,
2273 (void *)NineUnknown_Release
,
2274 (void *)LockDevice9_TestCooperativeLevel
,
2275 (void *)LockDevice9_GetAvailableTextureMem
,
2276 (void *)LockDevice9_EvictManagedResources
,
2277 (void *)LockDevice9_GetDirect3D
,
2278 (void *)NineDevice9_GetDeviceCaps
,
2279 (void *)LockDevice9_GetDisplayMode
,
2280 (void *)NineDevice9_GetCreationParameters
,
2281 (void *)LockDevice9_SetCursorProperties
,
2282 (void *)LockDevice9_SetCursorPosition
,
2283 (void *)LockDevice9_ShowCursor
,
2284 (void *)LockDevice9_CreateAdditionalSwapChain
,
2285 (void *)LockDevice9_GetSwapChain
,
2286 (void *)LockDevice9_GetNumberOfSwapChains
,
2287 (void *)LockDevice9_Reset
,
2288 (void *)LockDevice9_Present
,
2289 (void *)LockDevice9_GetBackBuffer
,
2290 (void *)LockDevice9_GetRasterStatus
,
2291 (void *)LockDevice9_SetDialogBoxMode
,
2292 (void *)LockDevice9_SetGammaRamp
,
2293 (void *)LockDevice9_GetGammaRamp
,
2294 (void *)LockDevice9_CreateTexture
,
2295 (void *)LockDevice9_CreateVolumeTexture
,
2296 (void *)LockDevice9_CreateCubeTexture
,
2297 (void *)LockDevice9_CreateVertexBuffer
,
2298 (void *)LockDevice9_CreateIndexBuffer
,
2299 (void *)LockDevice9_CreateRenderTarget
,
2300 (void *)LockDevice9_CreateDepthStencilSurface
,
2301 (void *)LockDevice9_UpdateSurface
,
2302 (void *)LockDevice9_UpdateTexture
,
2303 (void *)LockDevice9_GetRenderTargetData
,
2304 (void *)LockDevice9_GetFrontBufferData
,
2305 (void *)LockDevice9_StretchRect
,
2306 (void *)LockDevice9_ColorFill
,
2307 (void *)LockDevice9_CreateOffscreenPlainSurface
,
2308 (void *)LockDevice9_SetRenderTarget
,
2309 (void *)LockDevice9_GetRenderTarget
,
2310 (void *)LockDevice9_SetDepthStencilSurface
,
2311 (void *)LockDevice9_GetDepthStencilSurface
,
2312 (void *)LockDevice9_BeginScene
,
2313 (void *)LockDevice9_EndScene
,
2314 (void *)LockDevice9_Clear
,
2315 (void *)LockDevice9_SetTransform
,
2316 (void *)LockDevice9_GetTransform
,
2317 (void *)LockDevice9_MultiplyTransform
,
2318 (void *)LockDevice9_SetViewport
,
2319 (void *)LockDevice9_GetViewport
,
2320 (void *)LockDevice9_SetMaterial
,
2321 (void *)LockDevice9_GetMaterial
,
2322 (void *)LockDevice9_SetLight
,
2323 (void *)LockDevice9_GetLight
,
2324 (void *)LockDevice9_LightEnable
,
2325 (void *)LockDevice9_GetLightEnable
,
2326 (void *)LockDevice9_SetClipPlane
,
2327 (void *)LockDevice9_GetClipPlane
,
2328 (void *)LockDevice9_SetRenderState
,
2329 (void *)LockDevice9_GetRenderState
,
2330 (void *)LockDevice9_CreateStateBlock
,
2331 (void *)LockDevice9_BeginStateBlock
,
2332 (void *)LockDevice9_EndStateBlock
,
2333 (void *)LockDevice9_SetClipStatus
,
2334 (void *)LockDevice9_GetClipStatus
,
2335 (void *)LockDevice9_GetTexture
,
2336 (void *)LockDevice9_SetTexture
,
2337 (void *)LockDevice9_GetTextureStageState
,
2338 (void *)LockDevice9_SetTextureStageState
,
2339 (void *)LockDevice9_GetSamplerState
,
2340 (void *)LockDevice9_SetSamplerState
,
2341 (void *)LockDevice9_ValidateDevice
,
2342 (void *)LockDevice9_SetPaletteEntries
,
2343 (void *)LockDevice9_GetPaletteEntries
,
2344 (void *)LockDevice9_SetCurrentTexturePalette
,
2345 (void *)LockDevice9_GetCurrentTexturePalette
,
2346 (void *)LockDevice9_SetScissorRect
,
2347 (void *)LockDevice9_GetScissorRect
,
2348 (void *)LockDevice9_SetSoftwareVertexProcessing
,
2349 (void *)LockDevice9_GetSoftwareVertexProcessing
,
2350 (void *)LockDevice9_SetNPatchMode
,
2351 (void *)LockDevice9_GetNPatchMode
,
2352 (void *)LockDevice9_DrawPrimitive
,
2353 (void *)LockDevice9_DrawIndexedPrimitive
,
2354 (void *)LockDevice9_DrawPrimitiveUP
,
2355 (void *)LockDevice9_DrawIndexedPrimitiveUP
,
2356 (void *)LockDevice9_ProcessVertices
,
2357 (void *)LockDevice9_CreateVertexDeclaration
,
2358 (void *)LockDevice9_SetVertexDeclaration
,
2359 (void *)LockDevice9_GetVertexDeclaration
,
2360 (void *)LockDevice9_SetFVF
,
2361 (void *)LockDevice9_GetFVF
,
2362 (void *)LockDevice9_CreateVertexShader
,
2363 (void *)LockDevice9_SetVertexShader
,
2364 (void *)LockDevice9_GetVertexShader
,
2365 (void *)LockDevice9_SetVertexShaderConstantF
,
2366 (void *)LockDevice9_GetVertexShaderConstantF
,
2367 (void *)LockDevice9_SetVertexShaderConstantI
,
2368 (void *)LockDevice9_GetVertexShaderConstantI
,
2369 (void *)LockDevice9_SetVertexShaderConstantB
,
2370 (void *)LockDevice9_GetVertexShaderConstantB
,
2371 (void *)LockDevice9_SetStreamSource
,
2372 (void *)LockDevice9_GetStreamSource
,
2373 (void *)LockDevice9_SetStreamSourceFreq
,
2374 (void *)LockDevice9_GetStreamSourceFreq
,
2375 (void *)LockDevice9_SetIndices
,
2376 (void *)LockDevice9_GetIndices
,
2377 (void *)LockDevice9_CreatePixelShader
,
2378 (void *)LockDevice9_SetPixelShader
,
2379 (void *)LockDevice9_GetPixelShader
,
2380 (void *)LockDevice9_SetPixelShaderConstantF
,
2381 (void *)LockDevice9_GetPixelShaderConstantF
,
2382 (void *)LockDevice9_SetPixelShaderConstantI
,
2383 (void *)LockDevice9_GetPixelShaderConstantI
,
2384 (void *)LockDevice9_SetPixelShaderConstantB
,
2385 (void *)LockDevice9_GetPixelShaderConstantB
,
2386 (void *)LockDevice9_DrawRectPatch
,
2387 (void *)LockDevice9_DrawTriPatch
,
2388 (void *)LockDevice9_DeletePatch
,
2389 (void *)LockDevice9_CreateQuery
,
2390 (void *)LockDevice9Ex_SetConvolutionMonoKernel
,
2391 (void *)LockDevice9Ex_ComposeRects
,
2392 (void *)LockDevice9Ex_PresentEx
,
2393 (void *)LockDevice9Ex_GetGPUThreadPriority
,
2394 (void *)LockDevice9Ex_SetGPUThreadPriority
,
2395 (void *)LockDevice9Ex_WaitForVBlank
,
2396 (void *)LockDevice9Ex_CheckResourceResidency
,
2397 (void *)LockDevice9Ex_SetMaximumFrameLatency
,
2398 (void *)LockDevice9Ex_GetMaximumFrameLatency
,
2399 (void *)LockDevice9Ex_CheckDeviceState
,
2400 (void *)LockDevice9Ex_CreateRenderTargetEx
,
2401 (void *)LockDevice9Ex_CreateOffscreenPlainSurfaceEx
,
2402 (void *)LockDevice9Ex_CreateDepthStencilSurfaceEx
,
2403 (void *)LockDevice9Ex_ResetEx
,
2404 (void *)LockDevice9Ex_GetDisplayModeEx
2407 static HRESULT WINAPI
2408 LockDevice9Video_GetContentProtectionCaps( struct NineDevice9Video
*This
,
2409 const GUID
*pCryptoType
,
2410 const GUID
*pDecodeProfile
,
2411 D3DCONTENTPROTECTIONCAPS
*pCaps
)
2414 pipe_mutex_lock(d3dlock_global
);
2415 r
= NineDevice9Video_GetContentProtectionCaps(This
, pCryptoType
, pDecodeProfile
, pCaps
);
2416 pipe_mutex_unlock(d3dlock_global
);
2420 static HRESULT WINAPI
2421 LockDevice9Video_CreateAuthenticatedChannel( struct NineDevice9Video
*This
,
2422 D3DAUTHENTICATEDCHANNELTYPE ChannelType
,
2423 IDirect3DAuthenticatedChannel9
**ppAuthenticatedChannel
,
2424 HANDLE
*pChannelHandle
)
2427 pipe_mutex_lock(d3dlock_global
);
2428 r
= NineDevice9Video_CreateAuthenticatedChannel(This
, ChannelType
, ppAuthenticatedChannel
, pChannelHandle
);
2429 pipe_mutex_unlock(d3dlock_global
);
2433 static HRESULT WINAPI
2434 LockDevice9Video_CreateCryptoSession( struct NineDevice9Video
*This
,
2435 const GUID
*pCryptoType
,
2436 const GUID
*pDecodeProfile
,
2437 IDirect3DCryptoSession9
**ppCryptoSession
,
2438 HANDLE
*pCryptoHandle
)
2441 pipe_mutex_lock(d3dlock_global
);
2442 r
= NineDevice9Video_CreateCryptoSession(This
, pCryptoType
, pDecodeProfile
, ppCryptoSession
, pCryptoHandle
);
2443 pipe_mutex_unlock(d3dlock_global
);
2447 IDirect3DDevice9VideoVtbl LockDevice9Video_vtable
= {
2448 (void *)NineUnknown_QueryInterface
,
2449 (void *)NineUnknown_AddRef
,
2450 (void *)NineUnknown_Release
,
2451 (void *)LockDevice9Video_GetContentProtectionCaps
,
2452 (void *)LockDevice9Video_CreateAuthenticatedChannel
,
2453 (void *)LockDevice9Video_CreateCryptoSession
2456 static HRESULT WINAPI
2457 LockIndexBuffer9_Lock( struct NineIndexBuffer9
*This
,
2464 pipe_mutex_lock(d3dlock_global
);
2465 r
= NineIndexBuffer9_Lock(This
, OffsetToLock
, SizeToLock
, ppbData
, Flags
);
2466 pipe_mutex_unlock(d3dlock_global
);
2470 static HRESULT WINAPI
2471 LockIndexBuffer9_Unlock( struct NineIndexBuffer9
*This
)
2474 pipe_mutex_lock(d3dlock_global
);
2475 r
= NineIndexBuffer9_Unlock(This
);
2476 pipe_mutex_unlock(d3dlock_global
);
2481 static HRESULT WINAPI
2482 LockIndexBuffer9_GetDesc( struct NineIndexBuffer9
*This
,
2483 D3DINDEXBUFFER_DESC
*pDesc
)
2486 pipe_mutex_lock(d3dlock_global
);
2487 r
= NineIndexBuffer9_GetDesc(This
, pDesc
);
2488 pipe_mutex_unlock(d3dlock_global
);
2493 IDirect3DIndexBuffer9Vtbl LockIndexBuffer9_vtable
= {
2494 (void *)NineUnknown_QueryInterface
,
2495 (void *)NineUnknown_AddRef
,
2496 (void *)NineUnknown_Release
,
2497 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2498 (void *)LockResource9_SetPrivateData
,
2499 (void *)LockResource9_GetPrivateData
,
2500 (void *)LockResource9_FreePrivateData
,
2501 (void *)LockResource9_SetPriority
,
2502 (void *)LockResource9_GetPriority
,
2503 (void *)NineResource9_PreLoad
, /* nop */
2504 (void *)NineResource9_GetType
, /* immutable */
2505 (void *)LockIndexBuffer9_Lock
,
2506 (void *)LockIndexBuffer9_Unlock
,
2507 (void *)NineIndexBuffer9_GetDesc
/* immutable */
2511 static HRESULT WINAPI
2512 LockPixelShader9_GetDevice( struct NinePixelShader9
*This
,
2513 IDirect3DDevice9
**ppDevice
)
2516 pipe_mutex_lock(d3dlock_global
);
2517 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2518 pipe_mutex_unlock(d3dlock_global
);
2523 static HRESULT WINAPI
2524 LockPixelShader9_GetFunction( struct NinePixelShader9
*This
,
2529 pipe_mutex_lock(d3dlock_global
);
2530 r
= NinePixelShader9_GetFunction(This
, pData
, pSizeOfData
);
2531 pipe_mutex_unlock(d3dlock_global
);
2535 IDirect3DPixelShader9Vtbl LockPixelShader9_vtable
= {
2536 (void *)NineUnknown_QueryInterface
,
2537 (void *)NineUnknown_AddRef
,
2538 (void *)NineUnknown_Release
,
2539 (void *)NineUnknown_GetDevice
,
2540 (void *)LockPixelShader9_GetFunction
2544 static HRESULT WINAPI
2545 LockQuery9_GetDevice( struct NineQuery9
*This
,
2546 IDirect3DDevice9
**ppDevice
)
2549 pipe_mutex_lock(d3dlock_global
);
2550 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2551 pipe_mutex_unlock(d3dlock_global
);
2557 static D3DQUERYTYPE WINAPI
2558 LockQuery9_GetType( struct NineQuery9
*This
)
2561 pipe_mutex_lock(d3dlock_global
);
2562 r
= NineQuery9_GetType(This
);
2563 pipe_mutex_unlock(d3dlock_global
);
2570 LockQuery9_GetDataSize( struct NineQuery9
*This
)
2573 pipe_mutex_lock(d3dlock_global
);
2574 r
= NineQuery9_GetDataSize(This
);
2575 pipe_mutex_unlock(d3dlock_global
);
2580 static HRESULT WINAPI
2581 LockQuery9_Issue( struct NineQuery9
*This
,
2582 DWORD dwIssueFlags
)
2585 pipe_mutex_lock(d3dlock_global
);
2586 r
= NineQuery9_Issue(This
, dwIssueFlags
);
2587 pipe_mutex_unlock(d3dlock_global
);
2591 static HRESULT WINAPI
2592 LockQuery9_GetData( struct NineQuery9
*This
,
2595 DWORD dwGetDataFlags
)
2598 pipe_mutex_lock(d3dlock_global
);
2599 r
= NineQuery9_GetData(This
, pData
, dwSize
, dwGetDataFlags
);
2600 pipe_mutex_unlock(d3dlock_global
);
2604 IDirect3DQuery9Vtbl LockQuery9_vtable
= {
2605 (void *)NineUnknown_QueryInterface
,
2606 (void *)NineUnknown_AddRef
,
2607 (void *)NineUnknown_Release
,
2608 (void *)NineUnknown_GetDevice
, /* actually part of Query9 iface */
2609 (void *)NineQuery9_GetType
, /* immutable */
2610 (void *)NineQuery9_GetDataSize
, /* immutable */
2611 (void *)LockQuery9_Issue
,
2612 (void *)LockQuery9_GetData
2616 static HRESULT WINAPI
2617 LockStateBlock9_GetDevice( struct NineStateBlock9
*This
,
2618 IDirect3DDevice9
**ppDevice
)
2621 pipe_mutex_lock(d3dlock_global
);
2622 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2623 pipe_mutex_unlock(d3dlock_global
);
2628 static HRESULT WINAPI
2629 LockStateBlock9_Capture( struct NineStateBlock9
*This
)
2632 pipe_mutex_lock(d3dlock_global
);
2633 r
= NineStateBlock9_Capture(This
);
2634 pipe_mutex_unlock(d3dlock_global
);
2638 static HRESULT WINAPI
2639 LockStateBlock9_Apply( struct NineStateBlock9
*This
)
2642 pipe_mutex_lock(d3dlock_global
);
2643 r
= NineStateBlock9_Apply(This
);
2644 pipe_mutex_unlock(d3dlock_global
);
2648 IDirect3DStateBlock9Vtbl LockStateBlock9_vtable
= {
2649 (void *)NineUnknown_QueryInterface
,
2650 (void *)NineUnknown_AddRef
,
2651 (void *)NineUnknown_Release
,
2652 (void *)NineUnknown_GetDevice
, /* actually part of StateBlock9 iface */
2653 (void *)LockStateBlock9_Capture
,
2654 (void *)LockStateBlock9_Apply
2657 static HRESULT WINAPI
2658 LockSurface9_GetContainer( struct NineSurface9
*This
,
2660 void **ppContainer
)
2663 pipe_mutex_lock(d3dlock_global
);
2664 r
= NineSurface9_GetContainer(This
, riid
, ppContainer
);
2665 pipe_mutex_unlock(d3dlock_global
);
2670 static HRESULT WINAPI
2671 LockSurface9_GetDesc( struct NineSurface9
*This
,
2672 D3DSURFACE_DESC
*pDesc
)
2675 pipe_mutex_lock(d3dlock_global
);
2676 r
= NineSurface9_GetDesc(This
, pDesc
);
2677 pipe_mutex_unlock(d3dlock_global
);
2682 static HRESULT WINAPI
2683 LockSurface9_LockRect( struct NineSurface9
*This
,
2684 D3DLOCKED_RECT
*pLockedRect
,
2689 pipe_mutex_lock(d3dlock_global
);
2690 r
= NineSurface9_LockRect(This
, pLockedRect
, pRect
, Flags
);
2691 pipe_mutex_unlock(d3dlock_global
);
2695 static HRESULT WINAPI
2696 LockSurface9_UnlockRect( struct NineSurface9
*This
)
2699 pipe_mutex_lock(d3dlock_global
);
2700 r
= NineSurface9_UnlockRect(This
);
2701 pipe_mutex_unlock(d3dlock_global
);
2705 static HRESULT WINAPI
2706 LockSurface9_GetDC( struct NineSurface9
*This
,
2710 pipe_mutex_lock(d3dlock_global
);
2711 r
= NineSurface9_GetDC(This
, phdc
);
2712 pipe_mutex_unlock(d3dlock_global
);
2716 static HRESULT WINAPI
2717 LockSurface9_ReleaseDC( struct NineSurface9
*This
,
2721 pipe_mutex_lock(d3dlock_global
);
2722 r
= NineSurface9_ReleaseDC(This
, hdc
);
2723 pipe_mutex_unlock(d3dlock_global
);
2727 IDirect3DSurface9Vtbl LockSurface9_vtable
= {
2728 (void *)NineUnknown_QueryInterface
,
2729 (void *)NineUnknown_AddRef
,
2730 (void *)NineUnknown_Release
,
2731 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2732 (void *)LockResource9_SetPrivateData
,
2733 (void *)LockResource9_GetPrivateData
,
2734 (void *)LockResource9_FreePrivateData
,
2735 (void *)LockResource9_SetPriority
,
2736 (void *)LockResource9_GetPriority
,
2737 (void *)NineResource9_PreLoad
, /* nop */
2738 (void *)NineResource9_GetType
, /* immutable */
2739 (void *)LockSurface9_GetContainer
,
2740 (void *)NineSurface9_GetDesc
, /* immutable */
2741 (void *)LockSurface9_LockRect
,
2742 (void *)LockSurface9_UnlockRect
,
2743 (void *)LockSurface9_GetDC
,
2744 (void *)LockSurface9_ReleaseDC
2747 static HRESULT WINAPI
2748 LockSwapChain9_Present( struct NineSwapChain9
*This
,
2749 const RECT
*pSourceRect
,
2750 const RECT
*pDestRect
,
2751 HWND hDestWindowOverride
,
2752 const RGNDATA
*pDirtyRegion
,
2756 pipe_mutex_lock(d3dlock_global
);
2757 r
= NineSwapChain9_Present(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
, dwFlags
);
2758 pipe_mutex_unlock(d3dlock_global
);
2762 static HRESULT WINAPI
2763 LockSwapChain9_GetFrontBufferData( struct NineSwapChain9
*This
,
2764 IDirect3DSurface9
*pDestSurface
)
2767 pipe_mutex_lock(d3dlock_global
);
2768 r
= NineSwapChain9_GetFrontBufferData(This
, pDestSurface
);
2769 pipe_mutex_unlock(d3dlock_global
);
2773 static HRESULT WINAPI
2774 LockSwapChain9_GetBackBuffer( struct NineSwapChain9
*This
,
2776 D3DBACKBUFFER_TYPE Type
,
2777 IDirect3DSurface9
**ppBackBuffer
)
2780 pipe_mutex_lock(d3dlock_global
);
2781 r
= NineSwapChain9_GetBackBuffer(This
, iBackBuffer
, Type
, ppBackBuffer
);
2782 pipe_mutex_unlock(d3dlock_global
);
2786 static HRESULT WINAPI
2787 LockSwapChain9_GetRasterStatus( struct NineSwapChain9
*This
,
2788 D3DRASTER_STATUS
*pRasterStatus
)
2791 pipe_mutex_lock(d3dlock_global
);
2792 r
= NineSwapChain9_GetRasterStatus(This
, pRasterStatus
);
2793 pipe_mutex_unlock(d3dlock_global
);
2797 static HRESULT WINAPI
2798 LockSwapChain9_GetDisplayMode( struct NineSwapChain9
*This
,
2799 D3DDISPLAYMODE
*pMode
)
2802 pipe_mutex_lock(d3dlock_global
);
2803 r
= NineSwapChain9_GetDisplayMode(This
, pMode
);
2804 pipe_mutex_unlock(d3dlock_global
);
2809 static HRESULT WINAPI
2810 LockSwapChain9_GetDevice( struct NineSwapChain9
*This
,
2811 IDirect3DDevice9
**ppDevice
)
2814 pipe_mutex_lock(d3dlock_global
);
2815 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2816 pipe_mutex_unlock(d3dlock_global
);
2821 static HRESULT WINAPI
2822 LockSwapChain9_GetPresentParameters( struct NineSwapChain9
*This
,
2823 D3DPRESENT_PARAMETERS
*pPresentationParameters
)
2826 pipe_mutex_lock(d3dlock_global
);
2827 r
= NineSwapChain9_GetPresentParameters(This
, pPresentationParameters
);
2828 pipe_mutex_unlock(d3dlock_global
);
2832 IDirect3DSwapChain9Vtbl LockSwapChain9_vtable
= {
2833 (void *)NineUnknown_QueryInterface
,
2834 (void *)NineUnknown_AddRef
,
2835 (void *)NineUnknown_Release
,
2836 (void *)LockSwapChain9_Present
,
2837 (void *)LockSwapChain9_GetFrontBufferData
,
2838 (void *)LockSwapChain9_GetBackBuffer
,
2839 (void *)LockSwapChain9_GetRasterStatus
,
2840 (void *)LockSwapChain9_GetDisplayMode
,
2841 (void *)NineUnknown_GetDevice
, /* actually part of SwapChain9 iface */
2842 (void *)LockSwapChain9_GetPresentParameters
2845 static HRESULT WINAPI
2846 LockSwapChain9Ex_GetLastPresentCount( struct NineSwapChain9Ex
*This
,
2847 UINT
*pLastPresentCount
)
2850 pipe_mutex_lock(d3dlock_global
);
2851 r
= NineSwapChain9Ex_GetLastPresentCount(This
, pLastPresentCount
);
2852 pipe_mutex_unlock(d3dlock_global
);
2856 static HRESULT WINAPI
2857 LockSwapChain9Ex_GetPresentStats( struct NineSwapChain9Ex
*This
,
2858 D3DPRESENTSTATS
*pPresentationStatistics
)
2861 pipe_mutex_lock(d3dlock_global
);
2862 r
= NineSwapChain9Ex_GetPresentStats(This
, pPresentationStatistics
);
2863 pipe_mutex_unlock(d3dlock_global
);
2867 static HRESULT WINAPI
2868 LockSwapChain9Ex_GetDisplayModeEx( struct NineSwapChain9Ex
*This
,
2869 D3DDISPLAYMODEEX
*pMode
,
2870 D3DDISPLAYROTATION
*pRotation
)
2873 pipe_mutex_lock(d3dlock_global
);
2874 r
= NineSwapChain9Ex_GetDisplayModeEx(This
, pMode
, pRotation
);
2875 pipe_mutex_unlock(d3dlock_global
);
2879 IDirect3DSwapChain9ExVtbl LockSwapChain9Ex_vtable
= {
2880 (void *)NineUnknown_QueryInterface
,
2881 (void *)NineUnknown_AddRef
,
2882 (void *)NineUnknown_Release
,
2883 (void *)LockSwapChain9_Present
,
2884 (void *)LockSwapChain9_GetFrontBufferData
,
2885 (void *)LockSwapChain9_GetBackBuffer
,
2886 (void *)LockSwapChain9_GetRasterStatus
,
2887 (void *)LockSwapChain9_GetDisplayMode
,
2888 (void *)NineUnknown_GetDevice
, /* actually part of NineSwapChain9 iface */
2889 (void *)LockSwapChain9_GetPresentParameters
,
2890 (void *)LockSwapChain9Ex_GetLastPresentCount
,
2891 (void *)LockSwapChain9Ex_GetPresentStats
,
2892 (void *)LockSwapChain9Ex_GetDisplayModeEx
2896 static HRESULT WINAPI
2897 LockTexture9_GetLevelDesc( struct NineTexture9
*This
,
2899 D3DSURFACE_DESC
*pDesc
)
2902 pipe_mutex_lock(d3dlock_global
);
2903 r
= NineTexture9_GetLevelDesc(This
, Level
, pDesc
);
2904 pipe_mutex_unlock(d3dlock_global
);
2910 static HRESULT WINAPI
2911 LockTexture9_GetSurfaceLevel( struct NineTexture9
*This
,
2913 IDirect3DSurface9
**ppSurfaceLevel
)
2916 pipe_mutex_lock(d3dlock_global
);
2917 r
= NineTexture9_GetSurfaceLevel(This
, Level
, ppSurfaceLevel
);
2918 pipe_mutex_unlock(d3dlock_global
);
2923 static HRESULT WINAPI
2924 LockTexture9_LockRect( struct NineTexture9
*This
,
2926 D3DLOCKED_RECT
*pLockedRect
,
2931 pipe_mutex_lock(d3dlock_global
);
2932 r
= NineTexture9_LockRect(This
, Level
, pLockedRect
, pRect
, Flags
);
2933 pipe_mutex_unlock(d3dlock_global
);
2937 static HRESULT WINAPI
2938 LockTexture9_UnlockRect( struct NineTexture9
*This
,
2942 pipe_mutex_lock(d3dlock_global
);
2943 r
= NineTexture9_UnlockRect(This
, Level
);
2944 pipe_mutex_unlock(d3dlock_global
);
2948 static HRESULT WINAPI
2949 LockTexture9_AddDirtyRect( struct NineTexture9
*This
,
2950 const RECT
*pDirtyRect
)
2953 pipe_mutex_lock(d3dlock_global
);
2954 r
= NineTexture9_AddDirtyRect(This
, pDirtyRect
);
2955 pipe_mutex_unlock(d3dlock_global
);
2959 IDirect3DTexture9Vtbl LockTexture9_vtable
= {
2960 (void *)NineUnknown_QueryInterface
,
2961 (void *)NineUnknown_AddRef
,
2962 (void *)NineUnknown_Release
,
2963 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2964 (void *)LockResource9_SetPrivateData
,
2965 (void *)LockResource9_GetPrivateData
,
2966 (void *)LockResource9_FreePrivateData
,
2967 (void *)LockResource9_SetPriority
,
2968 (void *)LockResource9_GetPriority
,
2969 (void *)LockBaseTexture9_PreLoad
,
2970 (void *)NineResource9_GetType
, /* immutable */
2971 (void *)LockBaseTexture9_SetLOD
,
2972 (void *)LockBaseTexture9_GetLOD
,
2973 (void *)LockBaseTexture9_GetLevelCount
,
2974 (void *)LockBaseTexture9_SetAutoGenFilterType
,
2975 (void *)LockBaseTexture9_GetAutoGenFilterType
,
2976 (void *)LockBaseTexture9_GenerateMipSubLevels
,
2977 (void *)NineTexture9_GetLevelDesc
, /* immutable */
2978 (void *)NineTexture9_GetSurfaceLevel
, /* AddRef */
2979 (void *)LockTexture9_LockRect
,
2980 (void *)LockTexture9_UnlockRect
,
2981 (void *)LockTexture9_AddDirtyRect
2984 static HRESULT WINAPI
2985 LockVertexBuffer9_Lock( struct NineVertexBuffer9
*This
,
2992 pipe_mutex_lock(d3dlock_global
);
2993 r
= NineVertexBuffer9_Lock(This
, OffsetToLock
, SizeToLock
, ppbData
, Flags
);
2994 pipe_mutex_unlock(d3dlock_global
);
2998 static HRESULT WINAPI
2999 LockVertexBuffer9_Unlock( struct NineVertexBuffer9
*This
)
3002 pipe_mutex_lock(d3dlock_global
);
3003 r
= NineVertexBuffer9_Unlock(This
);
3004 pipe_mutex_unlock(d3dlock_global
);
3009 static HRESULT WINAPI
3010 LockVertexBuffer9_GetDesc( struct NineVertexBuffer9
*This
,
3011 D3DVERTEXBUFFER_DESC
*pDesc
)
3014 pipe_mutex_lock(d3dlock_global
);
3015 r
= NineVertexBuffer9_GetDesc(This
, pDesc
);
3016 pipe_mutex_unlock(d3dlock_global
);
3021 IDirect3DVertexBuffer9Vtbl LockVertexBuffer9_vtable
= {
3022 (void *)NineUnknown_QueryInterface
,
3023 (void *)NineUnknown_AddRef
,
3024 (void *)NineUnknown_Release
,
3025 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
3026 (void *)LockResource9_SetPrivateData
,
3027 (void *)LockResource9_GetPrivateData
,
3028 (void *)LockResource9_FreePrivateData
,
3029 (void *)LockResource9_SetPriority
,
3030 (void *)LockResource9_GetPriority
,
3031 (void *)NineResource9_PreLoad
, /* nop */
3032 (void *)NineResource9_GetType
, /* immutable */
3033 (void *)LockVertexBuffer9_Lock
,
3034 (void *)LockVertexBuffer9_Unlock
,
3035 (void *)NineVertexBuffer9_GetDesc
/* immutable */
3039 static HRESULT WINAPI
3040 LockVertexDeclaration9_GetDevice( struct NineVertexDeclaration9
*This
,
3041 IDirect3DDevice9
**ppDevice
)
3044 pipe_mutex_lock(d3dlock_global
);
3045 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3046 pipe_mutex_unlock(d3dlock_global
);
3051 static HRESULT WINAPI
3052 LockVertexDeclaration9_GetDeclaration( struct NineVertexDeclaration9
*This
,
3053 D3DVERTEXELEMENT9
*pElement
,
3054 UINT
*pNumElements
)
3057 pipe_mutex_lock(d3dlock_global
);
3058 r
= NineVertexDeclaration9_GetDeclaration(This
, pElement
, pNumElements
);
3059 pipe_mutex_unlock(d3dlock_global
);
3063 IDirect3DVertexDeclaration9Vtbl LockVertexDeclaration9_vtable
= {
3064 (void *)NineUnknown_QueryInterface
,
3065 (void *)NineUnknown_AddRef
,
3066 (void *)NineUnknown_Release
,
3067 (void *)NineUnknown_GetDevice
, /* actually part of VertexDecl9 iface */
3068 (void *)LockVertexDeclaration9_GetDeclaration
3072 static HRESULT WINAPI
3073 LockVertexShader9_GetDevice( struct NineVertexShader9
*This
,
3074 IDirect3DDevice9
**ppDevice
)
3077 pipe_mutex_lock(d3dlock_global
);
3078 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3079 pipe_mutex_unlock(d3dlock_global
);
3084 static HRESULT WINAPI
3085 LockVertexShader9_GetFunction( struct NineVertexShader9
*This
,
3090 pipe_mutex_lock(d3dlock_global
);
3091 r
= NineVertexShader9_GetFunction(This
, pData
, pSizeOfData
);
3092 pipe_mutex_unlock(d3dlock_global
);
3096 IDirect3DVertexShader9Vtbl LockVertexShader9_vtable
= {
3097 (void *)NineUnknown_QueryInterface
,
3098 (void *)NineUnknown_AddRef
,
3099 (void *)NineUnknown_Release
,
3100 (void *)NineUnknown_GetDevice
,
3101 (void *)LockVertexShader9_GetFunction
3105 static HRESULT WINAPI
3106 LockVolume9_GetDevice( struct NineVolume9
*This
,
3107 IDirect3DDevice9
**ppDevice
)
3110 pipe_mutex_lock(d3dlock_global
);
3111 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3112 pipe_mutex_unlock(d3dlock_global
);
3117 static HRESULT WINAPI
3118 LockVolume9_SetPrivateData( struct NineVolume9
*This
,
3125 pipe_mutex_lock(d3dlock_global
);
3126 r
= NineVolume9_SetPrivateData(This
, refguid
, pData
, SizeOfData
, Flags
);
3127 pipe_mutex_unlock(d3dlock_global
);
3131 static HRESULT WINAPI
3132 LockVolume9_GetPrivateData( struct NineVolume9
*This
,
3135 DWORD
*pSizeOfData
)
3138 pipe_mutex_lock(d3dlock_global
);
3139 r
= NineVolume9_GetPrivateData(This
, refguid
, pData
, pSizeOfData
);
3140 pipe_mutex_unlock(d3dlock_global
);
3144 static HRESULT WINAPI
3145 LockVolume9_FreePrivateData( struct NineVolume9
*This
,
3149 pipe_mutex_lock(d3dlock_global
);
3150 r
= NineVolume9_FreePrivateData(This
, refguid
);
3151 pipe_mutex_unlock(d3dlock_global
);
3155 static HRESULT WINAPI
3156 LockVolume9_GetContainer( struct NineVolume9
*This
,
3158 void **ppContainer
)
3161 pipe_mutex_lock(d3dlock_global
);
3162 r
= NineVolume9_GetContainer(This
, riid
, ppContainer
);
3163 pipe_mutex_unlock(d3dlock_global
);
3168 static HRESULT WINAPI
3169 LockVolume9_GetDesc( struct NineVolume9
*This
,
3170 D3DVOLUME_DESC
*pDesc
)
3173 pipe_mutex_lock(d3dlock_global
);
3174 r
= NineVolume9_GetDesc(This
, pDesc
);
3175 pipe_mutex_unlock(d3dlock_global
);
3180 static HRESULT WINAPI
3181 LockVolume9_LockBox( struct NineVolume9
*This
,
3182 D3DLOCKED_BOX
*pLockedVolume
,
3187 pipe_mutex_lock(d3dlock_global
);
3188 r
= NineVolume9_LockBox(This
, pLockedVolume
, pBox
, Flags
);
3189 pipe_mutex_unlock(d3dlock_global
);
3193 static HRESULT WINAPI
3194 LockVolume9_UnlockBox( struct NineVolume9
*This
)
3197 pipe_mutex_lock(d3dlock_global
);
3198 r
= NineVolume9_UnlockBox(This
);
3199 pipe_mutex_unlock(d3dlock_global
);
3203 IDirect3DVolume9Vtbl LockVolume9_vtable
= {
3204 (void *)NineUnknown_QueryInterface
,
3205 (void *)NineUnknown_AddRef
,
3206 (void *)NineUnknown_Release
,
3207 (void *)NineUnknown_GetDevice
, /* actually part of Volume9 iface */
3208 (void *)LockVolume9_SetPrivateData
,
3209 (void *)LockVolume9_GetPrivateData
,
3210 (void *)LockVolume9_FreePrivateData
,
3211 (void *)LockVolume9_GetContainer
,
3212 (void *)NineVolume9_GetDesc
, /* immutable */
3213 (void *)LockVolume9_LockBox
,
3214 (void *)LockVolume9_UnlockBox
3218 static HRESULT WINAPI
3219 LockVolumeTexture9_GetLevelDesc( struct NineVolumeTexture9
*This
,
3221 D3DVOLUME_DESC
*pDesc
)
3224 pipe_mutex_lock(d3dlock_global
);
3225 r
= NineVolumeTexture9_GetLevelDesc(This
, Level
, pDesc
);
3226 pipe_mutex_unlock(d3dlock_global
);
3232 static HRESULT WINAPI
3233 LockVolumeTexture9_GetVolumeLevel( struct NineVolumeTexture9
*This
,
3235 IDirect3DVolume9
**ppVolumeLevel
)
3238 pipe_mutex_lock(d3dlock_global
);
3239 r
= NineVolumeTexture9_GetVolumeLevel(This
, Level
, ppVolumeLevel
);
3240 pipe_mutex_unlock(d3dlock_global
);
3245 static HRESULT WINAPI
3246 LockVolumeTexture9_LockBox( struct NineVolumeTexture9
*This
,
3248 D3DLOCKED_BOX
*pLockedVolume
,
3253 pipe_mutex_lock(d3dlock_global
);
3254 r
= NineVolumeTexture9_LockBox(This
, Level
, pLockedVolume
, pBox
, Flags
);
3255 pipe_mutex_unlock(d3dlock_global
);
3259 static HRESULT WINAPI
3260 LockVolumeTexture9_UnlockBox( struct NineVolumeTexture9
*This
,
3264 pipe_mutex_lock(d3dlock_global
);
3265 r
= NineVolumeTexture9_UnlockBox(This
, Level
);
3266 pipe_mutex_unlock(d3dlock_global
);
3270 static HRESULT WINAPI
3271 LockVolumeTexture9_AddDirtyBox( struct NineVolumeTexture9
*This
,
3272 const D3DBOX
*pDirtyBox
)
3275 pipe_mutex_lock(d3dlock_global
);
3276 r
= NineVolumeTexture9_AddDirtyBox(This
, pDirtyBox
);
3277 pipe_mutex_unlock(d3dlock_global
);
3281 IDirect3DVolumeTexture9Vtbl LockVolumeTexture9_vtable
= {
3282 (void *)NineUnknown_QueryInterface
,
3283 (void *)NineUnknown_AddRef
,
3284 (void *)NineUnknown_Release
,
3285 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
3286 (void *)LockResource9_SetPrivateData
,
3287 (void *)LockResource9_GetPrivateData
,
3288 (void *)LockResource9_FreePrivateData
,
3289 (void *)LockResource9_SetPriority
,
3290 (void *)LockResource9_GetPriority
,
3291 (void *)LockBaseTexture9_PreLoad
,
3292 (void *)NineResource9_GetType
, /* immutable */
3293 (void *)LockBaseTexture9_SetLOD
,
3294 (void *)LockBaseTexture9_GetLOD
,
3295 (void *)LockBaseTexture9_GetLevelCount
,
3296 (void *)LockBaseTexture9_SetAutoGenFilterType
,
3297 (void *)LockBaseTexture9_GetAutoGenFilterType
,
3298 (void *)LockBaseTexture9_GenerateMipSubLevels
,
3299 (void *)NineVolumeTexture9_GetLevelDesc
, /* immutable */
3300 (void *)NineVolumeTexture9_GetVolumeLevel
, /* AddRef */
3301 (void *)LockVolumeTexture9_LockBox
,
3302 (void *)LockVolumeTexture9_UnlockBox
,
3303 (void *)LockVolumeTexture9_AddDirtyBox
3306 ID3DAdapter9Vtbl LockAdapter9_vtable
= { /* not used */