X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginserver.C;h=a12eaac6245667ea02b45352ecb1f30f75a6176b;hb=099132c524d32342be6cfc4948ecb1b3a439b988;hp=cf40152a86e6da4312b1b596422c4439ea1394db;hpb=2d6e0243914af46dbc07eb91aeb951630d71adf4;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginserver.C b/cinelerra-5.1/cinelerra/pluginserver.C index cf40152a..a12eaac6 100644 --- a/cinelerra-5.1/cinelerra/pluginserver.C +++ b/cinelerra-5.1/cinelerra/pluginserver.C @@ -509,6 +509,8 @@ void PluginServer::process_transition(VFrame *input, { if( !plugin_open ) return; PluginVClient *vclient = (PluginVClient*)client; + to_ram(input); + to_ram(output); vclient->source_position = current_position; vclient->source_start = 0; @@ -1002,6 +1004,15 @@ int PluginServer::get_use_opengl() return use_opengl; } +int PluginServer::to_ram(VFrame *vframe) +{ + if( vframe->get_opengl_state() == VFrame::RAM ) return 0; + if( !vdevice ) return -1; + VDeviceX11 *vdevice_x11 = (VDeviceX11*) vdevice->get_output_base(); + int vw = vframe->get_w(), vh = vframe->get_h(); + vdevice_x11->do_camera(vframe, vframe, 0,0,vw,vh, 0,0,vw,vh); // copy to ram + return 1; +} void PluginServer::run_opengl(PluginClient *plugin_client) {