78 lines
1.6 KiB
Java
78 lines
1.6 KiB
Java
package org.oscim.ios.backend;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
import org.oscim.backend.GL20;
|
|
import org.oscim.backend.canvas.Bitmap;
|
|
|
|
import com.badlogic.gdx.Gdx;
|
|
import com.badlogic.gdx.files.FileHandle;
|
|
import com.badlogic.gdx.graphics.Pixmap;
|
|
import com.badlogic.gdx.graphics.g2d.Gdx2DPixmap;
|
|
|
|
public class IosBitmap implements Bitmap {
|
|
|
|
Pixmap pixmap;
|
|
boolean disposable;
|
|
|
|
/** always argb8888 */
|
|
public IosBitmap(int width, int height, int format) {
|
|
pixmap = new Pixmap(width, height, Pixmap.Format.RGBA8888);
|
|
}
|
|
|
|
public IosBitmap(String fileName) {
|
|
FileHandle handle = Gdx.files.internal(fileName);
|
|
pixmap = new Pixmap(handle);
|
|
disposable = true;
|
|
}
|
|
|
|
public IosBitmap(InputStream inputStream) throws IOException {
|
|
pixmap = new Pixmap(new Gdx2DPixmap(inputStream, Gdx2DPixmap.GDX2D_FORMAT_RGBA8888));
|
|
}
|
|
|
|
@Override
|
|
public int getWidth() {
|
|
return pixmap.getWidth();
|
|
}
|
|
|
|
@Override
|
|
public int getHeight() {
|
|
return pixmap.getHeight();
|
|
}
|
|
|
|
@Override
|
|
public void recycle() {
|
|
// FIXME this should be called at some point in time
|
|
pixmap.dispose();
|
|
|
|
}
|
|
|
|
@Override
|
|
public int[] getPixels() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void eraseColor(int color) {
|
|
}
|
|
|
|
@Override
|
|
public void uploadToTexture(boolean replace) {
|
|
|
|
Gdx.gl.glTexImage2D(GL20.GL_TEXTURE_2D, 0, pixmap.getGLInternalFormat(),
|
|
pixmap.getWidth(), pixmap.getHeight(), 0,
|
|
pixmap.getGLFormat(), pixmap.getGLType(),
|
|
pixmap.getPixels());
|
|
|
|
if (disposable) {
|
|
pixmap.dispose();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isValid() {
|
|
return true;
|
|
}
|
|
}
|