Mesa (master): wgl: Implement wglSwapMultipleBuffers.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sat Feb 13 17:01:53 UTC 2010


Module: Mesa
Branch: master
Commit: a583c3ab476078332679f96d2ca7fe8aab4c8d2d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a583c3ab476078332679f96d2ca7fe8aab4c8d2d

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sat Feb 13 15:09:46 2010 +0000

wgl: Implement wglSwapMultipleBuffers.

---

 src/gallium/state_trackers/wgl/opengl32.def       |    2 +-
 src/gallium/state_trackers/wgl/opengl32.mingw.def |    2 +-
 src/gallium/state_trackers/wgl/stw_wgl.c          |   13 +++++++++++++
 src/gallium/state_trackers/wgl/stw_wgl.h          |   16 ++++++++++++++++
 4 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/wgl/opengl32.def b/src/gallium/state_trackers/wgl/opengl32.def
index 5daa6dd..01a29d0 100644
--- a/src/gallium/state_trackers/wgl/opengl32.def
+++ b/src/gallium/state_trackers/wgl/opengl32.def
@@ -362,7 +362,7 @@ EXPORTS
 	wglShareLists
 	wglSwapBuffers
 	wglSwapLayerBuffers
-;	wglSwapMultipleBuffers
+	wglSwapMultipleBuffers
 	wglUseFontBitmapsA
 	wglUseFontBitmapsW
 	wglUseFontOutlinesA
diff --git a/src/gallium/state_trackers/wgl/opengl32.mingw.def b/src/gallium/state_trackers/wgl/opengl32.mingw.def
index 6ebb31a..0bceee0 100644
--- a/src/gallium/state_trackers/wgl/opengl32.mingw.def
+++ b/src/gallium/state_trackers/wgl/opengl32.mingw.def
@@ -362,7 +362,7 @@ EXPORTS
 	wglShareLists = wglShareLists at 8
 	wglSwapBuffers = wglSwapBuffers at 4
 	wglSwapLayerBuffers = wglSwapLayerBuffers at 8
-;	wglSwapMultipleBuffers = wglSwapMultipleBuffers at 8
+	wglSwapMultipleBuffers = wglSwapMultipleBuffers at 8
 	wglUseFontBitmapsA = wglUseFontBitmapsA at 16
 	wglUseFontBitmapsW = wglUseFontBitmapsW at 16
 	wglUseFontOutlinesA = wglUseFontOutlinesA at 32
diff --git a/src/gallium/state_trackers/wgl/stw_wgl.c b/src/gallium/state_trackers/wgl/stw_wgl.c
index bb199fd..5fbb7bf 100644
--- a/src/gallium/state_trackers/wgl/stw_wgl.c
+++ b/src/gallium/state_trackers/wgl/stw_wgl.c
@@ -97,6 +97,19 @@ wglSwapBuffers(
 }
 
 
+WINGDIAPI DWORD WINAPI
+wglSwapMultipleBuffers(UINT n,
+                       CONST WGLSWAP *ps)
+{
+   UINT i;
+
+   for (i =0; i < n; ++i)
+      wglSwapBuffers(ps->hdc);
+
+   return 0;
+}
+
+
 WINGDIAPI BOOL APIENTRY
 wglSwapLayerBuffers(
    HDC hdc,
diff --git a/src/gallium/state_trackers/wgl/stw_wgl.h b/src/gallium/state_trackers/wgl/stw_wgl.h
index a981799..57baaf0 100644
--- a/src/gallium/state_trackers/wgl/stw_wgl.h
+++ b/src/gallium/state_trackers/wgl/stw_wgl.h
@@ -59,5 +59,21 @@ wglSetPixelFormat(HDC hdc,
                   int iPixelFormat,
                   CONST PIXELFORMATDESCRIPTOR *ppfd);
 
+#if defined(__MINGW32__) || (WINVER < 0x0500)
+
+typedef struct _WGLSWAP
+{
+   HDC hdc;
+   UINT uiFlags;
+} WGLSWAP;
+
+#define WGL_SWAPMULTIPLE_MAX 16
+
+WINGDIAPI DWORD WINAPI
+wglSwapMultipleBuffers(UINT n,
+                       CONST WGLSWAP *ps);
+
+#endif
+
 
 #endif /* STW_WGL_H_ */




More information about the mesa-commit mailing list