aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/detail/win.c
diff options
context:
space:
mode:
Diffstat (limited to 'pugl/detail/win.c')
-rw-r--r--pugl/detail/win.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/pugl/detail/win.c b/pugl/detail/win.c
index 408e7ba..b9004b2 100644
--- a/pugl/detail/win.c
+++ b/pugl/detail/win.c
@@ -21,6 +21,7 @@
#include "pugl/detail/implementation.h"
#include "pugl/detail/win.h"
#include "pugl/pugl.h"
+#include "pugl/pugl_stub_backend.h"
#include <windows.h>
#include <windowsx.h>
@@ -927,3 +928,40 @@ puglSetClipboard(PuglView* const view,
CloseClipboard();
return PUGL_SUCCESS;
}
+
+static PuglStatus
+puglWinStubEnter(PuglView* view, bool drawing)
+{
+ if (drawing) {
+ PAINTSTRUCT ps;
+ BeginPaint(view->impl->hwnd, &ps);
+ }
+
+ return PUGL_SUCCESS;
+}
+
+static PuglStatus
+puglWinStubLeave(PuglView* view, bool drawing)
+{
+ if (drawing) {
+ PAINTSTRUCT ps;
+ EndPaint(view->impl->hwnd, &ps);
+ SwapBuffers(view->impl->hdc);
+ }
+
+ return PUGL_SUCCESS;
+}
+
+const PuglBackend*
+puglStubBackend(void)
+{
+ static const PuglBackend backend = {puglWinStubConfigure,
+ puglStubCreate,
+ puglStubDestroy,
+ puglWinStubEnter,
+ puglWinStubLeave,
+ puglStubResize,
+ puglStubGetContext};
+
+ return &backend;
+}