From 676fdff1ed55c3ed04eb64d06ad64ba4cc9afbc3 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 7 Sep 2025 13:12:58 +0200 Subject: [PATCH] Update pugl, minor internal API changes Signed-off-by: falkTX --- dgl/src/pugl-extra/wasm.c | 6 +++--- dgl/src/pugl-upstream | 2 +- dgl/src/pugl.cpp | 25 +++++++++++-------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/dgl/src/pugl-extra/wasm.c b/dgl/src/pugl-extra/wasm.c index 8970a82d..82df2582 100644 --- a/dgl/src/pugl-extra/wasm.c +++ b/dgl/src/pugl-extra/wasm.c @@ -83,7 +83,7 @@ puglInitViewInternals(PuglWorld* const world) } static PuglStatus -updateSizeHints(const PuglView* const view) +puglUpdateSizeHints(const PuglView* const view) { const char* const className = view->world->strings[PUGL_CLASS_NAME]; @@ -837,7 +837,7 @@ puglRealize(PuglView* const view) canvasWrapper.style.setProperty("--device-pixel-ratio", window.devicePixelRatio); }, className); - updateSizeHints(view); + puglUpdateSizeHints(view); emscripten_set_canvas_element_size(className, defaultSize.width, defaultSize.height); #ifndef PUGL_WASM_NO_KEYBOARD_INPUT @@ -1014,7 +1014,7 @@ puglSetSizeHint(PuglView* const view, if (st != PUGL_SUCCESS) return st; - updateSizeHints(view); + puglUpdateSizeHints(view); if (hint == PUGL_CURRENT_SIZE && view->impl->created) { const char* const className = view->world->strings[PUGL_CLASS_NAME]; diff --git a/dgl/src/pugl-upstream b/dgl/src/pugl-upstream index 86185d8d..5e2621d7 160000 --- a/dgl/src/pugl-upstream +++ b/dgl/src/pugl-upstream @@ -1 +1 @@ -Subproject commit 86185d8d7b2c1ef0d72179af8e7a1930ecb16e4f +Subproject commit 5e2621d714ddf1cb0f86e852f8ba5dffe04aa3a3 diff --git a/dgl/src/pugl.cpp b/dgl/src/pugl.cpp index a3d167b9..f618e071 100644 --- a/dgl/src/pugl.cpp +++ b/dgl/src/pugl.cpp @@ -313,10 +313,7 @@ PuglStatus puglSetGeometryConstraints(PuglView* const view, const uint width, co #elif defined(DISTRHO_OS_MAC) if (view->impl->window) { - if (const PuglStatus status = updateSizeHint(view, PUGL_MIN_SIZE)) - return status; - - if (const PuglStatus status = updateSizeHint(view, PUGL_FIXED_ASPECT)) + if (const PuglStatus status = puglUpdateSizeHints(view)) return status; } #elif defined(DISTRHO_OS_WASM) @@ -331,7 +328,7 @@ PuglStatus puglSetGeometryConstraints(PuglView* const view, const uint width, co #elif defined(HAVE_X11) if (view->impl->win) { - if (const PuglStatus status = updateSizeHints(view)) + if (const PuglStatus status = puglUpdateSizeHints(view)) return status; XFlush(view->world->impl->display); @@ -358,7 +355,7 @@ void puglSetResizable(PuglView* const view, const bool resizable) } // FIXME use [view setAutoresizingMask:NSViewNotSizable] ? #elif defined(DISTRHO_OS_WASM) - updateSizeHints(view); + puglUpdateSizeHints(view); #elif defined(DISTRHO_OS_WINDOWS) if (const HWND hwnd = view->impl->hwnd) { @@ -367,7 +364,7 @@ void puglSetResizable(PuglView* const view, const bool resizable) SetWindowLong(hwnd, GWL_STYLE, winFlags); } #elif defined(HAVE_X11) - updateSizeHints(view); + puglUpdateSizeHints(view); #endif } @@ -391,7 +388,7 @@ PuglStatus puglSetSizeAndDefault(PuglView* const view, const uint width, const u return status; } #elif defined(DISTRHO_OS_WASM) - if (const PuglStatus status = updateSizeHints(view)) + if (const PuglStatus status = puglUpdateSizeHints(view)) return status; emscripten_set_canvas_element_size(view->world->strings[PUGL_CLASS_NAME], width, height); @@ -411,7 +408,7 @@ PuglStatus puglSetSizeAndDefault(PuglView* const view, const uint width, const u // matches upstream pugl, adds flush at the end if (view->impl->win) { - if (const PuglStatus status = updateSizeHints(view)) + if (const PuglStatus status = puglUpdateSizeHints(view)) return status; if (const PuglStatus status = puglSetWindowSize(view, width, height)) @@ -608,8 +605,8 @@ void puglWin32ShowCentered(PuglView* const view) PuglStatus puglX11UpdateWithoutExposures(PuglWorld* const world) { - const bool wasDispatchingEvents = world->impl->dispatchingEvents; - world->impl->dispatchingEvents = true; + const PuglWorldState startState = world->state; + world->state = PUGL_WORLD_UPDATING; PuglStatus st = PUGL_SUCCESS; const double startTime = puglGetTime(world); @@ -617,11 +614,11 @@ PuglStatus puglX11UpdateWithoutExposures(PuglWorld* const world) for (double t = startTime; !st && t < endTime; t = puglGetTime(world)) { - pollX11Socket(world, endTime - t); - st = dispatchX11Events(world); + if (!(st = pollX11Socket(world, endTime - t))) + st = dispatchX11Events(world); } - world->impl->dispatchingEvents = wasDispatchingEvents; + world->state = startState; return st; }