検証結果
というわけで、Ruby/SDLを1.3にするとMiyako with Ruby/SDLスターターキットのサンプルの画像が真っ白になる問題について検証してみました。
色々しらべた結果、以下のことが分かりました。
- Ruby/SDLのバージョンが1.3のときに起こる(v1.2では問題ない)
- スクリーンモードが256色の時に起こる(フルカラーでは問題ない)
- ウィンドウモード・フルスクリーンモード両方で再現
- デスクトップPC・ノートPCでも再現(環境の問題ではなさそう)
- SDL::Surface.new(flags,w,h,surface)メソッドでサーフェスを生成したときに起きる(SDL::Surface.loadでは問題なし。newメソッドのもうひとつのパラメータでは未確認)
- 透明色のはずの白色は表示されて、文字として描画した黒色の部分が透明になっている
- SDL::Surface#setColorKeyメソッドでカラーキーを設定した後、SDL::Surface#ColorKeyメソッドで確認すると「0(黒色)」のまま
- 元々の「Ruby/SDLスターターキット」では、文字などをScreenに直接描画していたが、問題は見られない
- (ちなみに、Linuxでは未確認)