Доброго времени суток!
Разбираюсь с OpenGLом и решил после написания нескольких программ объединить весь предыдущий функционал (функции/классы) в некоторую заготовку для последующих изысканий и манипуляций с оGLом.
Задумался над UI и соответственно самыми простыми ф-ями наподобие: нарисовать - прямоугольник, текст. Уже на базе этих двух можно будет строить более сложные UI-объекты, такие как - окна, поля ввода, списки.
В связи с этим хотел поинтересоваться, как достичь максимальной скорости при прорисовке этих “базовых” так сказать элементов?
Т.е. вопрос можно сформулировать так:
1. Как наиболее быстро прорисовать прямоугольник?
a) -стоит ли рисовать его так:
Код:
void Rect (int x, int y, int w, int h) {
glBegin(GL_QUADS);
glTexCoord2f(0, 1); glVertex2i(x,y);
glTexCoord2f(0, 0); glVertex2i(x,y+h);
glTexCoord2f(1, 0); glVertex2i(x+w,y+h);
glTexCoord2f(1, 1); glVertex2i(x+w,y);
glEnd();
}
b) - либо же пользоваться связкой:
glVertexPointer/glColorPointer/glNormalPointer или лучше пользоваться одной командой void glInterleavedArrays
c) - а может вообще VBO собрать и отправить в видео память? только как переместить VBO в Orto режиме на заданное кол-во пикселей или пересобрать каждый раз?
2. Как наиболее быстро прорисовать текст?
Пока что рисую текст, так как продемонстрировано в «Урок(е) 13. Растровые шрифты».
Это наиболее быстрый способ отображения текста в контексте GL?
Ознакомившимся с проблематикой спасибо! Если есть мысли напишите. Буду признателен.)