From 489e7dbfce2822ecc1bf1c8ec2ecbe0d2cd57db5 Mon Sep 17 00:00:00 2001 From: Cameron Leger Date: Fri, 19 Oct 2018 11:09:38 -0600 Subject: [PATCH] Add initial LGLW Linux support and testing environment vst2_lglw_debug_plugin extracted, makefile made vst2_debug_host temporarily using this debug plugin vst2_debug_host Linux support for XWindows, _XEventProc Temporary logger change to avoid crashes (needs investigating) LGLW for Linux: Include necessary X and GL headers Temporary static log file and XErrorHandler for debugging Many logging statements loc_create_hidden_window implemented and working loc_destroy_hidden_window implemented and working lglw_window_open implemented and working lglw_window_resize implemented and untested lglw_window_close implemented and working lglw_window_show implemented and untested lglw_window_hide implemented and untested lglw_window_is_visible is implemented and untested lglw_window_size_get is implemented and untested lglw_redraw is implemented, but possible wrongly lglw_glcontext_push implemented and working lglw_glcontext_pop implemented and working lglw_swap_buffers implemented and working lglw_swap_interval_set implemented and untested --- dep/lglw/lglw_linux.c | 307 ++++++++- other/vst2_debug_host/makefile.linux | 2 +- other/vst2_debug_host/vst2_debug_host.cpp | 123 +++- other/vst2_lglw_debug_plugin/.gitignore | 4 + .../M3dB.xcodeproj/project.pbxproj | 266 ++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/xcschememanagement.plist | 5 + .../xcschemes/M3dB - Debug.xcscheme | 22 + .../xcschemes/M3dB - Release.xcscheme | 22 + .../xcschemes/xcschememanagement.plist | 19 + other/vst2_lglw_debug_plugin/M3dB/Info.plist | 26 + other/vst2_lglw_debug_plugin/makefile.linux | 19 + other/vst2_lglw_debug_plugin/plugin.cpp | 458 +++++++++++++ .../plugin.cpp__DUAL_WIN_CONTEXT_OK | 615 ++++++++++++++++++ .../vst2_lglw_debug_plugin/plugin.cpp__SIMPLE | 527 +++++++++++++++ .../vs2017/m3db/m3db.sln | 31 + .../vs2017/m3db/m3db/dllmain.cpp | Bin 0 -> 912 bytes .../vs2017/m3db/m3db/m3db.cpp | Bin 0 -> 206 bytes .../vs2017/m3db/m3db/m3db.vcxproj | 167 +++++ .../vs2017/m3db/m3db/m3db.vcxproj.filters | 33 + .../vs2017/m3db/m3db/m3db.vcxproj.user | 4 + .../vs2017/m3db/m3db/stdafx.cpp | Bin 0 -> 584 bytes .../vs2017/m3db/m3db/stdafx.h | Bin 0 -> 840 bytes .../vs2017/m3db/m3db/targetver.h | Bin 0 -> 630 bytes .../m3db/x64/Debug/m3db.Build.CppClean.log | 5 + .../vs2017/m3db/m3db/x64/Debug/m3db.log | 2 + .../x64/Debug/m3db.tlog/CL.command.1.tlog | Bin 0 -> 842 bytes .../m3db/x64/Debug/m3db.tlog/CL.read.1.tlog | Bin 0 -> 786 bytes .../m3db/x64/Debug/m3db.tlog/CL.write.1.tlog | Bin 0 -> 546 bytes .../x64/Debug/m3db.tlog/m3db.lastbuildstate | 2 + .../x64/Debug/m3db.tlog/unsuccessfulbuild | 0 .../vs2017/m3db/m3db/x64/Debug/vc141.idb | Bin 0 -> 19456 bytes .../vs2017/m3db/m3db/x64/Debug/vc141.pdb | Bin 0 -> 36864 bytes .../m3db/m3db/x64/Release/lglw_windows.obj | Bin 0 -> 220536 bytes .../m3db/x64/Release/lglw_windows_cpp.obj | Bin 0 -> 351108 bytes .../m3db/x64/Release/m3db.Build.CppClean.log | 15 + .../vs2017/m3db/m3db/x64/Release/m3db.log | 8 + .../x64/Release/m3db.tlog/CL.command.1.tlog | Bin 0 -> 2756 bytes .../m3db/x64/Release/m3db.tlog/CL.read.1.tlog | Bin 0 -> 79002 bytes .../x64/Release/m3db.tlog/CL.write.1.tlog | Bin 0 -> 822 bytes .../x64/Release/m3db.tlog/link.command.1.tlog | Bin 0 -> 2172 bytes .../x64/Release/m3db.tlog/link.read.1.tlog | Bin 0 -> 4812 bytes .../x64/Release/m3db.tlog/link.write.1.tlog | Bin 0 -> 666 bytes .../x64/Release/m3db.tlog/m3db.lastbuildstate | 2 + .../x64/Release/m3db.tlog/m3db.write.1u.tlog | Bin 0 -> 742 bytes .../vs2017/m3db/m3db/x64/Release/plugin.obj | Bin 0 -> 258868 bytes .../vs2017/m3db/x64/Release/m3db.iobj | Bin 0 -> 70427 bytes .../vs2017/m3db/x64/Release/m3db.ipdb | Bin 0 -> 64336 bytes src/util/logger.cpp | 6 +- 49 files changed, 2662 insertions(+), 35 deletions(-) create mode 100644 other/vst2_lglw_debug_plugin/.gitignore create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme create mode 100644 other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 other/vst2_lglw_debug_plugin/M3dB/Info.plist create mode 100644 other/vst2_lglw_debug_plugin/makefile.linux create mode 100644 other/vst2_lglw_debug_plugin/plugin.cpp create mode 100644 other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK create mode 100644 other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.h create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/targetver.h create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/m3db.lastbuildstate create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/unsuccessfulbuild create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.idb create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.pdb create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows.obj create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.command.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.lastbuildstate create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.write.1u.tlog create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.iobj create mode 100644 other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb diff --git a/dep/lglw/lglw_linux.c b/dep/lglw/lglw_linux.c index bb7974ac..87936da2 100644 --- a/dep/lglw/lglw_linux.c +++ b/dep/lglw/lglw_linux.c @@ -24,7 +24,7 @@ * ---- info : This is part of the "lglw" package. * ---- * ---- created: 04Aug2018 - * ---- changed: 05Aug2018, 06Aug2018, 07Aug2018, 08Aug2018, 09Aug2018, 18Aug2018, 10Oct2018 + * ---- changed: 05Aug2018, 06Aug2018, 07Aug2018, 08Aug2018, 09Aug2018, 18Aug2018, 10Oct2018, 16Oct2018 * ---- * ---- */ @@ -35,6 +35,13 @@ #include #include +#include +#include +#include + +#include +#include + #define Dprintf if(0);else printf // #define Dprintf if(1);else printf @@ -57,18 +64,29 @@ // ---------------------------------------------------------------------------- structs and typedefs typedef struct lglw_int_s { - void *user_data; // arbitrary user data + void *user_data; // arbitrary user data + Display *xdsp; + XVisualInfo *vi; + Colormap cmap; + Window parent_xwnd; // created by host struct { lglw_vec2i_t size; + Window xwnd; } hidden; struct { lglw_vec2i_t size; + Window xwnd; + lglw_bool_t mapped; int32_t swap_interval; } win; + GLXContext ctx; + struct { + GLXContext ctx; + GLXDrawable drw; } prev; struct { @@ -142,27 +160,56 @@ static void loc_enable_dropfiles (lglw_int_t *lglw, lglw_bool_t _bEnable); static lglw_int_t *khook_lglw = NULL; // currently key-hooked lglw instance (one at a time) +// TODO: remove and/or improve debug logging for a debug build +// ---------------------------------------------------------------------------- lglw_log +static FILE *logfile; + +void lglw_log(const char *logData, ...) { + fprintf(logfile, logData); + fflush(logfile); +} + + +// TODO: remove, or maybe not in some specific use cases +// ---------------------------------------------------------------------------- xerror_log +static int xerror_handler(Display *display, XErrorEvent *error) { + char error_text[1024]; + XGetErrorText(display, error->error_code, error_text, 1024); + lglw_log("XERROR (%d): %s, %d, %d\n", error->error_code, error_text, error->request_code, error->minor_code); + return 0; +} + + // ---------------------------------------------------------------------------- lglw_init lglw_t lglw_init(int32_t _w, int32_t _h) { lglw_int_t *lglw = malloc(sizeof(lglw_int_t)); + // TODO: remove/improve + logfile = fopen("/home/cameron/src/VeeSeeVSTRack/other/log.txt", "w"); + XSetErrorHandler(xerror_handler); + if(NULL != lglw) { memset(lglw, 0, sizeof(lglw_int_t)); + lglw_log("lglw:lglw_init: 1\n"); if(_w <= 16) _w = LGLW_DEFAULT_HIDDEN_W; if(_h <= 16) _h = LGLW_DEFAULT_HIDDEN_H; + lglw_log("lglw:lglw_init: 2\n"); if(!loc_create_hidden_window(lglw, _w, _h)) { free(lglw); lglw = NULL; } + lglw_log("lglw:lglw_init: 3\n"); } + lglw_log("lglw:lglw_init: EXIT\n"); + return lglw; } @@ -173,8 +220,13 @@ void lglw_exit(lglw_t _lglw) { if(NULL != lglw) { + lglw_log("lglw:lglw_exit: 1\n"); + loc_destroy_hidden_window(lglw); + lglw_log("lglw:lglw_exit: 2\n"); + + fclose(logfile); free(lglw); } } @@ -186,6 +238,7 @@ void lglw_userdata_set(lglw_t _lglw, void *_userData) { if(NULL != lglw) { + lglw_log("lglw:lglw_userdata_set: 1\n"); lglw->user_data = _userData; } } @@ -196,6 +249,7 @@ void *lglw_userdata_get(lglw_t _lglw) { if(NULL != lglw) { + lglw_log("lglw:lglw_userdata_get: 1\n"); return lglw->user_data; } @@ -206,18 +260,78 @@ void *lglw_userdata_get(lglw_t _lglw) { // ---------------------------------------------------------------------------- loc_create_hidden_window static lglw_bool_t loc_create_hidden_window(lglw_int_t *lglw, int32_t _w, int32_t _h) { - // (todo) implement me + // TODO: compare to 'WindowClass' from Windows implementation + + lglw_log("lglw:loc_create_hidden_window: 1\n"); + XSetWindowAttributes swa; + int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, None }; + int screen; + + lglw_log("lglw:loc_create_hidden_window: 2\n"); + lglw->xdsp = XOpenDisplay(NULL); + screen = DefaultScreen(lglw->xdsp); + + lglw_log("lglw:loc_create_hidden_window: 3\n"); + lglw->vi = glXChooseVisual(lglw->xdsp, screen, attrib); + + lglw_log("lglw:loc_create_hidden_window: 4\n"); + if(NULL == lglw->vi) + { + lglw_log("[---] lglw: failed to find GLX Visual for hidden window\n"); + return LGLW_FALSE; + } + + lglw_log("lglw:loc_create_hidden_window: 5\n"); + lglw->ctx = glXCreateContext(lglw->xdsp, lglw->vi, None, True); + + lglw_log("lglw:loc_create_hidden_window: 6\n"); + if(NULL == lglw->ctx) + { + lglw_log("[---] lglw: failed to create GLX Context for hidden window\n"); + return LGLW_FALSE; + } + + lglw_log("lglw:loc_create_hidden_window: 7\n"); + lglw->cmap = XCreateColormap(lglw->xdsp, RootWindow(lglw->xdsp, lglw->vi->screen), + lglw->vi->visual, AllocNone); + lglw_log("lglw:loc_create_hidden_window: 8\n"); + swa.border_pixel = 0; + swa.colormap = lglw->cmap; + lglw->hidden.xwnd = XCreateWindow(lglw->xdsp, DefaultRootWindow(lglw->xdsp), + 0, 0, LGLW_DEFAULT_HIDDEN_W, LGLW_DEFAULT_HIDDEN_H, 0, CopyFromParent, InputOutput, + lglw->vi->visual, CWBorderPixel | CWColormap, &swa); + + lglw_log("lglw:loc_create_hidden_window: 9\n"); + XSetStandardProperties(lglw->xdsp, lglw->hidden.xwnd, "LGLW_hidden", "LGLW_hidden", None, NULL, 0, NULL); + XSync(lglw->xdsp, False); + + lglw_log("lglw:loc_create_hidden_window: EXIT\n"); lglw->hidden.size.x = _w; lglw->hidden.size.y = _h; - return LGLW_FALSE; + return LGLW_TRUE; } // ---------------------------------------------------------------------------- loc_destroy_hidden_window static void loc_destroy_hidden_window(lglw_int_t *lglw) { - // (todo) implement me + lglw_log("lglw:loc_destroy_hidden_window: 1\n"); + if(NULL != lglw->xdsp && NULL != lglw->ctx) + { + glXMakeCurrent(lglw->xdsp, None, NULL); + glXDestroyContext(lglw->xdsp, lglw->ctx); + } + lglw_log("lglw:loc_destroy_hidden_window: 2\n"); + if(NULL != lglw->xdsp && 0 != lglw->hidden.xwnd) XDestroyWindow(lglw->xdsp, lglw->hidden.xwnd); + lglw_log("lglw:loc_destroy_hidden_window: 3\n"); + if(NULL != lglw->xdsp && 0 != lglw->cmap) XFreeColormap(lglw->xdsp, lglw->cmap); + lglw_log("lglw:loc_destroy_hidden_window: 4\n"); + if(NULL != lglw->vi) XFree(lglw->vi); + + lglw_log("lglw:loc_destroy_hidden_window: 5\n"); + XSync(lglw->xdsp, False); + if(NULL != lglw->xdsp) XCloseDisplay(lglw->xdsp); } @@ -226,20 +340,50 @@ lglw_bool_t lglw_window_open (lglw_t _lglw, void *_parentHWNDOrNull, int32_t _x, lglw_bool_t r = LGLW_FALSE; LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + lglw_log("lglw:lglw_window_open: 1, %p, %i\n", (Window)_parentHWNDOrNull, (Window)_parentHWNDOrNull); + lglw->parent_xwnd = (0 == _parentHWNDOrNull) ? DefaultRootWindow(lglw->xdsp) : (Window)_parentHWNDOrNull; + + lglw_log("lglw:lglw_window_open: 2\n"); if(_w <= 16) _w = lglw->hidden.size.x; + lglw_log("lglw:lglw_window_open: 3\n"); if(_h <= 16) _h = lglw->hidden.size.y; + // TODO: compare to 'WindowClass' from Windows implementation + + lglw_log("lglw:lglw_window_open: 4\n"); + XSetWindowAttributes swa; + XEvent event; + XSync(lglw->xdsp, False); + + lglw_log("lglw:lglw_window_open: 5\n"); + swa.border_pixel = 0; + swa.colormap = lglw->cmap; + swa.event_mask = EnterWindowMask | LeaveWindowMask; + lglw->win.xwnd = XCreateWindow(lglw->xdsp, lglw->parent_xwnd, + 0, 0, _w, _h, 0, CopyFromParent, InputOutput, + lglw->vi->visual, CWBorderPixel | CWColormap | CWEventMask, &swa); + + lglw_log("lglw:lglw_window_open: 6\n"); + XSetStandardProperties(lglw->xdsp, lglw->win.xwnd, "LGLW", "LGLW", None, NULL, 0, NULL); + + lglw_log("lglw:lglw_window_open: 9\n"); + XMapRaised(lglw->xdsp, lglw->win.xwnd); + XSync(lglw->xdsp, False); + lglw->win.mapped = LGLW_TRUE; + + lglw_log("lglw:lglw_window_open: 10\n"); lglw->win.size.x = _w; lglw->win.size.y = _h; + lglw_log("lglw:lglw_window_open: 11\n"); loc_enable_dropfiles(lglw, (NULL != lglw->dropfiles.cbk)); + + lglw_log("lglw:lglw_window_open: EXIT\n"); } return r; } @@ -250,10 +394,56 @@ lglw_bool_t lglw_window_resize (lglw_t _lglw, int32_t _w, int32_t _h) { lglw_bool_t r = LGLW_FALSE; LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + if(0 != lglw->win.xwnd) + { + lglw_log("lglw:lglw_window_resize: 1\n"); + r = LGLW_TRUE; + + lglw_log("lglw:lglw_window_resize: 2\n"); + XResizeWindow(lglw->xdsp, lglw->win.xwnd, _w, _h); + XRaiseWindow(lglw->xdsp, lglw->win.xwnd); + + lglw_log("lglw:lglw_window_resize: 3\n"); + int deltaW = _w - lglw->win.size.x; + int deltaH = _h - lglw->win.size.y; + + lglw_log("lglw:lglw_window_resize: 4\n"); + lglw->win.size.x = _w; + lglw->win.size.y = _h; + + lglw_log("lglw:lglw_window_resize: 5\n"); + Window root, parent, *children = NULL; + unsigned int num_children; + + lglw_log("lglw:lglw_window_resize: 6\n"); + if(!XQueryTree(lglw->xdsp, lglw->win.xwnd, &root, &parent, &children, &num_children)) + return r; + + lglw_log("lglw:lglw_window_resize: 7\n"); + if(children) + XFree((char *)children); + + lglw_log("lglw:lglw_window_resize: 8\n"); + // Resize parent window (if any) + if(0 != parent) + { + lglw_log("lglw:lglw_window_resize: 8.1\n"); + int x, y; + unsigned int width, height; + unsigned int border_width; + unsigned int depth; + + lglw_log("lglw:lglw_window_resize: 8.2\n"); + if(!XGetGeometry(lglw->xdsp, lglw->win.xwnd, &root, &x, &y, &width, &height, &border_width, &depth)) + return r; + + lglw_log("lglw:lglw_window_resize: 8.3\n"); + XResizeWindow(lglw->xdsp, parent, width + deltaW, height + deltaH); + } + lglw_log("lglw:lglw_window_resize: EXIT\n"); + } } return r; @@ -264,17 +454,27 @@ lglw_bool_t lglw_window_resize (lglw_t _lglw, int32_t _w, int32_t _h) { void lglw_window_close (lglw_t _lglw) { LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { - // if(NULL != lglw->win.hwnd) + if(0 != lglw->win.xwnd) { + lglw_log("lglw:lglw_window_close: 1\n"); lglw_timer_stop(_lglw); + lglw_log("lglw:lglw_window_close: 2\n"); loc_key_unhook(lglw); + + lglw_log("lglw:lglw_window_close: 3\n"); + glXMakeCurrent(lglw->xdsp, None, NULL); + + lglw_log("lglw:lglw_window_close: 4\n"); + XDestroyWindow(lglw->xdsp, lglw->win.xwnd); + XSync(lglw->xdsp, False); + lglw->win.xwnd = 0; + lglw->win.mapped = LGLW_FALSE; } } + lglw_log("lglw:lglw_window_close: EXIT\n"); } @@ -282,11 +482,14 @@ void lglw_window_close (lglw_t _lglw) { void lglw_window_show(lglw_t _lglw) { LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + lglw_log("lglw:lglw_window_show: 1\n"); + XMapRaised(lglw->xdsp, lglw->win.xwnd); + + lglw->win.mapped = LGLW_TRUE; } + lglw_log("lglw:lglw_window_show: EXIT\n"); } @@ -294,11 +497,14 @@ void lglw_window_show(lglw_t _lglw) { void lglw_window_hide(lglw_t _lglw) { LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + lglw_log("lglw:lglw_window_hide: 1\n"); + XUnmapWindow(lglw->xdsp, lglw->win.xwnd); + + lglw->win.mapped = LGLW_FALSE; } + lglw_log("lglw:lglw_window_hide: EXIT\n"); } @@ -307,12 +513,14 @@ lglw_bool_t lglw_window_is_visible(lglw_t _lglw) { lglw_bool_t r = LGLW_FALSE; LGLW(_lglw); - // (todo) implement me - - if(NULL != lglw) + // lglw_log("lglw:lglw_window_is_visible: 1\n"); + if(NULL != lglw && 0 != lglw->win.xwnd) { + // lglw_log("lglw:lglw_window_is_visible: 2\n"); + r = lglw->win.mapped; } + // lglw_log("lglw:lglw_window_is_visible: EXIT\n"); return r; } @@ -321,11 +529,19 @@ lglw_bool_t lglw_window_is_visible(lglw_t _lglw) { void lglw_window_size_get(lglw_t _lglw, int32_t *_retX, int32_t *_retY) { LGLW(_lglw); - // (todo) implement me - + lglw_log("lglw:lglw_window_size_get: 1\n"); if(NULL != lglw) { + if(0 != lglw->win.xwnd) + { + if(NULL != _retX) + *_retX = lglw->win.size.x; + + if(NULL != _retY) + *_retY = lglw->win.size.y; + } } + lglw_log("lglw:lglw_window_size_get: EXIT\n"); } @@ -337,6 +553,13 @@ void lglw_redraw(lglw_t _lglw) { if(NULL != lglw) { + if(0 != lglw->win.xwnd) + { + // TODO Event Loop + lglw_log("lglw:lglw_redraw: 1\n"); + XClearArea(lglw->xdsp, lglw->win.xwnd, 0, 0, 1, 1, True); // clear tiny area for exposing + XFlush(lglw->xdsp); + } } } @@ -355,11 +578,18 @@ void lglw_redraw_callback_set(lglw_t _lglw, lglw_redraw_fxn_t _cbk) { // ---------------------------------------------------------------------------- lglw_glcontext_push void lglw_glcontext_push(lglw_t _lglw) { LGLW(_lglw); - - // (todo) implement me if(NULL != lglw) { + lglw->prev.drw = glXGetCurrentDrawable(); + lglw->prev.ctx = glXGetCurrentContext(); + + // lglw_log("lglw:lglw_glcontext_push: win.xwnd=%p hidden.xwnd=%p ctx=%p\n", + // lglw->win.xwnd, lglw->hidden.xwnd, lglw->ctx); + if(!glXMakeCurrent(lglw->xdsp, (0 == lglw->win.xwnd) ? lglw->hidden.xwnd : lglw->win.xwnd, lglw->ctx)) + { + lglw_log("[---] lglw_glcontext_push: glXMakeCurrent() failed. win.xwnd=%p hidden.xwnd=%p ctx=%p glGetError()=%d\n", lglw->win.xwnd, lglw->hidden.xwnd, lglw->ctx, glGetError()); + } } } @@ -367,11 +597,15 @@ void lglw_glcontext_push(lglw_t _lglw) { // ---------------------------------------------------------------------------- lglw_glcontext_pop void lglw_glcontext_pop(lglw_t _lglw) { LGLW(_lglw); - - // (todo) implement me if(NULL != lglw) { + // lglw_log("lglw:lglw_glcontext_pop: prev.drw=%p prev.ctx=%p\n", + // lglw->prev.drw, lglw->prev.ctx); + if(!glXMakeCurrent(lglw->xdsp, lglw->prev.drw, lglw->prev.ctx)) + { + lglw_log("[---] lglw_glcontext_pop: glXMakeCurrent() failed. prev.drw=%p ctx=%p glGetError()=%d\n", lglw->prev.drw, lglw->prev.ctx, glGetError()); + } } } @@ -380,22 +614,33 @@ void lglw_glcontext_pop(lglw_t _lglw) { void lglw_swap_buffers(lglw_t _lglw) { LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + if(0 != lglw->win.xwnd) + { + // lglw_log("lglw:lglw_swap_buffers: 1\n"); + glXSwapBuffers(lglw->xdsp, lglw->win.xwnd); + } } } // ---------------------------------------------------------------------------- lglw_swap_interval_set +typedef void (APIENTRY *PFNWGLEXTSWAPINTERVALPROC) (int); void lglw_swap_interval_set(lglw_t _lglw, int32_t _ival) { LGLW(_lglw); - // (todo) implement me - if(NULL != lglw) { + lglw_log("lglw:lglw_swap_interval_set: 1\n"); + PFNWGLEXTSWAPINTERVALPROC glXSwapIntervalEXT; + glXSwapIntervalEXT = (PFNWGLEXTSWAPINTERVALPROC) glXGetProcAddress("glXSwapIntervalEXT"); + if(NULL != glXSwapIntervalEXT) + { + lglw_log("lglw:lglw_swap_interval_set: 2\n"); + glXSwapIntervalEXT(_ival); + lglw->win.swap_interval = _ival; + } } } @@ -444,7 +689,7 @@ static void loc_handle_mouseleave(lglw_int_t *lglw) { lglw->focus.cbk(lglw, lglw->focus.state, LGLW_FOCUS_MOUSE); } - Dprintf("xxx lglw:loc_handle_mouseleave: LEAVE\n"); + lglw_log("xxx lglw:loc_handle_mouseleave: LEAVE\n"); } @@ -460,7 +705,7 @@ static void loc_handle_mouseenter(lglw_int_t *lglw) { lglw->focus.cbk(lglw, lglw->focus.state, LGLW_FOCUS_MOUSE); } - Dprintf("xxx lglw:loc_handle_mouseenter: LEAVE\n"); + lglw_log("xxx lglw:loc_handle_mouseenter: LEAVE\n"); } diff --git a/other/vst2_debug_host/makefile.linux b/other/vst2_debug_host/makefile.linux index b1d0be67..be388019 100644 --- a/other/vst2_debug_host/makefile.linux +++ b/other/vst2_debug_host/makefile.linux @@ -6,7 +6,7 @@ include ../../dep/yac/install_linux.mk .PHONY: bin bin: vst2_debug_host.o - $(CPP) -o vst2_debug_host vst2_debug_host.o -ldl + $(CPP) -o vst2_debug_host vst2_debug_host.o -ldl -L/usr/lib -lpthread -lX11 .PHONY: clean clean: diff --git a/other/vst2_debug_host/vst2_debug_host.cpp b/other/vst2_debug_host/vst2_debug_host.cpp index 2561f4b6..5672c411 100644 --- a/other/vst2_debug_host/vst2_debug_host.cpp +++ b/other/vst2_debug_host/vst2_debug_host.cpp @@ -2,7 +2,8 @@ // #define DLL_PATH "../../vst2_bin/veeseevstrack_effect.dll" -#define SO_PATH "../../vst2_bin/veeseevstrack_effect.so" +// #define SO_PATH "../../vst2_bin/veeseevstrack_effect.so" +#define SO_PATH "../vst2_lglw_debug_plugin/debug_lglw.so" #include @@ -12,6 +13,11 @@ #include #else #include +#include +#include +#include +#include +#include #endif #include @@ -19,6 +25,49 @@ typedef AEffect* (*PluginEntryProc) (audioMasterCallback audioMaster); +#ifndef YAC_WIN32 +// https://github.com/Ardour/ardour/blob/master/gtk2_ardour/linux_vst_gui_support.cc +long getXWindowProperty(Display* display, Window window, Atom atom) +{ + long result = 0; + int userSize; + unsigned long bytes; + unsigned long userCount; + unsigned char *data; + Atom userType; + // LXVST_xerror = false; + + /*Use our own Xerror handler while we're in here - in an + attempt to stop the brain dead default Xerror behaviour of + qutting the entire application because of e.g. an invalid + window ID*/ + + // XErrorHandler olderrorhandler = XSetErrorHandler(TempErrorHandler); + + XGetWindowProperty(display, + window, + atom, + 0, + 2, + false, + AnyPropertyType, + &userType, + &userSize, + &userCount, + &bytes, + &data); + + if(userCount == 1) + result = *(long*)data; + + // XSetErrorHandler(olderrorhandler); + + /*Hopefully this will return zero if the property is not set*/ + + return result; +} +#endif + static VstIntPtr VSTCALLBACK HostCallback(AEffect* effect, VstInt32 opcode, VstInt32 index, VstIntPtr value, void* ptr, float opt) { static VstInt32 lastOpcode = -1; @@ -48,6 +97,15 @@ void open_and_close(void) { } #endif +#ifndef YAC_WIN32 + Display *d; + Window w; + int s; + + d = XOpenDisplay(NULL); + s = DefaultScreen(d); +#endif + for(int i = 0; i < 48; i++) { inputBuffers[i] = new float[4096]; @@ -79,18 +137,75 @@ void open_and_close(void) { if(NULL != effect) { + +#ifndef YAC_WIN32 + w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1, + BlackPixel(d, s), WhitePixel(d, s)); + XSelectInput(d, w, ExposureMask | KeyPressMask); + XMapRaised(d, w); + XFlush(d); +#endif + printf("xxx calling effect->dispatcher\n"); effect->dispatcher(effect, effOpen, 0, 0, NULL, 0.0f); printf("xxx effect->dispatcher returned\n"); +#ifdef YAC_WIN32 VstIntPtr ip = effect->dispatcher(effect, effEditOpen, 0, 0, NULL/*hWnd*/, 0.0f); +#else + VstIntPtr ip = effect->dispatcher(effect, effEditOpen, 0, 0, (void*)(w)/*hWnd*/, 0.0f); +#endif (void)ip; + sleep(2); + +#ifndef YAC_WIN32 + long result = getXWindowProperty(d, w, XInternAtom(d, "_XEventProc", false)); + if(result == 0) + { + printf("xxx no XEventProc found\n"); + } + else + { + printf("xxx XEventProc found... calling\n"); + void (* eventProc) (void * event); + eventProc = (void (*) (void* event))result; + eventProc(NULL); + } +#endif + + printf("xxx calling effect->dispatcher\n"); + effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f); + sleep(1); + printf("xxx calling effect->dispatcher\n"); + effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f); + sleep(1); + printf("xxx calling effect->dispatcher\n"); + effect->dispatcher(effect, effEditClose, 0, 0, NULL, 0.0f); + sleep(1); + printf("xxx calling effect->dispatcher again\n"); +#ifdef YAC_WIN32 + effect->dispatcher(effect, effEditOpen, 0, 0, NULL/*hWnd*/, 0.0f); +#else + effect->dispatcher(effect, effEditOpen, 0, 0, (void*)(w)/*hWnd*/, 0.0f); +#endif + sleep(1); + printf("xxx calling effect->dispatcher\n"); + effect->dispatcher(effect, effEditIdle, 0, 0, NULL, 0.0f); + sleep(1); printf("xxx call processreplacing\n"); for(int i = 0; i < 1024; i++) { effect->processReplacing(effect, inputBuffers, outputBuffers, (VstInt32)64); } + printf("xxx calling effect->dispatcher\n"); effect->dispatcher(effect, effEditClose, 0, 0, NULL, 0.0f); + sleep(1); + printf("xxx calling effect->dispatcher\n"); effect->dispatcher(effect, effClose, 0, 0, NULL, 0.0f); + sleep(1); + +#ifndef YAC_WIN32 + XDestroyWindow(d, w); +#endif } } else @@ -110,10 +225,14 @@ void open_and_close(void) { delete [] inputBuffers[i]; delete [] outputBuffers[i]; } + +#ifndef YAC_WIN32 + XCloseDisplay(d); +#endif } int main() { - for(;;) + for(int i = 0; i < 5; i++) { open_and_close(); } diff --git a/other/vst2_lglw_debug_plugin/.gitignore b/other/vst2_lglw_debug_plugin/.gitignore new file mode 100644 index 00000000..3b06a9a8 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +M3dB/.idea +vst2.x/aeffect.h +vst2.x/aeffectx.h diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj new file mode 100644 index 00000000..373b90a6 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj @@ -0,0 +1,266 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + BD2A1F5751BB6465EFEB5889 /* plugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BD2A144C3B32EFA5180A38F5 /* plugin.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + BD2A1226DD4B6ED23F230900 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = ""; }; + BD2A144C3B32EFA5180A38F5 /* plugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugin.cpp; sourceTree = ""; }; + BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "M3dB.___VARIABLE_bundleExtension___"; sourceTree = BUILT_PRODUCTS_DIR; }; + BD2A18D6CA1C93179E40396A /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffect.h; path = ../vst2.x/aeffect.h; sourceTree = ""; }; + BD2A1CFE51F03D1B40DA1230 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffectx.h; path = ../vst2.x/aeffectx.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BD2A17410135F1BFA2BB6503 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BD2A15554318E7C2EF2CD5DC /* Products */ = { + isa = PBXGroup; + children = ( + BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */, + ); + name = Products; + sourceTree = ""; + }; + BD2A1DCFA27E77A6603B70A2 = { + isa = PBXGroup; + children = ( + BD2A15554318E7C2EF2CD5DC /* Products */, + BD2A1F10D41E35E7FCDFA898 /* M3dB */, + BD2A144C3B32EFA5180A38F5 /* plugin.cpp */, + BD2A18D6CA1C93179E40396A /* aeffect.h */, + BD2A1CFE51F03D1B40DA1230 /* aeffectx.h */, + ); + sourceTree = ""; + }; + BD2A1F10D41E35E7FCDFA898 /* M3dB */ = { + isa = PBXGroup; + children = ( + BD2A1226DD4B6ED23F230900 /* Info.plist */, + ); + path = M3dB; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + BD2A186B82B2C6E8A0E9022C /* M3dB */ = { + isa = PBXNativeTarget; + buildConfigurationList = BD2A12A4CFEA12B6C7A8873E /* Build configuration list for PBXNativeTarget "M3dB" */; + buildPhases = ( + BD2A15C927C3AD450E2DD52C /* Sources */, + BD2A17410135F1BFA2BB6503 /* Frameworks */, + BD2A175E365F9ED8C1C35C6F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = M3dB; + productName = M3dB; + productReference = BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BD2A116B4EC711555868B9BA /* Project object */ = { + isa = PBXProject; + attributes = { + ORGANIZATIONNAME = pongasoft; + }; + buildConfigurationList = BD2A1B7627DAA8FF541E84EC /* Build configuration list for PBXProject "M3dB" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = BD2A1DCFA27E77A6603B70A2; + productRefGroup = BD2A15554318E7C2EF2CD5DC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BD2A186B82B2C6E8A0E9022C /* M3dB */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BD2A175E365F9ED8C1C35C6F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BD2A15C927C3AD450E2DD52C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BD2A1F5751BB6465EFEB5889 /* plugin.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + BD2A1223BF2A633FEE5D6099 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = M3dB/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + PRODUCT_BUNDLE_IDENTIFIER = org.pongasoft.vst24.M3dB; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = vst; + }; + name = Debug; + }; + BD2A17437E006499CC8685D1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + BD2A186609800B3BD0ECFF98 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DEPLOYMENT_POSTPROCESSING = YES; + INFOPLIST_FILE = M3dB/Info.plist; + INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; + PRODUCT_BUNDLE_IDENTIFIER = org.pongasoft.vst24.M3dB; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = NO; + WRAPPER_EXTENSION = vst; + }; + name = Release; + }; + BD2A1D1EC28D17DC43ACBA09 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPLOYMENT_LOCATION = NO; + DEPLOYMENT_POSTPROCESSING = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INSTALL_PATH = ""; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BD2A12A4CFEA12B6C7A8873E /* Build configuration list for PBXNativeTarget "M3dB" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BD2A1223BF2A633FEE5D6099 /* Debug */, + BD2A186609800B3BD0ECFF98 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + BD2A1B7627DAA8FF541E84EC /* Build configuration list for PBXProject "M3dB" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BD2A17437E006499CC8685D1 /* Debug */, + BD2A1D1EC28D17DC43ACBA09 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BD2A116B4EC711555868B9BA /* Project object */; +} diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..ee3458dd --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme new file mode 100644 index 00000000..c936e04d --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme @@ -0,0 +1,22 @@ + + + + + + + + + + + + + diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme new file mode 100644 index 00000000..5512455c --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme @@ -0,0 +1,22 @@ + + + + + + + + + + + + + diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..bd480195 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + M3dB - Debug.xcscheme + + orderHint + 0 + + M3dB - Release.xcscheme + + orderHint + 1 + + + + diff --git a/other/vst2_lglw_debug_plugin/M3dB/Info.plist b/other/vst2_lglw_debug_plugin/M3dB/Info.plist new file mode 100644 index 00000000..28986ba7 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/M3dB/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2017 pongasoft. All rights reserved. + NSPrincipalClass + + + diff --git a/other/vst2_lglw_debug_plugin/makefile.linux b/other/vst2_lglw_debug_plugin/makefile.linux new file mode 100644 index 00000000..ed51b7f4 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/makefile.linux @@ -0,0 +1,19 @@ + +include ../../dep/yac/install_linux.mk + +.cpp.o: + $(CPP) $(CPPFLAGS) $(OPTFLAGS_PLUGIN) -I"$(VSVR_BASE_DIR)/dep/yac/" -I"$(VST2_SDK_DIR)" -I"$(VSVR_BASE_DIR)/dep/lglw/" -shared -fPIC -c "$<" -o"$@" + +.PHONY: bin +bin: plugin.o + $(CPP) -shared -o debug_lglw.so -Wl,-soname,debug_lglw.so -mtls-dialect=gnu2 plugin.o "$(VSVR_BASE_DIR)/dep/lglw/lglw_linux.o" -ldl -lGL -L/usr/lib -lm -lpthread + +.PHONY: clean +clean: + rm -f plugin plugin.o + +.PHONY: all +all: + make -f makefile.linux clean + make -f makefile.linux bin + cp debug_lglw.so /home/cameron/.local/share/VST/ \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/plugin.cpp b/other/vst2_lglw_debug_plugin/plugin.cpp new file mode 100644 index 00000000..fa0c5808 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/plugin.cpp @@ -0,0 +1,458 @@ + + +#include +#include +#include + +#if defined(_WIN32) || defined(_WIN64) + #include + #include + #define VST_EXPORT extern "C" __declspec(dllexport) +#else + #include + #include + #include + #include + #define VST_EXPORT extern +#endif + +#include "lglw.h" + +#define EDITWIN_X 20 +#define EDITWIN_Y 20 +#define EDITWIN_W 640 +#define EDITWIN_H 480 + +/* + * I find the naming a bit confusing so I decided to use more meaningful names instead. + */ + +/** + * The VSTHostCallback is a function pointer so that the plugin can communicate with the host (not used in this small example) + */ +typedef audioMasterCallback VSTHostCallback; + +/** + * The VSTPlugin structure (AEffect) contains information about the plugin (like version, number of inputs, ...) and + * callbacks so that the host can call the plugin to do its work. The primary callback will be `processReplacing` for + * single precision (float) sample processing (or `processDoubleReplacing` for double precision (double)). + */ +typedef AEffect VSTPlugin; + + +// Since the host is expecting a very specific API we need to make sure it has C linkage (not C++) +extern "C" { + +/* + * This is the main entry point to the VST plugin. + * + * The host (DAW like Maschine, Ableton Live, Reason, ...) will look for this function with this exact API. + * + * It is the equivalent to `int main(int argc, char *argv[])` for a C executable. + * + * @param vstHostCallback is a callback so that the plugin can communicate with the host (not used in this small example) + * @return a pointer to the AEffect structure + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback); + +// note this looks like this without the type aliases (and is obviously 100% equivalent) +// extern AEffect *VSTPluginMain(audioMasterCallback audioMaster); + +} + +/* + * Constant for the version of the plugin. For example 1100 for version 1.1.0.0 + */ +const VstInt32 PLUGIN_VERSION = 1000; + +// extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + +void loc_mouse_cbk(lglw_t _lglw, int32_t _x, int32_t _y, uint32_t _buttonState, uint32_t _changedButtonState) { + printf("xxx lglw_mouse_cbk: lglw=%p p=(%d; %d) bt=0x%08x changedBt=0x%08x\n", _lglw, _x, _y, _buttonState, _changedButtonState); + + if(LGLW_IS_MOUSE_LBUTTON_DOWN()) + { + // lglw_mouse_grab(_lglw, LGLW_MOUSE_GRAB_CAPTURE); + lglw_mouse_grab(_lglw, LGLW_MOUSE_GRAB_WARP); + } + else if(LGLW_IS_MOUSE_LBUTTON_UP()) + { + lglw_mouse_ungrab(_lglw); + } +} + +void loc_focus_cbk(lglw_t _lglw, uint32_t _focusState, uint32_t _changedFocusState) { + printf("xxx lglw_focus_cbk: lglw=%p focusState=0x%08x changedFocusState=0x%08x\n", _lglw, _focusState, _changedFocusState); +} + +lglw_bool_t loc_keyboard_cbk(lglw_t _lglw, uint32_t _vkey, uint32_t _kmod, lglw_bool_t _bPressed) { + printf("xxx lglw_keyboard_cbk: lglw=%p vkey=0x%08x (\'%c\') kmod=0x%08x bPressed=%d\n", _lglw, _vkey, _vkey, _kmod, _bPressed); + return LGLW_FALSE; +} + +void loc_timer_cbk(lglw_t _lglw) { + printf("xxx lglw_timer_cbk: tick\n"); +} + +/** + * Encapsulates the plugin as a C++ class. It will keep both the host callback and the structure required by the + * host (VSTPlugin). This class will be stored in the `VSTPlugin.object` field (circular reference) so that it can + * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). + */ +class VSTPluginWrapper +{ +public: + ERect editor_rect; + + lglw_t lglw; + + float clear_color = 0.0f; + + static VSTPluginWrapper *window_to_wrapper; + +public: + VSTPluginWrapper(VSTHostCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs); + + ~VSTPluginWrapper(); + + inline VSTPlugin *getVSTPlugin() + { + return &_vstPlugin; + } + + inline VstInt32 getNumInputs() const + { + return _vstPlugin.numInputs; + } + + inline VstInt32 getNumOutputs() const + { + return _vstPlugin.numOutputs; + } + + void openEditor(void *_hwnd) { + + (void)lglw_window_open(lglw, _hwnd, 0/*x*/, 0/*y*/, EDITWIN_W, EDITWIN_H); + + lglw_mouse_callback_set(lglw, &loc_mouse_cbk); + lglw_focus_callback_set(lglw, &loc_focus_cbk); + lglw_keyboard_callback_set(lglw, &loc_keyboard_cbk); + lglw_timer_callback_set(lglw, &loc_timer_cbk); + + lglw_timer_start(lglw, 200); + + window_to_wrapper = this; + } + + void closeEditor(void) { + if(NULL != window_to_wrapper) + { + lglw_window_close(lglw); + + window_to_wrapper = NULL; + } + } + + static VSTPluginWrapper *FindWrapperByWindow(Window hwnd) { + return window_to_wrapper; + } + + void redrawWindow(void) { + // Save host GL context + lglw_glcontext_push(lglw); + + // Draw something + ::glClearColor(0.0, 1.0, clear_color, 1.0); + clear_color += 0.05f; + if(clear_color >= 1.0f) + clear_color -= 1.0f; + ::glClear(GL_COLOR_BUFFER_BIT); + + ::glFlush(); + lglw_swap_buffers(lglw); + + // Restore host GL context + lglw_glcontext_pop(lglw); + } + +private: + // the host callback (a function pointer) + VSTHostCallback _vstHostCallback; + + // the actual structure required by the host + VSTPlugin _vstPlugin; +}; + +VSTPluginWrapper *VSTPluginWrapper::window_to_wrapper = NULL; + + +/******************************************* + * Callbacks: Host -> Plugin + * + * Defined here because they are used in the rest of the code later + */ + +/** + * This is the callback that will be called to process the samples in the case of single precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat32(VSTPlugin *vstPlugin, float **inputs, float **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5f; + } + } +} + +/** + * This is the callback that will be called to process the samples in the case of double precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat64(VSTPlugin *vstPlugin, double **inputs, double **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5; + } + } +} + +/** + * This is the plugin called by the host to communicate with the plugin, mainly to request information (like the + * vendor string, the plugin category...) or communicate state/changes (like open/close, frame rate...) + * + * @param vstPlugin the object returned by VSTPluginMain + * @param opCode defined in aeffect.h/AEffectOpcodes and which continues in aeffectx.h/AEffectXOpcodes for a grand + * total of 79 of them! Only a few of them are implemented in this small plugin. + * @param index depend on the opcode + * @param value depend on the opcode + * @param ptr depend on the opcode + * @param opt depend on the opcode + * @return depend on the opcode (0 is ok when you don't implement an opcode...) + */ +VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, VstInt32 opCode, VstInt32 index, VstIntPtr value, void *ptr, float opt) +{ + // printf("vstgltest: called VSTPluginDispatcher(%d)\n", opCode); + + VstIntPtr r = 0; + + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + // see aeffect.h/AEffectOpcodes and aeffectx.h/AEffectXOpcodes for details on all of them + switch(opCode) + { + // request for the category of the plugin: in this case it is an effect since it is modifying the input (as opposed + // to generating sound) + case effGetPlugCategory: + return kPlugCategEffect; + + // called by the host when the plugin was called... time to reclaim memory! + case effClose: + delete wrapper; + break; + + case effGetEffectName: + ::strncpy((char*)ptr, "VST GL Test", kVstMaxEffectNameLen); + r = 1; + break; + + // request for the vendor string (usually used in the UI for plugin grouping) + case effGetVendorString: + strncpy(static_cast(ptr), "bsp", kVstMaxVendorStrLen); + r = 1; + break; + + // request for the version + case effGetVendorVersion: + return PLUGIN_VERSION; + + case effGetParamName: + strncpy(static_cast(ptr), "myparam", kVstMaxParamStrLen); + r = 1; + break; + + case effEditIdle: + printf("xxx vstgltest: redraw window\n"); + // (void)::RedrawWindow(wrapper->hwnd, NULL, NULL, RDW_INTERNALPAINT); + //(void)::UpdateWindow(wrapper->hwnd); + if(lglw_window_is_visible(wrapper->lglw)) + { + wrapper->redrawWindow(); + } + break; + + case effEditGetRect: + // Query editor window geometry + // ptr: ERect* (on Windows) + if(NULL != ptr) // yeah, this should never be NULL + { + // ... + wrapper->editor_rect.left = EDITWIN_X; + wrapper->editor_rect.top = EDITWIN_Y; + wrapper->editor_rect.right = EDITWIN_X + EDITWIN_W; + wrapper->editor_rect.bottom = EDITWIN_Y + EDITWIN_H; + *(void**)ptr = (void*) &wrapper->editor_rect; + r = 1; + } + else + { + r = 0; + } + break; + +#if 0 + case effEditTop: + // deprecated in vst2.4 + r = 0; + break; +#endif + + case effEditOpen: + // Show editor window + // ptr: native window handle (hWnd on Windows) + wrapper->openEditor(ptr); + r = 1; + break; + + case effEditClose: + // Hide editor window + wrapper->closeEditor(); + r = 1; + break; + + // ignoring all other opcodes + default: + // printf("Unknown opCode %d [ignored] \n", opCode); + break; + } + + return r; +} + +/** + * Used for parameter setting (not used by this plugin) + */ +void VSTPluginSetParameter(VSTPlugin *vstPlugin, VstInt32 index, float parameter) +{ + printf("called VSTPluginSetParameter(%d, %f)\n", index, parameter); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); +} + +/** + * Used for parameter (not used by this plugin) + */ +float VSTPluginGetParameter(VSTPlugin *vstPlugin, VstInt32 index) +{ + printf("called VSTPluginGetParameter(%d)\n", index); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + return 0; +} + +/** + * Main constructor for our C++ class + */ +VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs) : + _vstHostCallback(vstHostCallback) +{ + // Make sure that the memory is properly initialized + memset(&_vstPlugin, 0, sizeof(_vstPlugin)); + + // this field must be set with this constant... + _vstPlugin.magic = kEffectMagic; + + // storing this object into the VSTPlugin so that it can be retrieved when called back (see callbacks for use) + _vstPlugin.object = this; + + // specifying that we handle both single and double precision (there are other flags see aeffect.h/VstAEffectFlags) + _vstPlugin.flags = effFlagsCanReplacing | effFlagsCanDoubleReplacing | effFlagsHasEditor; + + // initializing the plugin with the various values + _vstPlugin.uniqueID = vendorUniqueID; + _vstPlugin.version = vendorVersion; + _vstPlugin.numParams = numParams; + _vstPlugin.numPrograms = numPrograms; + _vstPlugin.numInputs = numInputs; + _vstPlugin.numOutputs = numOutputs; + + // setting the callbacks to the previously defined functions + _vstPlugin.dispatcher = VSTPluginDispatcher; + _vstPlugin.getParameter = VSTPluginGetParameter; + _vstPlugin.setParameter = VSTPluginSetParameter; + _vstPlugin.processReplacing = VSTPluginProcessSamplesFloat32; + _vstPlugin.processDoubleReplacing = VSTPluginProcessSamplesFloat64; + + lglw = lglw_init(EDITWIN_W, EDITWIN_H); +} + +/** + * Destructor called when the plugin is closed (see VSTPluginDispatcher with effClose opCode). In this very simply plugin + * there is nothing to do but in general the memory that gets allocated MUST be freed here otherwise there might be a + * memory leak which may end up slowing down and/or crashing the host + */ +VSTPluginWrapper::~VSTPluginWrapper() { + lglw_exit(lglw); +} + +/** + * Implementation of the main entry point of the plugin + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) +{ + printf("called VSTPluginMain... \n"); + + // simply create our plugin C++ class + VSTPluginWrapper *plugin = + new VSTPluginWrapper(vstHostCallback, + CCONST('u', 's', 'a', '§'), // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) + PLUGIN_VERSION, // version + 2, // no params + 0, // no programs + 2, // 2 inputs + 2); // 2 outputs + + // return the plugin per the contract of the API + return plugin->getVSTPlugin(); +} diff --git a/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK b/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK new file mode 100644 index 00000000..39f84b89 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK @@ -0,0 +1,615 @@ + + +#include +#include +#include + +#if defined(_WIN32) || defined(_WIN64) +#include +#include + #define VST_EXPORT extern "C" __declspec(dllexport) +#else + #define VST_EXPORT extern +#endif + +#include + +#define EDITWIN_X 20 +#define EDITWIN_Y 20 +#define EDITWIN_W 640 +#define EDITWIN_H 480 +#define EDITWIN_CLASS_NAME "VeeSeeVSTWindow" +#define EDITWIN_HIDDEN_CLASS_NAME "hidden_VeeSeeVSTWindow" + +/* + * I find the naming a bit confusing so I decided to use more meaningful names instead. + */ + +/** + * The VSTHostCallback is a function pointer so that the plugin can communicate with the host (not used in this small example) + */ +typedef audioMasterCallback VSTHostCallback; + +/** + * The VSTPlugin structure (AEffect) contains information about the plugin (like version, number of inputs, ...) and + * callbacks so that the host can call the plugin to do its work. The primary callback will be `processReplacing` for + * single precision (float) sample processing (or `processDoubleReplacing` for double precision (double)). + */ +typedef AEffect VSTPlugin; + + +// Since the host is expecting a very specific API we need to make sure it has C linkage (not C++) +extern "C" { + +/* + * This is the main entry point to the VST plugin. + * + * The host (DAW like Maschine, Ableton Live, Reason, ...) will look for this function with this exact API. + * + * It is the equivalent to `int main(int argc, char *argv[])` for a C executable. + * + * @param vstHostCallback is a callback so that the plugin can communicate with the host (not used in this small example) + * @return a pointer to the AEffect structure + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback); + +// note this looks like this without the type aliases (and is obviously 100% equivalent) +// extern AEffect *VSTPluginMain(audioMasterCallback audioMaster); + +} + +/* + * Constant for the version of the plugin. For example 1100 for version 1.1.0.0 + */ +const VstInt32 PLUGIN_VERSION = 1000; + +extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + +/** + * Encapsulates the plugin as a C++ class. It will keep both the host callback and the structure required by the + * host (VSTPlugin). This class will be stored in the `VSTPlugin.object` field (circular reference) so that it can + * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). + */ +class VSTPluginWrapper +{ +public: + ERect editor_rect; + HWND parent_hwnd; // created by host + + struct { + HWND hwnd; + HDC hdc; + } hidden; + + struct { + HWND hwnd; + HDC hdc; + } editor; + + HGLRC hglrc; + + float clear_color = 0.0f; + + static const char *registered_class_name; + static VSTPluginWrapper *window_to_wrapper; + +public: + VSTPluginWrapper(VSTHostCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs); + + ~VSTPluginWrapper(); + + inline VSTPlugin *getVSTPlugin() + { + return &_vstPlugin; + } + + inline VstInt32 getNumInputs() const + { + return _vstPlugin.numInputs; + } + + inline VstInt32 getNumOutputs() const + { + return _vstPlugin.numOutputs; + } + + void createHiddenWindow(void) { + WNDCLASS wc; + ::ZeroMemory(&wc, sizeof(wc)); + wc.style = CS_OWNDC; + wc.lpfnWndProc = (WNDPROC) WndProc; + wc.hInstance = ::GetModuleHandle(NULL); + wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); + wc.lpszClassName = EDITWIN_HIDDEN_CLASS_NAME; + + if(!::RegisterClass(&wc)) + { + // something went terribly wrong + printf("[---] vstgltest: failed to register hidden window class\n"); + return; + } + + DWORD dwExStyle = 0; + DWORD dwStyle = 0; + + hidden.hwnd = ::CreateWindowEx(dwExStyle, + EDITWIN_HIDDEN_CLASS_NAME, + "Test", + dwStyle, + 0/*xpos*/, 0/*ypos*/, + EDITWIN_W, EDITWIN_H, + NULL/*parentHWND*/, + NULL, // window menu + ::GetModuleHandle(NULL), + NULL + ); + + PIXELFORMATDESCRIPTOR pfd = { + sizeof(PIXELFORMATDESCRIPTOR), + 1, + PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags + PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. + 32, // Colordepth of the framebuffer. + 0, 0, 0, 0, 0, 0, + 0, + 0, + 0, + 0, 0, 0, 0, + 24, // Number of bits for the depthbuffer + 8, // Number of bits for the stencilbuffer + 0, // Number of Aux buffers in the framebuffer. + PFD_MAIN_PLANE, + 0, + 0, 0, 0 + }; + + hidden.hdc = ::GetDC(hidden.hwnd); + printf("xxx vstgltest: hidden hdc=%p\n", hidden.hdc); + + int pfmt = ::ChoosePixelFormat(hidden.hdc, &pfd); + printf("xxx vstgltest: hidden pfmt=%d\n", pfmt); + ::SetPixelFormat(hidden.hdc, pfmt, &pfd); + + hglrc = ::wglCreateContext(hidden.hdc); + printf("xxx vstgltest: hidden hglrc=%p\n", hglrc); + } + + void destroyHiddenWindow(void) { + if(NULL != hidden.hwnd) + { + ::wglDeleteContext(hglrc); + ::DestroyWindow(hidden.hwnd); + + ::UnregisterClass(EDITWIN_HIDDEN_CLASS_NAME, ::GetModuleHandle(NULL)); + } + } + + void openEditor(HWND _hwnd) { + parent_hwnd = _hwnd; + + if(NULL == registered_class_name) + { + WNDCLASS wc; + ::ZeroMemory(&wc, sizeof(wc)); + wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; + wc.lpfnWndProc = (WNDPROC) WndProc; + wc.hInstance = ::GetModuleHandle(NULL); + wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); + wc.lpszClassName = EDITWIN_CLASS_NAME; + + if(!::RegisterClass(&wc)) + { + // something went terribly wrong + printf("[---] vstgltest: failed to register window class\n"); + return; + } + + registered_class_name = EDITWIN_CLASS_NAME; + } + + DWORD dwExStyle = 0; + DWORD dwStyle = WS_CHILD | WS_VISIBLE; + + editor.hwnd = ::CreateWindowEx(dwExStyle, + EDITWIN_CLASS_NAME, + "Test", + dwStyle, + 0/*xpos*/, 0/*ypos*/, + EDITWIN_W, EDITWIN_H, + parent_hwnd, + NULL, // window menu + ::GetModuleHandle(NULL), + NULL + ); + + window_to_wrapper = this; + + PIXELFORMATDESCRIPTOR pfd = { + sizeof(PIXELFORMATDESCRIPTOR), + 1, + PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags + PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. + 32, // Colordepth of the framebuffer. + 0, 0, 0, 0, 0, 0, + 0, + 0, + 0, + 0, 0, 0, 0, + 24, // Number of bits for the depthbuffer + 8, // Number of bits for the stencilbuffer + 0, // Number of Aux buffers in the framebuffer. + PFD_MAIN_PLANE, + 0, + 0, 0, 0 + }; + + editor.hdc = ::GetDC(editor.hwnd); + + int pfmt = ::ChoosePixelFormat(editor.hdc, &pfd); + printf("xxx vstgltest: editor pfmt=%d\n", pfmt); + ::SetPixelFormat(editor.hdc, pfmt, &pfd); + + // // hglrc = ::wglCreateContext(hdc); + } + + void closeEditor(void) { + if(NULL != editor.hwnd) + { + ::DestroyWindow(editor.hwnd); + editor.hwnd = NULL; + + // (todo) unregister when last window is closed + ::UnregisterClass(EDITWIN_CLASS_NAME, ::GetModuleHandle(NULL)); + registered_class_name = NULL; + + window_to_wrapper = NULL; + } + } + + static VSTPluginWrapper *FindWrapperByWindow(HWND hwnd) { + return window_to_wrapper; + } + + void redrawWindow(void) { + // Save host GL context + HDC hostHDC = ::wglGetCurrentDC(); + HGLRC hostHGLRC = ::wglGetCurrentContext(); + printf("xxx vstgltest: WM_PAINT: hostHDC=%p hostGLRC=%p\n", hostHDC, hostHGLRC); + + // Bind plugin GL context + printf("xxx vstgltest: WM_PAINT: pluginHDC=%p pluginGLRC=%p\n", editor.hdc, hglrc); + ::wglMakeCurrent(editor.hdc, hglrc); + + // Draw something + ::glClearColor(0.0, 1.0, clear_color, 1.0); + clear_color += 0.05f; + if(clear_color >= 1.0f) + clear_color -= 1.0f; + ::glClear(GL_COLOR_BUFFER_BIT); + ::glFlush(); + ::wglSwapLayerBuffers(editor.hdc, WGL_SWAP_MAIN_PLANE); + + // Restore host GL context + ::wglMakeCurrent(hostHDC, hostHGLRC); + } + +private: + // the host callback (a function pointer) + VSTHostCallback _vstHostCallback; + + // the actual structure required by the host + VSTPlugin _vstPlugin; +}; + +const char *VSTPluginWrapper::registered_class_name = NULL; +VSTPluginWrapper *VSTPluginWrapper::window_to_wrapper = NULL; + +extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { + + switch(message) + { + case WM_CREATE: + printf("xxx vstgltest: WM_CREATE\n"); + break; + + case WM_DESTROY: + printf("xxx vstgltest: WM_DESTROY\n"); + break; + + case WM_LBUTTONDOWN: + printf("xxx vstgltest: WM_LBUTTONDOWN\n"); + break; + + case WM_LBUTTONUP: + printf("xxx vstgltest: WM_LBUTTONUP\n"); + break; + + case WM_PAINT: + // https://docs.microsoft.com/en-us/windows/desktop/api/Winuser/nf-winuser-redrawwindow + printf("xxx vstgltest: WM_PAINT\n"); + VSTPluginWrapper *wrapper = VSTPluginWrapper::FindWrapperByWindow(hWnd); + wrapper->redrawWindow(); + break; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +/******************************************* + * Callbacks: Host -> Plugin + * + * Defined here because they are used in the rest of the code later + */ + +/** + * This is the callback that will be called to process the samples in the case of single precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat32(VSTPlugin *vstPlugin, float **inputs, float **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5f; + } + } +} + +/** + * This is the callback that will be called to process the samples in the case of double precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat64(VSTPlugin *vstPlugin, double **inputs, double **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5; + } + } +} + +/** + * This is the plugin called by the host to communicate with the plugin, mainly to request information (like the + * vendor string, the plugin category...) or communicate state/changes (like open/close, frame rate...) + * + * @param vstPlugin the object returned by VSTPluginMain + * @param opCode defined in aeffect.h/AEffectOpcodes and which continues in aeffectx.h/AEffectXOpcodes for a grand + * total of 79 of them! Only a few of them are implemented in this small plugin. + * @param index depend on the opcode + * @param value depend on the opcode + * @param ptr depend on the opcode + * @param opt depend on the opcode + * @return depend on the opcode (0 is ok when you don't implement an opcode...) + */ +VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, VstInt32 opCode, VstInt32 index, VstIntPtr value, void *ptr, float opt) +{ + printf("vstgltest: called VSTPluginDispatcher(%d)\n", opCode); + + VstIntPtr r = 0; + + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + // see aeffect.h/AEffectOpcodes and aeffectx.h/AEffectXOpcodes for details on all of them + switch(opCode) + { + // request for the category of the plugin: in this case it is an effect since it is modifying the input (as opposed + // to generating sound) + case effGetPlugCategory: + return kPlugCategEffect; + + // called by the host when the plugin was called... time to reclaim memory! + case effClose: + delete wrapper; + break; + + case effGetEffectName: + ::strncpy((char*)ptr, "VST GL Test", kVstMaxEffectNameLen); + r = 1; + break; + + // request for the vendor string (usually used in the UI for plugin grouping) + case effGetVendorString: + strncpy(static_cast(ptr), "bsp", kVstMaxVendorStrLen); + r = 1; + break; + + // request for the version + case effGetVendorVersion: + return PLUGIN_VERSION; + + case effEditIdle: + if(NULL != wrapper->editor.hwnd) + { + printf("xxx vstgltest: redraw window\n"); + // (void)::RedrawWindow(wrapper->hwnd, NULL, NULL, RDW_INTERNALPAINT); + //(void)::UpdateWindow(wrapper->hwnd); + if(::IsWindowVisible(wrapper->editor.hwnd)) + { + wrapper->redrawWindow(); + } + } + break; + + case effEditGetRect: + // Query editor window geometry + // ptr: ERect* (on Windows) + if(NULL != ptr) // yeah, this should never be NULL + { + // ... + wrapper->editor_rect.left = EDITWIN_X; + wrapper->editor_rect.top = EDITWIN_Y; + wrapper->editor_rect.right = EDITWIN_X + EDITWIN_W; + wrapper->editor_rect.bottom = EDITWIN_Y + EDITWIN_H; + *(void**)ptr = (void*) &wrapper->editor_rect; + r = 1; + } + else + { + r = 0; + } + break; + +#if 0 + case effEditTop: + // deprecated in vst2.4 + r = 0; + break; +#endif + + case effEditOpen: + // Show editor window + // ptr: native window handle (hWnd on Windows) + wrapper->openEditor((HWND)ptr); + r = 1; + break; + + case effEditClose: + // Hide editor window + wrapper->closeEditor(); + r = 1; + break; + + // ignoring all other opcodes + default: + printf("Unknown opCode %d [ignored] \n", opCode); + break; + } + + return r; +} + +/** + * Used for parameter setting (not used by this plugin) + */ +void VSTPluginSetParameter(VSTPlugin *vstPlugin, VstInt32 index, float parameter) +{ + printf("called VSTPluginSetParameter(%d, %f)\n", index, parameter); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); +} + +/** + * Used for parameter (not used by this plugin) + */ +float VSTPluginGetParameter(VSTPlugin *vstPlugin, VstInt32 index) +{ + printf("called VSTPluginGetParameter(%d)\n", index); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + return 0; +} + +/** + * Main constructor for our C++ class + */ +VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs) : + _vstHostCallback(vstHostCallback) +{ + // Make sure that the memory is properly initialized + memset(&_vstPlugin, 0, sizeof(_vstPlugin)); + + // this field must be set with this constant... + _vstPlugin.magic = kEffectMagic; + + // storing this object into the VSTPlugin so that it can be retrieved when called back (see callbacks for use) + _vstPlugin.object = this; + + // specifying that we handle both single and double precision (there are other flags see aeffect.h/VstAEffectFlags) + _vstPlugin.flags = effFlagsCanReplacing | effFlagsCanDoubleReplacing | effFlagsHasEditor; + + // initializing the plugin with the various values + _vstPlugin.uniqueID = vendorUniqueID; + _vstPlugin.version = vendorVersion; + _vstPlugin.numParams = numParams; + _vstPlugin.numPrograms = numPrograms; + _vstPlugin.numInputs = numInputs; + _vstPlugin.numOutputs = numOutputs; + + // setting the callbacks to the previously defined functions + _vstPlugin.dispatcher = VSTPluginDispatcher; + _vstPlugin.getParameter = VSTPluginGetParameter; + _vstPlugin.setParameter = VSTPluginSetParameter; + _vstPlugin.processReplacing = VSTPluginProcessSamplesFloat32; + _vstPlugin.processDoubleReplacing = VSTPluginProcessSamplesFloat64; + + parent_hwnd = NULL; + + hidden.hwnd = NULL; + hidden.hdc = NULL; + + editor.hwnd = NULL; + editor.hdc = NULL; + + hglrc = NULL; + + createHiddenWindow(); +} + +/** + * Destructor called when the plugin is closed (see VSTPluginDispatcher with effClose opCode). In this very simply plugin + * there is nothing to do but in general the memory that gets allocated MUST be freed here otherwise there might be a + * memory leak which may end up slowing down and/or crashing the host + */ +VSTPluginWrapper::~VSTPluginWrapper() { + destroyHiddenWindow(); +} + +/** + * Implementation of the main entry point of the plugin + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) +{ + printf("called VSTPluginMain... \n"); + + // simply create our plugin C++ class + VSTPluginWrapper *plugin = + new VSTPluginWrapper(vstHostCallback, + CCONST('u', 's', 'a', '§'), // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) + PLUGIN_VERSION, // version + 0, // no params + 0, // no programs + 2, // 2 inputs + 2); // 2 outputs + + // return the plugin per the contract of the API + return plugin->getVSTPlugin(); +} diff --git a/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE b/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE new file mode 100644 index 00000000..5af8e7ba --- /dev/null +++ b/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE @@ -0,0 +1,527 @@ + + +#include +#include +#include + +#if defined(_WIN32) || defined(_WIN64) +#include +#include + #define VST_EXPORT extern "C" __declspec(dllexport) +#else + #define VST_EXPORT extern +#endif + +#include + +#define EDITWIN_X 20 +#define EDITWIN_Y 20 +#define EDITWIN_W 640 +#define EDITWIN_H 480 +#define EDITWIN_CLASS_NAME "VeeSeeVSTWindow" + +/* + * I find the naming a bit confusing so I decided to use more meaningful names instead. + */ + +/** + * The VSTHostCallback is a function pointer so that the plugin can communicate with the host (not used in this small example) + */ +typedef audioMasterCallback VSTHostCallback; + +/** + * The VSTPlugin structure (AEffect) contains information about the plugin (like version, number of inputs, ...) and + * callbacks so that the host can call the plugin to do its work. The primary callback will be `processReplacing` for + * single precision (float) sample processing (or `processDoubleReplacing` for double precision (double)). + */ +typedef AEffect VSTPlugin; + + +// Since the host is expecting a very specific API we need to make sure it has C linkage (not C++) +extern "C" { + +/* + * This is the main entry point to the VST plugin. + * + * The host (DAW like Maschine, Ableton Live, Reason, ...) will look for this function with this exact API. + * + * It is the equivalent to `int main(int argc, char *argv[])` for a C executable. + * + * @param vstHostCallback is a callback so that the plugin can communicate with the host (not used in this small example) + * @return a pointer to the AEffect structure + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback); + +// note this looks like this without the type aliases (and is obviously 100% equivalent) +// extern AEffect *VSTPluginMain(audioMasterCallback audioMaster); + +} + +/* + * Constant for the version of the plugin. For example 1100 for version 1.1.0.0 + */ +const VstInt32 PLUGIN_VERSION = 1000; + +extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + +/** + * Encapsulates the plugin as a C++ class. It will keep both the host callback and the structure required by the + * host (VSTPlugin). This class will be stored in the `VSTPlugin.object` field (circular reference) so that it can + * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). + */ +class VSTPluginWrapper +{ +public: + ERect editor_rect; + HWND parent_hwnd; // created by host + HWND hwnd; + HDC hdc; + HGLRC hglrc; + + float clear_color = 0.0f; + + static const char *registered_class_name; + static VSTPluginWrapper *window_to_wrapper; + +public: + VSTPluginWrapper(VSTHostCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs); + + ~VSTPluginWrapper(); + + inline VSTPlugin *getVSTPlugin() + { + return &_vstPlugin; + } + + inline VstInt32 getNumInputs() const + { + return _vstPlugin.numInputs; + } + + inline VstInt32 getNumOutputs() const + { + return _vstPlugin.numOutputs; + } + + void openEditor(HWND _hwnd) { + parent_hwnd = _hwnd; + + if(NULL == registered_class_name) + { + WNDCLASS wc; + ::ZeroMemory(&wc, sizeof(wc)); + wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; + wc.lpfnWndProc = (WNDPROC) WndProc; + wc.hInstance = ::GetModuleHandle(NULL); + wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); + wc.lpszClassName = EDITWIN_CLASS_NAME; + + if(!::RegisterClass(&wc)) + { + // something went terribly wrong + printf("[---] vstgltest: failed to register window class\n"); + return; + } + + registered_class_name = EDITWIN_CLASS_NAME; + } + + DWORD dwExStyle = 0; + DWORD dwStyle = WS_CHILD | WS_VISIBLE; + + hwnd = ::CreateWindowEx(dwExStyle, + EDITWIN_CLASS_NAME, + "Test", + dwStyle, + 0/*xpos*/, 0/*ypos*/, + EDITWIN_W, EDITWIN_H, + parent_hwnd, + NULL, // window menu + ::GetModuleHandle(NULL), + NULL + ); + + window_to_wrapper = this; + + PIXELFORMATDESCRIPTOR pfd = { + sizeof(PIXELFORMATDESCRIPTOR), + 1, + PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags + PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. + 32, // Colordepth of the framebuffer. + 0, 0, 0, 0, 0, 0, + 0, + 0, + 0, + 0, 0, 0, 0, + 24, // Number of bits for the depthbuffer + 8, // Number of bits for the stencilbuffer + 0, // Number of Aux buffers in the framebuffer. + PFD_MAIN_PLANE, + 0, + 0, 0, 0 + }; + + hdc = ::GetDC(hwnd); + + int pfmt = ::ChoosePixelFormat(hdc, &pfd); + printf("xxx vstgltest: pfmt=%d", pfmt); + ::SetPixelFormat(hdc, pfmt, &pfd); + + hglrc = ::wglCreateContext(hdc); + } + + void closeEditor(void) { + if(NULL != hwnd) + { + ::wglDeleteContext(hglrc); + ::DestroyWindow(hwnd); + + // (todo) unregister when last window is closed + ::UnregisterClass(EDITWIN_CLASS_NAME, ::GetModuleHandle(NULL)); + registered_class_name = NULL; + + window_to_wrapper = NULL; + } + } + + static VSTPluginWrapper *FindWrapperByWindow(HWND hwnd) { + return window_to_wrapper; + } + + void redrawWindow(void) { + // Save host GL context + HDC hostHDC = ::wglGetCurrentDC(); + HGLRC hostHGLRC = ::wglGetCurrentContext(); + printf("xxx vstgltest: WM_PAINT: hostHDC=%p hostGLRC=%p\n", hostHDC, hostHGLRC); + + // Bind plugin GL context + printf("xxx vstgltest: WM_PAINT: pluginHDC=%p pluginGLRC=%p\n", hdc, hglrc); + ::wglMakeCurrent(hdc, hglrc); + + // Draw something + ::glClearColor(0.0, 1.0, clear_color, 1.0); + clear_color += 0.05f; + if(clear_color >= 1.0f) + clear_color -= 1.0f; + ::glClear(GL_COLOR_BUFFER_BIT); + ::glFlush(); + ::wglSwapLayerBuffers(hdc, WGL_SWAP_MAIN_PLANE); + + // Restore host GL context + ::wglMakeCurrent(hostHDC, hostHGLRC); + } + +private: + // the host callback (a function pointer) + VSTHostCallback _vstHostCallback; + + // the actual structure required by the host + VSTPlugin _vstPlugin; +}; + +const char *VSTPluginWrapper::registered_class_name = NULL; +VSTPluginWrapper *VSTPluginWrapper::window_to_wrapper = NULL; + +extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { + + switch(message) + { + case WM_CREATE: + printf("xxx vstgltest: WM_CREATE\n"); + break; + + case WM_DESTROY: + printf("xxx vstgltest: WM_DESTROY\n"); + break; + + case WM_LBUTTONDOWN: + printf("xxx vstgltest: WM_LBUTTONDOWN\n"); + break; + + case WM_LBUTTONUP: + printf("xxx vstgltest: WM_LBUTTONUP\n"); + break; + + case WM_PAINT: + // https://docs.microsoft.com/en-us/windows/desktop/api/Winuser/nf-winuser-redrawwindow + printf("xxx vstgltest: WM_PAINT\n"); + VSTPluginWrapper *wrapper = VSTPluginWrapper::FindWrapperByWindow(hWnd); + wrapper->redrawWindow(); + break; + } + + return DefWindowProc(hWnd, message, wParam, lParam); +} + +/******************************************* + * Callbacks: Host -> Plugin + * + * Defined here because they are used in the rest of the code later + */ + +/** + * This is the callback that will be called to process the samples in the case of single precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat32(VSTPlugin *vstPlugin, float **inputs, float **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5f; + } + } +} + +/** + * This is the callback that will be called to process the samples in the case of double precision. This is where the + * meat of the logic happens! + * + * @param vstPlugin the object returned by VSTPluginMain + * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] + * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] + * @param sampleFrames the number of samples (second dimension in both arrays) + */ +void VSTPluginProcessSamplesFloat64(VSTPlugin *vstPlugin, double **inputs, double **outputs, VstInt32 sampleFrames) +{ + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + + // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the + // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) + for(int i = 0; i < wrapper->getNumInputs(); i++) + { + auto inputSamples = inputs[i]; + auto outputSamples = outputs[i]; + for(int j = 0; j < sampleFrames; j++) + { + outputSamples[j] = inputSamples[j] * 0.5; + } + } +} + +/** + * This is the plugin called by the host to communicate with the plugin, mainly to request information (like the + * vendor string, the plugin category...) or communicate state/changes (like open/close, frame rate...) + * + * @param vstPlugin the object returned by VSTPluginMain + * @param opCode defined in aeffect.h/AEffectOpcodes and which continues in aeffectx.h/AEffectXOpcodes for a grand + * total of 79 of them! Only a few of them are implemented in this small plugin. + * @param index depend on the opcode + * @param value depend on the opcode + * @param ptr depend on the opcode + * @param opt depend on the opcode + * @return depend on the opcode (0 is ok when you don't implement an opcode...) + */ +VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, VstInt32 opCode, VstInt32 index, VstIntPtr value, void *ptr, float opt) +{ + printf("vstgltest: called VSTPluginDispatcher(%d)\n", opCode); + + VstIntPtr r = 0; + + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + // see aeffect.h/AEffectOpcodes and aeffectx.h/AEffectXOpcodes for details on all of them + switch(opCode) + { + // request for the category of the plugin: in this case it is an effect since it is modifying the input (as opposed + // to generating sound) + case effGetPlugCategory: + return kPlugCategEffect; + + // called by the host when the plugin was called... time to reclaim memory! + case effClose: + delete wrapper; + break; + + case effGetEffectName: + ::strncpy((char*)ptr, "VST GL Test", kVstMaxEffectNameLen); + r = 1; + break; + + // request for the vendor string (usually used in the UI for plugin grouping) + case effGetVendorString: + strncpy(static_cast(ptr), "bsp", kVstMaxVendorStrLen); + r = 1; + break; + + // request for the version + case effGetVendorVersion: + return PLUGIN_VERSION; + + case effEditIdle: + if(NULL != wrapper->hwnd) + { + printf("xxx vstgltest: redraw window\n"); + // (void)::RedrawWindow(wrapper->hwnd, NULL, NULL, RDW_INTERNALPAINT); + //(void)::UpdateWindow(wrapper->hwnd); + if(::IsWindowVisible(wrapper->hwnd)) + { + wrapper->redrawWindow(); + } + } + break; + + case effEditGetRect: + // Query editor window geometry + // ptr: ERect* (on Windows) + if(NULL != ptr) // yeah, this should never be NULL + { + // ... + wrapper->editor_rect.left = EDITWIN_X; + wrapper->editor_rect.top = EDITWIN_Y; + wrapper->editor_rect.right = EDITWIN_X + EDITWIN_W; + wrapper->editor_rect.bottom = EDITWIN_Y + EDITWIN_H; + *(void**)ptr = (void*) &wrapper->editor_rect; + r = 1; + } + else + { + r = 0; + } + break; + +#if 0 + case effEditTop: + // deprecated in vst2.4 + r = 0; + break; +#endif + + case effEditOpen: + // Show editor window + // ptr: native window handle (hWnd on Windows) + wrapper->openEditor((HWND)ptr); + r = 1; + break; + + case effEditClose: + // Hide editor window + wrapper->closeEditor(); + r = 1; + break; + + // ignoring all other opcodes + default: + printf("Unknown opCode %d [ignored] \n", opCode); + break; + } + + return r; +} + +/** + * Used for parameter setting (not used by this plugin) + */ +void VSTPluginSetParameter(VSTPlugin *vstPlugin, VstInt32 index, float parameter) +{ + printf("called VSTPluginSetParameter(%d, %f)\n", index, parameter); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); +} + +/** + * Used for parameter (not used by this plugin) + */ +float VSTPluginGetParameter(VSTPlugin *vstPlugin, VstInt32 index) +{ + printf("called VSTPluginGetParameter(%d)\n", index); + // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) + VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); + return 0; +} + +/** + * Main constructor for our C++ class + */ +VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, + VstInt32 vendorUniqueID, + VstInt32 vendorVersion, + VstInt32 numParams, + VstInt32 numPrograms, + VstInt32 numInputs, + VstInt32 numOutputs) : + _vstHostCallback(vstHostCallback) +{ + // Make sure that the memory is properly initialized + memset(&_vstPlugin, 0, sizeof(_vstPlugin)); + + // this field must be set with this constant... + _vstPlugin.magic = kEffectMagic; + + // storing this object into the VSTPlugin so that it can be retrieved when called back (see callbacks for use) + _vstPlugin.object = this; + + // specifying that we handle both single and double precision (there are other flags see aeffect.h/VstAEffectFlags) + _vstPlugin.flags = effFlagsCanReplacing | effFlagsCanDoubleReplacing | effFlagsHasEditor; + + // initializing the plugin with the various values + _vstPlugin.uniqueID = vendorUniqueID; + _vstPlugin.version = vendorVersion; + _vstPlugin.numParams = numParams; + _vstPlugin.numPrograms = numPrograms; + _vstPlugin.numInputs = numInputs; + _vstPlugin.numOutputs = numOutputs; + + // setting the callbacks to the previously defined functions + _vstPlugin.dispatcher = VSTPluginDispatcher; + _vstPlugin.getParameter = VSTPluginGetParameter; + _vstPlugin.setParameter = VSTPluginSetParameter; + _vstPlugin.processReplacing = VSTPluginProcessSamplesFloat32; + _vstPlugin.processDoubleReplacing = VSTPluginProcessSamplesFloat64; + + parent_hwnd = NULL; + hwnd = NULL; + hdc = NULL; + hglrc = NULL; +} + +/** + * Destructor called when the plugin is closed (see VSTPluginDispatcher with effClose opCode). In this very simply plugin + * there is nothing to do but in general the memory that gets allocated MUST be freed here otherwise there might be a + * memory leak which may end up slowing down and/or crashing the host + */ +VSTPluginWrapper::~VSTPluginWrapper() +{ +} + +/** + * Implementation of the main entry point of the plugin + */ +VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) +{ + printf("called VSTPluginMain... \n"); + + // simply create our plugin C++ class + VSTPluginWrapper *plugin = + new VSTPluginWrapper(vstHostCallback, + CCONST('u', 's', 'a', '§'), // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) + PLUGIN_VERSION, // version + 0, // no params + 0, // no programs + 2, // 2 inputs + 2); // 2 outputs + + // return the plugin per the contract of the API + return plugin->getVSTPlugin(); +} diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln new file mode 100644 index 00000000..b963cfb1 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2024 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "m3db", "m3db\m3db.vcxproj", "{ADEB3292-4BBF-4B20-9A11-3D8076423F16}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x64.ActiveCfg = Debug|x64 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x64.Build.0 = Debug|x64 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x86.ActiveCfg = Debug|Win32 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x86.Build.0 = Debug|Win32 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x64.ActiveCfg = Release|x64 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x64.Build.0 = Release|x64 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x86.ActiveCfg = Release|Win32 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A1B75069-8782-4AB1-A661-12FED71250D4} + EndGlobalSection +EndGlobal diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1637303289629f1b0f4e14b8d2b76eeb49cea00c GIT binary patch literal 912 zcmbu7%}T>i5QWcL@Ew9~Du~_ds+vLztx8N4SE05k5o1%5)E~rGSHHPQ!6-shhTG1a zoH;XR=Dxpm)s?5YQtVz+-D;@=&9uTi9ddldTDW+uf_tfih{svt=X%CpDRYPte}SKW z!uc9u9^A&6f}7!&{AaG#wzjnEvS)l<(~Gh1P^-kB!uLc+2@yluIo26woIRausJ>1W zD$q3%-zgc_N;*Ua8iV#VA*0Vd;hw>~1{rJLF?z(?o3ASv12`?mcp?_=os`)H)F?Q)9{8RAvhzKMe`#bDdSvn?eI_XBw9-=XY^K%Zv&~wE zwg=mKgoXeOCrthVi`ZC*^@t33UAD~))A!sEOh9H2w*O@MaI~%Ywcnp}H+|pKyT8*> bL(gmDX78h9zBzB+bFXzmS5-!Zv{`%r^3-`d literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c7ab7b7a6aab1cfb8193e6dcdd30fe49143b842a GIT binary patch literal 206 zcmYL@K@NgI3`O7C#5+uI&n(=zX6YqxfIxz16cbJ_J|!uI+a$ + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {ADEB3292-4BBF-4B20-9A11-3D8076423F16} + Win32Proj + m3db + 10.0.16299.0 + + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + NotUsing + Level3 + Disabled + true + WIN32;_DEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + f:\dev\vstsdk2.4 + + + Windows + true + + + + + NotUsing + Level3 + Disabled + true + _DEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + + + Windows + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + f:\dev\vstsdk2.4 + None + + + + + Windows + true + true + false + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions);_CRT_SECURE_NO_DEPRECATE + true + F:\git\VeeSeeVSTRack\dep\lglw;f:\dev\vstsdk2.4\pluginterfaces\vst2.x\ + None + + + Windows + true + true + false + opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters new file mode 100644 index 00000000..abfd8b6a --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user new file mode 100644 index 00000000..6e2aec7a --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..64433cddb23b73ca62b1b1295a078e6672ddf474 GIT binary patch literal 584 zcmZ{iK~IA~6olt&;(yraS$pv2&BPdQJ=jC9R3OkG5K5!``RX@|1<@F??DF=#nR)a0 zJgu}+&_TUYCCc@oTfM5~3A&FrjgIPwWqjo-RmD@Ug8ZIXshZo0tdyGrkv(T4238TX z{gsesj*j==s!Ls<#9H2TN5&2vEw}}d_sCjt+D+V6(}I=hhOCCF_FJ3L&6-3#oo3`^ zmknt91-fzSsMI~p>i_5IHNa~vuE?qHP-0)oh-GfC>v%uA6m<2=^Mc4Zd-P$WwH{fX zg8R%_-tD#-?dK5plupZuGhr4>2RxGjJxBJM+H9IY(2F*(Jm^VV9Dn}d);KR$G+>V% Oj-Hfp%IANXlycnH-tFw{ z?Ee0YF@{5p1_>gh_{KSwv|MrKC=g?XmT#W-l$KS0DpB=*5r4_I;wq$#p?SO?K&Www zV;nKIqIXzpB9wR|eoQt(TH86dxbZKpZiCr_>6T9D=XGgP0E}F%Be3}Mo)<*1xl;x z+}I?%eNkgawLJaBv*LYFMO?*t`|mFJ=WyG1Q_Wu6ug*2`Lj-l^&A&48*~WUoGp3yC yTV;|O8`V4JNnMd}fEfw0WxN;+co0fK2Vs4B9U*sm0{`t1wOo&Foy0~*EXI^K{ z&F{}p2USW{Xp2p>*G`#oJ!s%(q!H-M(Ty4fmG}kNtEQTB%)V1m=}BwwfWPvrT#@e@ zH0NG}74Ao{glS)#QXA|NYdIfY7hrMp+Ji@H`t9kzWx_SD6;~Ri;cvXH)6CO{-I1p_IJPQ#X=r zigZeSqQguJz35q;zt9^Q_C^^>*mmuXUCp&pw^fPoGX+dho4RCrySs7j@9_UipWkA5 OQDt4mH~x-^Z~X_?9czaG literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log new file mode 100644 index 00000000..3b09514e --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log @@ -0,0 +1,5 @@ +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\vc141.pdb +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\vc141.idb +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.command.1.tlog +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.read.1.tlog +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.write.1.tlog diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log new file mode 100644 index 00000000..61f69062 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log @@ -0,0 +1,2 @@ + plugin.cpp +f:\projects\research\pongasoft_vst24-hello-world-master\m3db\plugin.cpp(3): fatal error C1083: Cannot open include file: 'aeffect.h': No such file or directory diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..953482d8b1f90bf75f006c53a74f259822c82205 GIT binary patch literal 842 zcmd6l-A=+l5QWdRiSIzT7o!p{xKn5=1}rJ%CxqA-1SP3RTB2{SezV(N5PbmC?C$KD zGp92r`~CH(P#rBbQleP*3e;7qF-Sr@X5A2Vb>}#-9u$F$;fC-sO^H)os;x6Pfd+gr z@r*qo?hy}NMM^e7WvDCATcOz*?6BwHC7&V2EaB!Ziir&Av1jZ7Jy|z3R`;2anbVogW6sq1j6SUM z9+}w@KH-*tn-{;?$LIuwKC{QJgPQ#tjr8WU0$eVuS*)L~E*w6j-p>I<%7F-aRINRPxe<_D{$rDDm=cy+XC$sr)gNPKC{L59Hm`_hA^6V pcFn6;y1BfwOKwe97t-tBjH#Qb%~UNsw|C+zqH4MnwDAw$><`oEdn*6{ literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..f667ffbe71fc4011449b4d45374f933517228f7f GIT binary patch literal 786 zcmds#(N4lZ5Jm5^iT}_?eULy=G`>MwN)4r?y9Fg1{r{g(&kQ6qeuCMwdv`i>=g!^! ze1B@KS0(M$tJ9k*6^aT(dT`)bf(mUsr_)X~kwEU6ye}QVQMn%VKu)DCs{;WW6O3>3ko zD@yn=)lAP+7Syz?f!+-{AH)ts6S!lU9^(&}=nN+()aJZ%J)t0Xo)y(L>Bcq0i?+nR zpdwK*#n(BgfO8;wf*QMxtE2y6TDy_6Uwi+H0=IHt)(R)8(X4;}o`CaqM-^Vr@znf3 KQEPWScIp>3(r=Og literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..ac9a2c4db4569ec57cb4826f76ac30be2e9d0853 GIT binary patch literal 546 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 IdB}$U2g_H`H~;_u literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj new file mode 100644 index 0000000000000000000000000000000000000000..9089efd77ed193bcc062ca35532e4e99718a64f9 GIT binary patch literal 351108 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

