package com.xenoage.zong.renderer;
import static com.xenoage.utils.math.geom.Point2i.origin;
import com.xenoage.utils.math.geom.Point2i;
import com.xenoage.zong.layout.Layout;
import com.xenoage.zong.layout.Page;
import com.xenoage.zong.layout.frames.Frame;
import com.xenoage.zong.renderer.canvas.Canvas;
import com.xenoage.zong.renderer.frames.FramesRenderer;
/**
* This class renders a {@link Layout}.
*
* @author Andreas Wenger
*/
public class LayoutRenderer {
/**
* Paints the given page of the given {@link Layout} on the given {@link Canvas}
* with no offset and a scaling of 1.
*/
public static void paintToCanvas(Layout layout, int pageIndex, Canvas canvas) {
paintToCanvas(layout, pageIndex, 1, origin, canvas);
}
/**
* Paints a page on a {@link Canvas}.
*/
public static void paintToCanvas(Layout layout, int pageIndex,
float scaling, Point2i offset, Canvas canvas) {
//draw page
Page page = layout.getPages().get(pageIndex);
//draw frames
for (Frame frame : page.getFrames()) {
FramesRenderer.paintAny(frame, canvas,
new RendererArgs(scaling, scaling, offset, layout.getDefaults().getSymbolPool()));
}
}
}