summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/d3d1x/gd3dapi
diff options
context:
space:
mode:
authorLuca Barbieri <[email protected]>2010-09-27 20:25:17 +0200
committerLuca Barbieri <[email protected]>2010-09-27 22:20:53 +0200
commitf976cd0c9ead6a5e63146c11823770176c149a12 (patch)
tree81b5a263de1a6e237e57bd51ecc4ed9fea304706 /src/gallium/state_trackers/d3d1x/gd3dapi
parente01e2e1883b57fdc84807496fdab4fed22f23900 (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.idl26
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();