Проблема в том, что массив данных атрибутов вершин для координат текстуры (индекс TexturePositionHandle
) включается при рисовании первого объекта.
Обратите внимание, OpenGL - это механизм состояний, и состояние сохраняется, если оно есть. изменилось снова, даже за пределами фреймов.
Необходимо включить массив атрибутов вершин generi c, необходимый для программы шейдера, и убедиться, что другие массивы атрибутов вершин отключены, когда объект нарисовано:
GLES20.glEnableVertexAttribArray(VertexPositionHandle);
GLES20.glDrawElements(GLES20.GL_TRIANGLES, indices.length, GLES20.GL_UNSIGNED_SHORT,
indicesBuffer);
GLES20.glDisableVertexAttribArray(VertexPositionHandle);
GLES20.glEnableVertexAttribArray(VertexPositionHandle);
GLES20.glEnableVertexAttribArray(TexturePositionHandle);
GLES20.glDrawElements(GLES20.GL_TRIANGLES, 6, GLES20.GL_UNSIGNED_SHORT, 0);
GLES20.glDisableVertexAttribArray(VertexPositionHandle);
GLES20.glDisableVertexAttribArray(TexturePositionHandle);