SDL_WINDOWIDでOpenGLは使えるのか
haskellはモナドが気になってさっぱり進まなくなったので、
C++でOpenGLやることにした。
そこで、OpenGLのPlatformなのだが
LinuxとWindowsの両方で動きGUIのパーツがいろいろある環境という
要求からgtkmm+SDLでできないか調べてみた。
(無理だったらwxWidgets+GLCanvasに妥協)
結論から言うとLinuxしかできなかった。
- Linux gtkmm+SDL+SDL_SetVideoMode SDL_HWSURFACE OK
- WINDOWS gtkmm+SDL+SDL_SetVideoMode SDL_HWSURFACE OK
- Linux gtkmm+SDL+SDL_SetVideoMode SDL_OPENGL OK
- WINDOWS gtkmm+SDL+SDL_SetVideoMode SDL_OPENGL 無理
WindowsではSDL_WINDOWIDを指定したとき、
既存のWndProcを乗っ取っているっぽいが、
なんかその辺でエラーが出た。
OpenGLを使うには初期化の作法が必用なのかもしれない。
ただgtkのSocket, Plugという仕組みを発見したので、
SDL_WINDOWIDによる乗っ取りではなく、
SDLが普通に作成したWindowをはめ込む方法ができないか試してみる予定。
せっかくなので
WINDOWS+SDL+OPENGL以外は動くコード