summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2015-06-20 20:06:11 +0200
committerAxel Davy <axel.davy@ens.fr>2016-02-04 22:12:17 +0100
commita961ec335d5f38c07181e4956341c9b4cca59fa4 (patch)
tree38b1b8729d3516591737a5b30bf4819bfc7fff38 /include
parente59908e57f4f6d63bbe079fde4e0180167e709c1 (diff)
downloadexternal_mesa3d-a961ec335d5f38c07181e4956341c9b4cca59fa4.zip
external_mesa3d-a961ec335d5f38c07181e4956341c9b4cca59fa4.tar.gz
external_mesa3d-a961ec335d5f38c07181e4956341c9b4cca59fa4.tar.bz2
st/nine: Handle Window Occlusion
Apps can know if the window is occluded by checking for specific error messages. The behaviour is different for Device9 and Device9Ex. This allow games to release the mouse and stop rendering until the focus is restored. In case of multiple swapchain we do care only of the device one. Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
Diffstat (limited to 'include')
-rw-r--r--include/D3D9/d3d9types.h1
-rw-r--r--include/d3dadapter/present.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/include/D3D9/d3d9types.h b/include/D3D9/d3d9types.h
index 52fbc99..d74ce80 100644
--- a/include/D3D9/d3d9types.h
+++ b/include/D3D9/d3d9types.h
@@ -227,6 +227,7 @@ typedef struct _RGNDATA {
#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
+#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
/********************************************************
* Bitmasks *
diff --git a/include/d3dadapter/present.h b/include/d3dadapter/present.h
index 08a9729..162f703 100644
--- a/include/d3dadapter/present.h
+++ b/include/d3dadapter/present.h
@@ -69,6 +69,8 @@ typedef struct ID3DPresentVtbl
HRESULT (WINAPI *SetCursor)(ID3DPresent *This, void *pBitmap, POINT *pHotspot, BOOL bShow);
HRESULT (WINAPI *SetGammaRamp)(ID3DPresent *This, const D3DGAMMARAMP *pRamp, HWND hWndOverride);
HRESULT (WINAPI *GetWindowInfo)(ID3DPresent *This, HWND hWnd, int *width, int *height, int *depth);
+ /* Available since version 1.1 */
+ BOOL (WINAPI *GetWindowOccluded)(ID3DPresent *This);
} ID3DPresentVtbl;
struct ID3DPresent
@@ -96,6 +98,7 @@ struct ID3DPresent
#define ID3DPresent_SetCursor(p,a,b,c) (p)->lpVtbl->SetCursor(p,a,b,c)
#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)
typedef struct ID3DPresentGroupVtbl
{