Comment charger des images comme arrière-plan dans LibGDx?
Je fais live wallpaper et j'ai une question. Je veux mettre une image comme arrière-plan et Eclipse afficher le message d'erreur:
01-10 10:37:18.206: E/AndroidRuntime(1045): FATAL EXCEPTION: GLThread 99
01-10 10:37:18.206: E/AndroidRuntime(1045): com.badlogic.gdx.utils.GdxRuntimeException: Texture width and height must be powers of two: 480x800
Mon code ressemble à ceci:
public class Tapeta implements ApplicationListener {
private SpriteBatch batch;
private Texture texture;
private TextureRegion region;
@Override
public void create() {
texture = new Texture(Gdx.files.internal("data/cat.jpg"));
Texture.setEnforcePotImages(false);
}
@Override
public void dispose() {
texture.dispose();
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(texture, 0, 0);
batch.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
Je suis à la recherche de solution à mon problème et je n'ai pas trouvé.
OriginalL'auteur Tomeksss | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Dans ce cas, le libGDX message d'erreur est réellement utile!
Ainsi la texture de la largeur et la hauteur doivent être l'un des: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 (ni 480 ni 800 sont sur la liste ...)
Vous avez cette ligne magique:
mais après la texture est chargé. Si vous vous mettez à avant la texture de la charge, à l'exception aller loin? (Y compris plus de l'exception backtrace dans votre question serait utile). Je crois que cette méthode n'est disponible que pour le cas où vous savez que la sous-jacentes OpenGL ES 1.0 système prend en charge la non-puissance de deux texture extension. Cette option ne sera pas corrigé le matériel qui n'a pas vraiment de soutien en puissance de deux textures. (Je n'ai aucune idée comment beaucoup de ce matériel est de gauche dans le monde, de sorte qu'il peut être sans danger, ces jours-ci.)
La puissance de deux texture exigence est une restriction du matériel et OpenGL ES. Cette exigence a été abandonnée à partir d'OpenGL ES 2.0.
Une autre façon de contourner cette exigence est de construire une texture atlas qui est une puissance de deux de taille moyenne, et il contient votre pas une puissance de deux textures de l'intérieur. Ensuite vous rendre paragraphes de l'image de l'atlas. Voir http://bitiotic.com/blog/2012/05/10/tutorial-for-texturepacker-and-libgdx/
GLTexture.setEnforcePotImages(false);
OriginalL'auteur P.T.