Я занимаюсь разработкой видеоигры и тестирую ее на своем телефоне. Недавно я решил протестировать его на другом устройстве, и в этом новом устройстве у меня возникли проблемы с некоторыми конкретными текстурами, в то время как с остальными все идет нормально. Я понятия не имею, что может происходить, я много чего перепробовал и, похоже, ничего не работает.
Если я изменяю картинку bmp на другие похожие, она нормально загружается, но когда я возвращаюсь к оригиналу, она вообще не загружается.
Код для загрузки текстур, который я использую, следующий: (хотя я думаю, что он очень распространен и не должен падать ...)
InputStream is = context.getResources().openRawResource(R.drawable.skybox_frente);
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeStream(is);
} finally {
try {
is.close();
is = null;
} catch (IOException e) {
}
}
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
if(gl instanceof GL11) {
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);
gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_GENERATE_MIPMAP, GL11.GL_TRUE);
} else {
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
}
gl.glTexEnvx(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
Точная ошибка заключается в том, что BitmapFactory.decodeStream возвращает ноль, даже если InputStream НЕ равен нулю.
РЕДАКТИРОВАТЬ: На самом деле ошибка была при получении InputStream, context.getResources().openRawResource(R.drawable.skybox_frente)
возвращает пустой поток только с конкретными изображениями ...
Вот одна из картинок, которую я не могу загрузить:
http://www.mediafire.com/?1if0iazmc89file
Спасибо всем за потраченное время!