diff options
author | David Robillard <d@drobilla.net> | 2023-05-12 11:29:20 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2023-05-12 11:30:17 -0400 |
commit | 1e755094587c00feb7f9a6c7a03d1219a5c09e8a (patch) | |
tree | c3f3429c309d1a7bf57a7d272406f9b6c0ef98a7 | |
parent | d7a71b45ddf2a1ccfb124b84305b67e01919a206 (diff) | |
download | pugl-1e755094587c00feb7f9a6c7a03d1219a5c09e8a.tar.gz pugl-1e755094587c00feb7f9a6c7a03d1219a5c09e8a.tar.bz2 pugl-1e755094587c00feb7f9a6c7a03d1219a5c09e8a.zip |
Windows: Pass the struct from BeginPaint() to EndPaint()
The documentation explains that the PAINTSTRUCT returned by BeginPaint() should
be passed to the corresponding call to EndPaint(). I'm not sure what
real-world effects not doing this had, but this commit fixes things to use the
API as intended.
-rw-r--r-- | src/win.c | 6 | ||||
-rw-r--r-- | src/win.h | 1 | ||||
-rw-r--r-- | src/win_cairo.c | 6 | ||||
-rw-r--r-- | src/win_gl.c | 6 |
4 files changed, 7 insertions, 12 deletions
@@ -1651,8 +1651,7 @@ PuglStatus puglWinEnter(PuglView* view, const PuglExposeEvent* expose) { if (expose) { - PAINTSTRUCT ps; - BeginPaint(view->impl->hwnd, &ps); + BeginPaint(view->impl->hwnd, &view->impl->paint); } return PUGL_SUCCESS; @@ -1662,8 +1661,7 @@ PuglStatus puglWinLeave(PuglView* view, const PuglExposeEvent* expose) { if (expose) { - PAINTSTRUCT ps; - EndPaint(view->impl->hwnd, &ps); + EndPaint(view->impl->hwnd, &view->impl->paint); } return PUGL_SUCCESS; @@ -25,6 +25,7 @@ struct PuglInternalsImpl { HCURSOR cursor; HDC hdc; WINDOWPLACEMENT oldPlacement; + PAINTSTRUCT paint; PuglBlob clipboard; PuglSurface* surface; double scaleFactor; diff --git a/src/win_cairo.c b/src/win_cairo.c index 4bef2e6..10e06e6 100644 --- a/src/win_cairo.c +++ b/src/win_cairo.c @@ -108,8 +108,7 @@ puglWinCairoEnter(PuglView* view, const PuglExposeEvent* expose) if (expose && !(st = puglWinCairoCreateDrawContext(view)) && !(st = puglWinCairoOpen(view))) { - PAINTSTRUCT ps; - BeginPaint(view->impl->hwnd, &ps); + BeginPaint(view->impl->hwnd, &view->impl->paint); } return st; @@ -136,8 +135,7 @@ puglWinCairoLeave(PuglView* view, const PuglExposeEvent* expose) puglWinCairoClose(view); puglWinCairoDestroyDrawContext(view); - PAINTSTRUCT ps; - EndPaint(view->impl->hwnd, &ps); + EndPaint(view->impl->hwnd, &view->impl->paint); } return PUGL_SUCCESS; diff --git a/src/win_gl.c b/src/win_gl.c index 0ca9909..293dd9b 100644 --- a/src/win_gl.c +++ b/src/win_gl.c @@ -264,8 +264,7 @@ puglWinGlEnter(PuglView* view, const PuglExposeEvent* expose) wglMakeCurrent(view->impl->hdc, surface->hglrc); if (expose) { - PAINTSTRUCT ps; - BeginPaint(view->impl->hwnd, &ps); + BeginPaint(view->impl->hwnd, &view->impl->paint); } return PUGL_SUCCESS; @@ -275,8 +274,7 @@ static PuglStatus puglWinGlLeave(PuglView* view, const PuglExposeEvent* expose) { if (expose) { - PAINTSTRUCT ps; - EndPaint(view->impl->hwnd, &ps); + EndPaint(view->impl->hwnd, &view->impl->paint); SwapBuffers(view->impl->hdc); } |