Q5|{YWs*qNpFRco5vtL>jOv?Fx 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 literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log new file mode 100644 index 00000000..1b92334d --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log @@ -0,0 +1,15 @@ +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\plugin.obj +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\lglw_windows.obj +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\lglw_windows_cpp.obj +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.dll +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.lib +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.exp +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.ipdb +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.iobj +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.command.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.read.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.write.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.command.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.read.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.write.1.tlog +f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\m3db.write.1u.tlog diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log new file mode 100644 index 00000000..342b7676 --- /dev/null +++ b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log @@ -0,0 +1,8 @@ + lglw_windows.c + lglw_windows_cpp.cpp + plugin.cpp + Creating library F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.lib and object F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.exp + Generating code + All 57 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. + Finished generating code + m3db.vcxproj -> F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.dll diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..d000e2584a2b7bc444534044b5cf468bf6745be8 GIT binary patch literal 2756 zcmeH|$xZ@65QhJ=iSIzXt8s}3Za55xA~TUiVu%xi8wn}_qw(d{uc{#fMo)%=hD@fb zyOyq{`>+0Zzf?s<^;A_&EoetEU(?49w52nZ6zK$68Ey)#qg~he+$>{NQv;2JSyNkB ztZPl%>Z`z5`-PWzdyAmsQCeh8{GDhQZ~O34VrqLH4P-HKS3Gjd#_}=?)9tddJs{}#wMaCig37>JycA{%|HcRjk=)kE}%GPB@t52*$ zk8;L4#cLT}hNMdl32|FyGx^ub=KMBVXV})~JmlJo+{ky$u!uRCHmewq4ZLL@Q|g?E zdRgVnM^z8gD#SV>zmVrC+Cds3tm@6zw;EBGk;b|~bAbMh^GDDzI~m8S^};&T_5!`4 zUK#JH<(N30-6HUBsrZ;^`%v4%dii|ow8u$rxNU{= z`B|$&O?I%~;dZ2c8o{cHm3eLC+eKLP%_UUNW`!nyT_V)BN>-CFo)e4=4%7mW2 OLg#;ZFLQJ*A2Xi|oRaMT literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a1e3d7fc6ea8d64220e04108a56394313090c8ae GIT binary patch literal 79002 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 KaGz~gfA>F-0@ZB* literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..0553d180c36d297329b8ab218018ad408ac0477b GIT binary patch literal 822 zcmd5)K@P$o5S+7#Uol#ZCf*RMw$?&Qtsabg#J8&hRI%}@Nkh_IwzIRtz~g?!21{J9 zMTVNOLCR(Pw_&VNK|o^9e`{7XV?lI*(?@2x%TN-bm>G=NF~p$d*5pvg*)7Ru*jKeP z1T%>pD`8fG8LVfwL^>T#(*aX5uUb@sF(z1a>Jf3qoE%|7K?XsNl>3+FZ>5UNxmWui oFDy@}xtu31-hS?i=IM_92Fv%9e!1UO7#$C9ug~uz-d#8zy#MXIRy<4TA$NNwT7XQ%vTwow#E zK5#)nLYD2_H{;pow==W%zuxOakuFqep;B*@DOIByWWl)Rjv1wT4RXr7(V?E}Qd1Q? z8~16j&2*$=B@bSQda7r7xrJ{$&h>&AVTHn1uyrnoXi?9Id!}4-;+2eQO?W48`}q%W zy+o^uYacmRsN15kX}jk4SdVmozAbwhY5dm|9?F4rmQ2|Ff@`c1{ETtx895_U=5UR% zMT|YN`n*Jc^RjF@B3~!Gb24b8x8Msb*^Z_4TwnD3r?AL-Sjf$qHA-J~6Fp@< zbKcY5H!WlWyqy Hp;PBKzrZj* literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..6033d935c0f8b2c4b3e97b147260c45da393a4bd GIT binary patch literal 4812 zcmds*%Wm5+5JhKQAphWHyD?&=ZQAT?S$5RuVOWy$fYAI%zrD%1WC%fVU(hCWA?QJA zNM3R-hj;Y!^Sf>A%6i+`-fH`1nWffR!<#+N4d;@l)UJ7RpxjzwAMMe$R&Z^dP0P2^ zE^KY97puh1ZDE(A_k+cqeWnfHL*aT*KRqp~)mz%VwcIM&t9fc{&V2>8A18qIk-6G& z#E5yv>~_qt<~HCvvv(jC1IBaSJ6~wtm(BV?8}>S_#@N=Qn3YB5MUP4GzKsl72c{g3#S`gk(5%>N<64IS zl~l`XWT&GHwU5V-_O&*Q3-zDX;lC=kl2wXW#ReWphp05Ym>UsA2sL9AZwEAvKrSC$wYYGL99srBSaPhW15O z4q7mEHMA!d6O`%Ok1uH7pl!p9NRLmCcJYl%d&?S6DpOE~@IQ@B4Bk7YD~HnfrjKr% zw@u5Hghp9>;8f@E{fbZH-jw;>yA_==3hf_Stq-*3J$AaQ>~B#-ndb$E&qXUTROyX5 wjGY!&#`AjY#enDc8L!Wt^;abYM}{x6lZZWod5s; literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..8be0409e79fab12e9e084d139cce4e58443bf211 GIT binary patch literal 666 zcmdUt%?iRW5QM+8;Hwm^qTtO|>krX}Cbk|*`yxKOI;j@%;8m0*$!0Um4zsyk8!{Hu zSPF9XtV!`WRSM-!YpE<{t4gW6CuT~^2BY0~7_YYj6ILWoRLqDm^SAm7ab_ltM+eh& z2z_cX2G&Zv6+4dN%au7Ior$zv{y=LhudL!1HCwrRlE=Z@Uf+c wc6vKu_BS;HYxyWR%0V4mj$XfdQ?U+1T$-woR$Q8#{;!NKDW_>Rn&&aA5Bw>GS^xk5 literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj new file mode 100644 index 0000000000000000000000000000000000000000..676e6ae0b8abeb099afa83b99b5463408f737e63 GIT binary patch literal 258868 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 literal 0 HcmV?d00001 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb b/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb new file mode 100644 index 0000000000000000000000000000000000000000..82d2507e28babd4e9074eb63e2828b3502bd7c7c GIT binary patch literal 64336 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.logFile == LOG_STDFILE) fprintf(global->logger.logFile, "\x1B[0m"); vfprintf(global->logger.logFile, format, args); - vprintf(format, args); // xxx + + // TODO + // At least for me, this will cause a complete crash from __strlen_avx512 + // vprintf(format, args); // xxx + printf("\n"); // xxx fprintf(global->logger.logFile, "\n"); fflush(global->logger.logFile);