
以前に失敗したGIMPの混色ブラシの透明レイヤー対応ですが、自分じゃ使わないなぁと思って放っていました。
ところが、正月に自分で使っていてレイヤーモードにまともに対応しないと変な黒ずみが発生してしまうことが分かりました。
で、しょうがないので以前開発中だった透明レイヤー対応に手を入れて対応させてみました。理屈では、透明なレイヤーだろうと、RGBだけのレイヤだろうと同じ結果になるはずですが...
微妙になりません。透明レイヤーの方がちょっと色伸びが弱いような...
...このくらいなら誤差としよう :-)
それにしてもものすごく遅くなりました。
前の方式でも遅くなるかなーとか思ってましたが、比較になりません。
まあ、とりあえず動けばいいやで作ったんで、もうちょっとチューニングしないとダメかも、です。
今のところ、機能開発よりも中身の整理整頓を優先中なので、いつになるかはわかりませんが...
ところが、正月に自分で使っていてレイヤーモードにまともに対応しないと変な黒ずみが発生してしまうことが分かりました。
で、しょうがないので以前開発中だった透明レイヤー対応に手を入れて対応させてみました。理屈では、透明なレイヤーだろうと、RGBだけのレイヤだろうと同じ結果になるはずですが...
微妙になりません。透明レイヤーの方がちょっと色伸びが弱いような...
...このくらいなら誤差としよう :-)
それにしてもものすごく遅くなりました。
前の方式でも遅くなるかなーとか思ってましたが、比較になりません。
まあ、とりあえず動けばいいやで作ったんで、もうちょっとチューニングしないとダメかも、です。
今のところ、機能開発よりも中身の整理整頓を優先中なので、いつになるかはわかりませんが...
# 求めている効果がこちらが予測しているのと同じかどうかもよく分かっていませんが(汗
コード覗き見してみたいです。
見てもらえば分かると思いますが、やっていることはほとんど同じです。
mixbrush_paste_canvas_paint/mixbrush_paste_canvas_apply
あたりが実装です。むしろ、その呼び出し元のGimpPaintCoreの方をかなりいじってますけど...
全然最適化かけていないので、そんなに早くありません ;-)
・Mixbrushの混色部分をGimpMixbrushから切り離して別クラス(MixbrushModifier)にする
・Mixbrush→CustomBrushに変更して、混色部分のメソッドを呼び出すだけにする
・options/toolはどうしよう・・・
って感じで実装して、MixbrushModifierを外のdllからロードできるようにしようって考えてます。そうすれば、Mixbrushの実装だけあとから差し替えられるので。
問題は、4月までは平日に全く時間もネットも使えないってことですけど...