use of playn.core.SurfaceImage in project playn by threerings.
the class ClippedGroupTest method init.
@Override
public void init() {
GroupLayer rootLayer = graphics().rootLayer();
final CanvasImage img = graphics().createImage(100, 50);
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);
// create an immediate layer that draws the boundaries of our clipped group layers
rootLayer.add(graphics().createImmediateLayer(new ImmediateLayer.Renderer() {
public void render(Surface surf) {
// draw the border of our various clipped groups
surf.setFillColor(0xFF000000);
outline(surf, g1);
outline(surf, g2);
outline(surf, g3);
outline(surf, g4);
outline(surf, g5);
}
protected void outline(Surface surf, Layer.HasSize ly) {
drawRect(surf, ly.tx() - ly.originX(), ly.ty() - ly.originY(), ly.width(), ly.height());
}
protected void drawRect(Surface surf, float x, float y, float w, float h) {
float left = x - 1, top = y - 1, right = x + w + 2, bot = y + h + 2;
surf.drawLine(left, top, right, top, 1);
surf.drawLine(right, top, right, bot, 1);
surf.drawLine(left, top, left, bot, 1);
surf.drawLine(left, bot, right, bot, 1);
}
}));
// create a group layer with a static clip, and a rotating image inside
g1 = graphics().createGroupLayer(100, 100);
// test the origin not being at zero/zero
g1.setOrigin(50, 0);
i1 = graphics().createImageLayer(img);
i1.setOrigin(i1.width() / 2, i1.height() / 2);
g1.addAt(i1, 50, 50);
rootLayer.addAt(g1, 75, 25);
// static image inside and animated clipped width
g2 = graphics().createGroupLayer(100, 100);
g2.setOrigin(50, 50);
g2.addAt(graphics().createImageLayer(img), (100 - img.width()) / 2, (100 - img.height()) / 2);
rootLayer.addAt(g2, 200, 75);
// nest a group layer inside with an animated origin
inner = graphics().createGroupLayer();
inner.addAt(graphics().createImageLayer(img), (100 - img.width()) / 2, (100 - img.height()) / 2);
g3 = graphics().createGroupLayer(100, 100);
g3.add(inner);
rootLayer.addAt(g3, 275, 25);
// create a group layer with a static clip, and a rotating surface image inside
g4 = graphics().createGroupLayer(100, 100);
SurfaceImage si = graphics().createSurface(100, 50);
si.surface().setFillColor(0xFF99CCFF).fillRect(0, 0, 100, 50);
s1 = graphics().createImageLayer(si);
s1.setOrigin(s1.width() / 2, s1.height() / 2);
g4.addAt(s1, 50, 50);
rootLayer.addAt(g4, 400, 25);
// put a large clipped group inside a small one
g5Inner = graphics().createGroupLayer(150, 150);
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);
rootLayer.addAt(g5, 525, 25);
}
use of playn.core.SurfaceImage in project playn by threerings.
the class ImageTypeTest method init.
@Override
public void init() {
rootLayer = graphics().rootLayer();
// add a half white, half blue background
SurfaceImage bg = graphics().createSurface((int) (4 * width), (int) (4 * height));
bg.surface().setFillColor(Color.rgb(255, 255, 255));
bg.surface().fillRect(0, 0, bg.surface().width(), bg.surface().height());
bg.surface().setFillColor(Color.rgb(0, 0, 255));
bg.surface().fillRect(0, bg.surface().width() / 2, bg.surface().width(), bg.surface().height() / 2);
rootLayer.add(graphics().createImageLayer(bg));
image1 = assets().getImage(imageSrc);
image1.addCallback(new Callback<Image>() {
@Override
public void onSuccess(Image image) {
// once the image loads, create our layers
imageLayer1 = graphics().createImageLayer(image);
SurfaceImage surface1 = graphics().createSurface(image.width(), image.height());
surface1.surface().drawImage(image, 0, 0);
surfaceLayer1 = graphics().createImageLayer(surface1);
CanvasImage canvas1 = graphics().createImage(image.width(), image.height());
canvas1.canvas().drawImage(image, 0, 0);
canvasLayer1 = graphics().createImageLayer(canvas1);
imageLayer2 = graphics().createImageLayer(image);
SurfaceImage surface2 = graphics().createSurface(image.width(), image.height());
surface2.surface().drawImage(image, 0, 0);
surfaceLayer2 = graphics().createImageLayer(surface2);
CanvasImage canvas2 = graphics().createImage(image.width(), image.height());
canvas2.canvas().drawImage(image, 0, 0);
canvasLayer2 = graphics().createImageLayer(canvas2);
// add layers to the rootLayer
rootLayer.addAt(imageLayer1, offset, offset);
rootLayer.addAt(surfaceLayer1, offset + width, offset);
rootLayer.addAt(canvasLayer1, offset + 2 * width, offset);
rootLayer.addAt(imageLayer2, offset, offset + 2 * height);
rootLayer.addAt(surfaceLayer2, offset + width, offset + 2 * height);
rootLayer.addAt(canvasLayer2, offset + 2 * width, offset + 2 * height);
}
@Override
public void onFailure(Throwable err) {
log().error("Error loading image", err);
}
});
// add ground truth image
imageGroundTruth = assets().getImage(imageGroundTruthSrc);
imageGroundTruth.addCallback(new Callback<Image>() {
@Override
public void onSuccess(Image image) {
groundTruthLayer = graphics().createImageLayer(image);
rootLayer.addAt(groundTruthLayer, 3 * width, 0);
}
@Override
public void onFailure(Throwable err) {
log().error("Error loading image", err);
}
});
}
Aggregations