Каковы преимущества использования OpenGL в SDL 2?

Я предполагаю, что SDL 2 использует рендеринг OpenGL в фоновом режиме (или, возможно, DirectX, если в Windows), и это решение принимается самим SDl.

Я видел обучающие материалы, в которых показано использование OpenGL непосредственно в SDL, и задавался вопросом, какую выгоду вы получите, если сможете получить OpenGL напрямую? Есть ли вещи, которые SDL не сможет достичь изначально?

Ответ 1

Если вы полностью полагаетесь на функциональность SDL для графических целей, у вас есть только доступ к простым функциям изображения и буфера.

Ускоренный 2D-рендеринг API:         Поддерживает легкое вращение, масштабирование и альфа-смешивание,         все ускоряются с использованием современных 3D-API

Но то, что делает SDL, также предоставляет контекст OpenGL. Это означает, что у вас также есть полный доступ к функциям OpenGL, включая 3D-объекты, шейдеры и т.д.

Вы можете использовать SDL просто для создания своего контекста и предоставления вам звука, ввода и ввода файлов и использования OpenGL для придания цвета на экране, или использовать API видео SDL для рисования спрайтов и изображений.

Ответ 2

http://wiki.libsdl.org/MigrationGuide

Простой 2D-рендеринг API, который может использовать Direct3D, OpenGL, OpenGL ES или рендеринг программного обеспечения за кадром

SDL2 просто дает вам легкое начало с 2D-графикой (и другими вопросами), но вы не можете делать "реальный 3D" только с SDL. (или я чего-то не знаю?)

Я не знаю, что SDL делает "за кулисами", но если вы используете напрямую OpenGL (или другой API, такой как Direct3D) у вас есть полный контроль над процессом кода и рендеринга, и вы не ограничены графическим API-интерфейсом SDL.

Я использую SDL только для создания окна, графического контекста и использования устройств ввода, таких как мышь.