Proce55ing to SDL
SDLでラップしたproce55ing用のフレームワークがある程度出来たんだけど、やたら遅い。
明らかにproce55ingより遅い。やばいよやばいよー。
調べてみたらSDL_Surfaceを最適な状態にコンバートしなきゃいけないことが分かった。
自分で最適だと思っていても、内部は最適化されてないみたいなのでSDL_DisplayFormatで変換しなきゃいけないらしい。
//* SDL_Surface *tmp = SDL_CreateRGBSurface( SDL_SWSURFACE, width, height, 32, rmask, gmask, bmask, amask); pM->m_pCanvas = SDL_DisplayFormat( tmp ); // こうしないと遅くなるらしい。 SDL_FreeSurface(tmp); /**/ // pM->m_pCanvas = SDL_CreateRGBSurface( SDL_SWSURFACE, width, height, 32, rmask, gmask, bmask, amask);
下のコメントアウトしてある方だと全くもって駄目駄目。
上の方の奴にするとproce55ingと同じくらいのスピードが出るようになった。
名前がやばいよね。DisplayFormatなんて名前じゃディスプレイの現在のビデオモードを調べるだけの関数だと思っちゃいますよ。
あとalphaのマスクを有効にしたら重かったのだけれどもそれはどうかと思うよ。
とにかく、これでHWSURFACEにしてフルスクリーンにすれば相当早くなる予感。
ある程度目処がたちました。ケツめど。
push,popなんてサポートするかボケー!って感じ。
ちなみにpixelsはbeginPixelsとendPixelsで囲わせるようにすることにしたよ。
proce55ing状ではダミーの関数を用意しておいて、移植する時に関数の実体を削ることで容易に移植できるようになる予定。