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