Module: Mesa Branch: master Commit: a583c3ab476078332679f96d2ca7fe8aab4c8d2d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a583c3ab476078332679f96d2ca7fe8aab4c8d2d
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