st/nine: Implement IPresent version 1.2
Implement presentation interface version 1.2: * ID3DPresent_ResolutionMismatch Poll for resolution mismatch. A third party app might have changed resolution, which requires a device reset. * ID3DPresent_CreateThread Create a thread in WINE to allow nine to use Windows API functions. Required for multi-threaded presentation. In single-threaded presentation mode the calling thread is already known to WINE. * ID3DPresent_WaitForThread Wait for a wine thread to terminate. Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:

committed by
Axel Davy

parent
2e149a2bf0
commit
dae9a91727
@@ -71,6 +71,10 @@ typedef struct ID3DPresentVtbl
|
||||
HRESULT (WINAPI *GetWindowInfo)(ID3DPresent *This, HWND hWnd, int *width, int *height, int *depth);
|
||||
/* Available since version 1.1 */
|
||||
BOOL (WINAPI *GetWindowOccluded)(ID3DPresent *This);
|
||||
/* Available since version 1.2 */
|
||||
BOOL (WINAPI *ResolutionMismatch)(ID3DPresent *This);
|
||||
HANDLE (WINAPI *CreateThread)(ID3DPresent *This, void *pThreadfunc, void *pParam);
|
||||
BOOL (WINAPI *WaitForThread)(ID3DPresent *This, HANDLE thread);
|
||||
} ID3DPresentVtbl;
|
||||
|
||||
struct ID3DPresent
|
||||
@@ -99,6 +103,9 @@ struct ID3DPresent
|
||||
#define ID3DPresent_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
|
||||
#define ID3DPresent_GetWindowInfo(p,a,b,c,d) (p)->lpVtbl->GetWindowSize(p,a,b,c,d)
|
||||
#define ID3DPresent_GetWindowOccluded(p) (p)->lpVtbl->GetWindowOccluded(p)
|
||||
#define ID3DPresent_ResolutionMismatch(p) (p)->lpVtbl->ResolutionMismatch(p)
|
||||
#define ID3DPresent_CreateThread(p,a,b) (p)->lpVtbl->CreateThread(p,a,b)
|
||||
#define ID3DPresent_WaitForThread(p,a) (p)->lpVtbl->WaitForThread(p,a)
|
||||
|
||||
typedef struct ID3DPresentGroupVtbl
|
||||
{
|
||||
|
Reference in New Issue
Block a user