asset drag/drop to viewers, bluebanana bug, listbox fontlist highlight
[goodguy/history.git] / cinelerra-5.1 / cinelerra / render.C
index 0098afffd70ee4763105e19d6c210ed762b5d253..d6db3811469629a999d44d1889e91b66d1475673 100644 (file)
@@ -209,10 +209,9 @@ void MainPackageRenderer::set_progress(int64_t value)
                                eta,
                                TIME_HMS2);
 
-                       printf(_("\r%d%% ETA: %s      "), (int)(100 *
-                               (float)render->total_rendered /
-                                       render->progress_max),
-                               string);
+                       printf("\r%d%% %s: %s      ",
+                               (int)(100 * (float)render->total_rendered / render->progress_max),
+                               _("ETA"), string);
                        fflush(stdout);
                        render->last_eta = current_eta;
                }
@@ -270,9 +269,7 @@ void Render::start_interactive()
                mode = Render::INTERACTIVE;
                BC_DialogThread::start();
        }
-       else if( render_window && !in_progress )
-               render_window->raise_window();
-       else {
+       else if( in_progress ) {
                ErrorBox error_box(_(PROGRAM_NAME ": Error"),
                        mwindow->gui->get_abs_cursor_x(1),
                        mwindow->gui->get_abs_cursor_y(1));
@@ -280,6 +277,9 @@ void Render::start_interactive()
                error_box.raise_window();
                error_box.run_window();
        }
+       else if( render_window ) {
+               render_window->raise_window();
+       }
 }
 
 
@@ -289,22 +289,22 @@ void Render::start_batches(ArrayList<BatchRenderJob*> *jobs)
        {
                mode = Render::BATCH;
                batch_cancelled = 0;
-               // raise the window if rendering hasn't started yet
-               if( render_window && ! in_progress ) {
-                       render_window->raise_window();
-               }
-               else {
-                       ErrorBox error_box(PROGRAM_NAME ": Error",
-                                          mwindow->gui->get_abs_cursor_x(1),
-                                          mwindow->gui->get_abs_cursor_y(1));
-                       error_box.create_objects("Already rendering");
-                       error_box.raise_window();
-                       error_box.run_window();
-               }
                this->jobs = jobs;
                completion->reset();
                start_render();
        }
+       else if( in_progress ) {
+               ErrorBox error_box(_(PROGRAM_NAME ": Error"),
+                                  mwindow->gui->get_abs_cursor_x(1),
+                                  mwindow->gui->get_abs_cursor_y(1));
+               error_box.create_objects("Already rendering");
+               error_box.raise_window();
+               error_box.run_window();
+       }
+       // raise the window if rendering hasn't started yet
+       else if( render_window ) {
+               render_window->raise_window();
+       }
 }
 
 void Render::start_batches(ArrayList<BatchRenderJob*> *jobs,
@@ -330,20 +330,16 @@ BC_Window* Render::new_gui()
        batch_cancelled = 0;
        format_error = 0;
        result = 0;
-       completion->reset();
 
        if(mode == Render::INTERACTIVE) {
 // Fix the asset for rendering
                if(!asset) asset = new Asset;
                load_defaults(asset);
                check_asset(mwindow->edl, *asset);
-
+               int px = mwindow->gui->get_pop_cursor_x(1);
+               int py = mwindow->gui->get_pop_cursor_y(1);
 // Get format from user
-               render_window = new RenderWindow(mwindow,
-                       this,
-                       asset,
-                       mwindow->gui->get_abs_cursor_x(1),
-                       mwindow->gui->get_abs_cursor_y(1));
+               render_window = new RenderWindow(mwindow, this, asset, px, py);
                render_window->create_objects();
        }
 
@@ -529,6 +525,7 @@ void Render::start_render()
        in_progress = 0;
        elapsed_time = 0.0;
        result = 0;
+       completion->reset();
        thread->start();
 }
 
@@ -1011,7 +1008,6 @@ if(debug) printf("Render::render %d\n", __LINE__);
 
        render->packages = 0;
        render->in_progress = 0;
-       render->completion->unlock();
 if(debug) printf("Render::render %d\n", __LINE__);
 }
 
@@ -1096,6 +1092,7 @@ void RenderThread::run()
                        mwindow->batch_render->update_done(-1, 0, 0);
                }
        }
+       render->completion->unlock();
 }
 
 
@@ -1108,10 +1105,8 @@ RenderWindow::RenderWindow(MWindow *mwindow,
        Asset *asset,
        int x,
        int y)
- : BC_Window(_(PROGRAM_NAME ": Render"),
-       x - WIDTH / 2, y - HEIGHT / 2,
-       WIDTH, HEIGHT, WIDTH, HEIGHT,
-       0, 0, 1)
+ : BC_Window(_(PROGRAM_NAME ": Render"), x, y,
+       WIDTH, HEIGHT, WIDTH, HEIGHT, 0, 0, 1)
 {
        this->mwindow = mwindow;
        this->render = render;