Use our own nanovg
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
c53abef199
commit
14fe8acc04
8 changed files with 42 additions and 57 deletions
12
Makefile
12
Makefile
|
|
@ -6,27 +6,33 @@
|
||||||
|
|
||||||
include dpf/Makefile.base.mk
|
include dpf/Makefile.base.mk
|
||||||
|
|
||||||
all: dgl plugins gen
|
all: dgl plugins gen resources
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
||||||
dgl:
|
dgl:
|
||||||
$(MAKE) SKIP_NANOVG=true -C dpf/dgl opengl
|
$(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl
|
||||||
|
|
||||||
plugins: dgl
|
plugins: dgl
|
||||||
$(MAKE) all -C plugins/Cardinal
|
$(MAKE) all -C plugins/Cardinal
|
||||||
|
|
||||||
ifneq ($(CROSS_COMPILING),true)
|
ifneq ($(CROSS_COMPILING),true)
|
||||||
gen: plugins dpf/utils/lv2_ttl_generator
|
gen: plugins resources dpf/utils/lv2_ttl_generator
|
||||||
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
||||||
ifeq ($(MACOS),true)
|
ifeq ($(MACOS),true)
|
||||||
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
|
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
resources: bin/Cardinal.lv2/res
|
||||||
|
|
||||||
|
bin/Cardinal.lv2/res: plugins
|
||||||
|
ln -sf $(CURDIR)/plugins/Cardinal/Rack/res bin/Cardinal.lv2/res
|
||||||
|
|
||||||
dpf/utils/lv2_ttl_generator:
|
dpf/utils/lv2_ttl_generator:
|
||||||
$(MAKE) -C dpf/utils/lv2-ttl-generator
|
$(MAKE) -C dpf/utils/lv2-ttl-generator
|
||||||
else
|
else
|
||||||
gen:
|
gen:
|
||||||
|
resources:
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
|
||||||
2
dpf
2
dpf
|
|
@ -1 +1 @@
|
||||||
Subproject commit c17c260d08613ab46e13dc578104c74b5713a435
|
Subproject commit d8f66c1e06cafedf000fe75afcf67b96b3efbc6c
|
||||||
|
|
@ -32,6 +32,7 @@
|
||||||
|
|
||||||
#include <osdialog.h>
|
#include <osdialog.h>
|
||||||
|
|
||||||
|
#undef DEBUG
|
||||||
#include "DistrhoPlugin.hpp"
|
#include "DistrhoPlugin.hpp"
|
||||||
|
|
||||||
START_NAMESPACE_DISTRHO
|
START_NAMESPACE_DISTRHO
|
||||||
|
|
@ -124,6 +125,9 @@ struct Initializer {
|
||||||
midi::destroy();
|
midi::destroy();
|
||||||
audio::destroy();
|
audio::destroy();
|
||||||
plugin::destroy();
|
plugin::destroy();
|
||||||
|
#ifndef DPF_AS_GLFW
|
||||||
|
gamepad::destroy();
|
||||||
|
#endif
|
||||||
INFO("Destroying logger");
|
INFO("Destroying logger");
|
||||||
logger::destroy();
|
logger::destroy();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
#include <ui/common.hpp>
|
#include <ui/common.hpp>
|
||||||
#include <window/Window.hpp>
|
#include <window/Window.hpp>
|
||||||
|
|
||||||
|
#undef DEBUG
|
||||||
#include "DistrhoUI.hpp"
|
#include "DistrhoUI.hpp"
|
||||||
#include "ResizeHandle.hpp"
|
#include "ResizeHandle.hpp"
|
||||||
|
|
||||||
|
|
@ -96,7 +97,7 @@ public:
|
||||||
License, or (at your option) any later version.
|
License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
// Initialize context
|
// Initialize context
|
||||||
INFO("Initializing context");
|
d_stdout("UI context ptr %p", NanoVG::getContext());
|
||||||
#ifdef DPF_AS_GLFW
|
#ifdef DPF_AS_GLFW
|
||||||
window::lastUI = this;
|
window::lastUI = this;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -125,7 +126,7 @@ public:
|
||||||
contextSet(NULL);
|
contextSet(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onDisplay() override
|
void onNanoDisplay() override
|
||||||
{
|
{
|
||||||
APP->window->step();
|
APP->window->step();
|
||||||
}
|
}
|
||||||
|
|
@ -191,6 +192,12 @@ protected:
|
||||||
case 3:
|
case 3:
|
||||||
button = GLFW_MOUSE_BUTTON_RIGHT;
|
button = GLFW_MOUSE_BUTTON_RIGHT;
|
||||||
break;
|
break;
|
||||||
|
// case 4:
|
||||||
|
// button = GLFW_MOUSE_WHEELUP;
|
||||||
|
// break;
|
||||||
|
// case 5:
|
||||||
|
// button = GLFW_MOUSE_WHEELDOWN;
|
||||||
|
// break;
|
||||||
default:
|
default:
|
||||||
button = 0;
|
button = 0;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
// #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer"
|
// #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer"
|
||||||
// #define DISTRHO_PLUGIN_HAS_EMBED_UI 1
|
// #define DISTRHO_PLUGIN_HAS_EMBED_UI 1
|
||||||
// #define DISTRHO_PLUGIN_HAS_EXTERNAL_UI 1
|
// #define DISTRHO_PLUGIN_HAS_EXTERNAL_UI 1
|
||||||
// #define DISTRHO_UI_USE_NANOVG 1
|
#define DISTRHO_UI_USE_NANOVG 1
|
||||||
#define DISTRHO_UI_USER_RESIZABLE 0
|
#define DISTRHO_UI_USER_RESIZABLE 0
|
||||||
|
|
||||||
#define DPF_AS_GLFW 1
|
#define DPF_AS_GLFW 1
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,16 @@ FILES_DSP = \
|
||||||
CardinalPlugin.cpp
|
CardinalPlugin.cpp
|
||||||
|
|
||||||
FILES_UI = \
|
FILES_UI = \
|
||||||
CardinalUI.cpp \
|
CardinalUI.cpp
|
||||||
Window.cpp
|
|
||||||
|
FILES_UI += dep.cpp
|
||||||
|
FILES_UI += Window.cpp
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Import base definitions
|
# Import base definitions
|
||||||
|
|
||||||
# UI_TYPE = external
|
# UI_TYPE = external
|
||||||
SKIP_NANOVG = true
|
USE_NANOVG_FBO = true
|
||||||
include ../../dpf/Makefile.base.mk
|
include ../../dpf/Makefile.base.mk
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
@ -33,7 +35,7 @@ FILES_DSP += Rack/dep/pffft/pffft.c
|
||||||
FILES_DSP += Rack/dep/pffft/fftpack.c
|
FILES_DSP += Rack/dep/pffft/fftpack.c
|
||||||
|
|
||||||
FILES_UI += Rack/dep/oui-blendish/blendish.c
|
FILES_UI += Rack/dep/oui-blendish/blendish.c
|
||||||
FILES_UI += Rack/dep/nanovg/src/nanovg.c
|
# FILES_UI += Rack/dep/nanovg/src/nanovg.c
|
||||||
|
|
||||||
# FIXME dont use this
|
# FIXME dont use this
|
||||||
FILES_UI += Rack/dep/osdialog/osdialog.c
|
FILES_UI += Rack/dep/osdialog/osdialog.c
|
||||||
|
|
@ -47,7 +49,7 @@ endif
|
||||||
|
|
||||||
FILES_DSP += $(wildcard Rack/src/*.c)
|
FILES_DSP += $(wildcard Rack/src/*.c)
|
||||||
FILES_DSP += $(wildcard Rack/src/*/*.c)
|
FILES_DSP += $(wildcard Rack/src/*/*.c)
|
||||||
FILES_DSP += $(filter-out Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
|
FILES_DSP += $(filter-out Rack/src/dep.cpp Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
|
||||||
FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
|
FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
|
||||||
|
|
||||||
EXTRA_LIBS += Rack/dep/lib/libjansson.a
|
EXTRA_LIBS += Rack/dep/lib/libjansson.a
|
||||||
|
|
@ -93,15 +95,15 @@ Rack/dep/lib/libcrypto.a: Rack/dep/lib/libssl.a
|
||||||
# Extra flags for VCV stuff
|
# Extra flags for VCV stuff
|
||||||
|
|
||||||
BASE_FLAGS += -D_APP_VERSION=2.git.0
|
BASE_FLAGS += -D_APP_VERSION=2.git.0
|
||||||
# BASE_FLAGS += -I$(DPF_PATH)/dgl/src/nanovg
|
BASE_FLAGS += -I$(DPF_PATH)/dgl/src/nanovg
|
||||||
BASE_FLAGS += -IRack/include
|
BASE_FLAGS += -IRack/include
|
||||||
BASE_FLAGS += -IRack/dep/include
|
BASE_FLAGS += -IRack/dep/include
|
||||||
BASE_FLAGS += -IRack/dep/filesystem/include
|
BASE_FLAGS += -IRack/dep/filesystem/include
|
||||||
BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
|
BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
|
||||||
BASE_FLAGS += -IRack/dep/glew-2.1.0/include
|
# BASE_FLAGS += -IRack/dep/glew-2.1.0/include
|
||||||
BASE_FLAGS += -IRack/dep/glfw/deps
|
# BASE_FLAGS += -IRack/dep/glfw/deps
|
||||||
BASE_FLAGS += -IRack/dep/glfw/include
|
BASE_FLAGS += -IRack/dep/glfw/include
|
||||||
BASE_FLAGS += -IRack/dep/nanovg/src
|
# BASE_FLAGS += -IRack/dep/nanovg/src
|
||||||
BASE_FLAGS += -IRack/dep/nanosvg/src
|
BASE_FLAGS += -IRack/dep/nanosvg/src
|
||||||
BASE_FLAGS += -IRack/dep/osdialog
|
BASE_FLAGS += -IRack/dep/osdialog
|
||||||
BASE_FLAGS += -IRack/dep/oui-blendish
|
BASE_FLAGS += -IRack/dep/oui-blendish
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ protected:
|
||||||
|
|
||||||
#ifdef DGL_OPENGL
|
#ifdef DGL_OPENGL
|
||||||
// glUseProgram(0);
|
// glUseProgram(0);
|
||||||
// glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// draw white lines, 1px wide
|
// draw white lines, 1px wide
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
#include <queue>
|
#include <queue>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
#include <stb_image_write.h>
|
|
||||||
#include <osdialog.h>
|
#include <osdialog.h>
|
||||||
|
|
||||||
#include <window/Window.hpp>
|
#include <window/Window.hpp>
|
||||||
|
|
@ -16,6 +15,7 @@
|
||||||
#include <plugin.hpp> // used in Window::screenshot
|
#include <plugin.hpp> // used in Window::screenshot
|
||||||
#include <system.hpp> // used in Window::screenshot
|
#include <system.hpp> // used in Window::screenshot
|
||||||
|
|
||||||
|
#undef DEBUG
|
||||||
#include "DistrhoUI.hpp"
|
#include "DistrhoUI.hpp"
|
||||||
|
|
||||||
namespace rack {
|
namespace rack {
|
||||||
|
|
@ -94,14 +94,6 @@ Window::Window() {
|
||||||
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
// Set up GLEW
|
|
||||||
glewExperimental = GL_TRUE;
|
|
||||||
err = glewInit();
|
|
||||||
if (err != GLEW_OK) {
|
|
||||||
osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "Could not initialize GLEW. Does your graphics card support OpenGL 2.0 or greater? If so, make sure you have the latest graphics drivers installed.");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const GLubyte* vendor = glGetString(GL_VENDOR);
|
const GLubyte* vendor = glGetString(GL_VENDOR);
|
||||||
const GLubyte* renderer = glGetString(GL_RENDERER);
|
const GLubyte* renderer = glGetString(GL_RENDERER);
|
||||||
const GLubyte* version = glGetString(GL_VERSION);
|
const GLubyte* version = glGetString(GL_VERSION);
|
||||||
|
|
@ -109,24 +101,9 @@ Window::Window() {
|
||||||
INFO("OpenGL: %s", version);
|
INFO("OpenGL: %s", version);
|
||||||
INFO("UI pointer: %p", lastUI);
|
INFO("UI pointer: %p", lastUI);
|
||||||
|
|
||||||
// GLEW generates GL error because it calls glGetString(GL_EXTENSIONS), we'll consume it here.
|
vg = lastUI->getContext();
|
||||||
glGetError();
|
INFO("NanoVG context: %p", vg);
|
||||||
|
// fbVg = nvgCreateSharedGL2(vg, nvgFlags);
|
||||||
// Set up NanoVG
|
|
||||||
int nvgFlags = NVG_ANTIALIAS;
|
|
||||||
#if defined NANOVG_GL2
|
|
||||||
vg = nvgCreateGL2(nvgFlags);
|
|
||||||
fbVg = nvgCreateSharedGL2(vg, nvgFlags);
|
|
||||||
#elif defined NANOVG_GL3
|
|
||||||
vg = nvgCreateGL3(nvgFlags);
|
|
||||||
#elif defined NANOVG_GLES2
|
|
||||||
vg = nvgCreateGLES2(nvgFlags);
|
|
||||||
#endif
|
|
||||||
if (!vg) {
|
|
||||||
osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "Could not initialize NanoVG. Does your graphics card support OpenGL 2.0 or greater? If so, make sure you have the latest graphics drivers installed.");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
d_stderr2("framebuffer is %p", fbVg);
|
|
||||||
|
|
||||||
// Load default Blendish font
|
// Load default Blendish font
|
||||||
uiFont = loadFont(asset::system("res/fonts/DejaVuSans.ttf"));
|
uiFont = loadFont(asset::system("res/fonts/DejaVuSans.ttf"));
|
||||||
|
|
@ -149,17 +126,6 @@ Window::~Window() {
|
||||||
internal->fontCache.clear();
|
internal->fontCache.clear();
|
||||||
internal->imageCache.clear();
|
internal->imageCache.clear();
|
||||||
|
|
||||||
// nvgDeleteClone(fbVg);
|
|
||||||
|
|
||||||
#if defined NANOVG_GL2
|
|
||||||
nvgDeleteGL2(vg);
|
|
||||||
nvgDeleteGL2(fbVg);
|
|
||||||
#elif defined NANOVG_GL3
|
|
||||||
nvgDeleteGL3(vg);
|
|
||||||
#elif defined NANOVG_GLES2
|
|
||||||
nvgDeleteGLES2(vg);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
delete internal;
|
delete internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -239,7 +205,7 @@ void Window::step() {
|
||||||
bool visible = true;
|
bool visible = true;
|
||||||
if (visible) {
|
if (visible) {
|
||||||
// Update and render
|
// Update and render
|
||||||
nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio);
|
// nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio);
|
||||||
nvgScale(vg, pixelRatio, pixelRatio);
|
nvgScale(vg, pixelRatio, pixelRatio);
|
||||||
|
|
||||||
// Draw scene
|
// Draw scene
|
||||||
|
|
@ -252,7 +218,7 @@ void Window::step() {
|
||||||
glViewport(0, 0, fbWidth, fbHeight);
|
glViewport(0, 0, fbWidth, fbHeight);
|
||||||
glClearColor(0.0, 0.0, 0.0, 1.0);
|
glClearColor(0.0, 0.0, 0.0, 1.0);
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||||
nvgEndFrame(vg);
|
// nvgEndFrame(vg);
|
||||||
t4 = system::getTime();
|
t4 = system::getTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue