fix problem of using opengl transitions with Motion51 when in OpenGL mode
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / attachmentpoint.C
index 362a5e1f43e88af652578204398d1a180b11ce3c..0d80cb37530364479b870fdaa7c3dcb1531e7c1a 100644 (file)
@@ -38,7 +38,7 @@ AttachmentPoint::AttachmentPoint(RenderEngine *renderengine,
 {
        reset_parameters();
        this->plugin = plugin;
-       this->plugin_id = plugin->id;
+       this->plugin_id = plugin->orig_id;
        this->renderengine = renderengine;
        this->data_type = data_type;
        plugin_server = MWindow::scan_plugindb(plugin->title,
@@ -211,13 +211,32 @@ int AttachmentPoint::singlechannel()
        return 0;
 }
 
+void AttachmentPoint::reset_gui_frames(PluginServer *server)
+{
+       if( server != plugin_servers.get(0) ) return;
+       if( renderengine && renderengine->mwindow )
+               renderengine->mwindow->reset_plugin_gui_frames(plugin);
+}
 
-void AttachmentPoint::render_gui(void *data, PluginServer *server)
+void AttachmentPoint::render_gui_frames(PluginClientFrames *frames, PluginServer *server)
 {
 //printf("AttachmentPoint::render_gui 1 %p %p\n", server, plugin_servers.get(0));
        void *This = this;
        if(!This) printf("AttachmentPoint::render_gui 1 NULL\n");
 
+// Discard if not 1st plugin server, so single channel plugins don't get double GUI updates
+       if(server != plugin_servers.get(0)) return;
+
+       if(renderengine && renderengine->mwindow)
+               renderengine->mwindow->render_plugin_gui_frames(frames, plugin);
+}
+
+
+void AttachmentPoint::render_gui(void *data, PluginServer *server)
+{
+       void *This = this;
+       if(!This) printf("AttachmentPoint::render_gui 2 NULL\n");
+
 // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates
        if(server != plugin_servers.get(0)) return;
 
@@ -228,7 +247,7 @@ void AttachmentPoint::render_gui(void *data, PluginServer *server)
 void AttachmentPoint::render_gui(void *data, int size, PluginServer *server)
 {
        void *This = this;
-       if(!This) printf("AttachmentPoint::render_gui 2 NULL\n");
+       if(!This) printf("AttachmentPoint::render_gui 3 NULL\n");
 
 // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates
        if(server != plugin_servers.get(0)) return;
@@ -237,6 +256,7 @@ void AttachmentPoint::render_gui(void *data, int size, PluginServer *server)
                renderengine->mwindow->render_plugin_gui(data, size, plugin);
 }
 
+
 int AttachmentPoint::gui_open()
 {
        if(renderengine && renderengine->mwindow)