X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplayback3d.C;h=0f5e84fe559000f7db3d9d938b349ce4ea1112d6;hp=24f8cf7032fc6dc93a8a5c9fc24b5e40b646d8b5;hb=017728ea68874203d45b3f16050626d540608e35;hpb=aa9374b902768107ebda0cffe739325ffed372f6 diff --git a/cinelerra-5.1/cinelerra/playback3d.C b/cinelerra-5.1/cinelerra/playback3d.C index 24f8cf70..0f5e84fe 100644 --- a/cinelerra-5.1/cinelerra/playback3d.C +++ b/cinelerra-5.1/cinelerra/playback3d.C @@ -769,16 +769,24 @@ void Playback3D::init_frame(Playback3DCommand *command, int is_yuv) } -void Playback3D::finish_output() +void Playback3D::finish_output(Canvas *canvas) { Playback3DCommand command; + command.canvas = canvas; command.command = Playback3DCommand::FINISH_OUTPUT; send_command(&command); } void Playback3D::finish_output_sync(Playback3DCommand *command) { - glFinish(); +#ifdef HAVE_GL + command->canvas->lock_canvas("Playback3D::clear_output_sync"); + if( command->canvas->get_canvas() ) { + command->canvas->get_canvas()->enable_opengl(); + glFinish(); + } + command->canvas->unlock_canvas(); +#endif }