From c75c10d2385aaa1bbf7d8f5ae437ccd5d1e3803f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 27 Oct 2019 13:18:57 +0100 Subject: Expose functional stub backend --- pugl/detail/mac.m | 15 +++++++++++++++ pugl/detail/win.c | 38 ++++++++++++++++++++++++++++++++++++++ pugl/detail/x11.c | 15 +++++++++++++++ 3 files changed, 68 insertions(+) (limited to 'pugl/detail') diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m index c9847eb..e8a5d57 100644 --- a/pugl/detail/mac.m +++ b/pugl/detail/mac.m @@ -24,6 +24,7 @@ #include "pugl/detail/implementation.h" #include "pugl/detail/mac.h" #include "pugl/pugl.h" +#include "pugl/pugl_stub_backend.h" #import @@ -1071,3 +1072,17 @@ puglSetClipboard(PuglView* const view, return PUGL_SUCCESS; } + +const PuglBackend* +puglStubBackend(void) +{ + static const PuglBackend backend = {puglStubConfigure, + puglStubCreate, + puglStubDestroy, + puglStubEnter, + puglStubLeave, + puglStubResize, + puglStubGetContext}; + + return &backend; +} 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 #include @@ -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; +} diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c index 7bf5223..fd47db3 100644 --- a/pugl/detail/x11.c +++ b/pugl/detail/x11.c @@ -26,6 +26,7 @@ #include "pugl/detail/types.h" #include "pugl/detail/x11.h" #include "pugl/pugl.h" +#include "pugl/pugl_stub_backend.h" #include #include @@ -908,3 +909,17 @@ puglSetClipboard(PuglView* const view, XSetSelectionOwner(impl->display, atoms->CLIPBOARD, impl->win, CurrentTime); return PUGL_SUCCESS; } + +const PuglBackend* +puglStubBackend(void) +{ + static const PuglBackend backend = {puglX11StubConfigure, + puglStubCreate, + puglStubDestroy, + puglStubEnter, + puglStubLeave, + puglStubResize, + puglStubGetContext}; + + return &backend; +} -- cgit v1.2.1