special case LuaProc Inline Display UI: direct cairo context

This commit is contained in:
Robin Gareus 2016-03-18 21:33:45 +01:00
parent 851f6d4f79
commit 877325ea6e
2 changed files with 100 additions and 25 deletions

View file

@ -44,6 +44,7 @@
#include "ardour/types.h"
#include "ardour/ardour.h"
#include "ardour/plugin_insert.h"
#include "ardour/luaproc.h"
#include "ardour/port_insert.h"
#include "ardour/processor.h"
#include "ardour/route.h"
@ -224,9 +225,13 @@ private:
public:
PluginDisplay(boost::shared_ptr<ARDOUR::Plugin>, uint32_t max_height = 80);
~PluginDisplay();
private:
protected:
bool on_expose_event (GdkEventExpose *);
void on_size_request (Gtk::Requisition* req);
void update_height_alloc (uint32_t inline_height);
virtual uint32_t render_inline (cairo_t *, uint32_t width);
boost::shared_ptr<ARDOUR::Plugin> _plug;
PBD::ScopedConnection _qdraw_connection;
cairo_surface_t* _surf;
@ -235,6 +240,18 @@ private:
bool _scroll;
};
class LuaPluginDisplay : public PluginDisplay {
public:
LuaPluginDisplay(boost::shared_ptr<ARDOUR::LuaProc>, uint32_t max_height = 80);
~LuaPluginDisplay();
protected:
virtual uint32_t render_inline (cairo_t *, uint32_t width);
private:
boost::shared_ptr<ARDOUR::LuaProc> _luaproc;
LuaState lua_gui;
luabridge::LuaRef * _lua_render_inline;
};
class PortIcon : public Gtk::DrawingArea {
public:
PortIcon(bool input);