public void done(Image image) { drawer.draw(target.canvas(), image); } public void error(Throwable err) {
public void onSuccess(Image image) { drawer.draw(target.canvas(), image); } public void onFailure(Throwable err) {
@Override public void paint(float delta) { super.paint(delta); int curSecs = (int)(elapsedMillis/1000); if (curSecs != lastSecs) { timeImg.canvas().clear(); timeImg.canvas().setStrokeColor(0xFF000000); timeImg.canvas().strokeRect(0, 0, 100, 100); timeImg.canvas().drawText(""+curSecs, 40, 55); lastSecs = curSecs; } // round the width so that it goes to zero sometimes (which should be fine) tileLayer.setWidth(Math.round(Math.abs(FloatMath.sin(elapsedMillis/2)) * 100)); }
protected void addAction(String action) { _actions.add(0, action); if (_actions.size() > 10) _actions.subList(10, _actions.size()).clear(); _actionsImage.canvas().clear(); StringBuilder buf = new StringBuilder(); for (String a : _actions) { if (buf.length() > 0) buf.append("\n"); buf.append(a); } _actionsImage.canvas().setFillColor(0xFF000000); float y = 0; for (TextLayout layout : graphics().layoutText(buf.toString(), TEXT_FMT, new TextWrap(300))) { _actionsImage.canvas().fillText(layout, 0, y); y += layout.ascent() + layout.descent() + layout.leading(); } }
protected static CanvasImage formatText (TextFormat format, String text, boolean border) { TextLayout layout = graphics().layoutText(text, format); float margin = border ? 10 : 0; float width = layout.width()+2*margin, height = layout.height()+2*margin; CanvasImage image = graphics().createImage(width, height); image.canvas().setStrokeColor(0xFF000000); image.canvas().setFillColor(0xFF000000); image.canvas().fillText(layout, margin, margin); if (border) image.canvas().strokeRect(0, 0, width-1, height-1); return image; }
public static Image makeButtonImage(String label) { TextLayout layout = graphics().layoutText(label, BUTTON_FMT); CanvasImage image = graphics().createImage(layout.width()+10, layout.height()+10); image.canvas().setFillColor(0xFFCCCCCC); image.canvas().fillRect(0, 0, image.width(), image.height()); image.canvas().setFillColor(0xFF000000); image.canvas().fillText(layout, 5, 5); image.canvas().setStrokeColor(0xFF000000); image.canvas().strokeRect(0, 0, image.width()-1, image.height()-1); return image; }
private CanvasImage createCanvasImage(int width, int height, final Drawer drawer) { final CanvasImage image = graphics().createImage(width, height); drawer.draw(image.canvas()); return image; }
private CanvasImage createCanvasImage(int width, int height, final Drawer drawer) { final CanvasImage image = graphics().createImage(width, height); drawer.draw(image.canvas()); return image; }
protected void updateDisplay() { StringBuffer buf = new StringBuffer(); if (notifications.isEmpty()) { buf.append("No notifications. Pause and resume the game to generate some."); } else { buf.append("Notifications:\n"); for (String note : notifications) buf.append(note).append("\n"); } TextLayout layout = graphics().layoutText(buf.toString(), new TextFormat()); CanvasImage image = graphics().createImage(layout.width(), layout.height()); image.canvas().setFillColor(0xFF000000); image.canvas().fillText(layout, 0, 0); layer.setImage(image); } }
public void setCanvas(CanvasImage image) { this.canvas = image.canvas(); canvas.setStrokeWidth(strokeWidth); setStrokeColorFromCache(); setFillColorFromCache(); }
/** * Creates a canvas image large enough to accommodate this text block and renders the lines into * it. The image will include padding around the edge to ensure that antialiasing has a bit of * extra space to do its work. */ public CanvasImage toImage(Align align, int fillColor) { float pad = pad(); CanvasImage image = graphics().createImage(bounds.width()+2*pad, bounds.height()+2*pad); image.canvas().setFillColor(fillColor); fill(image.canvas(), align, pad, pad); return image; } }
public void paint() { if (!dirty) { return; } image.canvas().clear(); image.canvas().setFillColor(0xFF202020); layout = graphics().layoutText(text, format, TextWrap.MANUAL); float yy = 0; for (int line = 0; line < layout.length; line++) { image.canvas().fillText(layout[line], 0, yy); yy += layout[line].height(); } if (yy > image.height()) { log().error("Clipped"); } dirty = false; } }
protected ImageLayer createLabel(String text, GroupLayer parent, int fg, int bg, float x, float y, float padding) { TextLayout layout = graphics().layoutText(text, baseFormat); float twidth = layout.width() + padding * 2; float theight = layout.height() + padding * 2; CanvasImage image = graphics().createImage(twidth, theight); if (bg != 0) { image.canvas().setFillColor(bg); image.canvas().fillRect(0, 0, twidth, theight); } image.canvas().setFillColor(fg); image.canvas().fillText(layout, padding, padding); ImageLayer imageLayer = graphics().createImageLayer(image); imageLayer.setTranslation(x, y); parent.add(imageLayer); return imageLayer; }
@Override public void init() { GroupLayer rootLayer = graphics().rootLayer(); CanvasImage image = graphics().createImage(250, 25); image.canvas().drawText(rootLayer.getClass().getName(), 0, 15); ImageLayer info = graphics().createImageLayer(image); info.setTranslation(5, 5); rootLayer.add(info); int[] depths = { 0, -1, 1, 3, 2, -4, -3, 4, -2 }; int[] fills = { 0xFF99CCFF, 0xFFFFFF33, 0xFF9933FF, 0xFF999999, 0xFFFF0033, 0xFF00CC00, 0xFFFF9900, 0xFF0066FF, 0x0FFCC6666 }; int width = 200, height = 200; for (int ii = 0; ii < depths.length; ii++) { int depth = depths[ii]; image = graphics().createImage(width, height); image.canvas().setFillColor(fills[ii]); image.canvas().fillRect(0, 0, width, height); image.canvas().setFillColor(0xFF000000); image.canvas().drawText(depth + "/" + ii, 5, 15); ImageLayer layer = graphics().createImageLayer(image); layer.setDepth(depth); layer.setTranslation(225-50*depth, 125+25*depth); rootLayer.add(layer); } } }
/** * Returns a (created on demand, then cached) image used when filling solid color quads or * triangles. */ Image fillImage() { if (fillImage == null) { CanvasImage image = platform.graphics().createImage(1, 1); image.canvas().setFillColor(0xFFFFFFFF).fillRect(0, 0, image.width(), image.height()); fillImage = image; } return fillImage; }
@Override public void init() { String text = "The quick brown fox jumped over the lazy dog."; TextFormat format = new TextFormat(). withFont(graphics().createFont("Helvetica", Font.Style.PLAIN, 18)); TextBlock block = new TextBlock(graphics().layoutText(text, format, new TextWrap(100))); float x = 5; for (float scale : new float[] { 1f, 2f, 3f }) { float swidth = block.bounds.width() * scale, sheight = block.bounds.height() * scale; CanvasImage image = graphics().createImage(swidth, sheight); image.canvas().setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, swidth-0.5f, sheight-0.5f); image.canvas().scale(scale, scale); image.canvas().setFillColor(0xFF000000); block.fill(image.canvas(), TextBlock.Align.RIGHT, 0, 0); graphics().rootLayer().addAt(graphics().createImageLayer(image), x, 5); addInfo(image, x + swidth/2, sheight + 10); x += swidth + 5; } }
protected Image makeTextImage() { TextFormat format = new TextFormat(graphics().createFont(font.value(), style.value(), 24), true); float wrapWidth = wrap.value() == 0 ? Float.MAX_VALUE : graphics().width()*wrap.value()/100; TextBlock block = new TextBlock(graphics().layoutText(sample, format, new TextWrap(wrapWidth))); float awidth = adjustWidth(block.bounds.width()), aheight = adjustHeight(block.bounds.height()); float pad = TextBlock.pad(); CanvasImage image = graphics().createImage(awidth+2*pad, aheight+2*pad); image.canvas().translate(pad, pad); image.canvas().setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, awidth, aheight); render(image.canvas(), block, align.value(), lineBounds.value()); return image; }
@Override public void init() { CanvasImage canvasImage = graphics().createImage(graphics().width(), graphics().height()); canvas = canvasImage.canvas(); graphics().rootLayer().add(graphics().createImageLayer(canvasImage)); }
protected void addInfo (CanvasImage image, float cx, float y) { TextLayout ilayout = graphics().layoutText(image.width() + "x" + image.height(), infoFormat); CanvasImage iimage = graphics().createImage(ilayout.width(), ilayout.height()); iimage.canvas().setFillColor(0xFF000000).fillText(ilayout, 0, 0); graphics().rootLayer().addAt(graphics().createImageLayer(iimage), cx - iimage.width()/2, y); }