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
|
||||
|
||||
all: dgl plugins gen
|
||||
all: dgl plugins gen resources
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
dgl:
|
||||
$(MAKE) SKIP_NANOVG=true -C dpf/dgl opengl
|
||||
$(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl
|
||||
|
||||
plugins: dgl
|
||||
$(MAKE) all -C plugins/Cardinal
|
||||
|
||||
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
|
||||
ifeq ($(MACOS),true)
|
||||
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
|
||||
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:
|
||||
$(MAKE) -C dpf/utils/lv2-ttl-generator
|
||||
else
|
||||
gen:
|
||||
resources:
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
|
2
dpf
2
dpf
|
@ -1 +1 @@
|
|||
Subproject commit c17c260d08613ab46e13dc578104c74b5713a435
|
||||
Subproject commit d8f66c1e06cafedf000fe75afcf67b96b3efbc6c
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <osdialog.h>
|
||||
|
||||
#undef DEBUG
|
||||
#include "DistrhoPlugin.hpp"
|
||||
|
||||
START_NAMESPACE_DISTRHO
|
||||
|
@ -124,6 +125,9 @@ struct Initializer {
|
|||
midi::destroy();
|
||||
audio::destroy();
|
||||
plugin::destroy();
|
||||
#ifndef DPF_AS_GLFW
|
||||
gamepad::destroy();
|
||||
#endif
|
||||
INFO("Destroying logger");
|
||||
logger::destroy();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <ui/common.hpp>
|
||||
#include <window/Window.hpp>
|
||||
|
||||
#undef DEBUG
|
||||
#include "DistrhoUI.hpp"
|
||||
#include "ResizeHandle.hpp"
|
||||
|
||||
|
@ -96,7 +97,7 @@ public:
|
|||
License, or (at your option) any later version.
|
||||
*/
|
||||
// Initialize context
|
||||
INFO("Initializing context");
|
||||
d_stdout("UI context ptr %p", NanoVG::getContext());
|
||||
#ifdef DPF_AS_GLFW
|
||||
window::lastUI = this;
|
||||
#endif
|
||||
|
@ -125,7 +126,7 @@ public:
|
|||
contextSet(NULL);
|
||||
}
|
||||
|
||||
void onDisplay() override
|
||||
void onNanoDisplay() override
|
||||
{
|
||||
APP->window->step();
|
||||
}
|
||||
|
@ -191,6 +192,12 @@ protected:
|
|||
case 3:
|
||||
button = GLFW_MOUSE_BUTTON_RIGHT;
|
||||
break;
|
||||
// case 4:
|
||||
// button = GLFW_MOUSE_WHEELUP;
|
||||
// break;
|
||||
// case 5:
|
||||
// button = GLFW_MOUSE_WHEELDOWN;
|
||||
// break;
|
||||
default:
|
||||
button = 0;
|
||||
break;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
// #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer"
|
||||
// #define DISTRHO_PLUGIN_HAS_EMBED_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 DPF_AS_GLFW 1
|
||||
|
|
|
@ -16,14 +16,16 @@ FILES_DSP = \
|
|||
CardinalPlugin.cpp
|
||||
|
||||
FILES_UI = \
|
||||
CardinalUI.cpp \
|
||||
Window.cpp
|
||||
CardinalUI.cpp
|
||||
|
||||
FILES_UI += dep.cpp
|
||||
FILES_UI += Window.cpp
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Import base definitions
|
||||
|
||||
# UI_TYPE = external
|
||||
SKIP_NANOVG = true
|
||||
USE_NANOVG_FBO = true
|
||||
include ../../dpf/Makefile.base.mk
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
@ -33,7 +35,7 @@ FILES_DSP += Rack/dep/pffft/pffft.c
|
|||
FILES_DSP += Rack/dep/pffft/fftpack.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
|
||||
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 += $(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))
|
||||
|
||||
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
|
||||
|
||||
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/dep/include
|
||||
BASE_FLAGS += -IRack/dep/filesystem/include
|
||||
BASE_FLAGS += -IRack/dep/fuzzysearchdatabase/src
|
||||
BASE_FLAGS += -IRack/dep/glew-2.1.0/include
|
||||
BASE_FLAGS += -IRack/dep/glfw/deps
|
||||
# BASE_FLAGS += -IRack/dep/glew-2.1.0/include
|
||||
# BASE_FLAGS += -IRack/dep/glfw/deps
|
||||
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/osdialog
|
||||
BASE_FLAGS += -IRack/dep/oui-blendish
|
||||
|
|
|
@ -58,7 +58,7 @@ protected:
|
|||
|
||||
#ifdef DGL_OPENGL
|
||||
// glUseProgram(0);
|
||||
// glMatrixMode(GL_MODELVIEW);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
#endif
|
||||
|
||||
// draw white lines, 1px wide
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include <queue>
|
||||
#include <thread>
|
||||
|
||||
#include <stb_image_write.h>
|
||||
#include <osdialog.h>
|
||||
|
||||
#include <window/Window.hpp>
|
||||
|
@ -16,6 +15,7 @@
|
|||
#include <plugin.hpp> // used in Window::screenshot
|
||||
#include <system.hpp> // used in Window::screenshot
|
||||
|
||||
#undef DEBUG
|
||||
#include "DistrhoUI.hpp"
|
||||
|
||||
namespace rack {
|
||||
|
@ -94,14 +94,6 @@ Window::Window() {
|
|||
|
||||
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* renderer = glGetString(GL_RENDERER);
|
||||
const GLubyte* version = glGetString(GL_VERSION);
|
||||
|
@ -109,24 +101,9 @@ Window::Window() {
|
|||
INFO("OpenGL: %s", version);
|
||||
INFO("UI pointer: %p", lastUI);
|
||||
|
||||
// GLEW generates GL error because it calls glGetString(GL_EXTENSIONS), we'll consume it here.
|
||||
glGetError();
|
||||
|
||||
// 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);
|
||||
vg = lastUI->getContext();
|
||||
INFO("NanoVG context: %p", vg);
|
||||
// fbVg = nvgCreateSharedGL2(vg, nvgFlags);
|
||||
|
||||
// Load default Blendish font
|
||||
uiFont = loadFont(asset::system("res/fonts/DejaVuSans.ttf"));
|
||||
|
@ -149,17 +126,6 @@ Window::~Window() {
|
|||
internal->fontCache.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;
|
||||
}
|
||||
|
||||
|
@ -239,7 +205,7 @@ void Window::step() {
|
|||
bool visible = true;
|
||||
if (visible) {
|
||||
// Update and render
|
||||
nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio);
|
||||
// nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio);
|
||||
nvgScale(vg, pixelRatio, pixelRatio);
|
||||
|
||||
// Draw scene
|
||||
|
@ -252,7 +218,7 @@ void Window::step() {
|
|||
glViewport(0, 0, fbWidth, fbHeight);
|
||||
glClearColor(0.0, 0.0, 0.0, 1.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||
nvgEndFrame(vg);
|
||||
// nvgEndFrame(vg);
|
||||
t4 = system::getTime();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue