projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove .gitignore do nothing is ignored.
[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
9038bb1
..
edc989d
100644
(file)
--- a/
synfig-studio/trunk/src/gtkmm/workarea.cpp
+++ b/
synfig-studio/trunk/src/gtkmm/workarea.cpp
@@
-117,34
+117,38
@@
public:
synfig::Mutex mutex;
synfig::Mutex mutex;
- void set_onion_skin(bool x)
+ void set_onion_skin(bool x
, int *onions
)
{
onionskin=x;
Time time(rend_desc().get_time_start());
{
onionskin=x;
Time time(rend_desc().get_time_start());
+ if(!onionskin)
+ return;
onion_skin_queue.push_back(time);
onion_skin_queue.push_back(time);
- //onion_skin_queue.push_back(time-1);
- //onion_skin_queue.push_back(time+1);
try
{
try
{
- onion_skin_queue.push_back(
- get_canvas()->keyframe_list().find_prev(
- time
- )->get_time()
- );
+ Time thistime=time;
+ for(int i=0; i<onions[0]; i++)
+ {
+ Time keytime=get_canvas()->keyframe_list().find_prev(thistime)->get_time();
+ onion_skin_queue.push_back(keytime);
+ thistime=keytime;
+ }
}
catch(...)
{ }
try
{
}
catch(...)
{ }
try
{
- onion_skin_queue.push_back(
- get_canvas()->keyframe_list().find_next(
- time
- )->get_time()
- );
+ Time thistime=time;
+ for(int i=0; i<onions[1]; i++)
+ {
+ Time keytime=get_canvas()->keyframe_list().find_next(thistime)->get_time();
+ onion_skin_queue.push_back(keytime);
+ thistime=keytime;
+ }
}
catch(...)
{ }
}
catch(...)
{ }
@@
-413,36
+417,39
@@
public:
std::list<synfig::Time> onion_skin_queue;
std::list<synfig::Time> onion_skin_queue;
- void set_onion_skin(bool x)
+ void set_onion_skin(bool x
, int *onions
)
{
onionskin=x;
Time time(rend_desc().get_time_start());
{
onionskin=x;
Time time(rend_desc().get_time_start());
+ if(!onionskin)
+ return;
onion_skin_queue.push_back(time);
//onion_skin_queue.push_back(time-1);
//onion_skin_queue.push_back(time+1);
onion_skin_queue.push_back(time);
//onion_skin_queue.push_back(time-1);
//onion_skin_queue.push_back(time+1);
- if(!onionskin)
- return;
-
try
{
try
{
- onion_skin_queue.push_back(
- get_canvas()->keyframe_list().find_prev(
- time
- )->get_time()
- );
+ Time thistime=time;
+ for(int i=0; i<onions[0]; i++)
+ {
+ Time keytime=get_canvas()->keyframe_list().find_prev(thistime)->get_time();
+ onion_skin_queue.push_back(keytime);
+ thistime=keytime;
+ }
}
catch(...)
{ }
try
{
}
catch(...)
{ }
try
{
- onion_skin_queue.push_back(
- get_canvas()->keyframe_list().find_next(
- time
- )->get_time()
- );
+ Time thistime=time;
+ for(int i=0; i<onions[1]; i++)
+ {
+ Time keytime=get_canvas()->keyframe_list().find_next(thistime)->get_time();
+ onion_skin_queue.push_back(keytime);
+ thistime=keytime;
+ }
}
catch(...)
{ }
}
catch(...)
{ }
@@
-672,6
+679,8
@@
WorkArea::WorkArea(etl::loose_handle<synfigapp::CanvasInterface> canvas_interfac
ph=0.001;
last_focus_point=Point(0,0);
onion_skin=false;
ph=0.001;
last_focus_point=Point(0,0);
onion_skin=false;
+ onion_skins[0]=0;
+ onion_skins[1]=0;
queued=false;
dirty_trap_enabled=false;
solid_lines=true;
queued=false;
dirty_trap_enabled=false;
solid_lines=true;
@@
-1019,6
+1028,14
@@
WorkArea::get_onion_skin()const
return onion_skin;
}
return onion_skin;
}
+void WorkArea::set_onion_skins(int *onions)
+{
+ onion_skins[0]=onions[0];
+ onion_skins[1]=onions[1];
+ if(onion_skin)
+ queue_render_preview();
+}
+
void
WorkArea::enable_grid()
{
void
WorkArea::enable_grid()
{
@@
-2289,7
+2306,7
@@
studio::WorkArea::async_update_preview()
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);
- trgt->set_onion_skin(get_onion_skin());
+ trgt->set_onion_skin(get_onion_skin()
, onion_skins
);
target=trgt;
}
else
target=trgt;
}
else
@@
-2298,7
+2315,7
@@
studio::WorkArea::async_update_preview()
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);
- trgt->set_onion_skin(get_onion_skin());
+ trgt->set_onion_skin(get_onion_skin()
, onion_skins
);
target=trgt;
}
target=trgt;
}