@Override public SurfaceImage createSurface(float width, float height) { return new SurfaceImageGL(ctx(), createSurfaceGL(width, height)); }
@Override public int height() { return ctx().viewHeight; }
@Override public float scaleFactor() { return ctx().scale.factor; }
@Override public int width() { return ctx().viewWidth; }
@Override public ImmediateLayer createImmediateLayer(ImmediateLayer.Renderer renderer) { return new ImmediateLayerGL(ctx(), renderer); }
@Override public ImmediateLayer.Clipped createImmediateLayer( int width, int height, ImmediateLayer.Renderer renderer) { return new ImmediateLayerGL.Clipped(ctx(), width, height, renderer); }
@Override public GroupLayer createGroupLayer() { return new GroupLayerGL(ctx()); }
@Override public ImageLayer createImageLayer() { return new ImageLayerGL(ctx()); }
protected SurfaceGL createSurfaceGL(float width, float height) { return new SurfaceGL(ctx(), width, height); } }
@Override public GroupLayer.Clipped createGroupLayer(float width, float height) { return new GroupLayerGL.Clipped(ctx(), width, height); }
@Override public ImageLayer createImageLayer(Image image) { return new ImageLayerGL(ctx()).setImage(image); }