ich zwei Texturen bin zu schaffen und sie in dem gleichen TextureAtlas setzen, wie im Code gezeigt:TextureAtlas und renderCalls in Libgdx
public void create() {
pix = new Pixmap(100, 100, Pixmap.Format.RGBA8888);
textureAtlas = new TextureAtlas();
pix.setColor(Color.WHITE);
pix.fill();
textureAtlas.addRegion("white", new TextureRegion(new Texture(pix)));
pix.setColor(Color.RED);
pix.fill();
textureAtlas.addRegion("red", new TextureRegion(new Texture(pix)));
tr_list = textureAtlas.getRegions();
pix.dispose()
}
und dann beim Rendern:
public void render() {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
for (int i = 0; i < 200; ++i) {
batch.draw(tr_list.get(i % tr_list.size), (int)(Math.random()* 500), (int)(Math.random()* 500));
}
font.draw(batch, "FPS: " + Integer.toString(Gdx.graphics.getFramesPerSecond()), 0, Gdx.graphics.getHeight() - 20);
font.draw(batch, "Render Calls: " + Integer.toString(batch.renderCalls), 0, Gdx.graphics.getHeight() - 60);
batch.end();
}
ich Batch erwartet .renderCalls ist gleich 1, da die Texturen im selben TextureAtlas sind, aber statt dessen gleich 200. Was mache ich falsch?
Danke! Jetzt habe ich es verstanden. Ich dachte, dass TextureAtlas sich darum kümmerte, verschiedene Texturen "zusammenzufügen". – Sapp