DXRuby 1.4.6 Reference Manual
TOPへ戻る

描画予約と破棄

Window/RenderTargetはdraw系メソッドで描画することができますが、実行時にすぐに描画はしておらず、とりあえず描画情報を内部に保持(描画予約)し、Window.loopの最後、もしくはupdateメソッドで実際の描画が行われます。これは主に描画優先順のソート処理のためです。

ですので、例えばdraw系メソッドで描画予約後に描画したImageオブジェクトを書き換えると、描画されるのは書き換え後の画像になる、といった現象が発生します。

描画予約は通常であれば意識する必要はありませんが、場合によっては描画予約を破棄したいことがあり、そのためにWindow/RenderTargetクラスにdecide/discardというメソッドが用意されています。

discardを実行すると描画予約がすべて破棄されます。対してdecideは描画予約の確定で、実行した時点で存在する描画予約は確定されてdiscardを呼び出しても消えなくなります。
decideを実行しなくても描画実行時に入っている描画予約はすべて描画されます。

TOPへ戻る