package com.github.czyzby.lml.uedi.ui;
import java.lang.reflect.Member;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.github.czyzby.kiwi.util.gdx.asset.Disposables;
import com.github.czyzby.uedi.stereotype.Destructible;
/** Manages and provides a single {@link SpriteBatch} instance.
*
* @author MJ */
public class SpriteBatchProvider extends BatchProvider implements Destructible {
private final SpriteBatch batch = new SpriteBatch();
@Override
public Class<? extends Batch> getType() {
return SpriteBatch.class;
}
@Override
public Batch provide(final Object target, final Member member) {
return batch;
}
@Override
public Batch getBatch() {
return batch;
}
/** @return application's only {@link SpriteBatch} instance. */
public SpriteBatch getSpriteBatch() {
return batch;
}
@Override
public int getDestructionOrder() {
return 0;
}
@Override
public void destroy() {
Disposables.gracefullyDisposeOf(batch);
}
}