SDL on Windows でハードウェアアクセラレーションが効かない問題

サークル内で問題になったのでメモ。

どうやら1.2.10からデフォルトのビデオドライバとして DirectX ではなく windib が使用されるようになったのが原因っぽい。

http://www.libsdl.org/release/changes-1.2.html

The "windib" video driver is the default now, to prevent problems with certain laptops, 64-bit Windows, and Windows Vista. The DirectX driver is still available, and can be selected by setting the environment variable SDL_VIDEODRIVER to "directx".

ある種のラップトップ、64 bit の Windows 及び Windows Vista における問題を防ぐため、"windib" をデフォルトのビデオドライバにした。DirectXドライバはまだ利用可能であり、環境変数 SDL_VIDEODRIVER を "directx" に設定することで選択できる。

ということで Windows において DirectX を有効にするにはプログラムの先頭で

_putenv_s("SDL_VIDEODRIVER", "directx");

としておけばいいっぽい。