package com.github.czyzby.views;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.github.czyzby.Core;
import com.github.czyzby.kiwi.util.gdx.asset.Disposables;
import com.github.czyzby.lml.parser.impl.AbstractLmlView;
/** Displays LibGDX logos. A proof of concept: using "external" assets with a LML-built stage. The actual asset handling
* and loading should probably be implemented in a different way (like using {@link AssetManager} and {@link Sprite}s).
*
* @author MJ */
public class Images extends AbstractLmlView {
private final Texture logo;
public Images() {
super(Core.newStage());
logo = new Texture(Gdx.files.internal("logo.png"));
}
@Override
public FileHandle getTemplateFile() {
return Gdx.files.internal("views/Images.lml");
}
@Override
public void render(final float delta) {
super.render(delta);
final Batch batch = getStage().getBatch();
final Viewport viewport = getStage().getViewport();
// Drawing logo image 3 times in different parts of the screen:
batch.begin();
batch.draw(logo, 0, 0);
batch.draw(logo, (int) (viewport.getWorldWidth() / 2f - logo.getWidth() / 2f),
(int) (viewport.getWorldHeight() / 2f - logo.getHeight() / 2f));
batch.draw(logo, (int) (viewport.getWorldWidth() - logo.getWidth()),
(int) (viewport.getWorldHeight() - logo.getHeight()));
batch.end();
}
@Override
public void dispose() {
super.dispose();
Disposables.disposeOf(logo);
}
@Override
public String getViewId() {
return "img";
}
}