From dae9a9172703afc979a2fb7d243dd574227e826e Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Sat, 27 Feb 2016 09:58:19 +0100 Subject: [PATCH] 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 Reviewed-by: Axel Davy --- include/d3dadapter/present.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/d3dadapter/present.h b/include/d3dadapter/present.h index 162f703e320..187843f892a 100644 --- a/include/d3dadapter/present.h +++ b/include/d3dadapter/present.h @@ -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 { -- 2.30.2