2011/02/15

SDL_NumJoysticks()が返してくれる値は可変かと思っていたがジョイスティックを抜き差ししても返り値は変動しない。
SDL_InitかSDL_InitSubSystemでジョイスティックを初期化した時点の値しか返してくれないので楽に接続の増減の検知ができない。
SDL_QuitSubSystemでジョイスティックを一時的にシャットダウンし再度 初期化すれば値を更新できるみたいだけどこのへんのオーバーヘッドはどのくらいなんだろう。

http://forums.libsdl.org/viewtopic.php?t=4066&sid=c06d2c75884b3d50e74a9d6301926

2011/02/05

mingw(windows全般かな?)でSDLを使う場合にprintfやstd::coutが標準出力ではなくstdout.txtにリダイレクトされてしまうっぽい。

試してないので間違っているかもしれないけどSDLのライブラリをソースからリダイレクトしないようにビルドすればいいらしい。configureオプションに--disable-stdio-redirectオプションを付加してビルドしてlibSDLmain.aを作り直す。そのご自分のアプリケーションとリンクするときは-mwindowsをはずしてコンパイルする。

自分はBlender Foundationから提供されているバイナリをつかっているので一般的な解決方法化わからないが
#include "SDL.h"
#ifdef __MINGW32__
#undef main
#endif
のように#undef mainを定義して(__MINGW32__の部分は開発環境による)リンク時には-mwindowsと-lSDLmainをはずしてコンパイルすると標準出力に表示される。まぁよくわかってないので適当だけど。

SDLでglewを使う場合、SDL側のGL拡張と干渉するためNO_SDL_GLEXTを定義する
#include "GL/glew.h"
#define NO_SDL_GLEXT
#include "SDL_opengl.h"


http://sdl.beuc.net/sdl.wiki/FAQ_Console
http://d.hatena.ne.jp/gamesyokunin/20041226#p3