Я использую следующий код для рисования символов на экране (каждый символ UTF8 является текстурой):
int row = 0;
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
glVertexPointer(2, GL_FLOAT, 0, vertices);
for (StdStr* line in _lines) {
const char* str = [line cString];
for (int i = 0; i < strlen(str); i++) {
((XX::OGL::GLESContext*)context)->viewport(C_WIDTH*i,
C_HEIGHT*row,
C_WIDTH,
C_HEIGHT);
glColor4f(1.0, 1.0, 1.0, 1.0);
glBindTexture(GL_TEXTURE_2D, _textures[0] + *(str + i));
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
}
row++;
}
Когда символов много, выполнение кода занимает больше времени.В этом случае почти 99% времени расходуется на процедуру glDrawArrays
.Можно ли минимизировать количество звонков до glDrawArrays
? Версия OpenGL ES - 1.1.