Доброго всем дня!Интересует несколько вопросов, причём реализации и для
OpenGL и для
Direct3D:
1. Как мне использовать несколько буферов?
В
Direct3D, при заполнении структуры
PRESENT_PARAMETERS, есть такая переменная
BackBufferCount (не обращайте внимание если с ошибками, я по памяти пишу), где можно указать количество дополнительных (задних буферов). Так же стоит автоматическое переключение страниц (не помню этот флаг).
В том же
OpenGL я нашёл какие-то передний буфер, задний, левый, правый, дополнительные и так далее...
Я вот хочу чтобы я сам создал сколько мне нужно буферов (2, 3, 4, 5, ...) и сам выбирал в какой осуществлять вывод и потом какой из буферов копировать в передний (выводить рисунок на экран).
Как мне это реализовать и в
OpenGL и в
Direct3D?
2. Как мне в памяти видеокарты оставлять вершины, чтобы они там хранились столько, сколько я захочу?
Тут с
Direct3D проще. Я могу на создавать этих
D3D9VertexBuffer'ов столько, сколько захочу, и потом уже из нужного мне рисовать.
А вот как быть с
OpenGL? Он работает со списками, но список только один действительный. А я хочу чтобы у меня все модели были загружены в память видеокарты и потом которая потребуется, её и выводил.
Как это реализовать и на
OpenGL и на
Direct3D?
3. Как мне загрузить в память видеокарты рисунок, чтобы потом его использовать как текстуру?
Дело в том, что я хочу использовать свои рисунки, которые я буду считывать с файла (свой формат) или создавать программным путём. Скажем у меня есть красный квадрат
4x4:
Код:
unsigned int picture1[]={
0xFF0000,0xFF0000,0xFF0000,
0xFF0000,0xFF0000,0xFF0000,
0xFF0000,0xFF0000,0xFF0000,
0xFF0000,0xFF0000,0xFF0000};
Как мне его загрузить в видеопамять и с помощью
OpenGL, и с помощью
Direct3D, чтобы потом использовать как текстуру?