From 70c197441dd6eef01fd1e1c88743438cf3aa730d Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Fri, 15 Nov 2013 11:13:43 +0000 Subject: fix draw node translation inheritance --- rotord/src/nodes_drawing.h | 21 +++++++++++---------- 1 file 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 "<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; -- cgit v1.2.3