aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/detail/win_cairo.c
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_cairo.c
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_cairo.c')
-rw-r--r--pugl/detail/win_cairo.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/pugl/detail/win_cairo.c b/pugl/detail/win_cairo.c
index 497711b..27765ec 100644
--- a/pugl/detail/win_cairo.c
+++ b/pugl/detail/win_cairo.c
@@ -80,28 +80,14 @@ puglWinCairoDestroyDrawContext(PuglView* view)
static PuglStatus
puglWinCairoConfigure(PuglView* view)
{
- PuglInternals* const impl = view->impl;
- PuglStatus st = PUGL_SUCCESS;
+ const PuglStatus st = puglWinStubConfigure(view);
- 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;
+ if (!st) {
+ view->impl->surface = (PuglWinCairoSurface*)calloc(
+ 1, sizeof(PuglWinCairoSurface));
}
- impl->surface = (PuglWinCairoSurface*)calloc(
- 1, sizeof(PuglWinCairoSurface));
-
- return PUGL_SUCCESS;
+ return st;
}
static PuglStatus