D3D10_TEXTURE2D_DESCのArraySize。テクスチャ配列の罠?

DirectX10でテクスチャ配列使ってみようと思い、
ソースコードを書いて試そうとした矢先に躓きました。D3D10_TEXTURE2D_DESCのArraySize = 2; として、
テクスチャを作成するも失敗。

0x773fb727 (KernelBase.dll) で初回の例外が発生しました:
Microsoft C++ の例外: _com_error (メモリの場所 0x002ff434)。

なんていうエラーメッセージが出てくる始末。

いろいろと試行錯誤した結果、
D3D10_USAGE_DEFAULT で作成したもののみ、テクスチャ配列使えるみたい。
CPUから書き込める USAGE_DYNAMICでは使えなかった。

これらのことから、テクスチャ配列は作成時に値を確定させておく、
Immutableな使い方しか出来ない、ということなんだろうか。
D3D10CalcSubresourceなんていう位置計算してくれる補助関数あるのだから、
CPUからも書き込みできるようになっていると期待するのは間違いなんだろうか。

DirectX プログラミング
すらりんをフォローする
すらりん日記

コメント

タイトルとURLをコピーしました