diff --git a/dpf/dgl/Makefile b/dpf/dgl/Makefile index feedd05..5a9c3f7 100644 --- a/dpf/dgl/Makefile +++ b/dpf/dgl/Makefile @@ -12,6 +12,9 @@ BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc LINK_FLAGS += $(DGL_LIBS) +# needed by oui-blendish +BUILD_CXX_FLAGS += -Wno-unused-parameter + # -------------------------------------------------------------- OBJS = \ diff --git a/dpf/dgl/src/NanoVG.cpp b/dpf/dgl/src/NanoVG.cpp index e054bdc..c55fac5 100644 --- a/dpf/dgl/src/NanoVG.cpp +++ b/dpf/dgl/src/NanoVG.cpp @@ -932,6 +932,7 @@ NanoWidget::NanoWidget(NanoWidget* groupWidget) nData(new PrivateData(this)) { pData->needsScaling = true; + pData->skipDisplay = true; groupWidget->nData->subWidgets.push_back(this); } diff --git a/dpf/dgl/src/WidgetPrivateData.hpp b/dpf/dgl/src/WidgetPrivateData.hpp index 5a65622..e49b68c 100644 --- a/dpf/dgl/src/WidgetPrivateData.hpp +++ b/dpf/dgl/src/WidgetPrivateData.hpp @@ -51,7 +51,10 @@ struct Widget::PrivateData { visible(true) { if (addToSubWidgets && groupWidget != nullptr) + { + skipDisplay = true; groupWidget->pData->subWidgets.push_back(self); + } } ~PrivateData() diff --git a/dpf/dgl/src/pugl/pugl_win.cpp b/dpf/dgl/src/pugl/pugl_win.cpp index acf7d9f..afbae4b 100644 --- a/dpf/dgl/src/pugl/pugl_win.cpp +++ b/dpf/dgl/src/pugl/pugl_win.cpp @@ -87,9 +87,12 @@ void puglLeaveContext(PuglView* view, bool flush) { #ifdef PUGL_HAVE_GL - if (view->ctx_type == PUGL_GL && flush) { - glFlush(); - SwapBuffers(view->impl->hdc); + if (view->ctx_type == PUGL_GL) { + if (flush) { + glFlush(); + SwapBuffers(view->impl->hdc); + } + wglMakeCurrent(NULL, NULL); } #endif } diff --git a/dpf/dgl/src/pugl/pugl_x11.c b/dpf/dgl/src/pugl/pugl_x11.c index 0ddcd33..60be55e 100644 --- a/dpf/dgl/src/pugl/pugl_x11.c +++ b/dpf/dgl/src/pugl/pugl_x11.c @@ -218,11 +218,14 @@ void puglLeaveContext(PuglView* view, bool flush) { #ifdef PUGL_HAVE_GL - if (view->ctx_type == PUGL_GL && flush) { - glFlush(); - if (view->impl->doubleBuffered) { - glXSwapBuffers(view->impl->display, view->impl->win); + if (view->ctx_type == PUGL_GL) { + if (flush) { + glFlush(); + if (view->impl->doubleBuffered) { + glXSwapBuffers(view->impl->display, view->impl->win); + } } + glXMakeCurrent(view->impl->display, None, NULL); } #endif } diff --git a/dpf/distrho/src/DistrhoPluginChecks.h b/dpf/distrho/src/DistrhoPluginChecks.h index eb7cc63..82b285b 100644 --- a/dpf/distrho/src/DistrhoPluginChecks.h +++ b/dpf/distrho/src/DistrhoPluginChecks.h @@ -104,6 +104,14 @@ # error Synths need MIDI input to work! #endif +// ----------------------------------------------------------------------- +// Disable UI if DGL is not available + +#if DISTRHO_PLUGIN_HAS_UI && ! defined(HAVE_DGL) +# undef DISTRHO_PLUGIN_HAS_UI +# define DISTRHO_PLUGIN_HAS_UI 0 +#endif + // ----------------------------------------------------------------------- #endif // DISTRHO_PLUGIN_CHECKS_H_INCLUDED