BREW での画像転送

自分は今、BREW での画像転送ルーチンをたくさん書いてるんですけど、ある程度書いたところで重要なことに気が付きました。


転送ルーチンが多すぎて、保守がかなりめんどうになっているんです。


例えばパレットから RGB565 へ転送する回転ルーチンにしても、

  • RGB565 ← 8 ビットインデックスパレット+透過無し+回転ルーチン
  • RGB565 ← 4 ビットインデックスパレット+透過無し+回転ルーチン
  • RGB565 ← 8 ビットインデックスパレット+透過色+回転ルーチン
  • RGB565 ← 4 ビットインデックスパレット+透過色+回転ルーチン

基本的にこの4つがあるわけです。
他にもアルファブレンドや加色合成も合わせると、かなりのルーチンを書く羽目になります。


で、もし回転ルーチンにバグがあったとすれば、回転ルーチンを使用して書かれたプログラム全てを書き換える必要が出てきます。てゆか、何回も書き換えました。
で、所々直ってない部分が後々見つかってこいつどうしようみたいな。


実際、↑のルーチンはほとんどが共通のコードです。このコードを出来る限り共有することによって、回転ルーチンにバグが出た場合でも、一ヶ所を書き換えれば済むようにしたいのです。
でも、これがなかなか手強いんです。