Module: Mesa
Branch: mesa_7_7_branch
Commit: 6bd6a15ab3b4a5975f21194b7da621ff6b3c45e6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bd6a15ab3b4a5975f21194b7da621ff6b3c45e6

Author: José Fonseca <jfons...@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 = wglshareli...@8
        wglSwapBuffers = wglswapbuff...@4
        wglSwapLayerBuffers = wglswaplayerbuff...@8
-;      wglSwapMultipleBuffers = wglswapmultiplebuff...@8
+       wglSwapMultipleBuffers = wglswapmultiplebuff...@8
        wglUseFontBitmapsA = wglusefontbitma...@16
        wglUseFontBitmapsW = wglusefontbitma...@16
        wglUseFontOutlinesA = wglusefontoutlin...@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_ */

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to