/* * JAME 6.2.1 * http://jame.sourceforge.net * * Copyright 2001, 2016 Andrea Medeghini * * This file is part of JAME. * * JAME is an application for creating fractals and other graphics artifacts. * * JAME is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * JAME is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with JAME. If not, see <http://www.gnu.org/licenses/>. * */ package net.sf.jame.contextfree.renderer; import java.util.logging.Logger; /** * @author Andrea Medeghini */ public final class SimpleContextFreeRenderer extends DefaultContextFreeRenderer { private static final Logger logger = Logger.getLogger(SimpleContextFreeRenderer.class.getName()); /** * */ public SimpleContextFreeRenderer(final int threadPriority) { super(threadPriority); } @Override protected void doRender(boolean dynamicZoom) { // long totalTime = System.nanoTime(); // long time = System.nanoTime(); // updateTransform(); // float offsetX = (getBufferWidth() - getTile().getImageSize().getX()) / 2; // float offsetY = (getBufferHeight() - getTile().getImageSize().getY()) / 2; // int width = getTile().getImageSize().getX(); // int height = getTile().getImageSize().getY(); // Color32bit background = cfdgRuntime.getBackground(); // String startshape = cfdgRuntime.getStartshape(); // String variation = cfdgRuntime.getVariation(); // CFContext context = new CFContext(); // CFBuilder builder = new CFBuilder(context); // for (int i = 0; i < cfdgRuntime.getFigureElementCount(); i++) { // FigureRuntimeElement figure = cfdgRuntime.getFigureElement(i); // figure.process(builder); // } // context.reloadRules(); // int initialShapeType = context.encodeShapeName(startshape); // CFRenderer renderer = new CFRenderer(context, variation.hashCode(), width, height, 0f, 0.5f); // CFModification worldState = new CFModification(); // boolean partialDraw = true; // int reportAt = 250; // CFShape shape = new CFShape(initialShapeType, worldState); // shape.getModification().getColorTarget().setAlpha(1); // shape.getModification().getColor().setAlpha(1); // context.setBackground(new CFColor(background.getARGB())); // renderer.processShape(shape); // if (logger.isDebugEnabled()) { // long elapsed = (System.nanoTime() - time) / 1000000; // logger.debug("Build time " + elapsed + "ms"); // } // percent = 20; // for (;;) { // if (renderer.getUnfinishedCount() == 0) { // break; // } // if ((renderer.getFinishedCount() + renderer.getUnfinishedCount()) > CFRenderer.MAX_SHAPES) { // break; // } // CFShape s = renderer.nextUnfinishedShape(); // renderer.executeShape(s); // if (renderer.getFinishedCount() > reportAt) { // if (partialDraw) { // } // reportAt = 2 * renderer.getFinishedCount(); // } // } // renderer.sortShapes(); // percent = 70; // if (logger.isDebugEnabled()) { // logger.debug("Total shapes " + renderer.getFinishedCount()); // } // time = System.nanoTime(); // Graphics2D g2d = getGraphics(); // configure(g2d); // AffineTransform tmpTransform = g2d.getTransform(); // g2d.translate(offsetX, offsetY); // renderer.render(g2d); // g2d.setTransform(tmpTransform); // swapImages(); // if (logger.isDebugEnabled()) { // long elapsed = (System.nanoTime() - time) / 1000000; // logger.debug("Render time " + elapsed + "ms"); // } // percent = 100; // if (logger.isDebugEnabled()) { // logger.debug("Total time " + (System.nanoTime() - totalTime) / 1000000 + "ms"); // } } }