Nanashi-soft○プログラマ専用○PS3 Linux SDL○
SDL_Surface *screen=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE|SDL_FULLSCREEN);
のような記述で画面初期化を行うのですが、実はSDL_FULLSCREEN が無効になっています
PS3 Linuxでは、画面モードをソフトから切り替える事ができません(Fedora Core 5にて確認)
ですから、現在の画面に合わせて初期化を行う必要があります
以下のコマンドを実行してみて下さい
fbset
そうすると、ずらっと文字が表示されます
mode "576x384-60" # D: 13.271 MHz, H: 23.040 kHz, V: 60.000 Hz geometry 576 384 576 384 32 timings 75352 0 0 0 0 0 0 rgba 8/16,8/8,8/0,8/24 endmode
modeの後ろに出ている 576x384が縦横ドット数です
色深度は、rgbaがそれぞれ 8ビットと出ていますので、32ビットになります
ですから、この場合は、
SDL_Surface *screen=SDL_SetVideoMode(576,384,32,SDL_SWSURFACE|SDL_FULLSCREEN);
と記述すれば良いです
Fedora Core 5のデフォルト起動モードは 480iか 480pです
ですが、この画面モードでは正しく描画できません
その理由を調べていた所、どうやら SDLは /etc/fb.modesの内容を見ているようだと言う事がわかりました
そして、そのファイルに画面モード 576x384の記述が無い為に、うまく描画できないのです
そこで、以下のコマンドで /etc/fb.modesに fbsetで表示された内容を追記します
このコマンドは、表示されない画面モードで表示している時に実行して下さい
fbset >> /etc/fb.modes
【注意】>>は必ず2つ必要です! 1つだけ記述するとファイルが壊れてしまいます!
これで SDLから認識可能になりました