X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Ftarget_scanline.cpp;h=4c3ae0bfcc4d21e9e34e85001a6a6a57f675af0a;hb=b03ddc749e112f35a70cc6455ab85319c659f1bb;hp=302188485e88f9f852b579f39d5d64b7f1021dc0;hpb=5ddcf36f04cfbd10fabda4e3c5633cb27cdd4c0a;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/target_scanline.cpp b/synfig-core/trunk/src/synfig/target_scanline.cpp index 3021884..4c3ae0b 100644 --- a/synfig-core/trunk/src/synfig/target_scanline.cpp +++ b/synfig-core/trunk/src/synfig/target_scanline.cpp @@ -2,7 +2,7 @@ /*! \file target_scanline.cpp ** \brief Template File ** -** $Id: target_scanline.cpp,v 1.1.1.1 2005/01/04 01:23:15 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -125,7 +125,7 @@ synfig::Target_Scanline::render(ProgressCallback *cb) curr_frame_=0; if( !init() ){ - if(cb) cb->error(_("Target initialisation failure")); + if(cb) cb->error(_("Target initialization failure")); return false; } @@ -173,7 +173,8 @@ synfig::Target_Scanline::render(ProgressCallback *cb) #ifdef SYNFIG_OPTIMIZE_LAYER_TREE Canvas::Handle op_canvas(Canvas::create()); - optimize_layers(canvas->get_context(), op_canvas); + op_canvas->set_file_name(canvas->get_file_name()); + optimize_layers(canvas->get_time(), canvas->get_context(), op_canvas); context=op_canvas->get_context(); #else context=canvas->get_context(); @@ -199,16 +200,16 @@ synfig::Target_Scanline::render(ProgressCallback *cb) #if USE_PIXELRENDERING_LIMIT if(desc.get_w()*desc.get_h() > PIXEL_RENDERING_LIMIT) { - synfig::info("Render BROKEN UP! (%d pixels)", desc.get_w()*desc.get_h()); - Surface surface; int rowheight = PIXEL_RENDERING_LIMIT/desc.get_w(); + if (!rowheight) rowheight = 1; // TODO: render partial lines to stay within the limit? int rows = desc.get_h()/rowheight; int lastrowheight = desc.get_h() - rows*rowheight; rows++; - synfig::info("\t blockh=%d,remh=%d,totrows=%d", rowheight,lastrowheight,rows); + synfig::info("Render broken up into %d block%s %d pixels tall, and a final block %d pixels tall", + rows-1, rows==2?"":"s", rowheight, lastrowheight); // loop through all the full rows if(!start_frame()) @@ -222,7 +223,7 @@ synfig::Target_Scanline::render(ProgressCallback *cb) RendDesc blockrd = desc; //render the strip at the normal size unless it's the last one... - if(i == rows) + if(i == rows-1) { if(!lastrowheight) break; blockrd.set_subwindow(0,i*rowheight,desc.get_w(),lastrowheight); @@ -307,7 +308,8 @@ synfig::Target_Scanline::render(ProgressCallback *cb) #ifdef SYNFIG_OPTIMIZE_LAYER_TREE Canvas::Handle op_canvas(Canvas::create()); - optimize_layers(canvas->get_context(), op_canvas); + op_canvas->set_file_name(canvas->get_file_name()); + optimize_layers(canvas->get_time(), canvas->get_context(), op_canvas); context=op_canvas->get_context(); #else context=canvas->get_context(); @@ -333,17 +335,17 @@ synfig::Target_Scanline::render(ProgressCallback *cb) #if USE_PIXELRENDERING_LIMIT if(desc.get_w()*desc.get_h() > PIXEL_RENDERING_LIMIT) { - synfig::info("Render BROKEN UP! (%d pixels)", desc.get_w()*desc.get_h()); - Surface surface; int totalheight = desc.get_h(); int rowheight = PIXEL_RENDERING_LIMIT/desc.get_w(); + if (!rowheight) rowheight = 1; // TODO: render partial lines to stay within the limit? int rows = desc.get_h()/rowheight; int lastrowheight = desc.get_h() - rows*rowheight; rows++; - synfig::info("\t blockh=%d,remh=%d,totrows=%d", rowheight,lastrowheight,rows); + synfig::info("Render broken up into %d block%s %d pixels tall, and a final block %d pixels tall", + rows-1, rows==2?"":"s", rowheight, lastrowheight); // loop through all the full rows if(!start_frame()) @@ -357,7 +359,7 @@ synfig::Target_Scanline::render(ProgressCallback *cb) RendDesc blockrd = desc; //render the strip at the normal size unless it's the last one... - if(i == rows) + if(i == rows-1) { if(!lastrowheight) break; blockrd.set_subwindow(0,i*rowheight,desc.get_w(),lastrowheight);