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; }
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; } }
public void done(Image image) { drawer.draw(target.canvas(), image); } public void error(Throwable err) {
y += infoImg.height() + gap;
repimg.setRepeat(true, true); ImageLayer layer = graphics().createImageLayer(repimg); layer.setSize(100, 100);
public void onSuccess(Image image) { drawer.draw(target.canvas(), image); } public void onFailure(Throwable err) {
/** * 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 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 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); }
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(); } }
img.canvas().setFillGradient(graphics().createLinearGradient( 0, 0, 100, 100, new int[] { 0xFF0000FF, 0xFF00FF00 }, new float[] { 0, 1 })); img.canvas().fillRoundRect(0, 0, 100, 50, 10); g2.addAt(graphics().createImageLayer(img), (100 - img.width())/2, (100 - img.height())/2); rootLayer.addAt(g2, 200, 75); inner.addAt(graphics().createImageLayer(img), (100 - img.width())/2, (100 - img.height())/2); g3 = graphics().createGroupLayer(100, 100); g3.add(inner); g5Inner.addAt(graphics().createImageLayer(img).setScale(2), -img.width(), -img.height()); g5Inner.addAt(graphics().createImageLayer(img).setScale(2), -img.width(), img.height()); g5Inner.addAt(graphics().createImageLayer(img).setScale(2), img.width(), -img.height()); g5Inner.addAt(graphics().createImageLayer(img).setScale(2), img.width(), img.height()); g5 = graphics().createGroupLayer(100, 100); g5.addAt(g5Inner, -25, -25);
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; }
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; } }
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; }