Browse Source

Set LV2UI widget as the real plugin UI window view/handle

gh-pages
falkTX 10 years ago
parent
commit
252cc15a52
3 changed files with 15 additions and 6 deletions
  1. +2
    -2
      dgl/src/pugl/pugl_osx.m
  2. +7
    -0
      distrho/src/DistrhoUIInternal.hpp
  3. +6
    -4
      distrho/src/DistrhoUILV2.cpp

+ 2
- 2
dgl/src/pugl/pugl_osx.m View File

@@ -494,8 +494,7 @@ puglDestroy(PuglView* view)
PuglStatus
puglProcessEvents(PuglView* view)
{
[view->impl->glview setNeedsDisplay: YES];

view->redisplay = false;
return PUGL_SUCCESS;
}

@@ -503,6 +502,7 @@ void
puglPostRedisplay(PuglView* view)
{
view->redisplay = true;
[view->impl->glview setNeedsDisplay:YES];
}

PuglNativeWindow


+ 7
- 0
distrho/src/DistrhoUIInternal.hpp View File

@@ -254,6 +254,13 @@ public:

// -------------------------------------------------------------------

intptr_t getWindowId() const noexcept
{
return glWindow.getWindowId();
}

// -------------------------------------------------------------------

uint32_t getParameterOffset() const noexcept
{
DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr, 0);


+ 6
- 4
distrho/src/DistrhoUILV2.cpp View File

@@ -37,7 +37,8 @@ class UiLv2
public:
UiLv2(const intptr_t winId,
const LV2_Options_Option* options, const LV2_URID_Map* const uridMap, const LV2UI_Resize* const uiResz, const LV2UI_Touch* uiTouch,
const LV2UI_Controller controller, const LV2UI_Write_Function writeFunc, void* const dspPtr)
const LV2UI_Controller controller, const LV2UI_Write_Function writeFunc,
LV2UI_Widget* const widget, void* const dspPtr)
: fUI(this, winId, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, dspPtr),
fUridMap(uridMap),
fUiResize(uiResz),
@@ -51,6 +52,9 @@ public:
if (fUiResize != nullptr && winId != 0)
fUiResize->ui_resize(fUiResize->handle, fUI.getWidth(), fUI.getHeight());

if (widget != nullptr)
*widget = (LV2UI_Widget*)fUI.getWindowId();

#if DISTRHO_PLUGIN_WANT_STATE
// tell the DSP we're ready to receive msgs
setState("__dpf_ui_data__", "");
@@ -391,8 +395,6 @@ static LV2UI_Handle lv2ui_instantiate(const LV2UI_Descriptor*, const char* uri,
}
#endif

*widget = parentId;

const intptr_t winId((intptr_t)parentId);

if (options != nullptr)
@@ -419,7 +421,7 @@ static LV2UI_Handle lv2ui_instantiate(const LV2UI_Descriptor*, const char* uri,
d_lastUiSampleRate = 44100.0;
}

return new UiLv2(winId, options, uridMap, uiResize, uiTouch, controller, writeFunction, instance);
return new UiLv2(winId, options, uridMap, uiResize, uiTouch, controller, writeFunction, widget, instance);
}

#define uiPtr ((UiLv2*)ui)


Loading…
Cancel
Save