projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use Color::is_straight(). Also, re-enable the optimization for straight blending...
[synfig.git]
/
synfig-studio
/
trunk
/
src
/
gtkmm
/
workarea.cpp
diff --git
a/synfig-studio/trunk/src/gtkmm/workarea.cpp
b/synfig-studio/trunk/src/gtkmm/workarea.cpp
index
3a9cd03
..
6e31a6e
100644
(file)
--- a/
synfig-studio/trunk/src/gtkmm/workarea.cpp
+++ b/
synfig-studio/trunk/src/gtkmm/workarea.cpp
@@
-72,6
+72,8
@@
#include <synfig/mutex.h>
#include <synfig/mutex.h>
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
#endif
/* === U S I N G =========================================================== */
@@
-628,14
+630,14
@@
WorkArea::WorkArea(etl::loose_handle<synfigapp::CanvasInterface> canvas_interfac
canvas(canvas_interface->get_canvas()),
scrollx_adjustment(0,-4,4,0.01,0.1),
scrolly_adjustment(0,-4,4,0.01,0.1),
canvas(canvas_interface->get_canvas()),
scrollx_adjustment(0,-4,4,0.01,0.1),
scrolly_adjustment(0,-4,4,0.01,0.1),
- w(
128
),
- h(
128
),
+ w(
TILE_SIZE
),
+ h(
TILE_SIZE
),
last_event_time(0),
progresscallback(0),
dragging(DRAG_NONE),
show_grid(false),
last_event_time(0),
progresscallback(0),
dragging(DRAG_NONE),
show_grid(false),
- tile_w(
128
),
- tile_h(
128
),
+ tile_w(
TILE_SIZE
),
+ tile_h(
TILE_SIZE
),
timecode_width(0),
timecode_height(0)
{
timecode_width(0),
timecode_height(0)
{
@@
-1867,10
+1869,8
@@
WorkArea::on_vruler_event(GdkEvent */*event*/)
switch(event->type)
{
case GDK_BUTTON_PRESS:
switch(event->type)
{
case GDK_BUTTON_PRESS:
- DEBUGPOINT();
if(dragging==DRAG_NONE)
{
if(dragging==DRAG_NONE)
{
- DEBUGPOINT();
dragging=DRAG_GUIDE;
curr_guide=get_guide_list_x().insert(get_guide_list_x().begin());
curr_guide_is_x=true;
dragging=DRAG_GUIDE;
curr_guide=get_guide_list_x().insert(get_guide_list_x().begin());
curr_guide_is_x=true;
@@
-1878,10
+1878,8
@@
WorkArea::on_vruler_event(GdkEvent */*event*/)
return true;
break;
case GDK_BUTTON_RELEASE:
return true;
break;
case GDK_BUTTON_RELEASE:
- DEBUGPOINT();
if(dragging==DRAG_GUIDE && curr_guide_is_x==true)
{
if(dragging==DRAG_GUIDE && curr_guide_is_x==true)
{
- DEBUGPOINT();
dragging=DRAG_NONE;
get_guide_list_x().erase(curr_guide);
}
dragging=DRAG_NONE;
get_guide_list_x().erase(curr_guide);
}
@@
-1978,7
+1976,7
@@
WorkArea::next_unrendered_tile(int refreshes)const
x(focus_point[0]/pw+drawing_area->get_width()/2-w/2),
y(focus_point[1]/ph+drawing_area->get_height()/2-h/2);
x(focus_point[0]/pw+drawing_area->get_width()/2-w/2),
y(focus_point[1]/ph+drawing_area->get_height()/2-h/2);
- const int width_in_tiles(w/tile_w+(
w%tile_w
?1:0));
+ const int width_in_tiles(w/tile_w+(
(low_resolution?((w/2)%(tile_w/2)):(w%tile_w))
?1:0));
const int height_in_tiles(h/tile_h+(h%tile_h?1:0));
int
const int height_in_tiles(h/tile_h+(h%tile_h?1:0));
int
@@
-2240,8
+2238,11
@@
studio::WorkArea::async_update_preview()
// Create the render target
handle<Target> target;
// Create the render target
handle<Target> target;
- if(w*h>(low_resolution?480*270:480*270/2))
+ // if we have lots of pixels to render and the tile renderer isn't disabled, use it
+ if(w*h>(low_resolution?480*270:480*270/2) &&
+ !getenv("SYNFIG_DISABLE_TILE_RENDER"))
{
{
+ // do a tile render
handle<WorkAreaTarget> trgt(new class WorkAreaTarget(this,w,h));
trgt->set_rend_desc(&desc);
handle<WorkAreaTarget> trgt(new class WorkAreaTarget(this,w,h));
trgt->set_rend_desc(&desc);
@@
-2250,6
+2251,7
@@
studio::WorkArea::async_update_preview()
}
else
{
}
else
{
+ // do a scanline render
handle<WorkAreaTarget_Full> trgt(new class WorkAreaTarget_Full(this,w,h));
trgt->set_rend_desc(&desc);
handle<WorkAreaTarget_Full> trgt(new class WorkAreaTarget_Full(this,w,h));
trgt->set_rend_desc(&desc);
@@
-2274,7
+2276,7
@@
studio::WorkArea::async_update_preview()
synfig::ProgressCallback *cb=get_canvas_view()->get_ui_interface().get();
rendering=true;
synfig::ProgressCallback *cb=get_canvas_view()->get_ui_interface().get();
rendering=true;
- cb->task(
"Rendering..."
);
+ cb->task(
_("Rendering...")
);
rendering=true;
return true;
rendering=true;
return true;
@@
-2296,12
+2298,12
@@
studio::WorkArea::async_update_finished()
{
dirty=false;
//queued=false;
{
dirty=false;
//queued=false;
- cb->task(
"Idle"
);
+ cb->task(
_("Idle")
);
}
else
{
dirty=true;
}
else
{
dirty=true;
- cb->task(
"Render Failed"
);
+ cb->task(
_("Render Failed")
);
}
//get_canvas_view()->reset_cancel_status();
done_rendering();
}
//get_canvas_view()->reset_cancel_status();
done_rendering();
@@
-2375,7
+2377,7
@@
again:
target->set_avoid_time_sync(true);
if(cb)
target->set_avoid_time_sync(true);
if(cb)
- cb->task(strprintf(
"Rendering canvas %s..."
,get_canvas()->get_name().c_str()));
+ cb->task(strprintf(
_("Rendering canvas %s...")
,get_canvas()->get_name().c_str()));
bool ret = target->render(cb);
bool ret = target->render(cb);
@@
-2391,9
+2393,9
@@
again:
if(cb)
{
if(ret)
if(cb)
{
if(ret)
- cb->task(
"Idle"
);
+ cb->task(
_("Idle")
);
else
else
- cb->task(
"Render Failed"
);
+ cb->task(
_("Render Failed")
);
cb->amount_complete(0,1);
}
cb->amount_complete(0,1);
}
@@
-2416,7
+2418,7
@@
again:
}
void
}
void
-studio::WorkArea::async_render_preview(Time time)
+studio::WorkArea::async_render_preview(
synfig::
Time time)
{
cur_time=time;
//tile_book.clear();
{
cur_time=time;
//tile_book.clear();
@@
-2437,7
+2439,7
@@
WorkArea::async_render_preview()
}
bool
}
bool
-studio::WorkArea::sync_render_preview(Time time)
+studio::WorkArea::sync_render_preview(
synfig::
Time time)
{
cur_time=time;
//tile_book.clear();
{
cur_time=time;
//tile_book.clear();