diff options
Diffstat (limited to 'rotord/src')
| -rw-r--r-- | rotord/src/nodes_drawing.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/rotord/src/nodes_drawing.h b/rotord/src/nodes_drawing.h index 6128e57..de4270c 100644 --- a/rotord/src/nodes_drawing.h +++ b/rotord/src/nodes_drawing.h @@ -254,16 +254,17 @@ namespace Rotor { } } void translate(cairo_t * cr,const Frame_spec &frame){ - cerr<<"svg translate "<<frame.time<<endl; - //to make it resolution independent - //translate the difference between screen and drawing - float scale=frame.w/dims.width; - cairo_translate(cr, frame.w/2, frame.h/2); - cairo_translate(cr, parameters["x"]->value * frame.w, parameters["y"]->value * frame.h); - cairo_scale(cr, parameters["scale"]->value*scale, parameters["scale"]->value*scale); - cairo_rotate(cr,(parameters["rotation"]->value/180.0f)*M_PI); - cairo_translate(cr, -frame.w/2, -frame.h/2); - cairo_translate(cr, frame.w/2-(dims.width/2), frame.h/2-(dims.height/2)); + if (rsvg) { + //to make it resolution independent + //translate the difference between screen and drawing + float scale=frame.w/dims.width; + cairo_translate(cr, frame.w/2, frame.h/2); + cairo_translate(cr, parameters["x"]->value * frame.w, parameters["y"]->value * frame.h); + cairo_scale(cr, parameters["scale"]->value*scale, parameters["scale"]->value*scale); + cairo_rotate(cr,(parameters["rotation"]->value/180.0f)*M_PI); + cairo_translate(cr, -frame.w/2, -frame.h/2); + cairo_translate(cr, frame.w/2-(dims.width/2), frame.h/2-(dims.height/2)); + } } private: RsvgHandle * rsvg; |
