SDL 2 はバックグラウンドで OpenGL レンダリング (Windows の場合はおそらく DirectX) を使用し、この決定は SDl 自体によって行われると想定しています。
SDL で OpenGL を直接使用する方法を示すチュートリアルを見たことがありますが、OpenGL を直接使用することで得られるメリットがあるとしたら、どのようなメリットがあるのでしょうか? SDL がネイティブに実現できないことはありますか?
グラフィック目的で SDL 機能に完全に依存している場合は、単純な画像とバッファ関数にしかアクセスできません。
高速化された 2D レンダリング API: 簡単な回転、スケーリング、アルファ ブレンディングをサポートし、すべて最新の 3D API を使用して高速化されています
しかし、SDL が行っていることは、OpenGL コンテキストを提供することです。これは、3D オブジェクト、シェーダーなどを含む OpenGL 機能にも完全にアクセスできることを意味します。
SDL を使用してコンテキストを作成し、サウンド、入力、ファイル I/O を提供したり、OpenGL を使用して画面に色を表示したり、SDL ビデオ API を使用してスプライトや画像を描画したりできます。
http://wiki.libsdl.org/MigrationGuide
Direct3D、OpenGL、OpenGL ES、またはソフトウェア レンダリングをバックグラウンドで使用できるシンプルな 2D レンダリング API
SDL2 は、2D グラフィックス (およびその他の問題) を簡単に開始できるようにしますが、SDL だけで「リアルな 3D」を行うことはできません。(それとも、私は何かについて知らないのですか?)
SDL が「舞台裏」で何をしているのかはわかりませんが、OpenGL (または Direct3D などの他の API) を直接使用すると、コードとレンダリング プロセスを完全に制御でき、SDL グラフィックス API に限定されません。
ウィンドウやグラフィック コンテキストの作成、およびマウスなどの入力デバイスの使用にのみ SDL を使用します。