private Canvas createCanvas(int width, int height, Drawer drawer) { Canvas canvas = game.graphics.createCanvas(width, height); drawer.draw(canvas); return canvas; }
/** * Resizes the canvas that is displayed by this layer. * * <p>Note: this throws away the old canvas and creates a new blank canvas with the desired size. * Thus this should immediately be followed by a {@link #begin}/{@link #end} pair which updates * the contents of the new canvas. Until then, it will display the old image data. */ public void resize (float width, float height) { if (canvas != null) canvas.close(); canvas = gfx.createCanvas(width, height); }
/** See {@link #createCanvas(float,float)}. */ public Canvas createCanvas (IDimension size) { return createCanvas(size.width(), size.height()); }
/** See {@link #createCanvas(float,float)}. */ public Canvas createCanvas (IDimension size) { return createCanvas(size.width(), size.height()); }
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 = game.graphics.layoutText(buf.toString(), new TextFormat()); Canvas canvas = game.graphics.createCanvas(layout.size); canvas.setFillColor(0xFF000000).fillText(layout, 0, 0); layer.setTile(canvas.toTexture()); } }
Texture colorTex () { if (colorTex == null) { Canvas canvas = createCanvas(1, 1); canvas.setFillColor(0xFFFFFFFF).fillRect(0, 0, canvas.width, canvas.height); colorTex = canvas.toTexture(Texture.Config.UNMANAGED); } return colorTex; }
Texture colorTex () { if (colorTex == null) { Canvas canvas = createCanvas(1, 1); canvas.setFillColor(0xFFFFFFFF).fillRect(0, 0, canvas.width, canvas.height); colorTex = canvas.toTexture(Texture.Config.UNMANAGED); } return colorTex; }
/** Creates a canvas large enough to accommodate this styled text, and renders it therein. The * canvas will include a one pixel border beyond the size of the styled text which is needed * to accommodate antialiasing. */ public Canvas toCanvas () { float pad = 1/_gfx.scale().factor; Canvas canvas = _gfx.createCanvas(width()+2*pad, height()+2*pad); render(canvas, pad, pad); return canvas; }
protected Texture makeLabel(String label) { TextLayout layout = game.graphics.layoutText(label, new TextFormat()); Canvas canvas = game.graphics.createCanvas(layout.size); canvas.setFillColor(0xFF000000).fillText(layout, 0, 0); return canvas.toTexture(); }
/** * 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 Canvas toCanvas(Graphics gfx, Align align, int fillColor) { float pad = 1/gfx.scale().factor; Canvas canvas = gfx.createCanvas(bounds.width()+2*pad, bounds.height()+2*pad); canvas.setFillColor(fillColor); fill(canvas, align, pad, pad); return canvas; } }
/** * 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 Canvas toCanvas(Graphics gfx, Align align, int fillColor) { float pad = 1/gfx.scale().factor; Canvas canvas = gfx.createCanvas(bounds.width()+2*pad, bounds.height()+2*pad); canvas.setFillColor(fillColor); fill(canvas, align, pad, pad); return canvas; } }
public DebugDrawBox2D(Platform plat, float width, float height) { super(new OBBViewportTransform()); this.plat = plat; viewportTransform.setYFlip(true); strokeWidth = 1.0f; strokeAlpha = 255; fillAlpha = 150; canvas = plat.graphics().createCanvas(width, height); canvas.setStrokeWidth(strokeWidth); setStrokeColorFromCache(); setFillColorFromCache(); }
private void addTestCanvas(String descrip, int width, int height, String imagePath, ImageDrawer drawer) { Canvas target = game.graphics.createCanvas(width, height); ImageLayer layer = new ImageLayer().setSize(width, height); game.assets.getImage(imagePath).state.onSuccess(image -> { drawer.draw(target, image); layer.setTile(target.toTexture()); }); addTestLayer(descrip, width, height, layer); }
protected void addInfo (Canvas canvas, float cx, float y) { TextFormat infoFormat = new TextFormat(new Font("Helvetica", 12)); TextLayout ilayout = game.graphics.layoutText(canvas.width + "x" + canvas.height, infoFormat); Canvas iimage = game.graphics.createCanvas(ilayout.size); iimage.setFillColor(0xFF000000).fillText(ilayout, 0, 0); game.rootLayer.addAt(new ImageLayer(iimage.toTexture()), cx - iimage.width/2, y); } }
protected ImageLayer createLabel(String text, GroupLayer parent, int fg, int bg, float x, float y, float padding) { TextLayout layout = game.graphics.layoutText(text, baseFormat); float twidth = layout.size.width() + padding * 2; float theight = layout.size.height() + padding * 2; Canvas canvas = game.graphics.createCanvas(twidth, theight); if (bg != 0) canvas.setFillColor(bg).fillRect(0, 0, twidth, theight); canvas.setFillColor(fg).fillText(layout, padding, padding); ImageLayer imageLayer = new ImageLayer(canvas.toTexture()); parent.addAt(imageLayer, x, y); return imageLayer; }
public Texture formatText (TextFormat format, String text, boolean border) { TextLayout layout = game.graphics.layoutText(text, format); float margin = border ? 10 : 0; float width = layout.size.width()+2*margin, height = layout.size.height()+2*margin; Canvas canvas = game.graphics.createCanvas(width, height); if (border) canvas.setFillColor(0xFFCCCCCC).fillRect(0, 0, canvas.width, canvas.height); canvas.setFillColor(0xFF000000).fillText(layout, margin, margin); if (border) canvas.setStrokeColor(0xFF000000).strokeRect(0, 0, width-1, height-1); return canvas.toTexture(); }
@Override public void init() { 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]; Canvas canvas = game.graphics.createCanvas(width, height); canvas.setFillColor(fills[ii]).fillRect(0, 0, width, height); canvas.setFillColor(0xFF000000).drawText(depth + "/" + ii, 5, 15); ImageLayer layer = new ImageLayer(canvas.toTexture()); layer.setDepth(depth).setTranslation(225-50*depth, 125+25*depth); game.rootLayer.add(layer); } } }
@Override protected Instance instantiate (final IDimension size) { Canvas canvas = _gfx.createCanvas(size); if (_borderWidth > 0) { canvas.setFillColor(_borderColor).fillRoundRect( 0, 0, size.width(), size.height(), _radius); // scale the inner radius based on the ratio of the inner height to the full height; // this improves the uniformity of the border substantially float iwidth = size.width() - 2*_borderWidth, iheight = size.height() - 2*_borderWidth; float iradius = _borderRadius * (iheight / size.height()); canvas.setFillColor(_bgColor).fillRoundRect( _borderWidth, _borderWidth, iwidth, iheight, iradius); } else { canvas.setFillColor(_bgColor).fillRoundRect(0, 0, size.width(), size.height(), _radius); } ImageLayer layer = new ImageLayer(canvas.toTexture()); return new LayerInstance(size, layer); }
@Override public void init() { String text = "The quick brown fox jumped over the lazy dog."; TextFormat format = new TextFormat(new Font("Helvetica", 18)); TextBlock block = new TextBlock(game.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; Canvas canvas = game.graphics.createCanvas(swidth, sheight); canvas.setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, swidth-0.5f, sheight-0.5f); canvas.scale(scale, scale); canvas.setFillColor(0xFF000000); block.fill(canvas, TextBlock.Align.RIGHT, 0, 0); game.rootLayer.addAt(new ImageLayer(canvas.toTexture()), x, 5); addInfo(canvas, x + swidth/2, sheight + 10); x += swidth + 5; } }
protected Texture makeTextImage() { TextFormat format = new TextFormat(new Font(font.value(), style.value(), 24)); float wrapWidth = wrap.value() == 0 ? Float.MAX_VALUE : game.graphics.viewSize.width()*wrap.value()/100; TextBlock block = new TextBlock( game.graphics.layoutText(sample, format, new TextWrap(wrapWidth))); float awidth = adjustWidth(block.bounds.width()), aheight = adjustHeight(block.bounds.height()); float pad = 1/game.graphics.scale().factor; Canvas canvas = game.graphics.createCanvas(awidth+2*pad, aheight+2*pad); canvas.translate(pad, pad); canvas.setStrokeColor(0xFFFFCCCC).strokeRect(0, 0, awidth, aheight); render(canvas, block, align.value(), lineBounds.value()); return canvas.toTexture(); }