Signed-off-by: falkTX <falktx@falktx.com>pull/272/head
@@ -14,7 +14,7 @@ BUILD_CXX_FLAGS += -Isrc/pugl-upstream/include | |||||
LINK_FLAGS += $(DGL_LIBS) | LINK_FLAGS += $(DGL_LIBS) | ||||
# TODO fix these after pugl-upstream is done | # TODO fix these after pugl-upstream is done | ||||
BUILD_CXX_FLAGS += -Wno-missing-field-initializers -Wno-extra -Wno-narrowing | |||||
BUILD_CXX_FLAGS += -Wno-attributes -Wno-extra -Wno-missing-field-initializers -Wno-narrowing | |||||
# ifneq ($(MACOS_OLD),true) | # ifneq ($(MACOS_OLD),true) | ||||
# needed by sofd right now, fix later | # needed by sofd right now, fix later | ||||
@@ -39,36 +39,42 @@ OBJS_common = \ | |||||
../build/dgl/WidgetPrivateData.cpp.o \ | ../build/dgl/WidgetPrivateData.cpp.o \ | ||||
../build/dgl/Window.cpp.o \ | ../build/dgl/Window.cpp.o \ | ||||
../build/dgl/WindowPrivateData.cpp.o | ../build/dgl/WindowPrivateData.cpp.o | ||||
# ../build/dgl/WindowFileBrowser.cpp.o | # ../build/dgl/WindowFileBrowser.cpp.o | ||||
# TODO: ImageWidgets.cpp | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
OBJS_cairo = $(OBJS_common) \ | OBJS_cairo = $(OBJS_common) \ | ||||
../build/dgl/Cairo.cpp.cairo.o \ | |||||
../build/dgl/pugl.cpp.cairo.o | |||||
../build/dgl/Cairo.cpp.cairo.o | |||||
# ifeq ($(MACOS),true) | |||||
# OBJS_cairo += ../build/dgl/Window.mm.cairo.o | |||||
# else | |||||
# OBJS_cairo += ../build/dgl/Window.cpp.cairo.o | |||||
# endif | |||||
ifeq ($(MACOS),true) | |||||
OBJS_cairo += ../build/dgl/pugl.mm.cairo.o | |||||
else | |||||
OBJS_cairo += ../build/dgl/pugl.cpp.cairo.o | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
OBJS_opengl = $(OBJS_common) \ | OBJS_opengl = $(OBJS_common) \ | ||||
../build/dgl/ImageWidgets.cpp.o \ | ../build/dgl/ImageWidgets.cpp.o \ | ||||
../build/dgl/OpenGL.cpp.opengl.o \ | ../build/dgl/OpenGL.cpp.opengl.o \ | ||||
../build/dgl/NanoVG.cpp.opengl.o \ | |||||
../build/dgl/pugl.cpp.opengl.o | |||||
../build/dgl/NanoVG.cpp.opengl.o | |||||
# ifeq ($(MACOS),true) | |||||
# OBJS_opengl += ../build/dgl/Window.mm.opengl.o | |||||
# else | |||||
# OBJS_opengl += ../build/dgl/Window.cpp.opengl.o | |||||
# endif | |||||
ifeq ($(MACOS),true) | |||||
OBJS_opengl += ../build/dgl/pugl.mm.opengl.o | |||||
else | |||||
OBJS_opengl += ../build/dgl/pugl.cpp.opengl.o | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
OBJS_vulkan = $(OBJS_common) \ | |||||
../build/dgl/Cairo.cpp.vulkan.o | |||||
ifeq ($(MACOS),true) | |||||
OBJS_vulkan += ../build/dgl/pugl.mm.vulkan.o | |||||
else | |||||
OBJS_vulkan += ../build/dgl/pugl.cpp.vulkan.o | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -82,6 +88,10 @@ TARGETS += ../build/libdgl-opengl.a | |||||
TARGETS += ../build/libdgl.a | TARGETS += ../build/libdgl.a | ||||
endif | endif | ||||
ifeq ($(HAVE_VULKAN),true) | |||||
TARGETS += ../build/libdgl-vulkan.a | |||||
endif | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
all: $(TARGETS) | all: $(TARGETS) | ||||
@@ -100,6 +110,12 @@ all: $(TARGETS) | |||||
$(SILENT)rm -f $@ | $(SILENT)rm -f $@ | ||||
$(SILENT)$(AR) crs $@ $^ | $(SILENT)$(AR) crs $@ $^ | ||||
../build/libdgl-vulkan.a: $(OBJS_vulkan) | |||||
-@mkdir -p ../build | |||||
@echo "Creating libdgl-vulkan.a" | |||||
$(SILENT)rm -f $@ | |||||
$(SILENT)$(AR) crs $@ $^ | |||||
# Compat name, to be removed soon | # Compat name, to be removed soon | ||||
../build/libdgl.a: ../build/libdgl-opengl.a | ../build/libdgl.a: ../build/libdgl-opengl.a | ||||
@echo "Symlinking libdgl.a" | @echo "Symlinking libdgl.a" | ||||
@@ -117,6 +133,11 @@ all: $(TARGETS) | |||||
@echo "Compiling $<" | @echo "Compiling $<" | ||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | ||||
../build/dgl/%.mm.o: src/%.mm | |||||
-@mkdir -p ../build/dgl | |||||
@echo "Compiling $<" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
../build/dgl/%.cpp.cairo.o: src/%.cpp | ../build/dgl/%.cpp.cairo.o: src/%.cpp | ||||
@@ -124,15 +145,10 @@ all: $(TARGETS) | |||||
@echo "Compiling $< (Cairo variant)" | @echo "Compiling $< (Cairo variant)" | ||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@ | ||||
# ../build/dgl/Window.cpp.cairo.o: src/Window.cpp src/sofd/* src/pugl-upstream/* | |||||
# -@mkdir -p ../build/dgl | |||||
# @echo "Compiling $< (Cairo variant)" | |||||
# $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@ | |||||
# | |||||
# ../build/dgl/Window.mm.cairo.o: src/Window.cpp src/sofd/* src/pugl-upstream/* | |||||
# -@mkdir -p ../build/dgl | |||||
# @echo "Compiling $< (Cairo variant)" | |||||
# $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -ObjC++ -c -o $@ | |||||
../build/dgl/%.mm.cairo.o: src/%.mm | |||||
-@mkdir -p ../build/dgl | |||||
@echo "Compiling $< (Cairo variant)" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -141,15 +157,22 @@ all: $(TARGETS) | |||||
@echo "Compiling $< (OpenGL variant)" | @echo "Compiling $< (OpenGL variant)" | ||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@ | ||||
# ../build/dgl/Window.cpp.opengl.o: src/Window.cpp src/sofd/* src/pugl-upstream/* | |||||
# -@mkdir -p ../build/dgl | |||||
# @echo "Compiling $< (OpenGL variant)" | |||||
# $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@ | |||||
# | |||||
# ../build/dgl/Window.mm.opengl.o: src/Window.cpp src/sofd/* src/pugl-upstream/* | |||||
# -@mkdir -p ../build/dgl | |||||
# @echo "Compiling $< (OpenGL variant)" | |||||
# $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -ObjC++ -c -o $@ | |||||
../build/dgl/%.mm.opengl.o: src/%.mm | |||||
-@mkdir -p ../build/dgl | |||||
@echo "Compiling $< (OpenGL variant)" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | |||||
../build/dgl/%.cpp.vulkan.o: src/%.cpp | |||||
-@mkdir -p ../build/dgl | |||||
@echo "Compiling $< (Vulkan variant)" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@ | |||||
../build/dgl/%.mm.vulkan.o: src/%.mm | |||||
-@mkdir -p ../build/dgl | |||||
@echo "Compiling $< (Vulkan variant)" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@ | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -164,5 +187,6 @@ debug: | |||||
-include $(OBJS_common:%.o=%.d) | -include $(OBJS_common:%.o=%.d) | ||||
-include $(OBJS_cairo:%.o=%.d) | -include $(OBJS_cairo:%.o=%.d) | ||||
-include $(OBJS_opengl:%.o=%.d) | -include $(OBJS_opengl:%.o=%.d) | ||||
-include $(OBJS_vulkan:%.o=%.d) | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- |
@@ -19,11 +19,13 @@ | |||||
#include "pugl.hpp" | #include "pugl.hpp" | ||||
#include <cinttypes> | |||||
#define DGL_DEBUG_EVENTS | |||||
START_NAMESPACE_DGL | |||||
#if defined(DEBUG) && defined(DGL_DEBUG_EVENTS) | |||||
# include <cinttypes> | |||||
#endif | |||||
#define DGL_DEBUG_EVENTS | |||||
START_NAMESPACE_DGL | |||||
#if defined(DEBUG) && defined(DGL_DEBUG_EVENTS) | #if defined(DEBUG) && defined(DGL_DEBUG_EVENTS) | ||||
# define DGL_DBG(msg) std::fprintf(stderr, "%s", msg); | # define DGL_DBG(msg) std::fprintf(stderr, "%s", msg); | ||||
@@ -1 +1 @@ | |||||
Subproject commit b0a018a006c5d7d7796074b86c1b69f8671d2d83 | |||||
Subproject commit 9cab7cdcba159aec5f3df4d5841b83c12ef64185 |
@@ -25,7 +25,36 @@ | |||||
#if defined(DISTRHO_OS_HAIKU) | #if defined(DISTRHO_OS_HAIKU) | ||||
#elif defined(DISTRHO_OS_MAC) | #elif defined(DISTRHO_OS_MAC) | ||||
# import <Cocoa/Cocoa.h> | |||||
# include <dlfcn.h> | |||||
# include <mach/mach_time.h> | |||||
# ifdef DGL_CAIRO | |||||
# include <cairo.h> | |||||
# include <cairo-quartz.h> | |||||
# endif | |||||
# ifdef DGL_OPENGL | |||||
# include <OpenGL/gl.h> | |||||
# endif | |||||
# ifdef DGL_VULKAN | |||||
# import <QuartzCore/CAMetalLayer.h> | |||||
# include <vulkan/vulkan_core.h> | |||||
# include <vulkan/vulkan_macos.h> | |||||
# endif | |||||
#elif defined(DISTRHO_OS_WINDOWS) | #elif defined(DISTRHO_OS_WINDOWS) | ||||
# include <wctype.h> | |||||
# include <windows.h> | |||||
# include <windowsx.h> | |||||
# ifdef DGL_CAIRO | |||||
# include <cairo.h> | |||||
# include <cairo-win32.h> | |||||
# endif | |||||
# ifdef DGL_OPENGL | |||||
# include <GL/gl.h> | |||||
# endif | |||||
# ifdef DGL_VULKAN | |||||
# include <vulkan/vulkan.h> | |||||
# include <vulkan/vulkan_win32.h> | |||||
# endif | |||||
#else | #else | ||||
# include <dlfcn.h> | # include <dlfcn.h> | ||||
# include <sys/select.h> | # include <sys/select.h> | ||||
@@ -51,6 +80,7 @@ | |||||
# include <cairo-xlib.h> | # include <cairo-xlib.h> | ||||
# endif | # endif | ||||
# ifdef DGL_OPENGL | # ifdef DGL_OPENGL | ||||
# include <GL/gl.h> | |||||
# include <GL/glx.h> | # include <GL/glx.h> | ||||
# endif | # endif | ||||
# ifdef DGL_VULKAN | # ifdef DGL_VULKAN | ||||
@@ -67,9 +97,33 @@ START_NAMESPACE_DGL | |||||
#if defined(DISTRHO_OS_HAIKU) | #if defined(DISTRHO_OS_HAIKU) | ||||
#elif defined(DISTRHO_OS_MAC) | #elif defined(DISTRHO_OS_MAC) | ||||
/* | |||||
# define PuglWindow DISTRHO_JOIN_MACRO(PuglWindow, DGL_NAMESPACE) | # define PuglWindow DISTRHO_JOIN_MACRO(PuglWindow, DGL_NAMESPACE) | ||||
# define PuglOpenGLView DISTRHO_JOIN_MACRO(PuglOpenGLView, DGL_NAMESPACE) | # define PuglOpenGLView DISTRHO_JOIN_MACRO(PuglOpenGLView, DGL_NAMESPACE) | ||||
*/ | |||||
# import "pugl-upstream/src/mac.m" | |||||
# import "pugl-upstream/src/mac_stub.m" | |||||
# ifdef DGL_CAIRO | |||||
# import "pugl-upstream/src/mac_cairo.m" | |||||
# endif | |||||
# ifdef DGL_OPENGL | |||||
# import "pugl-upstream/src/mac_gl.m" | |||||
# endif | |||||
# ifdef DGL_VULKAN | |||||
# import "pugl-upstream/src/mac_vulkan.m" | |||||
# endif | |||||
#elif defined(DISTRHO_OS_WINDOWS) | #elif defined(DISTRHO_OS_WINDOWS) | ||||
# include "pugl-upstream/src/win.c" | |||||
# include "pugl-upstream/src/win_stub.c" | |||||
# ifdef DGL_CAIRO | |||||
# include "pugl-upstream/src/win_cairo.c" | |||||
# endif | |||||
# ifdef DGL_OPENGL | |||||
# include "pugl-upstream/src/win_gl.c" | |||||
# endif | |||||
# ifdef DGL_VULKAN | |||||
# include "pugl-upstream/src/win_vulkan.c" | |||||
# endif | |||||
#else | #else | ||||
# include "pugl-upstream/src/x11.c" | # include "pugl-upstream/src/x11.c" | ||||
# include "pugl-upstream/src/x11_stub.c" | # include "pugl-upstream/src/x11_stub.c" | ||||
@@ -120,7 +174,7 @@ void puglRaiseWindow(PuglView* view) | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
// set backend that matches current build | // set backend that matches current build | ||||
void puglSetMatchingBackendForCurrentBuild(PuglView* view) | |||||
void puglSetMatchingBackendForCurrentBuild(PuglView* const view) | |||||
{ | { | ||||
#ifdef DGL_CAIRO | #ifdef DGL_CAIRO | ||||
puglSetBackend(view, puglCairoBackend()); | puglSetBackend(view, puglCairoBackend()); | ||||
@@ -136,7 +190,7 @@ void puglSetMatchingBackendForCurrentBuild(PuglView* view) | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
// Combine puglSetMinSize and puglSetAspectRatio | // Combine puglSetMinSize and puglSetAspectRatio | ||||
PuglStatus puglSetGeometryConstraints(PuglView* view, unsigned int width, unsigned int height, bool aspect) | |||||
PuglStatus puglSetGeometryConstraints(PuglView* const view, const uint width, const uint height, const bool aspect) | |||||
{ | { | ||||
view->minWidth = width; | view->minWidth = width; | ||||
view->minHeight = height; | view->minHeight = height; | ||||
@@ -170,16 +224,18 @@ PuglStatus puglSetGeometryConstraints(PuglView* view, unsigned int width, unsign | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
// set window size without changing frame x/y position | // set window size without changing frame x/y position | ||||
PuglStatus puglSetWindowSize(PuglView* view, unsigned int width, unsigned int height) | |||||
PuglStatus puglSetWindowSize(PuglView* const view, const uint width, const uint height) | |||||
{ | { | ||||
#if defined(DISTRHO_OS_HAIKU) || defined(DISTRHO_OS_MAC) | #if defined(DISTRHO_OS_HAIKU) || defined(DISTRHO_OS_MAC) | ||||
// TODO | |||||
const PuglRect frame = { 0.0, 0.0, (double)width, (double)height }; | |||||
// keep upstream behaviour | |||||
const PuglRect frame = { view->frame.x, view->frame.y, (double)width, (double)height }; | |||||
return puglSetFrame(view, frame); | return puglSetFrame(view, frame); | ||||
#elif defined(DISTRHO_OS_WINDOWS) | #elif defined(DISTRHO_OS_WINDOWS) | ||||
// matches upstream pugl, except we add SWP_NOMOVE flag | // matches upstream pugl, except we add SWP_NOMOVE flag | ||||
if (view->impl->hwnd) | if (view->impl->hwnd) | ||||
{ | { | ||||
const PuglRect frame = view->frame; | |||||
RECT rect = { (long)frame.x, | RECT rect = { (long)frame.x, | ||||
(long)frame.y, | (long)frame.y, | ||||
(long)frame.x + (long)frame.width, | (long)frame.x + (long)frame.width, | ||||
@@ -202,23 +258,6 @@ PuglStatus puglSetWindowSize(PuglView* view, unsigned int width, unsigned int he | |||||
{ | { | ||||
if (! XResizeWindow(view->world->impl->display, view->impl->win, width, height)) | if (! XResizeWindow(view->world->impl->display, view->impl->win, width, height)) | ||||
return PUGL_UNKNOWN_ERROR; | return PUGL_UNKNOWN_ERROR; | ||||
#if 0 | |||||
if (! fResizable) | |||||
{ | |||||
XSizeHints sizeHints; | |||||
memset(&sizeHints, 0, sizeof(sizeHints)); | |||||
sizeHints.flags = PSize|PMinSize|PMaxSize; | |||||
sizeHints.width = static_cast<int>(width); | |||||
sizeHints.height = static_cast<int>(height); | |||||
sizeHints.min_width = static_cast<int>(width); | |||||
sizeHints.min_height = static_cast<int>(height); | |||||
sizeHints.max_width = static_cast<int>(width); | |||||
sizeHints.max_height = static_cast<int>(height); | |||||
XSetWMNormalHints(xDisplay, xWindow, &sizeHints); | |||||
} | |||||
#endif | |||||
} | } | ||||
#endif | #endif | ||||
@@ -241,7 +280,7 @@ void puglOnDisplayPrepare(PuglView*) | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
// DGL specific, build-specific fallback resize | // DGL specific, build-specific fallback resize | ||||
void puglFallbackOnResize(PuglView* view) | |||||
void puglFallbackOnResize(PuglView* const view) | |||||
{ | { | ||||
#ifdef DGL_OPENGL | #ifdef DGL_OPENGL | ||||
glEnable(GL_BLEND); | glEnable(GL_BLEND); | ||||
@@ -255,6 +294,60 @@ void puglFallbackOnResize(PuglView* view) | |||||
#endif | #endif | ||||
} | } | ||||
#ifdef DISTRHO_OS_WINDOWS | |||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
// win32 specific, call ShowWindow with SW_RESTORE | |||||
void puglWin32RestoreWindow(PuglView* const view) | |||||
{ | |||||
PuglInternals* impl = view->impl; | |||||
DISTRHO_SAFE_ASSERT_RETURN(impl->hwnd != nullptr,); | |||||
ShowWindow(impl->hwnd, SW_RESTORE); | |||||
SetFocus(impl->hwnd); | |||||
} | |||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
// win32 specific, center view based on parent coordinates (if there is one) | |||||
void puglWin32ShowWindowCentered(PuglView* const view) | |||||
{ | |||||
PuglInternals* impl = view->impl; | |||||
DISTRHO_SAFE_ASSERT_RETURN(impl->hwnd != nullptr,); | |||||
RECT rectChild, rectParent; | |||||
if (view->transientParent != 0 && | |||||
GetWindowRect(impl->hwnd, &rectChild) && | |||||
GetWindowRect((HWND)view->transientParent, &rectParent)) | |||||
{ | |||||
SetWindowPos(impl->hwnd, (HWND)view->transientParent, | |||||
rectParent.left + (rectChild.right-rectChild.left)/2, | |||||
rectParent.top + (rectChild.bottom-rectChild.top)/2, | |||||
0, 0, SWP_SHOWWINDOW|SWP_NOSIZE); | |||||
} | |||||
else | |||||
{ | |||||
ShowWindow(impl->hwnd, SW_SHOWNORMAL); | |||||
} | |||||
SetFocus(impl->hwnd); | |||||
} | |||||
// -------------------------------------------------------------------------------------------------------------------- | |||||
// win32 specific, set or unset WS_SIZEBOX style flag | |||||
void puglWin32SetWindowResizable(PuglView* const view, const bool resizable) | |||||
{ | |||||
PuglInternals* impl = view->impl; | |||||
DISTRHO_SAFE_ASSERT_RETURN(impl->hwnd != nullptr,); | |||||
const int winFlags = resizable ? GetWindowLong(impl->hwnd, GWL_STYLE) | WS_SIZEBOX | |||||
: GetWindowLong(impl->hwnd, GWL_STYLE) & ~WS_SIZEBOX; | |||||
SetWindowLong(impl->hwnd, GWL_STYLE, winFlags); | |||||
} | |||||
#endif | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
END_NAMESPACE_DGL | END_NAMESPACE_DGL |
@@ -28,6 +28,7 @@ START_NAMESPACE_DGL | |||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
#define PUGL_API | |||||
#define PUGL_DISABLE_DEPRECATED | #define PUGL_DISABLE_DEPRECATED | ||||
#include "pugl-upstream/include/pugl/pugl.h" | #include "pugl-upstream/include/pugl/pugl.h" | ||||
@@ -65,6 +66,20 @@ puglOnDisplayPrepare(PuglView* view); | |||||
PUGL_API void | PUGL_API void | ||||
puglFallbackOnResize(PuglView* view); | puglFallbackOnResize(PuglView* view); | ||||
#ifdef DISTRHO_OS_WINDOWS | |||||
// win32 specific, call ShowWindow with SW_RESTORE | |||||
PUGL_API void | |||||
puglWin32RestoreWindow(PuglView* view); | |||||
// win32 specific, center view based on parent coordinates (if there is one) | |||||
PUGL_API void | |||||
puglWin32ShowWindowCentered(PuglView* view); | |||||
// win32 specific, set or unset WS_SIZEBOX style flag | |||||
PUGL_API void | |||||
puglWin32SetWindowResizable(PuglView* view, bool resizable); | |||||
#endif | |||||
PUGL_END_DECLS | PUGL_END_DECLS | ||||
// -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
@@ -16,7 +16,7 @@ BUILD_CXX_FLAGS += $(DGL_FLAGS) -I.. -I../dgl/src/pugl-upstream/include -DDONT_S | |||||
LINK_FLAGS += -lpthread | LINK_FLAGS += -lpthread | ||||
# TODO fix within pugl | # TODO fix within pugl | ||||
BUILD_CXX_FLAGS += -Wno-missing-field-initializers -Wno-extra | |||||
BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -33,8 +33,8 @@ ifeq ($(HAVE_VULKAN),true) | |||||
WTESTS = Window.vulkan | WTESTS = Window.vulkan | ||||
endif | endif | ||||
TARGETS = $(TESTS:%=../build/tests/%) | |||||
TARGETS += $(WTESTS:Window.%=../build/tests/Window.%) | |||||
TARGETS = $(TESTS:%=../build/tests/%$(APP_EXT)) | |||||
TARGETS += $(WTESTS:Window.%=../build/tests/Window.%$(APP_EXT)) | |||||
OBJS = $(TESTS:%=../build/tests/%.cpp.o) | OBJS = $(TESTS:%=../build/tests/%.cpp.o) | ||||
OBJS += $(WTESTS:Window.%=../build/tests/Window.cpp.%.o) | OBJS += $(WTESTS:Window.%=../build/tests/Window.cpp.%.o) | ||||
@@ -102,31 +102,31 @@ clean: | |||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
# linking steps | # linking steps | ||||
../build/tests/%: ../build/tests/%.cpp.o | |||||
../build/tests/%$(APP_EXT): ../build/tests/%.cpp.o | |||||
@echo "Linking $*" | @echo "Linking $*" | ||||
$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@ | $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) -o $@ | ||||
../build/tests/%.cairo: ../build/tests/%.cpp.cairo.o | |||||
../build/tests/%.cairo$(APP_EXT): ../build/tests/%.cpp.cairo.o | |||||
@echo "Linking $*" | @echo "Linking $*" | ||||
$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@ | $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@ | ||||
../build/tests/%.opengl: ../build/tests/%.cpp.opengl.o | |||||
../build/tests/%.opengl$(APP_EXT): ../build/tests/%.cpp.opengl.o | |||||
@echo "Linking $*" | @echo "Linking $*" | ||||
$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@ | $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@ | ||||
../build/tests/%.vulkan: ../build/tests/%.cpp.vulkan.o | |||||
../build/tests/%.vulkan$(APP_EXT): ../build/tests/%.cpp.vulkan.o | |||||
@echo "Linking $*" | @echo "Linking $*" | ||||
$(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@ | $(SILENT)$(CXX) $< $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@ | ||||
../build/tests/Demo.cairo: ../build/tests/Demo.cpp.cairo.o ../build/libdgl-cairo.a | |||||
../build/tests/Demo.cairo$(APP_EXT): ../build/tests/Demo.cpp.cairo.o ../build/libdgl-cairo.a | |||||
@echo "Linking Demo (Cairo)" | @echo "Linking Demo (Cairo)" | ||||
$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@ | $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(CAIRO_LIBS) -o $@ | ||||
../build/tests/Demo.opengl: ../build/tests/Demo.cpp.opengl.o ../build/libdgl-opengl.a | |||||
../build/tests/Demo.opengl$(APP_EXT): ../build/tests/Demo.cpp.opengl.o ../build/libdgl-opengl.a | |||||
@echo "Linking Demo (OpenGL)" | @echo "Linking Demo (OpenGL)" | ||||
$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@ | $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@ | ||||
../build/tests/Demo.vulkan: ../build/tests/Demo.cpp.vulkan.o ../build/libdgl-vulkan.a | |||||
../build/tests/Demo.vulkan$(APP_EXT): ../build/tests/Demo.cpp.vulkan.o ../build/libdgl-vulkan.a | |||||
@echo "Linking Demo (OpenGL)" | @echo "Linking Demo (OpenGL)" | ||||
$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@ | $(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@ | ||||