Java互換ライブラリ(4)

virtualの問題も解決したところで、転送ルーチンの実装について考えていきたいと思います。


id:melpon:20051120でも書きましたが、多くの画像形式に対応しようとすると、そのルーチン数は半端ない数になります。
なので、えんらさん(id:enra)の言うとおり、最低限の転送ルーチンさえ用意すればいいような気がします。


ただ、ライブラリなので、多少の拡張性は持たせたいと考えるのが一般的でしょう。
例えば、RGB565→RGB565の通常転送と抜き色転送、8bitIndex→RGB565の通常転送と抜き色転送を、

void Blt_RGB565_to_RGB565_Copy( ... );
void Blt_RGB565_to_RGB565_ColorKey( ... );
void Blt_8bitIndex_to_RGB565_Copy( ... );
void Blt_8bitIndex_to_RGB565_ColorKey( ... );

こんな感じに用意してしまうと(+д+)マズーです。
なぜなら、対応させたいピクセルフォーマットが増えたり、加色合成等の転送方法が増えたりすると、その組み合わせ全ての転送ルーチンを書く必要が出てしまって非常に面倒だからです。


この面倒さを何とか解決できないかと考えていると、ふとやねさん(id:yaneurao)のyaneSDK3rdを思い出しました。
あのライブラリは10種類以上ものピクセルフォーマットを様々な方法で転送出来ます。
だからといって、全ての組み合わせ(15×15×10=2250ぐらい)の転送ルーチンを用意しているわけではありません。


ということで、自分もあのライブラリの作り方をインスパイアされて模倣してみようかと思います。