예제 #1
0
// when a pastecanvas that contains another pastecanvas is copy/pasted
// from one document to another, only the outermost pastecanvas was
// getting its renddesc set to match that of its new parent.  this
// function is used to recurse through the pastecanvas copying its
// renddesc to any pastecanvases it contains (bug #2116947, svn r2200)
void
Layer_PasteCanvas::update_renddesc()
{
	if(!get_canvas() || !canvas || !canvas->is_inline()) return;

	canvas->rend_desc()=get_canvas()->rend_desc();
	for (IndependentContext iter = canvas->get_independent_context(); !iter->empty(); iter++)
	{
		etl::handle<Layer_PasteCanvas> paste = etl::handle<Layer_PasteCanvas>::cast_dynamic(*iter);
		if (paste) paste->update_renddesc();
	}
}
예제 #2
0
void
Import::set_time(IndependentContext context, Time time, const Point &pos)const
{
	Time time_offset=param_time_offset.get(Time());
	switch (get_method())
	{
		case SOFTWARE:
			if(get_amount() && importer &&
			   importer->is_animated())
				importer->get_frame(surface,get_canvas()->rend_desc(),time+time_offset,trimmed,width,height,top,left);
			break;
		case OPENGL:
			break;
		case CAIRO:
		{

			if(get_amount() && cimporter &&
			   cimporter->is_animated())
			{
				cairo_surface_t* cs;
				cimporter->get_frame(cs, get_canvas()->rend_desc(), time+time_offset, trimmed, width, height, top, left);
				if(cs)
				{
					csurface.set_cairo_surface(cs);
					csurface.map_cairo_image();
					cairo_surface_destroy(cs);
				}
			}
			break;

		}
			
	}
	context.set_time(time,pos);
}
예제 #3
0
void
Import::load_resources_vfunc(IndependentContext context, Time time)const
{
	Time time_offset=param_time_offset.get(Time());
	if(get_amount() && importer && importer->is_animated())
		rendering_surface = new rendering::SurfaceResource(
			importer->get_frame(get_canvas()->rend_desc(), time+time_offset) );
	context.load_resources(time);
}
예제 #4
0
void
Layer_PasteCanvas::set_time(IndependentContext context, Time time)const
{
	Time time_offset=param_time_offset.get(Time());

	if(depth==MAX_DEPTH)return;depth_counter counter(depth);
	param_curr_time.set(time);

	context.set_time(time);
	if(canvas)
		canvas->set_time(time+time_offset);
}
예제 #5
0
void
Layer_MotionBlur::set_time(IndependentContext context, Time time, const Point &pos)const
{
	context.set_time(time,pos);
	time_cur=time;
}
예제 #6
0
void
Layer_MotionBlur::set_time(IndependentContext context, Time time)const
{
	context.set_time(time);
	time_cur=time;
}
void
Layer_Skeleton::set_time(IndependentContext context, Time time, const Point &pos)const
{
	const_cast<Layer_Skeleton*>(this)->sync();
	context.set_time(time,pos);
}
예제 #8
0
void
Region::set_time(IndependentContext context, Time time, Vector pos)const
{
	const_cast<Region*>(this)->sync();
	context.set_time(time,pos);
}