« 自前でBMP | メイン | VMRで指定できるプロパティ »

2005年09月29日

吉里吉里 ムービー拡張日誌2:: 更新タイミングはいつ?

    

KAGLayer::onPaintにVideoOverlay::setMixingLayerを呼ぶ処理を追加したが、文字を表示させてもonPaintには来ない様だ。
スクリプトからupdateが呼ばれたら、callOnPaintがtrueになり、onPaintがコールされるようだが、MessageLayer::processChはdrawTextやfillRectを呼んでおり、updateは呼んでいない。

Layer.imageModifiedがtrueなら、VideoOverlay::setMixingLayerを呼ぶようにしてみたが、falseにしないとずっとtrueのようだ。
そこでVideoOverlay::setMixingLayerの中でLayer.imageModified = falseにするようにしてみたのだが、なぜか画像がクリアされない。
文字を表示すると上書きされる。
ソースコードを追っても、imageModifiedで判断しているところは見当たらないと思ったら、MessageLayer.tjsのclearLayerでimageModifiedを参照して、imageModifiedがtrueなら消去している。
でも、その後 imageModified = falseにしているようだが……
その後の処理で何かがtrueにしているのだろう。
とりあえず、imageModifiedで判断している処理を常に行うようにし、EC_UPDATE内でレイヤーの設定を行った後にimageModifiedをfalseにしたら、更新された時のみ再設定されるようになった。
これで目的は達成されたが、imageModifiedの意味が変わってしまうのが問題。
そこで、Movie::onFrameUpdate内で処理するようにした。
でも、imageModifiedを変更してしまってるのは変わらない。
どうするかなぁ。



投稿者 Takenori : 2005年09月29日 02:30




comments powered by Disqus
Total : Today : Yesterday : なかのひと