aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/detail/win.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-10-27 13:05:00 +0100
committerDavid Robillard <d@drobilla.net>2019-11-03 21:03:18 +0100
commit3c9a8a2ed86d08da842e11d32065da43b5bfdc77 (patch)
treed5ddb2c4e86a21129bc1b533613d2110a9ba2e09 /pugl/detail/win.h
parent14c7cb54a913be5a505148068582d9c56e3d1681 (diff)
downloadpugl-3c9a8a2ed86d08da842e11d32065da43b5bfdc77.tar.gz
pugl-3c9a8a2ed86d08da842e11d32065da43b5bfdc77.tar.bz2
pugl-3c9a8a2ed86d08da842e11d32065da43b5bfdc77.zip
Move platform stub configuration code to platform headers
This allows backends which use basic software rendering (like Cairo) to share the common basic window format setup code.
Diffstat (limited to 'pugl/detail/win.h')
-rw-r--r--pugl/detail/win.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/pugl/detail/win.h b/pugl/detail/win.h
index 6d89759..e9056b7 100644
--- a/pugl/detail/win.h
+++ b/pugl/detail/win.h
@@ -113,3 +113,27 @@ puglWinCreateWindow(const PuglView* const view,
return PUGL_SUCCESS;
}
+
+static inline PuglStatus
+puglWinStubConfigure(PuglView* view)
+{
+ PuglInternals* const impl = view->impl;
+ PuglStatus st = PUGL_SUCCESS;
+
+ if ((st = puglWinCreateWindow(view, "Pugl", &impl->hwnd, &impl->hdc))) {
+ return st;
+ }
+
+ impl->pfd = puglWinGetPixelFormatDescriptor(view->hints);
+ impl->pfId = ChoosePixelFormat(impl->hdc, &impl->pfd);
+
+ if (!SetPixelFormat(impl->hdc, impl->pfId, &impl->pfd)) {
+ ReleaseDC(impl->hwnd, impl->hdc);
+ DestroyWindow(impl->hwnd);
+ impl->hwnd = NULL;
+ impl->hdc = NULL;
+ return PUGL_SET_FORMAT_FAILED;
+ }
+
+ return PUGL_SUCCESS;
+}