From 9391a2ae94272182fa47e8c22f67db1dec8a23e3 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 28 Dec 2022 00:14:08 +0000 Subject: [PATCH] Use separate build dir for modgui, automate UI size details Signed-off-by: falkTX --- Makefile.plugins.mk | 127 ++++++++++++---- dgl/Makefile | 170 +++++++++++----------- dgl/src/pugl-upstream | 2 +- examples/Info/DistrhoPluginInfo.h | 7 +- examples/Info/InfoExampleUI.cpp | 9 +- examples/Info/Makefile | 2 + examples/Latency/LatencyExamplePlugin.cpp | 2 +- utils/modgui/javascript.js | 12 +- utils/modgui/stylesheet.css | 9 +- 9 files changed, 205 insertions(+), 135 deletions(-) diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk index 0629ab2a..bdb507d6 100644 --- a/Makefile.plugins.mk +++ b/Makefile.plugins.mk @@ -6,7 +6,6 @@ # NOTE: NAME, FILES_DSP and FILES_UI must have been defined before including this file! - ifeq ($(DPF_PATH),) ifneq (,$(wildcard dpf/Makefile.base.mk)) BASE_PATH=. @@ -33,10 +32,17 @@ TARGET_DIR = $(BASE_PATH)/bin else TARGET_DIR = $(DPF_TARGET_DIR) endif + +ifeq ($(MODGUI_BUILD),true) +BUILD_DIR_SUFFIX = -modgui +endif + ifeq ($(DPF_BUILD_DIR),) -BUILD_DIR = $(BASE_PATH)/build/$(NAME) +BUILD_DIR = $(BASE_PATH)/build$(BUILD_DIR_SUFFIX)/$(NAME) +DGL_BUILD_DIR = $(BASE_PATH)/build$(BUILD_DIR_SUFFIX) else -BUILD_DIR = $(DPF_BUILD_DIR) +BUILD_DIR = $(DPF_BUILD_DIR) +DGL_BUILD_DIR = $(DPF_BUILD_DIR) endif BUILD_C_FLAGS += -I. @@ -155,7 +161,7 @@ ifeq ($(HAVE_CAIRO),true) DGL_FLAGS += -DDGL_CAIRO -DHAVE_DGL DGL_FLAGS += $(CAIRO_FLAGS) DGL_LIBS += $(CAIRO_LIBS) -DGL_LIB = $(DPF_PATH)/build/libdgl-cairo.a +DGL_LIB = $(DGL_BUILD_DIR)/libdgl-cairo.a HAVE_DGL = true else HAVE_DGL = false @@ -167,7 +173,7 @@ ifeq ($(HAVE_OPENGL),true) DGL_FLAGS += -DDGL_OPENGL -DHAVE_DGL DGL_FLAGS += $(OPENGL_FLAGS) DGL_LIBS += $(OPENGL_LIBS) -DGL_LIB = $(DPF_PATH)/build/libdgl-opengl.a +DGL_LIB = $(DGL_BUILD_DIR)/libdgl-opengl.a HAVE_DGL = true else HAVE_DGL = false @@ -179,7 +185,7 @@ ifeq ($(HAVE_OPENGL),true) DGL_FLAGS += -DDGL_OPENGL -DDGL_USE_OPENGL3 -DHAVE_DGL DGL_FLAGS += $(OPENGL_FLAGS) DGL_LIBS += $(OPENGL_LIBS) -DGL_LIB = $(DPF_PATH)/build/libdgl-opengl3.a +DGL_LIB = $(DGL_BUILD_DIR)/libdgl-opengl3.a HAVE_DGL = true else HAVE_DGL = false @@ -191,7 +197,7 @@ ifeq ($(HAVE_VULKAN),true) DGL_FLAGS += -DDGL_VULKAN -DHAVE_DGL DGL_FLAGS += $(VULKAN_FLAGS) DGL_LIBS += $(VULKAN_LIBS) -DGL_LIB = $(DPF_PATH)/build/libdgl-vulkan.a +DGL_LIB = $(DGL_BUILD_DIR)/libdgl-vulkan.a HAVE_DGL = true else HAVE_DGL = false @@ -205,7 +211,7 @@ endif ifeq ($(UI_TYPE),stub) ifeq ($(HAVE_STUB),true) -DGL_LIB = $(DPF_PATH)/build/libdgl-stub.a +DGL_LIB = $(DGL_BUILD_DIR)/libdgl-stub.a HAVE_DGL = true else HAVE_DGL = false @@ -372,32 +378,32 @@ all: # Common $(BUILD_DIR)/%.S.o: %.S - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" @$(CC) $< $(BUILD_C_FLAGS) -c -o $@ $(BUILD_DIR)/%.c.o: %.c - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ $(BUILD_DIR)/%.cc.o: %.cc - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ $(BUILD_DIR)/%.cpp.o: %.cpp - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ $(BUILD_DIR)/%.m.o: %.m - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -ObjC -c -o $@ $(BUILD_DIR)/%.mm.o: %.mm - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + -@mkdir -p "$(shell dirname $@)" @echo "Compiling $<" $(SILENT)$(CC) $< $(BUILD_CXX_FLAGS) -ObjC++ -c -o $@ @@ -413,19 +419,19 @@ clean: # --------------------------------------------------------------------------------------------------------------------- # DGL -$(DPF_PATH)/build/libdgl-cairo.a: +$(DGL_BUILD_DIR)/libdgl-cairo.a: $(MAKE) -C $(DPF_PATH)/dgl cairo -$(DPF_PATH)/build/libdgl-opengl.a: +$(DGL_BUILD_DIR)/libdgl-opengl.a: $(MAKE) -C $(DPF_PATH)/dgl opengl -$(DPF_PATH)/build/libdgl-opengl3.a: +$(DGL_BUILD_DIR)/libdgl-opengl3.a: $(MAKE) -C $(DPF_PATH)/dgl opengl3 -$(DPF_PATH)/build/libdgl-stub.a: +$(DGL_BUILD_DIR)/libdgl-stub.a: $(MAKE) -C $(DPF_PATH)/dgl stub -$(DPF_PATH)/build/libdgl-vulkan.a: +$(DGL_BUILD_DIR)/libdgl-vulkan.a: $(MAKE) -C $(DPF_PATH)/dgl vulkan # --------------------------------------------------------------------------------------------------------------------- @@ -526,33 +532,79 @@ $(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DGL_LIB) # LV2 modgui ifeq ($(MODGUI_BUILD),true) +ifeq ($(shell echo '\#test' | grep -- '\#test'),\#test) +PLUGIN_DETAILS = $(shell echo '\#include "DistrhoPluginInfo.h"\n\nDISTRHO_PLUGIN_URI\nDISTRHO_UI_DEFAULT_WIDTH\nDISTRHO_UI_DEFAULT_HEIGHT' | $(CXX) $(filter-out -MD -MP,$(BUILD_CXX_FLAGS)) -E -P -x c++ - 2>/dev/null | tail -n 3) +else +PLUGIN_DETAILS = $(shell echo '#include "DistrhoPluginInfo.h"DISTRHO_PLUGIN_URI\nDISTRHO_UI_DEFAULT_WIDTH\nDISTRHO_UI_DEFAULT_HEIGHT' | $(CXX) $(filter-out -MD -MP,$(BUILD_CXX_FLAGS)) -E -P -x c++ - 2>/dev/null | tail -n 3) +endif +DISTRHO_PLUGIN_URI = $(word 1,$(PLUGIN_DETAILS)) +DISTRHO_UI_DEFAULT_WIDTH = $(word 2,$(PLUGIN_DETAILS)) +DISTRHO_UI_DEFAULT_HEIGHT = $(word 3,$(PLUGIN_DETAILS)) ifeq ($(PLUGIN_CLASS),) $(error PLUGIN_CLASS undefined) endif -ifeq ($(PLUGIN_URI),) -$(error PLUGIN_URI undefined) +ifeq ($(DISTRHO_PLUGIN_URI),) +$(error DISTRHO_PLUGIN_URI undefined) +endif +ifeq ($(DISTRHO_UI_DEFAULT_WIDTH),) +$(error DISTRHO_UI_DEFAULT_WIDTH undefined) +endif +ifeq ($(DISTRHO_UI_DEFAULT_HEIGHT),) +$(error DISTRHO_UI_DEFAULT_HEIGHT undefined) endif endif -MODGUI_IGNORED_FLAGS = -fno-gnu-unique +MODGUI_IGNORED_FLAGS = -fdata-sections +MODGUI_IGNORED_FLAGS += -ffast-math +MODGUI_IGNORED_FLAGS += -ffunction-sections +MODGUI_IGNORED_FLAGS += -fno-gnu-unique MODGUI_IGNORED_FLAGS += -fprefetch-loop-arrays +MODGUI_IGNORED_FLAGS += -fvisibility=hidden +MODGUI_IGNORED_FLAGS += -fvisibility-inlines-hidden +MODGUI_IGNORED_FLAGS += -fPIC MODGUI_IGNORED_FLAGS += -mfpmath=sse +MODGUI_IGNORED_FLAGS += -msse +MODGUI_IGNORED_FLAGS += -msse2 MODGUI_IGNORED_FLAGS += -mtune=generic +MODGUI_IGNORED_FLAGS += -pipe +MODGUI_IGNORED_FLAGS += -std=gnu99 +MODGUI_IGNORED_FLAGS += -std=gnu++11 +MODGUI_IGNORED_FLAGS += -DDGL_OPENGL +MODGUI_IGNORED_FLAGS += -DGL_SILENCE_DEPRECATION=1 +MODGUI_IGNORED_FLAGS += -DHAVE_ALSA +MODGUI_IGNORED_FLAGS += -DHAVE_DGL +MODGUI_IGNORED_FLAGS += -DHAVE_JACK +MODGUI_IGNORED_FLAGS += -DHAVE_LIBLO +MODGUI_IGNORED_FLAGS += -DHAVE_OPENGL +MODGUI_IGNORED_FLAGS += -DHAVE_PULSEAUDIO +MODGUI_IGNORED_FLAGS += -DHAVE_RTAUDIO +MODGUI_IGNORED_FLAGS += -DNDEBUG +MODGUI_IGNORED_FLAGS += -DPIC +MODGUI_IGNORED_FLAGS += -I. +MODGUI_IGNORED_FLAGS += -I$(DPF_PATH)/distrho +MODGUI_IGNORED_FLAGS += -I$(DPF_PATH)/dgl MODGUI_IGNORED_FLAGS += -I$(MOD_WORKDIR)/modduo-static/staging/usr/include MODGUI_IGNORED_FLAGS += -I$(MOD_WORKDIR)/modduox-static/staging/usr/include MODGUI_IGNORED_FLAGS += -I$(MOD_WORKDIR)/moddwarf/staging/usr/include MODGUI_IGNORED_FLAGS += -L$(MOD_WORKDIR)/modduo-static/staging/usr/lib MODGUI_IGNORED_FLAGS += -L$(MOD_WORKDIR)/modduox-static/staging/usr/lib MODGUI_IGNORED_FLAGS += -L$(MOD_WORKDIR)/moddwarf/staging/usr/lib +MODGUI_IGNORED_FLAGS += -MD +MODGUI_IGNORED_FLAGS += -MP +MODGUI_IGNORED_FLAGS += -O2 +MODGUI_IGNORED_FLAGS += -O3 +MODGUI_IGNORED_FLAGS += -Wall +MODGUI_IGNORED_FLAGS += -Wextra MODGUI_IGNORED_FLAGS += -Wl,-O1,--as-needed,--gc-sections +MODGUI_IGNORED_FLAGS += -Wl,-dead_strip,-dead_strip_dylibs +MODGUI_IGNORED_FLAGS += -Wl,-x +MODGUI_IGNORED_FLAGS += -Wl,--gc-sections MODGUI_IGNORED_FLAGS += -Wl,--no-undefined MODGUI_IGNORED_FLAGS += -Wl,--strip-all +MODGUI_IGNORED_FLAGS += -Wno-deprecated-declarations MODGUI_CFLAGS = $(filter-out $(MODGUI_IGNORED_FLAGS),$(BUILD_C_FLAGS)) -D__MOD_DEVICES__ MODGUI_CXXFLAGS = $(filter-out $(MODGUI_IGNORED_FLAGS),$(BUILD_CXX_FLAGS)) -D__MOD_DEVICES__ MODGUI_LDFLAGS = $(filter-out $(MODGUI_IGNORED_FLAGS),$(LINK_FLAGS)) -ifneq ($(DEBUG),true) -MODGUI_LDFLAGS += -Wl,--gc-sections -endif MODGUI_RESOURCES = $(TARGET_DIR)/$(NAME).lv2/modgui/icon.html MODGUI_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/modgui/javascript.js @@ -567,13 +619,28 @@ $(TARGET_DIR)/$(NAME).lv2/modgui/module.js: $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMai -sEXPORTED_RUNTIME_METHODS=['addFunction','lengthBytesUTF8','stringToUTF8','UTF8ToString'] \ -sEXPORT_NAME="Module_$(PLUGIN_CLASS)" \ -o $@ + # touch $(TARGET_DIR)/$(NAME).lv2/modgui/module.wasm + +$(TARGET_DIR)/$(NAME).lv2/modgui/module.wasm: $(TARGET_DIR)/$(NAME).lv2/modgui/module.js $(MODGUI_RESOURCES) $(TARGET_DIR)/$(NAME).lv2/modgui/%: $(DPF_PATH)/utils/modgui/% -@mkdir -p $(shell dirname $@) - sed -e 's|@PLUGIN_CLASS@|$(PLUGIN_CLASS)|g' -e 's|@PLUGIN_URI@|$(PLUGIN_URI)|g' $< > $@ - -modgui: $(MODGUI_RESOURCES) - $(MAKE) $(TARGET_DIR)/$(NAME).lv2/modgui/module.js EXE_WRAPPER= HAVE_OPENGL=true FILE_BROWSER_DISABLED=true MODGUI_BUILD=true PKG_CONFIG=false USE_GLES2=true \ + sed \ + -e 's|@DISTRHO_PLUGIN_URI@|$(DISTRHO_PLUGIN_URI)|g' \ + -e 's|@DISTRHO_UI_DEFAULT_WIDTH@|$(DISTRHO_UI_DEFAULT_WIDTH)|g' \ + -e 's|@DISTRHO_UI_DEFAULT_HEIGHT@|$(DISTRHO_UI_DEFAULT_HEIGHT)|g' \ + -e 's|@PLUGIN_CLASS@|$(PLUGIN_CLASS)|g' \ + $< > $@ + +modgui: + $(MAKE) $(TARGET_DIR)/$(NAME).lv2/modgui/module.js $(TARGET_DIR)/$(NAME).lv2/modgui/module.wasm \ + EXE_WRAPPER= \ + FILE_BROWSER_DISABLED=true \ + HAVE_OPENGL=true \ + MODGUI_BUILD=true \ + NOOPT=true \ + PKG_CONFIG=false \ + USE_GLES2=true \ PLUGIN_CLASS=$(PLUGIN_CLASS) \ AR=emar \ CC=emcc \ @@ -582,6 +649,8 @@ modgui: $(MODGUI_RESOURCES) CXXFLAGS="$(MODGUI_CXXFLAGS)" \ LDFLAGS="$(MODGUI_LDFLAGS)" +.PHONY: modgui + # --------------------------------------------------------------------------------------------------------------------- # VST2 diff --git a/dgl/Makefile b/dgl/Makefile index c756bf0d..8444c999 100644 --- a/dgl/Makefile +++ b/dgl/Makefile @@ -26,58 +26,66 @@ endif # --------------------------------------------------------------------------------------------------------------------- +ifeq ($(MODGUI_BUILD),true) +BUILD_DIR_SUFFIX = -modgui +endif + +BUILD_DIR = ../build$(BUILD_DIR_SUFFIX) + +# --------------------------------------------------------------------------------------------------------------------- + OBJS_common = \ - ../build/dgl/Application.cpp.o \ - ../build/dgl/ApplicationPrivateData.cpp.o \ - ../build/dgl/Color.cpp.o \ - ../build/dgl/EventHandlers.cpp.o \ - ../build/dgl/Geometry.cpp.o \ - ../build/dgl/ImageBase.cpp.o \ - ../build/dgl/ImageBaseWidgets.cpp.o \ - ../build/dgl/Layout.cpp.o \ - ../build/dgl/Resources.cpp.o \ - ../build/dgl/SubWidget.cpp.o \ - ../build/dgl/SubWidgetPrivateData.cpp.o \ - ../build/dgl/TopLevelWidget.cpp.o \ - ../build/dgl/TopLevelWidgetPrivateData.cpp.o \ - ../build/dgl/Widget.cpp.o \ - ../build/dgl/WidgetPrivateData.cpp.o \ - ../build/dgl/Window.cpp.o \ - ../build/dgl/WindowPrivateData.cpp.o + $(BUILD_DIR)/dgl/Application.cpp.o \ + $(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \ + $(BUILD_DIR)/dgl/Color.cpp.o \ + $(BUILD_DIR)/dgl/EventHandlers.cpp.o \ + $(BUILD_DIR)/dgl/Geometry.cpp.o \ + $(BUILD_DIR)/dgl/ImageBase.cpp.o \ + $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \ + $(BUILD_DIR)/dgl/Layout.cpp.o \ + $(BUILD_DIR)/dgl/Resources.cpp.o \ + $(BUILD_DIR)/dgl/SubWidget.cpp.o \ + $(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \ + $(BUILD_DIR)/dgl/TopLevelWidget.cpp.o \ + $(BUILD_DIR)/dgl/TopLevelWidgetPrivateData.cpp.o \ + $(BUILD_DIR)/dgl/Widget.cpp.o \ + $(BUILD_DIR)/dgl/WidgetPrivateData.cpp.o \ + $(BUILD_DIR)/dgl/Window.cpp.o \ + $(BUILD_DIR)/dgl/WindowPrivateData.cpp.o # --------------------------------------------------------------------------------------------------------------------- OBJS_cairo = $(OBJS_common) \ - ../build/dgl/Cairo.cpp.cairo.o + $(BUILD_DIR)/dgl/Cairo.cpp.cairo.o ifeq ($(MACOS),true) -OBJS_cairo += ../build/dgl/pugl.mm.cairo.o +OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o else -OBJS_cairo += ../build/dgl/pugl.cpp.cairo.o +OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o endif # --------------------------------------------------------------------------------------------------------------------- OBJS_opengl = $(OBJS_common) \ - ../build/dgl/OpenGL.cpp.opengl.o \ - ../build/dgl/NanoVG.cpp.opengl.o + $(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \ + $(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o ifeq ($(MACOS),true) -OBJS_opengl += ../build/dgl/pugl.mm.opengl.o +OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o else -OBJS_opengl += ../build/dgl/pugl.cpp.opengl.o +OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o endif # --------------------------------------------------------------------------------------------------------------------- OBJS_opengl3 = $(OBJS_common) \ - ../build/dgl/OpenGL.cpp.opengl3.o \ - ../build/dgl/NanoVG.cpp.opengl3.o + $(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \ + $(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o ifeq ($(MACOS),true) -OBJS_opengl3 += ../build/dgl/pugl.mm.opengl3.o +OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o else -OBJS_opengl3 += ../build/dgl/pugl.cpp.opengl3.o +OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o endif # --------------------------------------------------------------------------------------------------------------------- @@ -85,170 +93,170 @@ endif OBJS_stub = $(OBJS_common) ifeq ($(MACOS),true) -OBJS_stub += ../build/dgl/pugl.mm.o +OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o else -OBJS_stub += ../build/dgl/pugl.cpp.o +OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o endif # --------------------------------------------------------------------------------------------------------------------- OBJS_vulkan = $(OBJS_common) \ - ../build/dgl/Vulkan.cpp.vulkan.o + $(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o ifeq ($(MACOS),true) -OBJS_vulkan += ../build/dgl/pugl.mm.vulkan.o +OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o else -OBJS_vulkan += ../build/dgl/pugl.cpp.vulkan.o +OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o endif # --------------------------------------------------------------------------------------------------------------------- ifeq ($(HAVE_CAIRO),true) -TARGETS += ../build/libdgl-cairo.a +TARGETS += $(BUILD_DIR)/libdgl-cairo.a endif ifeq ($(HAVE_OPENGL),true) -TARGETS += ../build/libdgl-opengl.a +TARGETS += $(BUILD_DIR)/libdgl-opengl.a # Compat name, to be removed soon -TARGETS += ../build/libdgl.a +TARGETS += $(BUILD_DIR)/libdgl.a endif ifeq ($(HAVE_STUB),true) -TARGETS += ../build/libdgl-stub.a +TARGETS += $(BUILD_DIR)/libdgl-stub.a endif ifeq ($(HAVE_VULKAN),true) -TARGETS += ../build/libdgl-vulkan.a +TARGETS += $(BUILD_DIR)/libdgl-vulkan.a endif # --------------------------------------------------------------------------------------------------------------------- all: $(TARGETS) -cairo: ../build/libdgl-cairo.a -opengl: ../build/libdgl-opengl.a -opengl3: ../build/libdgl-opengl3.a -stub: ../build/libdgl-stub.a -vulkan: ../build/libdgl-vulkan.a +cairo: $(BUILD_DIR)/libdgl-cairo.a +opengl: $(BUILD_DIR)/libdgl-opengl.a +opengl3: $(BUILD_DIR)/libdgl-opengl3.a +stub: $(BUILD_DIR)/libdgl-stub.a +vulkan: $(BUILD_DIR)/libdgl-vulkan.a # --------------------------------------------------------------------------------------------------------------------- -../build/libdgl-cairo.a: $(OBJS_cairo) - -@mkdir -p ../build +$(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo) + -@mkdir -p $(BUILD_DIR) @echo "Creating libdgl-cairo.a" $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ -../build/libdgl-opengl.a: $(OBJS_opengl) - -@mkdir -p ../build +$(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl) + -@mkdir -p $(BUILD_DIR) @echo "Creating libdgl-opengl.a" $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ -../build/libdgl-opengl3.a: $(OBJS_opengl3) - -@mkdir -p ../build +$(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3) + -@mkdir -p $(BUILD_DIR) @echo "Creating libdgl-opengl3.a" $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ -../build/libdgl-stub.a: $(OBJS_stub) - -@mkdir -p ../build +$(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub) + -@mkdir -p $(BUILD_DIR) @echo "Creating libdgl-stub.a" $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ -../build/libdgl-vulkan.a: $(OBJS_vulkan) - -@mkdir -p ../build +$(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan) + -@mkdir -p $(BUILD_DIR) @echo "Creating libdgl-vulkan.a" $(SILENT)rm -f $@ $(SILENT)$(AR) crs $@ $^ # Compat name, to be removed soon -../build/libdgl.a: ../build/libdgl-opengl.a +$(BUILD_DIR)/libdgl.a: $(BUILD_DIR)/libdgl-opengl.a @echo "Symlinking libdgl.a" $(SILENT)ln -sf $< $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/%.c.o: src/%.c - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.c.o: src/%.c + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $<" $(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ -../build/dgl/%.cpp.o: src/%.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ -../build/dgl/%.mm.o: src/%.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.mm.o: src/%.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/pugl.cpp.o: src/pugl.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@ -../build/dgl/pugl.mm.o: src/pugl.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/%.cpp.cairo.o: src/%.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (Cairo variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@ -../build/dgl/%.mm.cairo.o: src/%.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (Cairo variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/%.cpp.opengl.o: src/%.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (OpenGL variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@ -../build/dgl/%.mm.opengl.o: src/%.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (OpenGL variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/%.cpp.opengl3.o: src/%.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (OpenGL3 variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@ -../build/dgl/%.mm.opengl3.o: src/%.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (OpenGL3 variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- -../build/dgl/%.cpp.vulkan.o: src/%.cpp - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (Vulkan variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@ -../build/dgl/%.mm.vulkan.o: src/%.mm - -@mkdir -p ../build/dgl +$(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm + -@mkdir -p $(BUILD_DIR)/dgl @echo "Compiling $< (Vulkan variant)" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@ # --------------------------------------------------------------------------------------------------------------------- clean: - rm -rf ../build/dgl ../build/libdgl*.* + rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.* debug: $(MAKE) DEBUG=true diff --git a/dgl/src/pugl-upstream b/dgl/src/pugl-upstream index 725d8e46..844528e1 160000 --- a/dgl/src/pugl-upstream +++ b/dgl/src/pugl-upstream @@ -1 +1 @@ -Subproject commit 725d8e4648dbbcec6d183d041c4153f201251eb6 +Subproject commit 844528e197c51603f6cef3238b4a48d23bf60eb7 diff --git a/examples/Info/DistrhoPluginInfo.h b/examples/Info/DistrhoPluginInfo.h index 0305639b..a041f817 100644 --- a/examples/Info/DistrhoPluginInfo.h +++ b/examples/Info/DistrhoPluginInfo.h @@ -26,7 +26,10 @@ #define DISTRHO_PLUGIN_IS_RT_SAFE 1 #define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 +#define DISTRHO_PLUGIN_USES_MODGUI 1 #define DISTRHO_PLUGIN_WANT_TIMEPOS 1 +#define DISTRHO_UI_DEFAULT_WIDTH 405 +#define DISTRHO_UI_DEFAULT_HEIGHT 256 #define DISTRHO_UI_FILE_BROWSER 0 #define DISTRHO_UI_USER_RESIZABLE 1 #define DISTRHO_UI_USE_NANOVG 1 @@ -34,10 +37,6 @@ // only checking if supported, not actually used #define DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST 1 -#ifdef __MOD_DEVICES__ -#define DISTRHO_PLUGIN_USES_MODGUI 1 -#endif - enum Parameters { kParameterBufferSize = 0, kParameterCanRequestParameterValueChanges, diff --git a/examples/Info/InfoExampleUI.cpp b/examples/Info/InfoExampleUI.cpp index d0ef002c..24f37320 100644 --- a/examples/Info/InfoExampleUI.cpp +++ b/examples/Info/InfoExampleUI.cpp @@ -26,12 +26,9 @@ using DGL_NAMESPACE::ResizeHandle; class InfoExampleUI : public UI { - static const uint kInitialWidth = 405; - static const uint kInitialHeight = 256; - public: InfoExampleUI() - : UI(kInitialWidth, kInitialHeight), + : UI(DISTRHO_UI_DEFAULT_WIDTH, DISTRHO_UI_DEFAULT_HEIGHT), fSampleRate(getSampleRate()), fResizable(isResizable()), fScale(1.0f), @@ -47,7 +44,7 @@ public: loadSharedResources(); #endif - setGeometryConstraints(kInitialWidth, kInitialHeight, true); + setGeometryConstraints(DISTRHO_UI_DEFAULT_WIDTH, DISTRHO_UI_DEFAULT_HEIGHT, true); // no need to show resize handle if window is user-resizable if (fResizable) @@ -192,7 +189,7 @@ protected: void onResize(const ResizeEvent& ev) override { - fScale = static_cast(ev.size.getHeight())/static_cast(kInitialHeight); + fScale = static_cast(ev.size.getHeight())/static_cast(DISTRHO_UI_DEFAULT_HEIGHT); UI::onResize(ev); } diff --git a/examples/Info/Makefile b/examples/Info/Makefile index 1ee6b4e0..8a6e21b2 100644 --- a/examples/Info/Makefile +++ b/examples/Info/Makefile @@ -18,6 +18,8 @@ FILES_DSP = \ FILES_UI = \ InfoExampleUI.cpp +PLUGIN_CLASS = distrho_examples_info + # -------------------------------------------------------------- # Do some magic diff --git a/examples/Latency/LatencyExamplePlugin.cpp b/examples/Latency/LatencyExamplePlugin.cpp index 87a1384a..8c97785a 100644 --- a/examples/Latency/LatencyExamplePlugin.cpp +++ b/examples/Latency/LatencyExamplePlugin.cpp @@ -177,7 +177,7 @@ protected: /** Activate this plugin. */ - void activate() + void activate() override { fBufferPos = 0; std::memset(fBuffer, 0, sizeof(float)*fBufferSize); diff --git a/utils/modgui/javascript.js b/utils/modgui/javascript.js index 305795ea..d872e497 100644 --- a/utils/modgui/javascript.js +++ b/utils/modgui/javascript.js @@ -15,15 +15,9 @@ function(event, funcs) { if (!WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11]))) { wasmErrors.push('Bulk Memory Operations unsupported'); } - if (!WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11]))) { - wasmErrors.push('Exception handling unsupported'); - } if (!WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1]))) { wasmErrors.push('Importable/Exportable mutable globals unsupported'); } - if (!WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))) { - wasmErrors.push('Fixed-Width SIMD unsupported'); - } } if (wasmErrors.length !== 0) { @@ -39,14 +33,14 @@ function(event, funcs) { var src = document.createElement('script'); src.setAttribute('async', true); src.setAttribute('src', - '/resources/module.js?uri='+escape("@PLUGIN_URI@")+'&r='+VERSION + '/resources/module.js?uri='+escape(@DISTRHO_PLUGIN_URI@)+'&r='+VERSION // funcs.get_custom_resource_filename('module.js') ); src.setAttribute('type', 'text/javascript'); src.onload = function() { - Module_wolf_plugins_wolf_shaper({ + Module_@PLUGIN_CLASS@({ locateFile: function(path, prefix) { - return '/resources/'+path+'?uri='+escape("@PLUGIN_URI@")+'&r='+VERSION + return '/resources/'+path+'?uri='+escape(@DISTRHO_PLUGIN_URI@)+'&r='+VERSION // return funcs.get_custom_resource_filename(path); }, postRun: function(module) { diff --git a/utils/modgui/stylesheet.css b/utils/modgui/stylesheet.css index dc574db0..b7a9aab8 100644 --- a/utils/modgui/stylesheet.css +++ b/utils/modgui/stylesheet.css @@ -1,8 +1,8 @@ .@PLUGIN_CLASS@.mod-pedal { padding: 0; margin: 0; - width: 500px; - height: 200px; + width: calc(@DISTRHO_UI_DEFAULT_WIDTH@px + 30px); + height: calc(@DISTRHO_UI_DEFAULT_HEIGHT@px + 30px); background: #0e0e0e; } @@ -13,8 +13,9 @@ transform-origin: 0 0 0; transform: scale(calc(1 / var(--device-pixel-ratio))); position: absolute; - width: 500px; - height: 200px; + top: 30px; + width: @DISTRHO_UI_DEFAULT_WIDTH@px; + height: @DISTRHO_UI_DEFAULT_HEIGHT@px; } .@PLUGIN_CLASS@.mod-pedal .canvas_wrapper:focus-within {