Android 2.1 - Eclipse
Какие шаги приведут к возникновению проблемы?
1.
Create new Texture(managed) using new Texture(FileHandle, Format, bool);
- glGenTextures is called
- glHandle is created (Logcat: 100271) "bg_plainred.png"
- uploadImageData calls glBindTexture(100271)
Create new Texture(managed) using new Texture(FileHandle, Format, bool);
- glGenTextures is called
- glHandle is created (Logcat: 315638026) "body2.png"
- uploadImageData calls glBindTexture(315638026)
На этом этапе все текстурированные спрайты отображаются правильно ..
2.
Call Texture.dispose(); "bg_plainred.png"
- glDeleteTextures(glHandle) (Logcat: glHandle = 100271)
3.
Create new Texture(managed) using new Texture(FileHandle, Format, bool);
- glGenTextures is called
- glHandle is created (Logcat: 100271) "bg_wallpaper.png"
- uploadImageData calls glBindTexture(100271)
Create new Texture(managed) using new Texture(FileHandle, Format, bool);
- glGenTextures is called
- glHandle is created (Logcat: 100271) "clothes.png"
- uploadImageData calls glBindTexture(100271)
По сути, createGLHandle () возвращает 100271, дважды перезаписывая bg_wallpaper.png с clothes.png.Если я пытаюсь сослаться на текстуру «bg_wallpaper» в Sprite, она явно пишет из «clothes.png».
Если я принудительно теряю контекст и перефокусируюсь, все текстуры корректны из-за перезагрузки текстур (управляемых)by Gdx.
opengl.org / glGenTextures состояния:
glGenTextures возвращает n текстурных имен в текстурах.Нет гарантии, что имена образуют непрерывный набор целых чисел;однако гарантируется, что ни одно из возвращенных имен не использовалось непосредственно перед вызовом glGenTextures.
Мой вопрос: есть ли что-нибудь, что я могу вызвать в GL, что заставило бы текстуру быть 'в использовании »и не возвращать один и тот же идентификатор glHandle дважды?
Я не уверен, что это ошибка, которую я должен сообщить о проблемах с libgdx?
На код Texture.java можно ссылаться здесь для дальнейшего разъяснения:
code.google.com / gdx / src / Texture.java
ЛюбойПомощь очень ценится!