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"
46 #include "nine_lock.h"
48 #include "os/os_thread.h"
50 /* Global mutex as described by MSDN */
51 static mtx_t d3dlock_global
= _MTX_INITIALIZER_NP
;
56 mtx_lock(&d3dlock_global
);
60 NineUnlockGlobalMutex()
62 mtx_unlock(&d3dlock_global
);
65 static HRESULT NINE_WINAPI
66 LockAuthenticatedChannel9_GetCertificateSize( struct NineAuthenticatedChannel9
*This
,
67 UINT
*pCertificateSize
)
70 mtx_lock(&d3dlock_global
);
71 r
= NineAuthenticatedChannel9_GetCertificateSize(This
, pCertificateSize
);
72 mtx_unlock(&d3dlock_global
);
76 static HRESULT NINE_WINAPI
77 LockAuthenticatedChannel9_GetCertificate( struct NineAuthenticatedChannel9
*This
,
82 mtx_lock(&d3dlock_global
);
83 r
= NineAuthenticatedChannel9_GetCertificate(This
, CertifacteSize
, ppCertificate
);
84 mtx_unlock(&d3dlock_global
);
88 static HRESULT NINE_WINAPI
89 LockAuthenticatedChannel9_NegotiateKeyExchange( struct NineAuthenticatedChannel9
*This
,
94 mtx_lock(&d3dlock_global
);
95 r
= NineAuthenticatedChannel9_NegotiateKeyExchange(This
, DataSize
, pData
);
96 mtx_unlock(&d3dlock_global
);
100 static HRESULT NINE_WINAPI
101 LockAuthenticatedChannel9_Query( struct NineAuthenticatedChannel9
*This
,
108 mtx_lock(&d3dlock_global
);
109 r
= NineAuthenticatedChannel9_Query(This
, InputSize
, pInput
, OutputSize
, pOutput
);
110 mtx_unlock(&d3dlock_global
);
114 static HRESULT NINE_WINAPI
115 LockAuthenticatedChannel9_Configure( struct NineAuthenticatedChannel9
*This
,
118 D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT
*pOutput
)
121 mtx_lock(&d3dlock_global
);
122 r
= NineAuthenticatedChannel9_Configure(This
, InputSize
, pInput
, pOutput
);
123 mtx_unlock(&d3dlock_global
);
127 IDirect3DAuthenticatedChannel9Vtbl LockAuthenticatedChannel9_vtable
= {
128 (void *)NineUnknown_QueryInterface
,
129 (void *)NineUnknown_AddRef
,
130 (void *)NineUnknown_ReleaseWithDtorLock
,
131 (void *)LockAuthenticatedChannel9_GetCertificateSize
,
132 (void *)LockAuthenticatedChannel9_GetCertificate
,
133 (void *)LockAuthenticatedChannel9_NegotiateKeyExchange
,
134 (void *)LockAuthenticatedChannel9_Query
,
135 (void *)LockAuthenticatedChannel9_Configure
138 static HRESULT NINE_WINAPI
139 LockUnknown_SetPrivateData( struct NineUnknown
*This
,
146 mtx_lock(&d3dlock_global
);
147 r
= NineUnknown_SetPrivateData(This
, refguid
, pData
, SizeOfData
, Flags
);
148 mtx_unlock(&d3dlock_global
);
152 static HRESULT NINE_WINAPI
153 LockUnknown_GetPrivateData( struct NineUnknown
*This
,
159 mtx_lock(&d3dlock_global
);
160 r
= NineUnknown_GetPrivateData(This
, refguid
, pData
, pSizeOfData
);
161 mtx_unlock(&d3dlock_global
);
165 static HRESULT NINE_WINAPI
166 LockUnknown_FreePrivateData( struct NineUnknown
*This
,
170 mtx_lock(&d3dlock_global
);
171 r
= NineUnknown_FreePrivateData(This
, refguid
);
172 mtx_unlock(&d3dlock_global
);
177 static HRESULT NINE_WINAPI
178 LockResource9_GetDevice( struct NineResource9
*This
,
179 IDirect3DDevice9
**ppDevice
)
182 mtx_lock(&d3dlock_global
);
183 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
184 mtx_unlock(&d3dlock_global
);
189 static DWORD NINE_WINAPI
190 LockResource9_SetPriority( struct NineResource9
*This
,
194 mtx_lock(&d3dlock_global
);
195 r
= NineResource9_SetPriority(This
, PriorityNew
);
196 mtx_unlock(&d3dlock_global
);
200 static DWORD NINE_WINAPI
201 LockResource9_GetPriority( struct NineResource9
*This
)
204 mtx_lock(&d3dlock_global
);
205 r
= NineResource9_GetPriority(This
);
206 mtx_unlock(&d3dlock_global
);
211 static void NINE_WINAPI
212 LockResource9_PreLoad( struct NineResource9
*This
)
214 mtx_lock(&d3dlock_global
);
215 NineResource9_PreLoad(This
);
216 mtx_unlock(&d3dlock_global
);
221 static D3DRESOURCETYPE NINE_WINAPI
222 LockResource9_GetType( struct NineResource9
*This
)
225 mtx_lock(&d3dlock_global
);
226 r
= NineResource9_GetType(This
);
227 mtx_unlock(&d3dlock_global
);
232 static DWORD NINE_WINAPI
233 LockBaseTexture9_SetLOD( struct NineBaseTexture9
*This
,
237 mtx_lock(&d3dlock_global
);
238 r
= NineBaseTexture9_SetLOD(This
, LODNew
);
239 mtx_unlock(&d3dlock_global
);
243 static DWORD NINE_WINAPI
244 LockBaseTexture9_GetLOD( struct NineBaseTexture9
*This
)
247 mtx_lock(&d3dlock_global
);
248 r
= NineBaseTexture9_GetLOD(This
);
249 mtx_unlock(&d3dlock_global
);
253 static DWORD NINE_WINAPI
254 LockBaseTexture9_GetLevelCount( struct NineBaseTexture9
*This
)
257 mtx_lock(&d3dlock_global
);
258 r
= NineBaseTexture9_GetLevelCount(This
);
259 mtx_unlock(&d3dlock_global
);
263 static HRESULT NINE_WINAPI
264 LockBaseTexture9_SetAutoGenFilterType( struct NineBaseTexture9
*This
,
265 D3DTEXTUREFILTERTYPE FilterType
)
268 mtx_lock(&d3dlock_global
);
269 r
= NineBaseTexture9_SetAutoGenFilterType(This
, FilterType
);
270 mtx_unlock(&d3dlock_global
);
274 static D3DTEXTUREFILTERTYPE NINE_WINAPI
275 LockBaseTexture9_GetAutoGenFilterType( struct NineBaseTexture9
*This
)
277 D3DTEXTUREFILTERTYPE r
;
278 mtx_lock(&d3dlock_global
);
279 r
= NineBaseTexture9_GetAutoGenFilterType(This
);
280 mtx_unlock(&d3dlock_global
);
284 static void NINE_WINAPI
285 LockBaseTexture9_PreLoad( struct NineBaseTexture9
*This
)
287 mtx_lock(&d3dlock_global
);
288 NineBaseTexture9_PreLoad(This
);
289 mtx_unlock(&d3dlock_global
);
292 static void NINE_WINAPI
293 LockBaseTexture9_GenerateMipSubLevels( struct NineBaseTexture9
*This
)
295 mtx_lock(&d3dlock_global
);
296 NineBaseTexture9_GenerateMipSubLevels(This
);
297 mtx_unlock(&d3dlock_global
);
300 static HRESULT NINE_WINAPI
301 LockCryptoSession9_GetCertificateSize( struct NineCryptoSession9
*This
,
302 UINT
*pCertificateSize
)
305 mtx_lock(&d3dlock_global
);
306 r
= NineCryptoSession9_GetCertificateSize(This
, pCertificateSize
);
307 mtx_unlock(&d3dlock_global
);
311 static HRESULT NINE_WINAPI
312 LockCryptoSession9_GetCertificate( struct NineCryptoSession9
*This
,
314 BYTE
*ppCertificate
)
317 mtx_lock(&d3dlock_global
);
318 r
= NineCryptoSession9_GetCertificate(This
, CertifacteSize
, ppCertificate
);
319 mtx_unlock(&d3dlock_global
);
323 static HRESULT NINE_WINAPI
324 LockCryptoSession9_NegotiateKeyExchange( struct NineCryptoSession9
*This
,
329 mtx_lock(&d3dlock_global
);
330 r
= NineCryptoSession9_NegotiateKeyExchange(This
, DataSize
, pData
);
331 mtx_unlock(&d3dlock_global
);
335 static HRESULT NINE_WINAPI
336 LockCryptoSession9_EncryptionBlt( struct NineCryptoSession9
*This
,
337 IDirect3DSurface9
*pSrcSurface
,
338 IDirect3DSurface9
*pDstSurface
,
343 mtx_lock(&d3dlock_global
);
344 r
= NineCryptoSession9_EncryptionBlt(This
, pSrcSurface
, pDstSurface
, DstSurfaceSize
, pIV
);
345 mtx_unlock(&d3dlock_global
);
349 static HRESULT NINE_WINAPI
350 LockCryptoSession9_DecryptionBlt( struct NineCryptoSession9
*This
,
351 IDirect3DSurface9
*pSrcSurface
,
352 IDirect3DSurface9
*pDstSurface
,
354 D3DENCRYPTED_BLOCK_INFO
*pEncryptedBlockInfo
,
359 mtx_lock(&d3dlock_global
);
360 r
= NineCryptoSession9_DecryptionBlt(This
, pSrcSurface
, pDstSurface
, SrcSurfaceSize
, pEncryptedBlockInfo
, pContentKey
, pIV
);
361 mtx_unlock(&d3dlock_global
);
365 static HRESULT NINE_WINAPI
366 LockCryptoSession9_GetSurfacePitch( struct NineCryptoSession9
*This
,
367 IDirect3DSurface9
*pSrcSurface
,
368 UINT
*pSurfacePitch
)
371 mtx_lock(&d3dlock_global
);
372 r
= NineCryptoSession9_GetSurfacePitch(This
, pSrcSurface
, pSurfacePitch
);
373 mtx_unlock(&d3dlock_global
);
377 static HRESULT NINE_WINAPI
378 LockCryptoSession9_StartSessionKeyRefresh( struct NineCryptoSession9
*This
,
380 UINT RandomNumberSize
)
383 mtx_lock(&d3dlock_global
);
384 r
= NineCryptoSession9_StartSessionKeyRefresh(This
, pRandomNumber
, RandomNumberSize
);
385 mtx_unlock(&d3dlock_global
);
389 static HRESULT NINE_WINAPI
390 LockCryptoSession9_FinishSessionKeyRefresh( struct NineCryptoSession9
*This
)
393 mtx_lock(&d3dlock_global
);
394 r
= NineCryptoSession9_FinishSessionKeyRefresh(This
);
395 mtx_unlock(&d3dlock_global
);
399 static HRESULT NINE_WINAPI
400 LockCryptoSession9_GetEncryptionBltKey( struct NineCryptoSession9
*This
,
405 mtx_lock(&d3dlock_global
);
406 r
= NineCryptoSession9_GetEncryptionBltKey(This
, pReadbackKey
, KeySize
);
407 mtx_unlock(&d3dlock_global
);
411 IDirect3DCryptoSession9Vtbl LockCryptoSession9_vtable
= {
412 (void *)NineUnknown_QueryInterface
,
413 (void *)NineUnknown_AddRef
,
414 (void *)NineUnknown_ReleaseWithDtorLock
,
415 (void *)LockCryptoSession9_GetCertificateSize
,
416 (void *)LockCryptoSession9_GetCertificate
,
417 (void *)LockCryptoSession9_NegotiateKeyExchange
,
418 (void *)LockCryptoSession9_EncryptionBlt
,
419 (void *)LockCryptoSession9_DecryptionBlt
,
420 (void *)LockCryptoSession9_GetSurfacePitch
,
421 (void *)LockCryptoSession9_StartSessionKeyRefresh
,
422 (void *)LockCryptoSession9_FinishSessionKeyRefresh
,
423 (void *)LockCryptoSession9_GetEncryptionBltKey
427 static HRESULT NINE_WINAPI
428 LockCubeTexture9_GetLevelDesc( struct NineCubeTexture9
*This
,
430 D3DSURFACE_DESC
*pDesc
)
433 mtx_lock(&d3dlock_global
);
434 r
= NineCubeTexture9_GetLevelDesc(This
, Level
, pDesc
);
435 mtx_unlock(&d3dlock_global
);
441 static HRESULT NINE_WINAPI
442 LockCubeTexture9_GetCubeMapSurface( struct NineCubeTexture9
*This
,
443 D3DCUBEMAP_FACES FaceType
,
445 IDirect3DSurface9
**ppCubeMapSurface
)
448 mtx_lock(&d3dlock_global
);
449 r
= NineCubeTexture9_GetCubeMapSurface(This
, FaceType
, Level
, ppCubeMapSurface
);
450 mtx_unlock(&d3dlock_global
);
455 static HRESULT NINE_WINAPI
456 LockCubeTexture9_LockRect( struct NineCubeTexture9
*This
,
457 D3DCUBEMAP_FACES FaceType
,
459 D3DLOCKED_RECT
*pLockedRect
,
464 mtx_lock(&d3dlock_global
);
465 r
= NineCubeTexture9_LockRect(This
, FaceType
, Level
, pLockedRect
, pRect
, Flags
);
466 mtx_unlock(&d3dlock_global
);
470 static HRESULT NINE_WINAPI
471 LockCubeTexture9_UnlockRect( struct NineCubeTexture9
*This
,
472 D3DCUBEMAP_FACES FaceType
,
476 mtx_lock(&d3dlock_global
);
477 r
= NineCubeTexture9_UnlockRect(This
, FaceType
, Level
);
478 mtx_unlock(&d3dlock_global
);
482 static HRESULT NINE_WINAPI
483 LockCubeTexture9_AddDirtyRect( struct NineCubeTexture9
*This
,
484 D3DCUBEMAP_FACES FaceType
,
485 const RECT
*pDirtyRect
)
488 mtx_lock(&d3dlock_global
);
489 r
= NineCubeTexture9_AddDirtyRect(This
, FaceType
, pDirtyRect
);
490 mtx_unlock(&d3dlock_global
);
494 IDirect3DCubeTexture9Vtbl LockCubeTexture9_vtable
= {
495 (void *)NineUnknown_QueryInterface
,
496 (void *)NineUnknown_AddRef
,
497 (void *)NineUnknown_ReleaseWithDtorLock
,
498 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
499 (void *)LockUnknown_SetPrivateData
,
500 (void *)LockUnknown_GetPrivateData
,
501 (void *)LockUnknown_FreePrivateData
,
502 (void *)LockResource9_SetPriority
,
503 (void *)LockResource9_GetPriority
,
504 (void *)LockBaseTexture9_PreLoad
,
505 (void *)NineResource9_GetType
, /* immutable */
506 (void *)LockBaseTexture9_SetLOD
,
507 (void *)LockBaseTexture9_GetLOD
,
508 (void *)LockBaseTexture9_GetLevelCount
,
509 (void *)LockBaseTexture9_SetAutoGenFilterType
,
510 (void *)LockBaseTexture9_GetAutoGenFilterType
,
511 (void *)LockBaseTexture9_GenerateMipSubLevels
,
512 (void *)NineCubeTexture9_GetLevelDesc
, /* immutable */
513 (void *)NineCubeTexture9_GetCubeMapSurface
, /* AddRef */
514 (void *)LockCubeTexture9_LockRect
,
515 (void *)LockCubeTexture9_UnlockRect
,
516 (void *)LockCubeTexture9_AddDirtyRect
519 static HRESULT NINE_WINAPI
520 LockDevice9_TestCooperativeLevel( struct NineDevice9
*This
)
523 mtx_lock(&d3dlock_global
);
524 r
= NineDevice9_TestCooperativeLevel(This
);
525 mtx_unlock(&d3dlock_global
);
529 static UINT NINE_WINAPI
530 LockDevice9_GetAvailableTextureMem( struct NineDevice9
*This
)
533 mtx_lock(&d3dlock_global
);
534 r
= NineDevice9_GetAvailableTextureMem(This
);
535 mtx_unlock(&d3dlock_global
);
539 static HRESULT NINE_WINAPI
540 LockDevice9_EvictManagedResources( struct NineDevice9
*This
)
543 mtx_lock(&d3dlock_global
);
544 r
= NineDevice9_EvictManagedResources(This
);
545 mtx_unlock(&d3dlock_global
);
549 static HRESULT NINE_WINAPI
550 LockDevice9_GetDirect3D( struct NineDevice9
*This
,
551 IDirect3D9
**ppD3D9
)
554 mtx_lock(&d3dlock_global
);
555 r
= NineDevice9_GetDirect3D(This
, ppD3D9
);
556 mtx_unlock(&d3dlock_global
);
561 static HRESULT NINE_WINAPI
562 LockDevice9_GetDeviceCaps( struct NineDevice9
*This
,
566 mtx_lock(&d3dlock_global
);
567 r
= NineDevice9_GetDeviceCaps(This
, pCaps
);
568 mtx_unlock(&d3dlock_global
);
573 static HRESULT NINE_WINAPI
574 LockDevice9_GetDisplayMode( struct NineDevice9
*This
,
576 D3DDISPLAYMODE
*pMode
)
579 mtx_lock(&d3dlock_global
);
580 r
= NineDevice9_GetDisplayMode(This
, iSwapChain
, pMode
);
581 mtx_unlock(&d3dlock_global
);
586 static HRESULT NINE_WINAPI
587 LockDevice9_GetCreationParameters( struct NineDevice9
*This
,
588 D3DDEVICE_CREATION_PARAMETERS
*pParameters
)
591 mtx_lock(&d3dlock_global
);
592 r
= NineDevice9_GetCreationParameters(This
, pParameters
);
593 mtx_unlock(&d3dlock_global
);
598 static HRESULT NINE_WINAPI
599 LockDevice9_SetCursorProperties( struct NineDevice9
*This
,
602 IDirect3DSurface9
*pCursorBitmap
)
605 mtx_lock(&d3dlock_global
);
606 r
= NineDevice9_SetCursorProperties(This
, XHotSpot
, YHotSpot
, pCursorBitmap
);
607 mtx_unlock(&d3dlock_global
);
611 static void NINE_WINAPI
612 LockDevice9_SetCursorPosition( struct NineDevice9
*This
,
617 mtx_lock(&d3dlock_global
);
618 NineDevice9_SetCursorPosition(This
, X
, Y
, Flags
);
619 mtx_unlock(&d3dlock_global
);
622 static BOOL NINE_WINAPI
623 LockDevice9_ShowCursor( struct NineDevice9
*This
,
627 mtx_lock(&d3dlock_global
);
628 r
= NineDevice9_ShowCursor(This
, bShow
);
629 mtx_unlock(&d3dlock_global
);
633 static HRESULT NINE_WINAPI
634 LockDevice9_CreateAdditionalSwapChain( struct NineDevice9
*This
,
635 D3DPRESENT_PARAMETERS
*pPresentationParameters
,
636 IDirect3DSwapChain9
**pSwapChain
)
639 mtx_lock(&d3dlock_global
);
640 r
= NineDevice9_CreateAdditionalSwapChain(This
, pPresentationParameters
, pSwapChain
);
641 mtx_unlock(&d3dlock_global
);
645 static HRESULT NINE_WINAPI
646 LockDevice9_GetSwapChain( struct NineDevice9
*This
,
648 IDirect3DSwapChain9
**pSwapChain
)
651 mtx_lock(&d3dlock_global
);
652 r
= NineDevice9_GetSwapChain(This
, iSwapChain
, pSwapChain
);
653 mtx_unlock(&d3dlock_global
);
657 static UINT NINE_WINAPI
658 LockDevice9_GetNumberOfSwapChains( struct NineDevice9
*This
)
661 mtx_lock(&d3dlock_global
);
662 r
= NineDevice9_GetNumberOfSwapChains(This
);
663 mtx_unlock(&d3dlock_global
);
667 static HRESULT NINE_WINAPI
668 LockDevice9_Reset( struct NineDevice9
*This
,
669 D3DPRESENT_PARAMETERS
*pPresentationParameters
)
672 mtx_lock(&d3dlock_global
);
673 r
= NineDevice9_Reset(This
, pPresentationParameters
);
674 mtx_unlock(&d3dlock_global
);
678 static HRESULT NINE_WINAPI
679 LockDevice9_Present( struct NineDevice9
*This
,
680 const RECT
*pSourceRect
,
681 const RECT
*pDestRect
,
682 HWND hDestWindowOverride
,
683 const RGNDATA
*pDirtyRegion
)
686 mtx_lock(&d3dlock_global
);
687 r
= NineDevice9_Present(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
);
688 mtx_unlock(&d3dlock_global
);
692 static HRESULT NINE_WINAPI
693 LockDevice9_GetBackBuffer( struct NineDevice9
*This
,
696 D3DBACKBUFFER_TYPE Type
,
697 IDirect3DSurface9
**ppBackBuffer
)
700 mtx_lock(&d3dlock_global
);
701 r
= NineDevice9_GetBackBuffer(This
, iSwapChain
, iBackBuffer
, Type
, ppBackBuffer
);
702 mtx_unlock(&d3dlock_global
);
706 static HRESULT NINE_WINAPI
707 LockDevice9_GetRasterStatus( struct NineDevice9
*This
,
709 D3DRASTER_STATUS
*pRasterStatus
)
712 mtx_lock(&d3dlock_global
);
713 r
= NineDevice9_GetRasterStatus(This
, iSwapChain
, pRasterStatus
);
714 mtx_unlock(&d3dlock_global
);
718 static HRESULT NINE_WINAPI
719 LockDevice9_SetDialogBoxMode( struct NineDevice9
*This
,
720 BOOL bEnableDialogs
)
723 mtx_lock(&d3dlock_global
);
724 r
= NineDevice9_SetDialogBoxMode(This
, bEnableDialogs
);
725 mtx_unlock(&d3dlock_global
);
729 static void NINE_WINAPI
730 LockDevice9_SetGammaRamp( struct NineDevice9
*This
,
733 const D3DGAMMARAMP
*pRamp
)
735 mtx_lock(&d3dlock_global
);
736 NineDevice9_SetGammaRamp(This
, iSwapChain
, Flags
, pRamp
);
737 mtx_unlock(&d3dlock_global
);
740 static void NINE_WINAPI
741 LockDevice9_GetGammaRamp( struct NineDevice9
*This
,
743 D3DGAMMARAMP
*pRamp
)
745 mtx_lock(&d3dlock_global
);
746 NineDevice9_GetGammaRamp(This
, iSwapChain
, pRamp
);
747 mtx_unlock(&d3dlock_global
);
750 static HRESULT NINE_WINAPI
751 LockDevice9_CreateTexture( struct NineDevice9
*This
,
758 IDirect3DTexture9
**ppTexture
,
759 HANDLE
*pSharedHandle
)
762 mtx_lock(&d3dlock_global
);
763 r
= NineDevice9_CreateTexture(This
, Width
, Height
, Levels
, Usage
, Format
, Pool
, ppTexture
, pSharedHandle
);
764 mtx_unlock(&d3dlock_global
);
768 static HRESULT NINE_WINAPI
769 LockDevice9_CreateVolumeTexture( struct NineDevice9
*This
,
777 IDirect3DVolumeTexture9
**ppVolumeTexture
,
778 HANDLE
*pSharedHandle
)
781 mtx_lock(&d3dlock_global
);
782 r
= NineDevice9_CreateVolumeTexture(This
, Width
, Height
, Depth
, Levels
, Usage
, Format
, Pool
, ppVolumeTexture
, pSharedHandle
);
783 mtx_unlock(&d3dlock_global
);
787 static HRESULT NINE_WINAPI
788 LockDevice9_CreateCubeTexture( struct NineDevice9
*This
,
794 IDirect3DCubeTexture9
**ppCubeTexture
,
795 HANDLE
*pSharedHandle
)
798 mtx_lock(&d3dlock_global
);
799 r
= NineDevice9_CreateCubeTexture(This
, EdgeLength
, Levels
, Usage
, Format
, Pool
, ppCubeTexture
, pSharedHandle
);
800 mtx_unlock(&d3dlock_global
);
804 static HRESULT NINE_WINAPI
805 LockDevice9_CreateVertexBuffer( struct NineDevice9
*This
,
810 IDirect3DVertexBuffer9
**ppVertexBuffer
,
811 HANDLE
*pSharedHandle
)
814 mtx_lock(&d3dlock_global
);
815 r
= NineDevice9_CreateVertexBuffer(This
, Length
, Usage
, FVF
, Pool
, ppVertexBuffer
, pSharedHandle
);
816 mtx_unlock(&d3dlock_global
);
820 static HRESULT NINE_WINAPI
821 LockDevice9_CreateIndexBuffer( struct NineDevice9
*This
,
826 IDirect3DIndexBuffer9
**ppIndexBuffer
,
827 HANDLE
*pSharedHandle
)
830 mtx_lock(&d3dlock_global
);
831 r
= NineDevice9_CreateIndexBuffer(This
, Length
, Usage
, Format
, Pool
, ppIndexBuffer
, pSharedHandle
);
832 mtx_unlock(&d3dlock_global
);
836 static HRESULT NINE_WINAPI
837 LockDevice9_CreateRenderTarget( struct NineDevice9
*This
,
841 D3DMULTISAMPLE_TYPE MultiSample
,
842 DWORD MultisampleQuality
,
844 IDirect3DSurface9
**ppSurface
,
845 HANDLE
*pSharedHandle
)
848 mtx_lock(&d3dlock_global
);
849 r
= NineDevice9_CreateRenderTarget(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Lockable
, ppSurface
, pSharedHandle
);
850 mtx_unlock(&d3dlock_global
);
854 static HRESULT NINE_WINAPI
855 LockDevice9_CreateDepthStencilSurface( struct NineDevice9
*This
,
859 D3DMULTISAMPLE_TYPE MultiSample
,
860 DWORD MultisampleQuality
,
862 IDirect3DSurface9
**ppSurface
,
863 HANDLE
*pSharedHandle
)
866 mtx_lock(&d3dlock_global
);
867 r
= NineDevice9_CreateDepthStencilSurface(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Discard
, ppSurface
, pSharedHandle
);
868 mtx_unlock(&d3dlock_global
);
872 static HRESULT NINE_WINAPI
873 LockDevice9_UpdateSurface( struct NineDevice9
*This
,
874 IDirect3DSurface9
*pSourceSurface
,
875 const RECT
*pSourceRect
,
876 IDirect3DSurface9
*pDestinationSurface
,
877 const POINT
*pDestPoint
)
880 mtx_lock(&d3dlock_global
);
881 r
= NineDevice9_UpdateSurface(This
, pSourceSurface
, pSourceRect
, pDestinationSurface
, pDestPoint
);
882 mtx_unlock(&d3dlock_global
);
886 static HRESULT NINE_WINAPI
887 LockDevice9_UpdateTexture( struct NineDevice9
*This
,
888 IDirect3DBaseTexture9
*pSourceTexture
,
889 IDirect3DBaseTexture9
*pDestinationTexture
)
892 mtx_lock(&d3dlock_global
);
893 r
= NineDevice9_UpdateTexture(This
, pSourceTexture
, pDestinationTexture
);
894 mtx_unlock(&d3dlock_global
);
898 static HRESULT NINE_WINAPI
899 LockDevice9_GetRenderTargetData( struct NineDevice9
*This
,
900 IDirect3DSurface9
*pRenderTarget
,
901 IDirect3DSurface9
*pDestSurface
)
904 mtx_lock(&d3dlock_global
);
905 r
= NineDevice9_GetRenderTargetData(This
, pRenderTarget
, pDestSurface
);
906 mtx_unlock(&d3dlock_global
);
910 static HRESULT NINE_WINAPI
911 LockDevice9_GetFrontBufferData( struct NineDevice9
*This
,
913 IDirect3DSurface9
*pDestSurface
)
916 mtx_lock(&d3dlock_global
);
917 r
= NineDevice9_GetFrontBufferData(This
, iSwapChain
, pDestSurface
);
918 mtx_unlock(&d3dlock_global
);
922 static HRESULT NINE_WINAPI
923 LockDevice9_StretchRect( struct NineDevice9
*This
,
924 IDirect3DSurface9
*pSourceSurface
,
925 const RECT
*pSourceRect
,
926 IDirect3DSurface9
*pDestSurface
,
927 const RECT
*pDestRect
,
928 D3DTEXTUREFILTERTYPE Filter
)
931 mtx_lock(&d3dlock_global
);
932 r
= NineDevice9_StretchRect(This
, pSourceSurface
, pSourceRect
, pDestSurface
, pDestRect
, Filter
);
933 mtx_unlock(&d3dlock_global
);
937 static HRESULT NINE_WINAPI
938 LockDevice9_ColorFill( struct NineDevice9
*This
,
939 IDirect3DSurface9
*pSurface
,
944 mtx_lock(&d3dlock_global
);
945 r
= NineDevice9_ColorFill(This
, pSurface
, pRect
, color
);
946 mtx_unlock(&d3dlock_global
);
950 static HRESULT NINE_WINAPI
951 LockDevice9_CreateOffscreenPlainSurface( struct NineDevice9
*This
,
956 IDirect3DSurface9
**ppSurface
,
957 HANDLE
*pSharedHandle
)
960 mtx_lock(&d3dlock_global
);
961 r
= NineDevice9_CreateOffscreenPlainSurface(This
, Width
, Height
, Format
, Pool
, ppSurface
, pSharedHandle
);
962 mtx_unlock(&d3dlock_global
);
966 static HRESULT NINE_WINAPI
967 LockDevice9_SetRenderTarget( struct NineDevice9
*This
,
968 DWORD RenderTargetIndex
,
969 IDirect3DSurface9
*pRenderTarget
)
972 mtx_lock(&d3dlock_global
);
973 r
= NineDevice9_SetRenderTarget(This
, RenderTargetIndex
, pRenderTarget
);
974 mtx_unlock(&d3dlock_global
);
978 static HRESULT NINE_WINAPI
979 LockDevice9_GetRenderTarget( struct NineDevice9
*This
,
980 DWORD RenderTargetIndex
,
981 IDirect3DSurface9
**ppRenderTarget
)
984 mtx_lock(&d3dlock_global
);
985 r
= NineDevice9_GetRenderTarget(This
, RenderTargetIndex
, ppRenderTarget
);
986 mtx_unlock(&d3dlock_global
);
990 static HRESULT NINE_WINAPI
991 LockDevice9_SetDepthStencilSurface( struct NineDevice9
*This
,
992 IDirect3DSurface9
*pNewZStencil
)
995 mtx_lock(&d3dlock_global
);
996 r
= NineDevice9_SetDepthStencilSurface(This
, pNewZStencil
);
997 mtx_unlock(&d3dlock_global
);
1001 static HRESULT NINE_WINAPI
1002 LockDevice9_GetDepthStencilSurface( struct NineDevice9
*This
,
1003 IDirect3DSurface9
**ppZStencilSurface
)
1006 mtx_lock(&d3dlock_global
);
1007 r
= NineDevice9_GetDepthStencilSurface(This
, ppZStencilSurface
);
1008 mtx_unlock(&d3dlock_global
);
1012 static HRESULT NINE_WINAPI
1013 LockDevice9_BeginScene( struct NineDevice9
*This
)
1016 mtx_lock(&d3dlock_global
);
1017 r
= NineDevice9_BeginScene(This
);
1018 mtx_unlock(&d3dlock_global
);
1022 static HRESULT NINE_WINAPI
1023 LockDevice9_EndScene( struct NineDevice9
*This
)
1026 mtx_lock(&d3dlock_global
);
1027 r
= NineDevice9_EndScene(This
);
1028 mtx_unlock(&d3dlock_global
);
1032 static HRESULT NINE_WINAPI
1033 LockDevice9_Clear( struct NineDevice9
*This
,
1035 const D3DRECT
*pRects
,
1042 mtx_lock(&d3dlock_global
);
1043 r
= NineDevice9_Clear(This
, Count
, pRects
, Flags
, Color
, Z
, Stencil
);
1044 mtx_unlock(&d3dlock_global
);
1048 static HRESULT NINE_WINAPI
1049 LockDevice9_SetTransform( struct NineDevice9
*This
,
1050 D3DTRANSFORMSTATETYPE State
,
1051 const D3DMATRIX
*pMatrix
)
1054 mtx_lock(&d3dlock_global
);
1055 r
= NineDevice9_SetTransform(This
, State
, pMatrix
);
1056 mtx_unlock(&d3dlock_global
);
1060 static HRESULT NINE_WINAPI
1061 LockDevice9_GetTransform( struct NineDevice9
*This
,
1062 D3DTRANSFORMSTATETYPE State
,
1063 D3DMATRIX
*pMatrix
)
1066 mtx_lock(&d3dlock_global
);
1067 r
= NineDevice9_GetTransform(This
, State
, pMatrix
);
1068 mtx_unlock(&d3dlock_global
);
1072 static HRESULT NINE_WINAPI
1073 LockDevice9_MultiplyTransform( struct NineDevice9
*This
,
1074 D3DTRANSFORMSTATETYPE State
,
1075 const D3DMATRIX
*pMatrix
)
1078 mtx_lock(&d3dlock_global
);
1079 r
= NineDevice9_MultiplyTransform(This
, State
, pMatrix
);
1080 mtx_unlock(&d3dlock_global
);
1084 static HRESULT NINE_WINAPI
1085 LockDevice9_SetViewport( struct NineDevice9
*This
,
1086 const D3DVIEWPORT9
*pViewport
)
1089 mtx_lock(&d3dlock_global
);
1090 r
= NineDevice9_SetViewport(This
, pViewport
);
1091 mtx_unlock(&d3dlock_global
);
1095 static HRESULT NINE_WINAPI
1096 LockDevice9_GetViewport( struct NineDevice9
*This
,
1097 D3DVIEWPORT9
*pViewport
)
1100 mtx_lock(&d3dlock_global
);
1101 r
= NineDevice9_GetViewport(This
, pViewport
);
1102 mtx_unlock(&d3dlock_global
);
1106 static HRESULT NINE_WINAPI
1107 LockDevice9_SetMaterial( struct NineDevice9
*This
,
1108 const D3DMATERIAL9
*pMaterial
)
1111 mtx_lock(&d3dlock_global
);
1112 r
= NineDevice9_SetMaterial(This
, pMaterial
);
1113 mtx_unlock(&d3dlock_global
);
1117 static HRESULT NINE_WINAPI
1118 LockDevice9_GetMaterial( struct NineDevice9
*This
,
1119 D3DMATERIAL9
*pMaterial
)
1122 mtx_lock(&d3dlock_global
);
1123 r
= NineDevice9_GetMaterial(This
, pMaterial
);
1124 mtx_unlock(&d3dlock_global
);
1128 static HRESULT NINE_WINAPI
1129 LockDevice9_SetLight( struct NineDevice9
*This
,
1131 const D3DLIGHT9
*pLight
)
1134 mtx_lock(&d3dlock_global
);
1135 r
= NineDevice9_SetLight(This
, Index
, pLight
);
1136 mtx_unlock(&d3dlock_global
);
1140 static HRESULT NINE_WINAPI
1141 LockDevice9_GetLight( struct NineDevice9
*This
,
1146 mtx_lock(&d3dlock_global
);
1147 r
= NineDevice9_GetLight(This
, Index
, pLight
);
1148 mtx_unlock(&d3dlock_global
);
1152 static HRESULT NINE_WINAPI
1153 LockDevice9_LightEnable( struct NineDevice9
*This
,
1158 mtx_lock(&d3dlock_global
);
1159 r
= NineDevice9_LightEnable(This
, Index
, Enable
);
1160 mtx_unlock(&d3dlock_global
);
1164 static HRESULT NINE_WINAPI
1165 LockDevice9_GetLightEnable( struct NineDevice9
*This
,
1170 mtx_lock(&d3dlock_global
);
1171 r
= NineDevice9_GetLightEnable(This
, Index
, pEnable
);
1172 mtx_unlock(&d3dlock_global
);
1176 static HRESULT NINE_WINAPI
1177 LockDevice9_SetClipPlane( struct NineDevice9
*This
,
1179 const float *pPlane
)
1182 mtx_lock(&d3dlock_global
);
1183 r
= NineDevice9_SetClipPlane(This
, Index
, pPlane
);
1184 mtx_unlock(&d3dlock_global
);
1188 static HRESULT NINE_WINAPI
1189 LockDevice9_GetClipPlane( struct NineDevice9
*This
,
1194 mtx_lock(&d3dlock_global
);
1195 r
= NineDevice9_GetClipPlane(This
, Index
, pPlane
);
1196 mtx_unlock(&d3dlock_global
);
1200 static HRESULT NINE_WINAPI
1201 LockDevice9_SetRenderState( struct NineDevice9
*This
,
1202 D3DRENDERSTATETYPE State
,
1206 mtx_lock(&d3dlock_global
);
1207 r
= NineDevice9_SetRenderState(This
, State
, Value
);
1208 mtx_unlock(&d3dlock_global
);
1212 static HRESULT NINE_WINAPI
1213 LockDevice9_GetRenderState( struct NineDevice9
*This
,
1214 D3DRENDERSTATETYPE State
,
1218 mtx_lock(&d3dlock_global
);
1219 r
= NineDevice9_GetRenderState(This
, State
, pValue
);
1220 mtx_unlock(&d3dlock_global
);
1224 static HRESULT NINE_WINAPI
1225 LockDevice9_CreateStateBlock( struct NineDevice9
*This
,
1226 D3DSTATEBLOCKTYPE Type
,
1227 IDirect3DStateBlock9
**ppSB
)
1230 mtx_lock(&d3dlock_global
);
1231 r
= NineDevice9_CreateStateBlock(This
, Type
, ppSB
);
1232 mtx_unlock(&d3dlock_global
);
1236 static HRESULT NINE_WINAPI
1237 LockDevice9_BeginStateBlock( struct NineDevice9
*This
)
1240 mtx_lock(&d3dlock_global
);
1241 r
= NineDevice9_BeginStateBlock(This
);
1242 mtx_unlock(&d3dlock_global
);
1246 static HRESULT NINE_WINAPI
1247 LockDevice9_EndStateBlock( struct NineDevice9
*This
,
1248 IDirect3DStateBlock9
**ppSB
)
1251 mtx_lock(&d3dlock_global
);
1252 r
= NineDevice9_EndStateBlock(This
, ppSB
);
1253 mtx_unlock(&d3dlock_global
);
1257 static HRESULT NINE_WINAPI
1258 LockDevice9_SetClipStatus( struct NineDevice9
*This
,
1259 const D3DCLIPSTATUS9
*pClipStatus
)
1262 mtx_lock(&d3dlock_global
);
1263 r
= NineDevice9_SetClipStatus(This
, pClipStatus
);
1264 mtx_unlock(&d3dlock_global
);
1268 static HRESULT NINE_WINAPI
1269 LockDevice9_GetClipStatus( struct NineDevice9
*This
,
1270 D3DCLIPSTATUS9
*pClipStatus
)
1273 mtx_lock(&d3dlock_global
);
1274 r
= NineDevice9_GetClipStatus(This
, pClipStatus
);
1275 mtx_unlock(&d3dlock_global
);
1279 static HRESULT NINE_WINAPI
1280 LockDevice9_GetTexture( struct NineDevice9
*This
,
1282 IDirect3DBaseTexture9
**ppTexture
)
1285 mtx_lock(&d3dlock_global
);
1286 r
= NineDevice9_GetTexture(This
, Stage
, ppTexture
);
1287 mtx_unlock(&d3dlock_global
);
1291 static HRESULT NINE_WINAPI
1292 LockDevice9_SetTexture( struct NineDevice9
*This
,
1294 IDirect3DBaseTexture9
*pTexture
)
1297 mtx_lock(&d3dlock_global
);
1298 r
= NineDevice9_SetTexture(This
, Stage
, pTexture
);
1299 mtx_unlock(&d3dlock_global
);
1303 static HRESULT NINE_WINAPI
1304 LockDevice9_GetTextureStageState( struct NineDevice9
*This
,
1306 D3DTEXTURESTAGESTATETYPE Type
,
1310 mtx_lock(&d3dlock_global
);
1311 r
= NineDevice9_GetTextureStageState(This
, Stage
, Type
, pValue
);
1312 mtx_unlock(&d3dlock_global
);
1316 static HRESULT NINE_WINAPI
1317 LockDevice9_SetTextureStageState( struct NineDevice9
*This
,
1319 D3DTEXTURESTAGESTATETYPE Type
,
1323 mtx_lock(&d3dlock_global
);
1324 r
= NineDevice9_SetTextureStageState(This
, Stage
, Type
, Value
);
1325 mtx_unlock(&d3dlock_global
);
1329 static HRESULT NINE_WINAPI
1330 LockDevice9_GetSamplerState( struct NineDevice9
*This
,
1332 D3DSAMPLERSTATETYPE Type
,
1336 mtx_lock(&d3dlock_global
);
1337 r
= NineDevice9_GetSamplerState(This
, Sampler
, Type
, pValue
);
1338 mtx_unlock(&d3dlock_global
);
1342 static HRESULT NINE_WINAPI
1343 LockDevice9_SetSamplerState( struct NineDevice9
*This
,
1345 D3DSAMPLERSTATETYPE Type
,
1349 mtx_lock(&d3dlock_global
);
1350 r
= NineDevice9_SetSamplerState(This
, Sampler
, Type
, Value
);
1351 mtx_unlock(&d3dlock_global
);
1355 static HRESULT NINE_WINAPI
1356 LockDevice9_ValidateDevice( struct NineDevice9
*This
,
1360 mtx_lock(&d3dlock_global
);
1361 r
= NineDevice9_ValidateDevice(This
, pNumPasses
);
1362 mtx_unlock(&d3dlock_global
);
1366 static HRESULT NINE_WINAPI
1367 LockDevice9_SetPaletteEntries( struct NineDevice9
*This
,
1369 const PALETTEENTRY
*pEntries
)
1372 mtx_lock(&d3dlock_global
);
1373 r
= NineDevice9_SetPaletteEntries(This
, PaletteNumber
, pEntries
);
1374 mtx_unlock(&d3dlock_global
);
1378 static HRESULT NINE_WINAPI
1379 LockDevice9_GetPaletteEntries( struct NineDevice9
*This
,
1381 PALETTEENTRY
*pEntries
)
1384 mtx_lock(&d3dlock_global
);
1385 r
= NineDevice9_GetPaletteEntries(This
, PaletteNumber
, pEntries
);
1386 mtx_unlock(&d3dlock_global
);
1390 static HRESULT NINE_WINAPI
1391 LockDevice9_SetCurrentTexturePalette( struct NineDevice9
*This
,
1392 UINT PaletteNumber
)
1395 mtx_lock(&d3dlock_global
);
1396 r
= NineDevice9_SetCurrentTexturePalette(This
, PaletteNumber
);
1397 mtx_unlock(&d3dlock_global
);
1401 static HRESULT NINE_WINAPI
1402 LockDevice9_GetCurrentTexturePalette( struct NineDevice9
*This
,
1403 UINT
*PaletteNumber
)
1406 mtx_lock(&d3dlock_global
);
1407 r
= NineDevice9_GetCurrentTexturePalette(This
, PaletteNumber
);
1408 mtx_unlock(&d3dlock_global
);
1412 static HRESULT NINE_WINAPI
1413 LockDevice9_SetScissorRect( struct NineDevice9
*This
,
1417 mtx_lock(&d3dlock_global
);
1418 r
= NineDevice9_SetScissorRect(This
, pRect
);
1419 mtx_unlock(&d3dlock_global
);
1423 static HRESULT NINE_WINAPI
1424 LockDevice9_GetScissorRect( struct NineDevice9
*This
,
1428 mtx_lock(&d3dlock_global
);
1429 r
= NineDevice9_GetScissorRect(This
, pRect
);
1430 mtx_unlock(&d3dlock_global
);
1434 static HRESULT NINE_WINAPI
1435 LockDevice9_SetSoftwareVertexProcessing( struct NineDevice9
*This
,
1439 mtx_lock(&d3dlock_global
);
1440 r
= NineDevice9_SetSoftwareVertexProcessing(This
, bSoftware
);
1441 mtx_unlock(&d3dlock_global
);
1445 static BOOL NINE_WINAPI
1446 LockDevice9_GetSoftwareVertexProcessing( struct NineDevice9
*This
)
1449 mtx_lock(&d3dlock_global
);
1450 r
= NineDevice9_GetSoftwareVertexProcessing(This
);
1451 mtx_unlock(&d3dlock_global
);
1455 static HRESULT NINE_WINAPI
1456 LockDevice9_SetNPatchMode( struct NineDevice9
*This
,
1460 mtx_lock(&d3dlock_global
);
1461 r
= NineDevice9_SetNPatchMode(This
, nSegments
);
1462 mtx_unlock(&d3dlock_global
);
1466 static float NINE_WINAPI
1467 LockDevice9_GetNPatchMode( struct NineDevice9
*This
)
1470 mtx_lock(&d3dlock_global
);
1471 r
= NineDevice9_GetNPatchMode(This
);
1472 mtx_unlock(&d3dlock_global
);
1476 static HRESULT NINE_WINAPI
1477 LockDevice9_DrawPrimitive( struct NineDevice9
*This
,
1478 D3DPRIMITIVETYPE PrimitiveType
,
1480 UINT PrimitiveCount
)
1483 mtx_lock(&d3dlock_global
);
1484 r
= NineDevice9_DrawPrimitive(This
, PrimitiveType
, StartVertex
, PrimitiveCount
);
1485 mtx_unlock(&d3dlock_global
);
1489 static HRESULT NINE_WINAPI
1490 LockDevice9_DrawIndexedPrimitive( struct NineDevice9
*This
,
1491 D3DPRIMITIVETYPE PrimitiveType
,
1492 INT BaseVertexIndex
,
1493 UINT MinVertexIndex
,
1499 mtx_lock(&d3dlock_global
);
1500 r
= NineDevice9_DrawIndexedPrimitive(This
, PrimitiveType
, BaseVertexIndex
, MinVertexIndex
, NumVertices
, startIndex
, primCount
);
1501 mtx_unlock(&d3dlock_global
);
1505 static HRESULT NINE_WINAPI
1506 LockDevice9_DrawPrimitiveUP( struct NineDevice9
*This
,
1507 D3DPRIMITIVETYPE PrimitiveType
,
1508 UINT PrimitiveCount
,
1509 const void *pVertexStreamZeroData
,
1510 UINT VertexStreamZeroStride
)
1513 mtx_lock(&d3dlock_global
);
1514 r
= NineDevice9_DrawPrimitiveUP(This
, PrimitiveType
, PrimitiveCount
, pVertexStreamZeroData
, VertexStreamZeroStride
);
1515 mtx_unlock(&d3dlock_global
);
1519 static HRESULT NINE_WINAPI
1520 LockDevice9_DrawIndexedPrimitiveUP( struct NineDevice9
*This
,
1521 D3DPRIMITIVETYPE PrimitiveType
,
1522 UINT MinVertexIndex
,
1524 UINT PrimitiveCount
,
1525 const void *pIndexData
,
1526 D3DFORMAT IndexDataFormat
,
1527 const void *pVertexStreamZeroData
,
1528 UINT VertexStreamZeroStride
)
1531 mtx_lock(&d3dlock_global
);
1532 r
= NineDevice9_DrawIndexedPrimitiveUP(This
, PrimitiveType
, MinVertexIndex
, NumVertices
, PrimitiveCount
, pIndexData
, IndexDataFormat
, pVertexStreamZeroData
, VertexStreamZeroStride
);
1533 mtx_unlock(&d3dlock_global
);
1537 static HRESULT NINE_WINAPI
1538 LockDevice9_ProcessVertices( struct NineDevice9
*This
,
1542 IDirect3DVertexBuffer9
*pDestBuffer
,
1543 IDirect3DVertexDeclaration9
*pVertexDecl
,
1547 mtx_lock(&d3dlock_global
);
1548 r
= NineDevice9_ProcessVertices(This
, SrcStartIndex
, DestIndex
, VertexCount
, pDestBuffer
, pVertexDecl
, Flags
);
1549 mtx_unlock(&d3dlock_global
);
1553 static HRESULT NINE_WINAPI
1554 LockDevice9_CreateVertexDeclaration( struct NineDevice9
*This
,
1555 const D3DVERTEXELEMENT9
*pVertexElements
,
1556 IDirect3DVertexDeclaration9
**ppDecl
)
1559 mtx_lock(&d3dlock_global
);
1560 r
= NineDevice9_CreateVertexDeclaration(This
, pVertexElements
, ppDecl
);
1561 mtx_unlock(&d3dlock_global
);
1565 static HRESULT NINE_WINAPI
1566 LockDevice9_SetVertexDeclaration( struct NineDevice9
*This
,
1567 IDirect3DVertexDeclaration9
*pDecl
)
1570 mtx_lock(&d3dlock_global
);
1571 r
= NineDevice9_SetVertexDeclaration(This
, pDecl
);
1572 mtx_unlock(&d3dlock_global
);
1576 static HRESULT NINE_WINAPI
1577 LockDevice9_GetVertexDeclaration( struct NineDevice9
*This
,
1578 IDirect3DVertexDeclaration9
**ppDecl
)
1581 mtx_lock(&d3dlock_global
);
1582 r
= NineDevice9_GetVertexDeclaration(This
, ppDecl
);
1583 mtx_unlock(&d3dlock_global
);
1587 static HRESULT NINE_WINAPI
1588 LockDevice9_SetFVF( struct NineDevice9
*This
,
1592 mtx_lock(&d3dlock_global
);
1593 r
= NineDevice9_SetFVF(This
, FVF
);
1594 mtx_unlock(&d3dlock_global
);
1598 static HRESULT NINE_WINAPI
1599 LockDevice9_GetFVF( struct NineDevice9
*This
,
1603 mtx_lock(&d3dlock_global
);
1604 r
= NineDevice9_GetFVF(This
, pFVF
);
1605 mtx_unlock(&d3dlock_global
);
1609 static HRESULT NINE_WINAPI
1610 LockDevice9_CreateVertexShader( struct NineDevice9
*This
,
1611 const DWORD
*pFunction
,
1612 IDirect3DVertexShader9
**ppShader
)
1615 mtx_lock(&d3dlock_global
);
1616 r
= NineDevice9_CreateVertexShader(This
, pFunction
, ppShader
);
1617 mtx_unlock(&d3dlock_global
);
1621 static HRESULT NINE_WINAPI
1622 LockDevice9_SetVertexShader( struct NineDevice9
*This
,
1623 IDirect3DVertexShader9
*pShader
)
1626 mtx_lock(&d3dlock_global
);
1627 r
= NineDevice9_SetVertexShader(This
, pShader
);
1628 mtx_unlock(&d3dlock_global
);
1632 static HRESULT NINE_WINAPI
1633 LockDevice9_GetVertexShader( struct NineDevice9
*This
,
1634 IDirect3DVertexShader9
**ppShader
)
1637 mtx_lock(&d3dlock_global
);
1638 r
= NineDevice9_GetVertexShader(This
, ppShader
);
1639 mtx_unlock(&d3dlock_global
);
1643 static HRESULT NINE_WINAPI
1644 LockDevice9_SetVertexShaderConstantF( struct NineDevice9
*This
,
1646 const float *pConstantData
,
1647 UINT Vector4fCount
)
1650 mtx_lock(&d3dlock_global
);
1651 r
= NineDevice9_SetVertexShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1652 mtx_unlock(&d3dlock_global
);
1656 static HRESULT NINE_WINAPI
1657 LockDevice9_GetVertexShaderConstantF( struct NineDevice9
*This
,
1659 float *pConstantData
,
1660 UINT Vector4fCount
)
1663 mtx_lock(&d3dlock_global
);
1664 r
= NineDevice9_GetVertexShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1665 mtx_unlock(&d3dlock_global
);
1669 static HRESULT NINE_WINAPI
1670 LockDevice9_SetVertexShaderConstantI( struct NineDevice9
*This
,
1672 const int *pConstantData
,
1673 UINT Vector4iCount
)
1676 mtx_lock(&d3dlock_global
);
1677 r
= NineDevice9_SetVertexShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1678 mtx_unlock(&d3dlock_global
);
1682 static HRESULT NINE_WINAPI
1683 LockDevice9_GetVertexShaderConstantI( struct NineDevice9
*This
,
1686 UINT Vector4iCount
)
1689 mtx_lock(&d3dlock_global
);
1690 r
= NineDevice9_GetVertexShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1691 mtx_unlock(&d3dlock_global
);
1695 static HRESULT NINE_WINAPI
1696 LockDevice9_SetVertexShaderConstantB( struct NineDevice9
*This
,
1698 const BOOL
*pConstantData
,
1702 mtx_lock(&d3dlock_global
);
1703 r
= NineDevice9_SetVertexShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1704 mtx_unlock(&d3dlock_global
);
1708 static HRESULT NINE_WINAPI
1709 LockDevice9_GetVertexShaderConstantB( struct NineDevice9
*This
,
1711 BOOL
*pConstantData
,
1715 mtx_lock(&d3dlock_global
);
1716 r
= NineDevice9_GetVertexShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1717 mtx_unlock(&d3dlock_global
);
1721 static HRESULT NINE_WINAPI
1722 LockDevice9_SetStreamSource( struct NineDevice9
*This
,
1724 IDirect3DVertexBuffer9
*pStreamData
,
1729 mtx_lock(&d3dlock_global
);
1730 r
= NineDevice9_SetStreamSource(This
, StreamNumber
, pStreamData
, OffsetInBytes
, Stride
);
1731 mtx_unlock(&d3dlock_global
);
1735 static HRESULT NINE_WINAPI
1736 LockDevice9_GetStreamSource( struct NineDevice9
*This
,
1738 IDirect3DVertexBuffer9
**ppStreamData
,
1739 UINT
*pOffsetInBytes
,
1743 mtx_lock(&d3dlock_global
);
1744 r
= NineDevice9_GetStreamSource(This
, StreamNumber
, ppStreamData
, pOffsetInBytes
, pStride
);
1745 mtx_unlock(&d3dlock_global
);
1749 static HRESULT NINE_WINAPI
1750 LockDevice9_SetStreamSourceFreq( struct NineDevice9
*This
,
1755 mtx_lock(&d3dlock_global
);
1756 r
= NineDevice9_SetStreamSourceFreq(This
, StreamNumber
, Setting
);
1757 mtx_unlock(&d3dlock_global
);
1761 static HRESULT NINE_WINAPI
1762 LockDevice9_GetStreamSourceFreq( struct NineDevice9
*This
,
1767 mtx_lock(&d3dlock_global
);
1768 r
= NineDevice9_GetStreamSourceFreq(This
, StreamNumber
, pSetting
);
1769 mtx_unlock(&d3dlock_global
);
1773 static HRESULT NINE_WINAPI
1774 LockDevice9_SetIndices( struct NineDevice9
*This
,
1775 IDirect3DIndexBuffer9
*pIndexData
)
1778 mtx_lock(&d3dlock_global
);
1779 r
= NineDevice9_SetIndices(This
, pIndexData
);
1780 mtx_unlock(&d3dlock_global
);
1784 static HRESULT NINE_WINAPI
1785 LockDevice9_GetIndices( struct NineDevice9
*This
,
1786 IDirect3DIndexBuffer9
**ppIndexData
)
1789 mtx_lock(&d3dlock_global
);
1790 r
= NineDevice9_GetIndices(This
, ppIndexData
);
1791 mtx_unlock(&d3dlock_global
);
1795 static HRESULT NINE_WINAPI
1796 LockDevice9_CreatePixelShader( struct NineDevice9
*This
,
1797 const DWORD
*pFunction
,
1798 IDirect3DPixelShader9
**ppShader
)
1801 mtx_lock(&d3dlock_global
);
1802 r
= NineDevice9_CreatePixelShader(This
, pFunction
, ppShader
);
1803 mtx_unlock(&d3dlock_global
);
1807 static HRESULT NINE_WINAPI
1808 LockDevice9_SetPixelShader( struct NineDevice9
*This
,
1809 IDirect3DPixelShader9
*pShader
)
1812 mtx_lock(&d3dlock_global
);
1813 r
= NineDevice9_SetPixelShader(This
, pShader
);
1814 mtx_unlock(&d3dlock_global
);
1818 static HRESULT NINE_WINAPI
1819 LockDevice9_GetPixelShader( struct NineDevice9
*This
,
1820 IDirect3DPixelShader9
**ppShader
)
1823 mtx_lock(&d3dlock_global
);
1824 r
= NineDevice9_GetPixelShader(This
, ppShader
);
1825 mtx_unlock(&d3dlock_global
);
1829 static HRESULT NINE_WINAPI
1830 LockDevice9_SetPixelShaderConstantF( struct NineDevice9
*This
,
1832 const float *pConstantData
,
1833 UINT Vector4fCount
)
1836 mtx_lock(&d3dlock_global
);
1837 r
= NineDevice9_SetPixelShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1838 mtx_unlock(&d3dlock_global
);
1842 static HRESULT NINE_WINAPI
1843 LockDevice9_GetPixelShaderConstantF( struct NineDevice9
*This
,
1845 float *pConstantData
,
1846 UINT Vector4fCount
)
1849 mtx_lock(&d3dlock_global
);
1850 r
= NineDevice9_GetPixelShaderConstantF(This
, StartRegister
, pConstantData
, Vector4fCount
);
1851 mtx_unlock(&d3dlock_global
);
1855 static HRESULT NINE_WINAPI
1856 LockDevice9_SetPixelShaderConstantI( struct NineDevice9
*This
,
1858 const int *pConstantData
,
1859 UINT Vector4iCount
)
1862 mtx_lock(&d3dlock_global
);
1863 r
= NineDevice9_SetPixelShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1864 mtx_unlock(&d3dlock_global
);
1868 static HRESULT NINE_WINAPI
1869 LockDevice9_GetPixelShaderConstantI( struct NineDevice9
*This
,
1872 UINT Vector4iCount
)
1875 mtx_lock(&d3dlock_global
);
1876 r
= NineDevice9_GetPixelShaderConstantI(This
, StartRegister
, pConstantData
, Vector4iCount
);
1877 mtx_unlock(&d3dlock_global
);
1881 static HRESULT NINE_WINAPI
1882 LockDevice9_SetPixelShaderConstantB( struct NineDevice9
*This
,
1884 const BOOL
*pConstantData
,
1888 mtx_lock(&d3dlock_global
);
1889 r
= NineDevice9_SetPixelShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1890 mtx_unlock(&d3dlock_global
);
1894 static HRESULT NINE_WINAPI
1895 LockDevice9_GetPixelShaderConstantB( struct NineDevice9
*This
,
1897 BOOL
*pConstantData
,
1901 mtx_lock(&d3dlock_global
);
1902 r
= NineDevice9_GetPixelShaderConstantB(This
, StartRegister
, pConstantData
, BoolCount
);
1903 mtx_unlock(&d3dlock_global
);
1907 static HRESULT NINE_WINAPI
1908 LockDevice9_DrawRectPatch( struct NineDevice9
*This
,
1910 const float *pNumSegs
,
1911 const D3DRECTPATCH_INFO
*pRectPatchInfo
)
1914 mtx_lock(&d3dlock_global
);
1915 r
= NineDevice9_DrawRectPatch(This
, Handle
, pNumSegs
, pRectPatchInfo
);
1916 mtx_unlock(&d3dlock_global
);
1920 static HRESULT NINE_WINAPI
1921 LockDevice9_DrawTriPatch( struct NineDevice9
*This
,
1923 const float *pNumSegs
,
1924 const D3DTRIPATCH_INFO
*pTriPatchInfo
)
1927 mtx_lock(&d3dlock_global
);
1928 r
= NineDevice9_DrawTriPatch(This
, Handle
, pNumSegs
, pTriPatchInfo
);
1929 mtx_unlock(&d3dlock_global
);
1933 static HRESULT NINE_WINAPI
1934 LockDevice9_DeletePatch( struct NineDevice9
*This
,
1938 mtx_lock(&d3dlock_global
);
1939 r
= NineDevice9_DeletePatch(This
, Handle
);
1940 mtx_unlock(&d3dlock_global
);
1944 static HRESULT NINE_WINAPI
1945 LockDevice9_CreateQuery( struct NineDevice9
*This
,
1947 IDirect3DQuery9
**ppQuery
)
1950 mtx_lock(&d3dlock_global
);
1951 r
= NineDevice9_CreateQuery(This
, Type
, ppQuery
);
1952 mtx_unlock(&d3dlock_global
);
1956 IDirect3DDevice9Vtbl LockDevice9_vtable
= {
1957 (void *)NineUnknown_QueryInterface
,
1958 (void *)NineUnknown_AddRef
,
1959 (void *)NineUnknown_ReleaseWithDtorLock
,
1960 (void *)LockDevice9_TestCooperativeLevel
,
1961 (void *)LockDevice9_GetAvailableTextureMem
,
1962 (void *)LockDevice9_EvictManagedResources
,
1963 (void *)LockDevice9_GetDirect3D
,
1964 (void *)NineDevice9_GetDeviceCaps
, /* immutable */
1965 (void *)LockDevice9_GetDisplayMode
,
1966 (void *)NineDevice9_GetCreationParameters
, /* immutable */
1967 (void *)LockDevice9_SetCursorProperties
,
1968 (void *)LockDevice9_SetCursorPosition
,
1969 (void *)LockDevice9_ShowCursor
,
1970 (void *)LockDevice9_CreateAdditionalSwapChain
,
1971 (void *)LockDevice9_GetSwapChain
,
1972 (void *)LockDevice9_GetNumberOfSwapChains
,
1973 (void *)LockDevice9_Reset
,
1974 (void *)LockDevice9_Present
,
1975 (void *)LockDevice9_GetBackBuffer
,
1976 (void *)LockDevice9_GetRasterStatus
,
1977 (void *)LockDevice9_SetDialogBoxMode
,
1978 (void *)LockDevice9_SetGammaRamp
,
1979 (void *)LockDevice9_GetGammaRamp
,
1980 (void *)LockDevice9_CreateTexture
,
1981 (void *)LockDevice9_CreateVolumeTexture
,
1982 (void *)LockDevice9_CreateCubeTexture
,
1983 (void *)LockDevice9_CreateVertexBuffer
,
1984 (void *)LockDevice9_CreateIndexBuffer
,
1985 (void *)LockDevice9_CreateRenderTarget
,
1986 (void *)LockDevice9_CreateDepthStencilSurface
,
1987 (void *)LockDevice9_UpdateSurface
,
1988 (void *)LockDevice9_UpdateTexture
,
1989 (void *)LockDevice9_GetRenderTargetData
,
1990 (void *)LockDevice9_GetFrontBufferData
,
1991 (void *)LockDevice9_StretchRect
,
1992 (void *)LockDevice9_ColorFill
,
1993 (void *)LockDevice9_CreateOffscreenPlainSurface
,
1994 (void *)LockDevice9_SetRenderTarget
,
1995 (void *)LockDevice9_GetRenderTarget
,
1996 (void *)LockDevice9_SetDepthStencilSurface
,
1997 (void *)LockDevice9_GetDepthStencilSurface
,
1998 (void *)LockDevice9_BeginScene
,
1999 (void *)LockDevice9_EndScene
,
2000 (void *)LockDevice9_Clear
,
2001 (void *)LockDevice9_SetTransform
,
2002 (void *)LockDevice9_GetTransform
,
2003 (void *)LockDevice9_MultiplyTransform
,
2004 (void *)LockDevice9_SetViewport
,
2005 (void *)LockDevice9_GetViewport
,
2006 (void *)LockDevice9_SetMaterial
,
2007 (void *)LockDevice9_GetMaterial
,
2008 (void *)LockDevice9_SetLight
,
2009 (void *)LockDevice9_GetLight
,
2010 (void *)LockDevice9_LightEnable
,
2011 (void *)LockDevice9_GetLightEnable
,
2012 (void *)LockDevice9_SetClipPlane
,
2013 (void *)LockDevice9_GetClipPlane
,
2014 (void *)LockDevice9_SetRenderState
,
2015 (void *)LockDevice9_GetRenderState
,
2016 (void *)LockDevice9_CreateStateBlock
,
2017 (void *)LockDevice9_BeginStateBlock
,
2018 (void *)LockDevice9_EndStateBlock
,
2019 (void *)LockDevice9_SetClipStatus
,
2020 (void *)LockDevice9_GetClipStatus
,
2021 (void *)LockDevice9_GetTexture
,
2022 (void *)LockDevice9_SetTexture
,
2023 (void *)LockDevice9_GetTextureStageState
,
2024 (void *)LockDevice9_SetTextureStageState
,
2025 (void *)LockDevice9_GetSamplerState
,
2026 (void *)LockDevice9_SetSamplerState
,
2027 (void *)LockDevice9_ValidateDevice
,
2028 (void *)LockDevice9_SetPaletteEntries
,
2029 (void *)LockDevice9_GetPaletteEntries
,
2030 (void *)LockDevice9_SetCurrentTexturePalette
,
2031 (void *)LockDevice9_GetCurrentTexturePalette
,
2032 (void *)LockDevice9_SetScissorRect
,
2033 (void *)LockDevice9_GetScissorRect
,
2034 (void *)LockDevice9_SetSoftwareVertexProcessing
,
2035 (void *)LockDevice9_GetSoftwareVertexProcessing
,
2036 (void *)LockDevice9_SetNPatchMode
,
2037 (void *)LockDevice9_GetNPatchMode
,
2038 (void *)LockDevice9_DrawPrimitive
,
2039 (void *)LockDevice9_DrawIndexedPrimitive
,
2040 (void *)LockDevice9_DrawPrimitiveUP
,
2041 (void *)LockDevice9_DrawIndexedPrimitiveUP
,
2042 (void *)LockDevice9_ProcessVertices
,
2043 (void *)LockDevice9_CreateVertexDeclaration
,
2044 (void *)LockDevice9_SetVertexDeclaration
,
2045 (void *)LockDevice9_GetVertexDeclaration
,
2046 (void *)LockDevice9_SetFVF
,
2047 (void *)LockDevice9_GetFVF
,
2048 (void *)LockDevice9_CreateVertexShader
,
2049 (void *)LockDevice9_SetVertexShader
,
2050 (void *)LockDevice9_GetVertexShader
,
2051 (void *)LockDevice9_SetVertexShaderConstantF
,
2052 (void *)LockDevice9_GetVertexShaderConstantF
,
2053 (void *)LockDevice9_SetVertexShaderConstantI
,
2054 (void *)LockDevice9_GetVertexShaderConstantI
,
2055 (void *)LockDevice9_SetVertexShaderConstantB
,
2056 (void *)LockDevice9_GetVertexShaderConstantB
,
2057 (void *)LockDevice9_SetStreamSource
,
2058 (void *)LockDevice9_GetStreamSource
,
2059 (void *)LockDevice9_SetStreamSourceFreq
,
2060 (void *)LockDevice9_GetStreamSourceFreq
,
2061 (void *)LockDevice9_SetIndices
,
2062 (void *)LockDevice9_GetIndices
,
2063 (void *)LockDevice9_CreatePixelShader
,
2064 (void *)LockDevice9_SetPixelShader
,
2065 (void *)LockDevice9_GetPixelShader
,
2066 (void *)LockDevice9_SetPixelShaderConstantF
,
2067 (void *)LockDevice9_GetPixelShaderConstantF
,
2068 (void *)LockDevice9_SetPixelShaderConstantI
,
2069 (void *)LockDevice9_GetPixelShaderConstantI
,
2070 (void *)LockDevice9_SetPixelShaderConstantB
,
2071 (void *)LockDevice9_GetPixelShaderConstantB
,
2072 (void *)LockDevice9_DrawRectPatch
,
2073 (void *)LockDevice9_DrawTriPatch
,
2074 (void *)LockDevice9_DeletePatch
,
2075 (void *)LockDevice9_CreateQuery
2078 static HRESULT NINE_WINAPI
2079 LockDevice9Ex_SetConvolutionMonoKernel( struct NineDevice9Ex
*This
,
2086 mtx_lock(&d3dlock_global
);
2087 r
= NineDevice9Ex_SetConvolutionMonoKernel(This
, width
, height
, rows
, columns
);
2088 mtx_unlock(&d3dlock_global
);
2092 static HRESULT NINE_WINAPI
2093 LockDevice9Ex_ComposeRects( struct NineDevice9Ex
*This
,
2094 IDirect3DSurface9
*pSrc
,
2095 IDirect3DSurface9
*pDst
,
2096 IDirect3DVertexBuffer9
*pSrcRectDescs
,
2098 IDirect3DVertexBuffer9
*pDstRectDescs
,
2099 D3DCOMPOSERECTSOP Operation
,
2104 mtx_lock(&d3dlock_global
);
2105 r
= NineDevice9Ex_ComposeRects(This
, pSrc
, pDst
, pSrcRectDescs
, NumRects
, pDstRectDescs
, Operation
, Xoffset
, Yoffset
);
2106 mtx_unlock(&d3dlock_global
);
2110 static HRESULT NINE_WINAPI
2111 LockDevice9Ex_PresentEx( struct NineDevice9Ex
*This
,
2112 const RECT
*pSourceRect
,
2113 const RECT
*pDestRect
,
2114 HWND hDestWindowOverride
,
2115 const RGNDATA
*pDirtyRegion
,
2119 mtx_lock(&d3dlock_global
);
2120 r
= NineDevice9Ex_PresentEx(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
, dwFlags
);
2121 mtx_unlock(&d3dlock_global
);
2125 static HRESULT NINE_WINAPI
2126 LockDevice9Ex_GetGPUThreadPriority( struct NineDevice9Ex
*This
,
2130 mtx_lock(&d3dlock_global
);
2131 r
= NineDevice9Ex_GetGPUThreadPriority(This
, pPriority
);
2132 mtx_unlock(&d3dlock_global
);
2136 static HRESULT NINE_WINAPI
2137 LockDevice9Ex_SetGPUThreadPriority( struct NineDevice9Ex
*This
,
2141 mtx_lock(&d3dlock_global
);
2142 r
= NineDevice9Ex_SetGPUThreadPriority(This
, Priority
);
2143 mtx_unlock(&d3dlock_global
);
2147 static HRESULT NINE_WINAPI
2148 LockDevice9Ex_WaitForVBlank( struct NineDevice9Ex
*This
,
2152 mtx_lock(&d3dlock_global
);
2153 r
= NineDevice9Ex_WaitForVBlank(This
, iSwapChain
);
2154 mtx_unlock(&d3dlock_global
);
2158 static HRESULT NINE_WINAPI
2159 LockDevice9Ex_CheckResourceResidency( struct NineDevice9Ex
*This
,
2160 IDirect3DResource9
**pResourceArray
,
2161 UINT32 NumResources
)
2164 mtx_lock(&d3dlock_global
);
2165 r
= NineDevice9Ex_CheckResourceResidency(This
, pResourceArray
, NumResources
);
2166 mtx_unlock(&d3dlock_global
);
2170 static HRESULT NINE_WINAPI
2171 LockDevice9Ex_SetMaximumFrameLatency( struct NineDevice9Ex
*This
,
2175 mtx_lock(&d3dlock_global
);
2176 r
= NineDevice9Ex_SetMaximumFrameLatency(This
, MaxLatency
);
2177 mtx_unlock(&d3dlock_global
);
2181 static HRESULT NINE_WINAPI
2182 LockDevice9Ex_GetMaximumFrameLatency( struct NineDevice9Ex
*This
,
2186 mtx_lock(&d3dlock_global
);
2187 r
= NineDevice9Ex_GetMaximumFrameLatency(This
, pMaxLatency
);
2188 mtx_unlock(&d3dlock_global
);
2192 static HRESULT NINE_WINAPI
2193 LockDevice9Ex_CheckDeviceState( struct NineDevice9Ex
*This
,
2194 HWND hDestinationWindow
)
2197 mtx_lock(&d3dlock_global
);
2198 r
= NineDevice9Ex_CheckDeviceState(This
, hDestinationWindow
);
2199 mtx_unlock(&d3dlock_global
);
2203 static HRESULT NINE_WINAPI
2204 LockDevice9Ex_CreateRenderTargetEx( struct NineDevice9Ex
*This
,
2208 D3DMULTISAMPLE_TYPE MultiSample
,
2209 DWORD MultisampleQuality
,
2211 IDirect3DSurface9
**ppSurface
,
2212 HANDLE
*pSharedHandle
,
2216 mtx_lock(&d3dlock_global
);
2217 r
= NineDevice9Ex_CreateRenderTargetEx(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Lockable
, ppSurface
, pSharedHandle
, Usage
);
2218 mtx_unlock(&d3dlock_global
);
2222 static HRESULT NINE_WINAPI
2223 LockDevice9Ex_CreateOffscreenPlainSurfaceEx( struct NineDevice9Ex
*This
,
2228 IDirect3DSurface9
**ppSurface
,
2229 HANDLE
*pSharedHandle
,
2233 mtx_lock(&d3dlock_global
);
2234 r
= NineDevice9Ex_CreateOffscreenPlainSurfaceEx(This
, Width
, Height
, Format
, Pool
, ppSurface
, pSharedHandle
, Usage
);
2235 mtx_unlock(&d3dlock_global
);
2239 static HRESULT NINE_WINAPI
2240 LockDevice9Ex_CreateDepthStencilSurfaceEx( struct NineDevice9Ex
*This
,
2244 D3DMULTISAMPLE_TYPE MultiSample
,
2245 DWORD MultisampleQuality
,
2247 IDirect3DSurface9
**ppSurface
,
2248 HANDLE
*pSharedHandle
,
2252 mtx_lock(&d3dlock_global
);
2253 r
= NineDevice9Ex_CreateDepthStencilSurfaceEx(This
, Width
, Height
, Format
, MultiSample
, MultisampleQuality
, Discard
, ppSurface
, pSharedHandle
, Usage
);
2254 mtx_unlock(&d3dlock_global
);
2258 static HRESULT NINE_WINAPI
2259 LockDevice9Ex_ResetEx( struct NineDevice9Ex
*This
,
2260 D3DPRESENT_PARAMETERS
*pPresentationParameters
,
2261 D3DDISPLAYMODEEX
*pFullscreenDisplayMode
)
2264 mtx_lock(&d3dlock_global
);
2265 r
= NineDevice9Ex_ResetEx(This
, pPresentationParameters
, pFullscreenDisplayMode
);
2266 mtx_unlock(&d3dlock_global
);
2270 static HRESULT NINE_WINAPI
2271 LockDevice9Ex_GetDisplayModeEx( struct NineDevice9Ex
*This
,
2273 D3DDISPLAYMODEEX
*pMode
,
2274 D3DDISPLAYROTATION
*pRotation
)
2277 mtx_lock(&d3dlock_global
);
2278 r
= NineDevice9Ex_GetDisplayModeEx(This
, iSwapChain
, pMode
, pRotation
);
2279 mtx_unlock(&d3dlock_global
);
2283 IDirect3DDevice9ExVtbl LockDevice9Ex_vtable
= {
2284 (void *)NineUnknown_QueryInterface
,
2285 (void *)NineUnknown_AddRef
,
2286 (void *)NineUnknown_ReleaseWithDtorLock
,
2287 (void *)LockDevice9_TestCooperativeLevel
,
2288 (void *)LockDevice9_GetAvailableTextureMem
,
2289 (void *)LockDevice9_EvictManagedResources
,
2290 (void *)LockDevice9_GetDirect3D
,
2291 (void *)NineDevice9_GetDeviceCaps
,
2292 (void *)LockDevice9_GetDisplayMode
,
2293 (void *)NineDevice9_GetCreationParameters
,
2294 (void *)LockDevice9_SetCursorProperties
,
2295 (void *)LockDevice9_SetCursorPosition
,
2296 (void *)LockDevice9_ShowCursor
,
2297 (void *)LockDevice9_CreateAdditionalSwapChain
,
2298 (void *)LockDevice9_GetSwapChain
,
2299 (void *)LockDevice9_GetNumberOfSwapChains
,
2300 (void *)LockDevice9_Reset
,
2301 (void *)LockDevice9_Present
,
2302 (void *)LockDevice9_GetBackBuffer
,
2303 (void *)LockDevice9_GetRasterStatus
,
2304 (void *)LockDevice9_SetDialogBoxMode
,
2305 (void *)LockDevice9_SetGammaRamp
,
2306 (void *)LockDevice9_GetGammaRamp
,
2307 (void *)LockDevice9_CreateTexture
,
2308 (void *)LockDevice9_CreateVolumeTexture
,
2309 (void *)LockDevice9_CreateCubeTexture
,
2310 (void *)LockDevice9_CreateVertexBuffer
,
2311 (void *)LockDevice9_CreateIndexBuffer
,
2312 (void *)LockDevice9_CreateRenderTarget
,
2313 (void *)LockDevice9_CreateDepthStencilSurface
,
2314 (void *)LockDevice9_UpdateSurface
,
2315 (void *)LockDevice9_UpdateTexture
,
2316 (void *)LockDevice9_GetRenderTargetData
,
2317 (void *)LockDevice9_GetFrontBufferData
,
2318 (void *)LockDevice9_StretchRect
,
2319 (void *)LockDevice9_ColorFill
,
2320 (void *)LockDevice9_CreateOffscreenPlainSurface
,
2321 (void *)LockDevice9_SetRenderTarget
,
2322 (void *)LockDevice9_GetRenderTarget
,
2323 (void *)LockDevice9_SetDepthStencilSurface
,
2324 (void *)LockDevice9_GetDepthStencilSurface
,
2325 (void *)LockDevice9_BeginScene
,
2326 (void *)LockDevice9_EndScene
,
2327 (void *)LockDevice9_Clear
,
2328 (void *)LockDevice9_SetTransform
,
2329 (void *)LockDevice9_GetTransform
,
2330 (void *)LockDevice9_MultiplyTransform
,
2331 (void *)LockDevice9_SetViewport
,
2332 (void *)LockDevice9_GetViewport
,
2333 (void *)LockDevice9_SetMaterial
,
2334 (void *)LockDevice9_GetMaterial
,
2335 (void *)LockDevice9_SetLight
,
2336 (void *)LockDevice9_GetLight
,
2337 (void *)LockDevice9_LightEnable
,
2338 (void *)LockDevice9_GetLightEnable
,
2339 (void *)LockDevice9_SetClipPlane
,
2340 (void *)LockDevice9_GetClipPlane
,
2341 (void *)LockDevice9_SetRenderState
,
2342 (void *)LockDevice9_GetRenderState
,
2343 (void *)LockDevice9_CreateStateBlock
,
2344 (void *)LockDevice9_BeginStateBlock
,
2345 (void *)LockDevice9_EndStateBlock
,
2346 (void *)LockDevice9_SetClipStatus
,
2347 (void *)LockDevice9_GetClipStatus
,
2348 (void *)LockDevice9_GetTexture
,
2349 (void *)LockDevice9_SetTexture
,
2350 (void *)LockDevice9_GetTextureStageState
,
2351 (void *)LockDevice9_SetTextureStageState
,
2352 (void *)LockDevice9_GetSamplerState
,
2353 (void *)LockDevice9_SetSamplerState
,
2354 (void *)LockDevice9_ValidateDevice
,
2355 (void *)LockDevice9_SetPaletteEntries
,
2356 (void *)LockDevice9_GetPaletteEntries
,
2357 (void *)LockDevice9_SetCurrentTexturePalette
,
2358 (void *)LockDevice9_GetCurrentTexturePalette
,
2359 (void *)LockDevice9_SetScissorRect
,
2360 (void *)LockDevice9_GetScissorRect
,
2361 (void *)LockDevice9_SetSoftwareVertexProcessing
,
2362 (void *)LockDevice9_GetSoftwareVertexProcessing
,
2363 (void *)LockDevice9_SetNPatchMode
,
2364 (void *)LockDevice9_GetNPatchMode
,
2365 (void *)LockDevice9_DrawPrimitive
,
2366 (void *)LockDevice9_DrawIndexedPrimitive
,
2367 (void *)LockDevice9_DrawPrimitiveUP
,
2368 (void *)LockDevice9_DrawIndexedPrimitiveUP
,
2369 (void *)LockDevice9_ProcessVertices
,
2370 (void *)LockDevice9_CreateVertexDeclaration
,
2371 (void *)LockDevice9_SetVertexDeclaration
,
2372 (void *)LockDevice9_GetVertexDeclaration
,
2373 (void *)LockDevice9_SetFVF
,
2374 (void *)LockDevice9_GetFVF
,
2375 (void *)LockDevice9_CreateVertexShader
,
2376 (void *)LockDevice9_SetVertexShader
,
2377 (void *)LockDevice9_GetVertexShader
,
2378 (void *)LockDevice9_SetVertexShaderConstantF
,
2379 (void *)LockDevice9_GetVertexShaderConstantF
,
2380 (void *)LockDevice9_SetVertexShaderConstantI
,
2381 (void *)LockDevice9_GetVertexShaderConstantI
,
2382 (void *)LockDevice9_SetVertexShaderConstantB
,
2383 (void *)LockDevice9_GetVertexShaderConstantB
,
2384 (void *)LockDevice9_SetStreamSource
,
2385 (void *)LockDevice9_GetStreamSource
,
2386 (void *)LockDevice9_SetStreamSourceFreq
,
2387 (void *)LockDevice9_GetStreamSourceFreq
,
2388 (void *)LockDevice9_SetIndices
,
2389 (void *)LockDevice9_GetIndices
,
2390 (void *)LockDevice9_CreatePixelShader
,
2391 (void *)LockDevice9_SetPixelShader
,
2392 (void *)LockDevice9_GetPixelShader
,
2393 (void *)LockDevice9_SetPixelShaderConstantF
,
2394 (void *)LockDevice9_GetPixelShaderConstantF
,
2395 (void *)LockDevice9_SetPixelShaderConstantI
,
2396 (void *)LockDevice9_GetPixelShaderConstantI
,
2397 (void *)LockDevice9_SetPixelShaderConstantB
,
2398 (void *)LockDevice9_GetPixelShaderConstantB
,
2399 (void *)LockDevice9_DrawRectPatch
,
2400 (void *)LockDevice9_DrawTriPatch
,
2401 (void *)LockDevice9_DeletePatch
,
2402 (void *)LockDevice9_CreateQuery
,
2403 (void *)LockDevice9Ex_SetConvolutionMonoKernel
,
2404 (void *)LockDevice9Ex_ComposeRects
,
2405 (void *)LockDevice9Ex_PresentEx
,
2406 (void *)LockDevice9Ex_GetGPUThreadPriority
,
2407 (void *)LockDevice9Ex_SetGPUThreadPriority
,
2408 (void *)LockDevice9Ex_WaitForVBlank
,
2409 (void *)LockDevice9Ex_CheckResourceResidency
,
2410 (void *)LockDevice9Ex_SetMaximumFrameLatency
,
2411 (void *)LockDevice9Ex_GetMaximumFrameLatency
,
2412 (void *)LockDevice9Ex_CheckDeviceState
,
2413 (void *)LockDevice9Ex_CreateRenderTargetEx
,
2414 (void *)LockDevice9Ex_CreateOffscreenPlainSurfaceEx
,
2415 (void *)LockDevice9Ex_CreateDepthStencilSurfaceEx
,
2416 (void *)LockDevice9Ex_ResetEx
,
2417 (void *)LockDevice9Ex_GetDisplayModeEx
2420 static HRESULT NINE_WINAPI
2421 LockDevice9Video_GetContentProtectionCaps( struct NineDevice9Video
*This
,
2422 const GUID
*pCryptoType
,
2423 const GUID
*pDecodeProfile
,
2424 D3DCONTENTPROTECTIONCAPS
*pCaps
)
2427 mtx_lock(&d3dlock_global
);
2428 r
= NineDevice9Video_GetContentProtectionCaps(This
, pCryptoType
, pDecodeProfile
, pCaps
);
2429 mtx_unlock(&d3dlock_global
);
2433 static HRESULT NINE_WINAPI
2434 LockDevice9Video_CreateAuthenticatedChannel( struct NineDevice9Video
*This
,
2435 D3DAUTHENTICATEDCHANNELTYPE ChannelType
,
2436 IDirect3DAuthenticatedChannel9
**ppAuthenticatedChannel
,
2437 HANDLE
*pChannelHandle
)
2440 mtx_lock(&d3dlock_global
);
2441 r
= NineDevice9Video_CreateAuthenticatedChannel(This
, ChannelType
, ppAuthenticatedChannel
, pChannelHandle
);
2442 mtx_unlock(&d3dlock_global
);
2446 static HRESULT NINE_WINAPI
2447 LockDevice9Video_CreateCryptoSession( struct NineDevice9Video
*This
,
2448 const GUID
*pCryptoType
,
2449 const GUID
*pDecodeProfile
,
2450 IDirect3DCryptoSession9
**ppCryptoSession
,
2451 HANDLE
*pCryptoHandle
)
2454 mtx_lock(&d3dlock_global
);
2455 r
= NineDevice9Video_CreateCryptoSession(This
, pCryptoType
, pDecodeProfile
, ppCryptoSession
, pCryptoHandle
);
2456 mtx_unlock(&d3dlock_global
);
2460 IDirect3DDevice9VideoVtbl LockDevice9Video_vtable
= {
2461 (void *)NineUnknown_QueryInterface
,
2462 (void *)NineUnknown_AddRef
,
2463 (void *)NineUnknown_ReleaseWithDtorLock
,
2464 (void *)LockDevice9Video_GetContentProtectionCaps
,
2465 (void *)LockDevice9Video_CreateAuthenticatedChannel
,
2466 (void *)LockDevice9Video_CreateCryptoSession
2469 static HRESULT NINE_WINAPI
2470 LockIndexBuffer9_Lock( struct NineIndexBuffer9
*This
,
2477 mtx_lock(&d3dlock_global
);
2478 r
= NineIndexBuffer9_Lock(This
, OffsetToLock
, SizeToLock
, ppbData
, Flags
);
2479 mtx_unlock(&d3dlock_global
);
2483 static HRESULT NINE_WINAPI
2484 LockIndexBuffer9_Unlock( struct NineIndexBuffer9
*This
)
2487 mtx_lock(&d3dlock_global
);
2488 r
= NineIndexBuffer9_Unlock(This
);
2489 mtx_unlock(&d3dlock_global
);
2494 static HRESULT NINE_WINAPI
2495 LockIndexBuffer9_GetDesc( struct NineIndexBuffer9
*This
,
2496 D3DINDEXBUFFER_DESC
*pDesc
)
2499 mtx_lock(&d3dlock_global
);
2500 r
= NineIndexBuffer9_GetDesc(This
, pDesc
);
2501 mtx_unlock(&d3dlock_global
);
2506 IDirect3DIndexBuffer9Vtbl LockIndexBuffer9_vtable
= {
2507 (void *)NineUnknown_QueryInterface
,
2508 (void *)NineUnknown_AddRef
,
2509 (void *)NineUnknown_ReleaseWithDtorLock
,
2510 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2511 (void *)LockUnknown_SetPrivateData
,
2512 (void *)LockUnknown_GetPrivateData
,
2513 (void *)LockUnknown_FreePrivateData
,
2514 (void *)LockResource9_SetPriority
,
2515 (void *)LockResource9_GetPriority
,
2516 (void *)NineResource9_PreLoad
, /* nop */
2517 (void *)NineResource9_GetType
, /* immutable */
2518 (void *)LockIndexBuffer9_Lock
,
2519 (void *)LockIndexBuffer9_Unlock
,
2520 (void *)NineIndexBuffer9_GetDesc
/* immutable */
2524 static HRESULT NINE_WINAPI
2525 LockPixelShader9_GetDevice( struct NinePixelShader9
*This
,
2526 IDirect3DDevice9
**ppDevice
)
2529 mtx_lock(&d3dlock_global
);
2530 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2531 mtx_unlock(&d3dlock_global
);
2536 static HRESULT NINE_WINAPI
2537 LockPixelShader9_GetFunction( struct NinePixelShader9
*This
,
2542 mtx_lock(&d3dlock_global
);
2543 r
= NinePixelShader9_GetFunction(This
, pData
, pSizeOfData
);
2544 mtx_unlock(&d3dlock_global
);
2548 IDirect3DPixelShader9Vtbl LockPixelShader9_vtable
= {
2549 (void *)NineUnknown_QueryInterface
,
2550 (void *)NineUnknown_AddRef
,
2551 (void *)NineUnknown_ReleaseWithDtorLock
,
2552 (void *)NineUnknown_GetDevice
,
2553 (void *)LockPixelShader9_GetFunction
2557 static HRESULT NINE_WINAPI
2558 LockQuery9_GetDevice( struct NineQuery9
*This
,
2559 IDirect3DDevice9
**ppDevice
)
2562 mtx_lock(&d3dlock_global
);
2563 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2564 mtx_unlock(&d3dlock_global
);
2570 static D3DQUERYTYPE NINE_WINAPI
2571 LockQuery9_GetType( struct NineQuery9
*This
)
2574 mtx_lock(&d3dlock_global
);
2575 r
= NineQuery9_GetType(This
);
2576 mtx_unlock(&d3dlock_global
);
2582 static DWORD NINE_WINAPI
2583 LockQuery9_GetDataSize( struct NineQuery9
*This
)
2586 mtx_lock(&d3dlock_global
);
2587 r
= NineQuery9_GetDataSize(This
);
2588 mtx_unlock(&d3dlock_global
);
2593 static HRESULT NINE_WINAPI
2594 LockQuery9_Issue( struct NineQuery9
*This
,
2595 DWORD dwIssueFlags
)
2598 mtx_lock(&d3dlock_global
);
2599 r
= NineQuery9_Issue(This
, dwIssueFlags
);
2600 mtx_unlock(&d3dlock_global
);
2604 static HRESULT NINE_WINAPI
2605 LockQuery9_GetData( struct NineQuery9
*This
,
2608 DWORD dwGetDataFlags
)
2611 mtx_lock(&d3dlock_global
);
2612 r
= NineQuery9_GetData(This
, pData
, dwSize
, dwGetDataFlags
);
2613 mtx_unlock(&d3dlock_global
);
2617 IDirect3DQuery9Vtbl LockQuery9_vtable
= {
2618 (void *)NineUnknown_QueryInterface
,
2619 (void *)NineUnknown_AddRef
,
2620 (void *)NineUnknown_ReleaseWithDtorLock
,
2621 (void *)NineUnknown_GetDevice
, /* actually part of Query9 iface */
2622 (void *)NineQuery9_GetType
, /* immutable */
2623 (void *)NineQuery9_GetDataSize
, /* immutable */
2624 (void *)LockQuery9_Issue
,
2625 (void *)LockQuery9_GetData
2629 static HRESULT NINE_WINAPI
2630 LockStateBlock9_GetDevice( struct NineStateBlock9
*This
,
2631 IDirect3DDevice9
**ppDevice
)
2634 mtx_lock(&d3dlock_global
);
2635 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2636 mtx_unlock(&d3dlock_global
);
2641 static HRESULT NINE_WINAPI
2642 LockStateBlock9_Capture( struct NineStateBlock9
*This
)
2645 mtx_lock(&d3dlock_global
);
2646 r
= NineStateBlock9_Capture(This
);
2647 mtx_unlock(&d3dlock_global
);
2651 static HRESULT NINE_WINAPI
2652 LockStateBlock9_Apply( struct NineStateBlock9
*This
)
2655 mtx_lock(&d3dlock_global
);
2656 r
= NineStateBlock9_Apply(This
);
2657 mtx_unlock(&d3dlock_global
);
2661 IDirect3DStateBlock9Vtbl LockStateBlock9_vtable
= {
2662 (void *)NineUnknown_QueryInterface
,
2663 (void *)NineUnknown_AddRef
,
2664 (void *)NineUnknown_ReleaseWithDtorLock
,
2665 (void *)NineUnknown_GetDevice
, /* actually part of StateBlock9 iface */
2666 (void *)LockStateBlock9_Capture
,
2667 (void *)LockStateBlock9_Apply
2670 static HRESULT NINE_WINAPI
2671 LockSurface9_GetContainer( struct NineSurface9
*This
,
2673 void **ppContainer
)
2676 mtx_lock(&d3dlock_global
);
2677 r
= NineSurface9_GetContainer(This
, riid
, ppContainer
);
2678 mtx_unlock(&d3dlock_global
);
2683 static HRESULT NINE_WINAPI
2684 LockSurface9_GetDesc( struct NineSurface9
*This
,
2685 D3DSURFACE_DESC
*pDesc
)
2688 mtx_lock(&d3dlock_global
);
2689 r
= NineSurface9_GetDesc(This
, pDesc
);
2690 mtx_unlock(&d3dlock_global
);
2695 static HRESULT NINE_WINAPI
2696 LockSurface9_LockRect( struct NineSurface9
*This
,
2697 D3DLOCKED_RECT
*pLockedRect
,
2702 mtx_lock(&d3dlock_global
);
2703 r
= NineSurface9_LockRect(This
, pLockedRect
, pRect
, Flags
);
2704 mtx_unlock(&d3dlock_global
);
2708 static HRESULT NINE_WINAPI
2709 LockSurface9_UnlockRect( struct NineSurface9
*This
)
2712 mtx_lock(&d3dlock_global
);
2713 r
= NineSurface9_UnlockRect(This
);
2714 mtx_unlock(&d3dlock_global
);
2718 static HRESULT NINE_WINAPI
2719 LockSurface9_GetDC( struct NineSurface9
*This
,
2723 mtx_lock(&d3dlock_global
);
2724 r
= NineSurface9_GetDC(This
, phdc
);
2725 mtx_unlock(&d3dlock_global
);
2729 static HRESULT NINE_WINAPI
2730 LockSurface9_ReleaseDC( struct NineSurface9
*This
,
2734 mtx_lock(&d3dlock_global
);
2735 r
= NineSurface9_ReleaseDC(This
, hdc
);
2736 mtx_unlock(&d3dlock_global
);
2740 IDirect3DSurface9Vtbl LockSurface9_vtable
= {
2741 (void *)NineUnknown_QueryInterface
,
2742 (void *)NineUnknown_AddRef
,
2743 (void *)NineUnknown_ReleaseWithDtorLock
,
2744 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2745 (void *)LockUnknown_SetPrivateData
,
2746 (void *)LockUnknown_GetPrivateData
,
2747 (void *)LockUnknown_FreePrivateData
,
2748 (void *)LockResource9_SetPriority
,
2749 (void *)LockResource9_GetPriority
,
2750 (void *)NineResource9_PreLoad
, /* nop */
2751 (void *)NineResource9_GetType
, /* immutable */
2752 (void *)LockSurface9_GetContainer
,
2753 (void *)NineSurface9_GetDesc
, /* immutable */
2754 (void *)LockSurface9_LockRect
,
2755 (void *)LockSurface9_UnlockRect
,
2756 (void *)LockSurface9_GetDC
,
2757 (void *)LockSurface9_ReleaseDC
2760 static HRESULT NINE_WINAPI
2761 LockSwapChain9_Present( struct NineSwapChain9
*This
,
2762 const RECT
*pSourceRect
,
2763 const RECT
*pDestRect
,
2764 HWND hDestWindowOverride
,
2765 const RGNDATA
*pDirtyRegion
,
2769 mtx_lock(&d3dlock_global
);
2770 r
= NineSwapChain9_Present(This
, pSourceRect
, pDestRect
, hDestWindowOverride
, pDirtyRegion
, dwFlags
);
2771 mtx_unlock(&d3dlock_global
);
2775 static HRESULT NINE_WINAPI
2776 LockSwapChain9_GetFrontBufferData( struct NineSwapChain9
*This
,
2777 IDirect3DSurface9
*pDestSurface
)
2780 mtx_lock(&d3dlock_global
);
2781 r
= NineSwapChain9_GetFrontBufferData(This
, pDestSurface
);
2782 mtx_unlock(&d3dlock_global
);
2786 static HRESULT NINE_WINAPI
2787 LockSwapChain9_GetBackBuffer( struct NineSwapChain9
*This
,
2789 D3DBACKBUFFER_TYPE Type
,
2790 IDirect3DSurface9
**ppBackBuffer
)
2793 mtx_lock(&d3dlock_global
);
2794 r
= NineSwapChain9_GetBackBuffer(This
, iBackBuffer
, Type
, ppBackBuffer
);
2795 mtx_unlock(&d3dlock_global
);
2799 static HRESULT NINE_WINAPI
2800 LockSwapChain9_GetRasterStatus( struct NineSwapChain9
*This
,
2801 D3DRASTER_STATUS
*pRasterStatus
)
2804 mtx_lock(&d3dlock_global
);
2805 r
= NineSwapChain9_GetRasterStatus(This
, pRasterStatus
);
2806 mtx_unlock(&d3dlock_global
);
2810 static HRESULT NINE_WINAPI
2811 LockSwapChain9_GetDisplayMode( struct NineSwapChain9
*This
,
2812 D3DDISPLAYMODE
*pMode
)
2815 mtx_lock(&d3dlock_global
);
2816 r
= NineSwapChain9_GetDisplayMode(This
, pMode
);
2817 mtx_unlock(&d3dlock_global
);
2822 static HRESULT NINE_WINAPI
2823 LockSwapChain9_GetDevice( struct NineSwapChain9
*This
,
2824 IDirect3DDevice9
**ppDevice
)
2827 mtx_lock(&d3dlock_global
);
2828 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
2829 mtx_unlock(&d3dlock_global
);
2834 static HRESULT NINE_WINAPI
2835 LockSwapChain9_GetPresentParameters( struct NineSwapChain9
*This
,
2836 D3DPRESENT_PARAMETERS
*pPresentationParameters
)
2839 mtx_lock(&d3dlock_global
);
2840 r
= NineSwapChain9_GetPresentParameters(This
, pPresentationParameters
);
2841 mtx_unlock(&d3dlock_global
);
2845 IDirect3DSwapChain9Vtbl LockSwapChain9_vtable
= {
2846 (void *)NineUnknown_QueryInterface
,
2847 (void *)NineUnknown_AddRef
,
2848 (void *)NineUnknown_ReleaseWithDtorLock
,
2849 (void *)LockSwapChain9_Present
,
2850 (void *)LockSwapChain9_GetFrontBufferData
,
2851 (void *)LockSwapChain9_GetBackBuffer
,
2852 (void *)LockSwapChain9_GetRasterStatus
,
2853 (void *)LockSwapChain9_GetDisplayMode
,
2854 (void *)NineUnknown_GetDevice
, /* actually part of SwapChain9 iface */
2855 (void *)LockSwapChain9_GetPresentParameters
2858 static HRESULT NINE_WINAPI
2859 LockSwapChain9Ex_GetLastPresentCount( struct NineSwapChain9Ex
*This
,
2860 UINT
*pLastPresentCount
)
2863 mtx_lock(&d3dlock_global
);
2864 r
= NineSwapChain9Ex_GetLastPresentCount(This
, pLastPresentCount
);
2865 mtx_unlock(&d3dlock_global
);
2869 static HRESULT NINE_WINAPI
2870 LockSwapChain9Ex_GetPresentStats( struct NineSwapChain9Ex
*This
,
2871 D3DPRESENTSTATS
*pPresentationStatistics
)
2874 mtx_lock(&d3dlock_global
);
2875 r
= NineSwapChain9Ex_GetPresentStats(This
, pPresentationStatistics
);
2876 mtx_unlock(&d3dlock_global
);
2880 static HRESULT NINE_WINAPI
2881 LockSwapChain9Ex_GetDisplayModeEx( struct NineSwapChain9Ex
*This
,
2882 D3DDISPLAYMODEEX
*pMode
,
2883 D3DDISPLAYROTATION
*pRotation
)
2886 mtx_lock(&d3dlock_global
);
2887 r
= NineSwapChain9Ex_GetDisplayModeEx(This
, pMode
, pRotation
);
2888 mtx_unlock(&d3dlock_global
);
2892 IDirect3DSwapChain9ExVtbl LockSwapChain9Ex_vtable
= {
2893 (void *)NineUnknown_QueryInterface
,
2894 (void *)NineUnknown_AddRef
,
2895 (void *)NineUnknown_ReleaseWithDtorLock
,
2896 (void *)LockSwapChain9_Present
,
2897 (void *)LockSwapChain9_GetFrontBufferData
,
2898 (void *)LockSwapChain9_GetBackBuffer
,
2899 (void *)LockSwapChain9_GetRasterStatus
,
2900 (void *)LockSwapChain9_GetDisplayMode
,
2901 (void *)NineUnknown_GetDevice
, /* actually part of NineSwapChain9 iface */
2902 (void *)LockSwapChain9_GetPresentParameters
,
2903 (void *)LockSwapChain9Ex_GetLastPresentCount
,
2904 (void *)LockSwapChain9Ex_GetPresentStats
,
2905 (void *)LockSwapChain9Ex_GetDisplayModeEx
2909 static HRESULT NINE_WINAPI
2910 LockTexture9_GetLevelDesc( struct NineTexture9
*This
,
2912 D3DSURFACE_DESC
*pDesc
)
2915 mtx_lock(&d3dlock_global
);
2916 r
= NineTexture9_GetLevelDesc(This
, Level
, pDesc
);
2917 mtx_unlock(&d3dlock_global
);
2923 static HRESULT NINE_WINAPI
2924 LockTexture9_GetSurfaceLevel( struct NineTexture9
*This
,
2926 IDirect3DSurface9
**ppSurfaceLevel
)
2929 mtx_lock(&d3dlock_global
);
2930 r
= NineTexture9_GetSurfaceLevel(This
, Level
, ppSurfaceLevel
);
2931 mtx_unlock(&d3dlock_global
);
2936 static HRESULT NINE_WINAPI
2937 LockTexture9_LockRect( struct NineTexture9
*This
,
2939 D3DLOCKED_RECT
*pLockedRect
,
2944 mtx_lock(&d3dlock_global
);
2945 r
= NineTexture9_LockRect(This
, Level
, pLockedRect
, pRect
, Flags
);
2946 mtx_unlock(&d3dlock_global
);
2950 static HRESULT NINE_WINAPI
2951 LockTexture9_UnlockRect( struct NineTexture9
*This
,
2955 mtx_lock(&d3dlock_global
);
2956 r
= NineTexture9_UnlockRect(This
, Level
);
2957 mtx_unlock(&d3dlock_global
);
2961 static HRESULT NINE_WINAPI
2962 LockTexture9_AddDirtyRect( struct NineTexture9
*This
,
2963 const RECT
*pDirtyRect
)
2966 mtx_lock(&d3dlock_global
);
2967 r
= NineTexture9_AddDirtyRect(This
, pDirtyRect
);
2968 mtx_unlock(&d3dlock_global
);
2972 IDirect3DTexture9Vtbl LockTexture9_vtable
= {
2973 (void *)NineUnknown_QueryInterface
,
2974 (void *)NineUnknown_AddRef
,
2975 (void *)NineUnknown_ReleaseWithDtorLock
,
2976 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
2977 (void *)LockUnknown_SetPrivateData
,
2978 (void *)LockUnknown_GetPrivateData
,
2979 (void *)LockUnknown_FreePrivateData
,
2980 (void *)LockResource9_SetPriority
,
2981 (void *)LockResource9_GetPriority
,
2982 (void *)LockBaseTexture9_PreLoad
,
2983 (void *)NineResource9_GetType
, /* immutable */
2984 (void *)LockBaseTexture9_SetLOD
,
2985 (void *)LockBaseTexture9_GetLOD
,
2986 (void *)LockBaseTexture9_GetLevelCount
,
2987 (void *)LockBaseTexture9_SetAutoGenFilterType
,
2988 (void *)LockBaseTexture9_GetAutoGenFilterType
,
2989 (void *)LockBaseTexture9_GenerateMipSubLevels
,
2990 (void *)NineTexture9_GetLevelDesc
, /* immutable */
2991 (void *)NineTexture9_GetSurfaceLevel
, /* AddRef */
2992 (void *)LockTexture9_LockRect
,
2993 (void *)LockTexture9_UnlockRect
,
2994 (void *)LockTexture9_AddDirtyRect
2997 static HRESULT NINE_WINAPI
2998 LockVertexBuffer9_Lock( struct NineVertexBuffer9
*This
,
3005 mtx_lock(&d3dlock_global
);
3006 r
= NineVertexBuffer9_Lock(This
, OffsetToLock
, SizeToLock
, ppbData
, Flags
);
3007 mtx_unlock(&d3dlock_global
);
3011 static HRESULT NINE_WINAPI
3012 LockVertexBuffer9_Unlock( struct NineVertexBuffer9
*This
)
3015 mtx_lock(&d3dlock_global
);
3016 r
= NineVertexBuffer9_Unlock(This
);
3017 mtx_unlock(&d3dlock_global
);
3022 static HRESULT NINE_WINAPI
3023 LockVertexBuffer9_GetDesc( struct NineVertexBuffer9
*This
,
3024 D3DVERTEXBUFFER_DESC
*pDesc
)
3027 mtx_lock(&d3dlock_global
);
3028 r
= NineVertexBuffer9_GetDesc(This
, pDesc
);
3029 mtx_unlock(&d3dlock_global
);
3034 IDirect3DVertexBuffer9Vtbl LockVertexBuffer9_vtable
= {
3035 (void *)NineUnknown_QueryInterface
,
3036 (void *)NineUnknown_AddRef
,
3037 (void *)NineUnknown_ReleaseWithDtorLock
,
3038 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
3039 (void *)LockUnknown_SetPrivateData
,
3040 (void *)LockUnknown_GetPrivateData
,
3041 (void *)LockUnknown_FreePrivateData
,
3042 (void *)LockResource9_SetPriority
,
3043 (void *)LockResource9_GetPriority
,
3044 (void *)NineResource9_PreLoad
, /* nop */
3045 (void *)NineResource9_GetType
, /* immutable */
3046 (void *)LockVertexBuffer9_Lock
,
3047 (void *)LockVertexBuffer9_Unlock
,
3048 (void *)NineVertexBuffer9_GetDesc
/* immutable */
3052 static HRESULT NINE_WINAPI
3053 LockVertexDeclaration9_GetDevice( struct NineVertexDeclaration9
*This
,
3054 IDirect3DDevice9
**ppDevice
)
3057 mtx_lock(&d3dlock_global
);
3058 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3059 mtx_unlock(&d3dlock_global
);
3064 static HRESULT NINE_WINAPI
3065 LockVertexDeclaration9_GetDeclaration( struct NineVertexDeclaration9
*This
,
3066 D3DVERTEXELEMENT9
*pElement
,
3067 UINT
*pNumElements
)
3070 mtx_lock(&d3dlock_global
);
3071 r
= NineVertexDeclaration9_GetDeclaration(This
, pElement
, pNumElements
);
3072 mtx_unlock(&d3dlock_global
);
3076 IDirect3DVertexDeclaration9Vtbl LockVertexDeclaration9_vtable
= {
3077 (void *)NineUnknown_QueryInterface
,
3078 (void *)NineUnknown_AddRef
,
3079 (void *)NineUnknown_ReleaseWithDtorLock
,
3080 (void *)NineUnknown_GetDevice
, /* actually part of VertexDecl9 iface */
3081 (void *)LockVertexDeclaration9_GetDeclaration
3085 static HRESULT NINE_WINAPI
3086 LockVertexShader9_GetDevice( struct NineVertexShader9
*This
,
3087 IDirect3DDevice9
**ppDevice
)
3090 mtx_lock(&d3dlock_global
);
3091 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3092 mtx_unlock(&d3dlock_global
);
3097 static HRESULT NINE_WINAPI
3098 LockVertexShader9_GetFunction( struct NineVertexShader9
*This
,
3103 mtx_lock(&d3dlock_global
);
3104 r
= NineVertexShader9_GetFunction(This
, pData
, pSizeOfData
);
3105 mtx_unlock(&d3dlock_global
);
3109 IDirect3DVertexShader9Vtbl LockVertexShader9_vtable
= {
3110 (void *)NineUnknown_QueryInterface
,
3111 (void *)NineUnknown_AddRef
,
3112 (void *)NineUnknown_ReleaseWithDtorLock
,
3113 (void *)NineUnknown_GetDevice
,
3114 (void *)LockVertexShader9_GetFunction
3118 static HRESULT NINE_WINAPI
3119 LockVolume9_GetDevice( struct NineVolume9
*This
,
3120 IDirect3DDevice9
**ppDevice
)
3123 mtx_lock(&d3dlock_global
);
3124 r
= NineUnknown_GetDevice(NineUnknown(This
), ppDevice
);
3125 mtx_unlock(&d3dlock_global
);
3130 static HRESULT NINE_WINAPI
3131 LockVolume9_GetContainer( struct NineVolume9
*This
,
3133 void **ppContainer
)
3136 mtx_lock(&d3dlock_global
);
3137 r
= NineVolume9_GetContainer(This
, riid
, ppContainer
);
3138 mtx_unlock(&d3dlock_global
);
3143 static HRESULT NINE_WINAPI
3144 LockVolume9_GetDesc( struct NineVolume9
*This
,
3145 D3DVOLUME_DESC
*pDesc
)
3148 mtx_lock(&d3dlock_global
);
3149 r
= NineVolume9_GetDesc(This
, pDesc
);
3150 mtx_unlock(&d3dlock_global
);
3155 static HRESULT NINE_WINAPI
3156 LockVolume9_LockBox( struct NineVolume9
*This
,
3157 D3DLOCKED_BOX
*pLockedVolume
,
3162 mtx_lock(&d3dlock_global
);
3163 r
= NineVolume9_LockBox(This
, pLockedVolume
, pBox
, Flags
);
3164 mtx_unlock(&d3dlock_global
);
3168 static HRESULT NINE_WINAPI
3169 LockVolume9_UnlockBox( struct NineVolume9
*This
)
3172 mtx_lock(&d3dlock_global
);
3173 r
= NineVolume9_UnlockBox(This
);
3174 mtx_unlock(&d3dlock_global
);
3178 IDirect3DVolume9Vtbl LockVolume9_vtable
= {
3179 (void *)NineUnknown_QueryInterface
,
3180 (void *)NineUnknown_AddRef
,
3181 (void *)NineUnknown_ReleaseWithDtorLock
,
3182 (void *)NineUnknown_GetDevice
, /* actually part of Volume9 iface */
3183 (void *)NineUnknown_SetPrivateData
,
3184 (void *)NineUnknown_GetPrivateData
,
3185 (void *)NineUnknown_FreePrivateData
,
3186 (void *)LockVolume9_GetContainer
,
3187 (void *)NineVolume9_GetDesc
, /* immutable */
3188 (void *)LockVolume9_LockBox
,
3189 (void *)LockVolume9_UnlockBox
3193 static HRESULT NINE_WINAPI
3194 LockVolumeTexture9_GetLevelDesc( struct NineVolumeTexture9
*This
,
3196 D3DVOLUME_DESC
*pDesc
)
3199 mtx_lock(&d3dlock_global
);
3200 r
= NineVolumeTexture9_GetLevelDesc(This
, Level
, pDesc
);
3201 mtx_unlock(&d3dlock_global
);
3207 static HRESULT NINE_WINAPI
3208 LockVolumeTexture9_GetVolumeLevel( struct NineVolumeTexture9
*This
,
3210 IDirect3DVolume9
**ppVolumeLevel
)
3213 mtx_lock(&d3dlock_global
);
3214 r
= NineVolumeTexture9_GetVolumeLevel(This
, Level
, ppVolumeLevel
);
3215 mtx_unlock(&d3dlock_global
);
3220 static HRESULT NINE_WINAPI
3221 LockVolumeTexture9_LockBox( struct NineVolumeTexture9
*This
,
3223 D3DLOCKED_BOX
*pLockedVolume
,
3228 mtx_lock(&d3dlock_global
);
3229 r
= NineVolumeTexture9_LockBox(This
, Level
, pLockedVolume
, pBox
, Flags
);
3230 mtx_unlock(&d3dlock_global
);
3234 static HRESULT NINE_WINAPI
3235 LockVolumeTexture9_UnlockBox( struct NineVolumeTexture9
*This
,
3239 mtx_lock(&d3dlock_global
);
3240 r
= NineVolumeTexture9_UnlockBox(This
, Level
);
3241 mtx_unlock(&d3dlock_global
);
3245 static HRESULT NINE_WINAPI
3246 LockVolumeTexture9_AddDirtyBox( struct NineVolumeTexture9
*This
,
3247 const D3DBOX
*pDirtyBox
)
3250 mtx_lock(&d3dlock_global
);
3251 r
= NineVolumeTexture9_AddDirtyBox(This
, pDirtyBox
);
3252 mtx_unlock(&d3dlock_global
);
3256 IDirect3DVolumeTexture9Vtbl LockVolumeTexture9_vtable
= {
3257 (void *)NineUnknown_QueryInterface
,
3258 (void *)NineUnknown_AddRef
,
3259 (void *)NineUnknown_ReleaseWithDtorLock
,
3260 (void *)NineUnknown_GetDevice
, /* actually part of Resource9 iface */
3261 (void *)LockUnknown_SetPrivateData
,
3262 (void *)LockUnknown_GetPrivateData
,
3263 (void *)LockUnknown_FreePrivateData
,
3264 (void *)LockResource9_SetPriority
,
3265 (void *)LockResource9_GetPriority
,
3266 (void *)LockBaseTexture9_PreLoad
,
3267 (void *)NineResource9_GetType
, /* immutable */
3268 (void *)LockBaseTexture9_SetLOD
,
3269 (void *)LockBaseTexture9_GetLOD
,
3270 (void *)LockBaseTexture9_GetLevelCount
,
3271 (void *)LockBaseTexture9_SetAutoGenFilterType
,
3272 (void *)LockBaseTexture9_GetAutoGenFilterType
,
3273 (void *)LockBaseTexture9_GenerateMipSubLevels
,
3274 (void *)NineVolumeTexture9_GetLevelDesc
, /* immutable */
3275 (void *)NineVolumeTexture9_GetVolumeLevel
, /* AddRef */
3276 (void *)LockVolumeTexture9_LockBox
,
3277 (void *)LockVolumeTexture9_UnlockBox
,
3278 (void *)LockVolumeTexture9_AddDirtyBox
3281 ID3DAdapter9Vtbl LockAdapter9_vtable
= { /* not used */