レンダー周りをゴシゴシ修正中
onokazu さんの指摘*1を受け、レンダーターゲットをレンダーシステムにセットしてからレンダーシステムのAPIで描画する方式に切り替え始めている。ちょっと描画済みバッファへのアクセスのところだけが野暮ったいが、これでレンダーシステムとレンダーターゲットの関係も分かりやすくなったと思う。
これにともない、レンダリングは直制御しかありえなくなったため、レンダーオペレーション機構も微調整している。従来のレンダーオペレーションは「描画コマンド」としての扱いになっていた。コアの描画系がレンダーシステムとレンダーターゲットを直接扱うので、プログラムはオペレーションを発行して描画を依頼しなさい、という考え方だった。
ここを、レンダーオペレーションのインターフェイスを実装しているオブジェクトを返しなさい、という具合に変え始めてる。つまり draw の実行順だけ制御しますけど、 draw は直接やんなさいよという構造です。よくある実行順と描画順の別制御。
欲を言えば、描画用バッファと描画ソースと描画システムは全部別物なので、タスクの中ではリクエストだけに発行するようにしたいんだけど……とはいえ描画コマンドしか扱えませんというのも厳しいので、やるなら描画オブジェクトとして扱わないといかんかなぁ。
しかし1時半に帰ってから開発は無謀だった……眠い。そして今気づいたが sandbox にコミットしてなかった。orz
*1:半年くらい前の...orz