描画する色は、8bit/16bitで分けたかったので、構造体に入れていません。 sptIdxは粒子のパターンデータ配列のインデックスで、今回50個のデータを用意してあります。 50以上の値は、1ピクセルの点として扱うことにしています。135行目からのコードがそれに相当します。 opaは、不透明度は桁あふれ防止のため、呼び出す前に4ビットシフトしてあるので、ここでは12ビットシフトになっています(8bitサイズなので本当は必要ないけど、念のため) SPT_SIZEとSPT_VALUEは、粒子のパターンデータ配列にアクセスするためのマクロです、sputteringData.hで定義してあります。 後は、単純に二重ループでデータの転送を行っています。 今回合成先・合成元のピクセルデータのアルファー値は最大値でないので、ピクセル同士のブレンド合成を行っています。 ピクセルの合成(通常) blend