#include "language.h"
#include "loadmode.h"
#include "localsession.h"
+#include "mainerror.h"
#include "mainprogress.h"
#include "mainsession.h"
#include "mainundo.h"
err_msg = _("zero render range");
result = 1;
}
+ if( !result && !asset->audio_data && !asset->video_data ) {
+ err_msg = _("no audio or video in render asset format\n");
+ result = 1;
+ }
+ EDL *edl = mwindow->edl;
+ if( !result && use_labels && !edl->labels->first ) {
+ eprintf(_("render file per label and no labels\n"));
+ result = 1;
+ }
if( !result && asset->video_data ) {
- double frame_rate = mwindow->edl->session->frame_rate;
+ double frame_rate = edl->session->frame_rate;
if( frame_rate > 0 && render_range+1e-3 < 1./frame_rate ) {
err_msg = _("Video data and range less than 1 frame");
result = 1;
}
}
if( !result && asset->audio_data ) {
- double sample_rate = mwindow->edl->session->sample_rate;
+ double sample_rate = edl->session->sample_rate;
if( sample_rate > 0 && render_range+1e-6 < 1./sample_rate ) {
err_msg = _("Audio data and range less than 1 sample");
result = 1;
}
if( !result && File::is_image_render(asset->format) ) {
if( asset->video_data ) {
- double frames = render_range * mwindow->edl->session->frame_rate;
+ double frames = render_range * edl->session->frame_rate;
if( !EQUIV(frames, 1.) ) {
err_msg = _("Image format and not 1 frame");
result = 1;
result = 1;
}
}
+
if( err_msg ) {
int cx, cy;
mwindow->gui->get_abs_cursor(cx, cy, 1);
sprintf(string, _("Rendering %s..."), filename);
// Don't bother with the filename since renderfarm defeats the meaning
+ mwindow->gui->lock_window("Render::start_progress");
progress = mwindow->mainprogress->start_progress(_("Rendering..."),
progress_max);
+ mwindow->gui->unlock_window();
render_progress = new RenderProgress(mwindow, this);
render_progress->start();
}
delete progress;
sprintf(string2, _("Rendering took %s"), string);
- mwindow->gui->lock_window("");
+ mwindow->gui->lock_window("Render::stop_progress");
mwindow->gui->show_message(string2);
mwindow->gui->update_default_message();
mwindow->gui->stop_hourglass();
render->result = 1;
}
}
+
render_frames = render->default_asset->frame_rate * total_length;
// Generate packages
render->total_rendered = 0;
- if( !render->result ) {
+ if( !render->result &&
+ ( strategy == SINGLE_PASS_FARM || strategy == FILE_PER_LABEL_FARM ) ) {
// Start dispatching external jobs
if( mwindow ) {
mwindow->gui->lock_window("Render::render 1");
printf("Render::render: starting render farm\n");
}
- if( strategy == SINGLE_PASS_FARM || strategy == FILE_PER_LABEL_FARM ) {
- farm_server = new RenderFarmServer(mwindow, render->packages,
- render->preferences, 1, &render->result,
- &render->total_rendered, render->counter_lock,
- render->default_asset, command->get_edl(), 0);
- render->result = farm_server->start_clients();
-
- if( render->result ) {
- if( mwindow ) {
- mwindow->gui->lock_window("Render::render 2");
- mwindow->gui->show_message(_("Failed to start render farm"),
- mwindow->theme->message_error);
- mwindow->gui->stop_hourglass();
- mwindow->gui->unlock_window();
- }
- else {
- printf("Render::render: Failed to start render farm\n");
- }
+ farm_server = new RenderFarmServer(mwindow, render->packages,
+ render->preferences, 1, &render->result,
+ &render->total_rendered, render->counter_lock,
+ render->default_asset, command->get_edl(), 0);
+ render->result = farm_server->start_clients();
+
+ if( render->result ) {
+ if( mwindow ) {
+ mwindow->gui->lock_window("Render::render 2");
+ mwindow->gui->show_message(_("Failed to start render farm"),
+ mwindow->theme->message_error);
+ mwindow->gui->stop_hourglass();
+ mwindow->gui->unlock_window();
+ }
+ else {
+ printf("Render::render: Failed to start render farm\n");
}
}
}
{
int x = 10, y = 10;
lock_window("RenderWindow::create_objects");
- add_subwindow(new BC_Title(x, y,
- (char*)(render->use_labels ?
+ add_subwindow(file_format = new BC_Title(x, y,
+ (render->use_labels ?
_("Select the first file to render to:") :
_("Select a file to render to:"))));
y += 25;
FormatTools::update_format();
RenderWindow *render_window = (RenderWindow *)window;
if( render_window->is_hidden() ) return;
-
int is_image = File::is_image_render(asset->format);
if( is_image ) {
render_window->update_range_type(RANGE_1FRAME);
else
render_window->enable_render_range(1);
}
+int RenderFormat::handle_event()
+{
+ RenderWindow *render_window = (RenderWindow *)window;
+ render_window->file_format->update(
+ (render_window->render->use_labels ?
+ _("Select the first file to render to:") :
+ _("Select a file to render to:")));
+ return 1;
+}
RenderBeepOnDone::RenderBeepOnDone(RenderWindow *rwindow, int x, int y)
: BC_CheckBox(x, y, rwindow->render->beep, _("Beep on done"))