Я реализовал возможность для нескольких текстур пока, хотя сейчас ... но вчера я узнал, что они не будут работать так, как ожидалось, на других устройствах ... не мои ..:/ На моем устройстве (Experia Mini Pro) она работает идеально:Несколько текстур не будут работать на другом устройстве?
Первые несколько кодовых фрагментов для загрузки текстуры:
int[] textureID = new int[1];
GLES20.glDeleteTextures(1,textureID,0);
GLES20.glGenTextures(1,textureID,0);
this.unit = textureID[0];
GLES20.glActiveTexture(GLES20.GL_TEXTURE0+this.unit);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,this.unit);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_REPEAT);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_REPEAT);
...
... bitmap loading functions
...
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D,0,bitmapTexture,0);
bitmapTexture.recycle();
и здесь ту часть, где нарисованы мои треугольники:
GLES20.glUniform1i(LLShader.location[20],gfx.imagetexture.unit);
GLES20.glActiveTexture(GLES20.GL_TEXTURE0+gfx.imagetexture.unit);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,gfx.imagetexture.unit);
GLES20.glDrawArrays(GLES20.GL_TRIANGLES,0,gfx._vertexBuffer.capacity()/3);
на ут устройства все работает достаточно совершенным: Th это четыре квадроцикла, каждый из которых имеет свою собственную текстуру, которая рисуется одна за другой.
Но тогда я дал apk моему другу и на его устройстве (Samsung Galaxy S1), кажется, что он загружает только одну текстуру и отображает только первый из них ... Не знаю, где искать .... Я еще не нашел ошибку.
PS: Произошла ошибка, которую я не знаю, чтобы справиться. После «повторного открытия» (переход от режима сна) текущее приложение, все изображения, которые должны использовать альфа-смешивание, являются черными ... что может быть проблемой?