diff options
author | Luca Barbieri <[email protected]> | 2010-09-27 20:25:17 +0200 |
---|---|---|
committer | Luca Barbieri <[email protected]> | 2010-09-27 22:20:53 +0200 |
commit | f976cd0c9ead6a5e63146c11823770176c149a12 (patch) | |
tree | 81b5a263de1a6e237e57bd51ecc4ed9fea304706 /src/gallium/state_trackers/d3d1x/gd3dapi | |
parent | e01e2e1883b57fdc84807496fdab4fed22f23900 (diff) |
d3d1x: rework DXGI for occlusion testing and default width/height
Diffstat (limited to 'src/gallium/state_trackers/d3d1x/gd3dapi')
-rw-r--r-- | src/gallium/state_trackers/d3d1x/gd3dapi/galliumdxgi.idl | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/d3d1x/gd3dapi/galliumdxgi.idl b/src/gallium/state_trackers/d3d1x/gd3dapi/galliumdxgi.idl index 92fda3385b9..c6233c85b99 100644 --- a/src/gallium/state_trackers/d3d1x/gd3dapi/galliumdxgi.idl +++ b/src/gallium/state_trackers/d3d1x/gd3dapi/galliumdxgi.idl @@ -65,7 +65,7 @@ import "../d3dapi/dxgi.idl"; [object, local, uuid("c22d2f85-f7dd-40b0-a50b-5d308f973c5e")] interface IGalliumDXGIBackend : IUnknown { - /* Returns a cookie that is passed to EndPresent + /* *present_cookie is set to a cookie that is passed to EndPresent * * *window and *rect are the window and subrectangle * to present in. @@ -81,16 +81,20 @@ interface IGalliumDXGIBackend : IUnknown * *rgndata is valid until EndPresent is called, at which point EndPresent * may free the data. * - * If window is set 0, the window is fully obscured, so don't present - * anything, and tell the app of the obscuration. + * However, the rect field should still be set as normal if possible (especially + * the dimension).. * * If preserve_aspect_ratio is set, *rgndata will be ignored. This * limitation may be lifted in future versions. * - * EndPresent is still called even if you return 0 in window. + * If the window is fully obscured, return DXGI_STATUS_OCCLUDED. + * Everything else is ignored in that case. + * + * EndPresent is only called when S_OK is returned. */ - void* BeginPresent( + HRESULT BeginPresent( [in] HWND hwnd, + [out] void** present_cookie, [out] void** window, [out] RECT* rect, [out] struct _RGNDATA** rgndata, @@ -101,6 +105,18 @@ interface IGalliumDXGIBackend : IUnknown [in] HWND hwnd, [out] void* present_cookie ); + + /* If the window is fully obscured, return DXGI_STATUS_OCCLUDED, else S_OK */ + HRESULT TestPresent( + [in] HWND hwnd + ); + + /* Get size of rectangle that would be returned by BeginPresent */ + HRESULT GetPresentSize( + [in] HWND hwnd, + [out] unsigned* width, + [out] unsigned* height + ); } void GalliumDXGIUseNothing(); |