J'écris un jeu pour Android en utilisant libgdx. Voici un code qui dessine une texture torus:Pourquoi libgdx SpriteBatch/BitmapFont rompt Texture.bind?
Gdx.gl10.glPushMatrix();
Gdx.gl10.glTranslatef(center.x, center.y, 0);
Gdx.gl10.glRotatef(0, 0, 1, angle * 360f/(2f * (float)Math.PI));
texture.bind();
mesh.render(GL10.GL_TRIANGLE_STRIP);
Gdx.gl10.glPopMatrix();
... et voici un code qui attire un peu de texte:
spriteBatch.begin();
spriteBatch.setColor(1, 1, 1, 1);
float fps = 1f/Gdx.graphics.getDeltaTime();
font.draw(spriteBatch, "fps: " + fps, 0, 50);
spriteBatch.end();
Le premier bit de code fonctionne, image après image, jusqu'à ce que le deuxième bit de code s'exécute. Après cela, la bande triangulaire du premier bit est rendue en utilisant uniquement le dernier glMaterial. Une idée de pourquoi cela se passe?
Mise à jour: Résolu! Il s'avère que SpriteBatch.end() appelle glDisable (GL_TEXTURE_2D). Je devais juste lire la source ...
Je vais avoir le même problème . Mais d'une certaine manière, il semble que votre question n'ait pas été répondue. Quelle était votre solution? Avez-vous disposé l'autre texture avant de rendre le texte ou qu'avez-vous fait? – nerdinand