次の方法で共有


リソースのロック

リソースのロック

リソースをロックすると、ストレージへの CPU アクセスが許可される。リソースには、次のロッキング メソッドが定義されている。

  • D3DLOCK_DISCARD
  • D3DLOCK_READONLY
  • D3DLOCK_NOOVERWRITE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_NO_DIRTY_UPDATE

ロッキング フラグおよびロッキング フラグと特定のリソースとの関係については、各リソース ロッキング メソッドのリファレンス ページを参照すること。アプリケーション開発者は、D3DLOCK_DISCARD、D3DLOCK_READONLY、および D3DLOCK_NOOVERWRITE フラグは単なるヒントにすぎないので注意すること。ランタイムでは、アプリケーションがこれらのフラグに指定されている機能に従っているかどうかのチェックは行われない。D3DLOCK_READONLY を指定しながらリソースに書き込みを行った場合、予期できない結果が発生する。一般に、ロッキング利用フラグを含めロッキング フラグに対する処理が、今後のリリースで使える保証はなく、パフォーマンスの大幅な低下をもたらす可能性がある。

ロック処理の後にはアンロック処理を行う。たとえば、テクスチャをロックした後、アプリケーションはロックされたテクスチャのロックを解除して、そのテクスチャへの直接アクセスを放棄する。プロセッサ アクセスを許可するだけでなく、ロック持続中は、そのリソースにかかわる他のすべての処理が順番に並べられる。オーバーラップしない領域であっても、リソースに対して 1 つのロックのみが許可され、サーフェイス上にロック処理が行われている間は、そのサーフェイスでのアクセラレータ処理は実行できない。

各リソース インターフェイスには、格納されているバッファをロックするためのメソッドがある。また、各テクスチャ リソースは、リソースのサブポーションをロックできる。2 次元リソース (サーフェイス) では、サブ矩形をロックすることができ、ボリューム リソースでは、サブボリュームまたはボックスをロックすることができる。各ロッキング メソッドは、リソースを戻すストレージへのポインタと、データの行間隔または平面間隔 (リソース タイプによって異なる) を表す値を返す。詳細については、リソース インターフェイスのメソッド リストを参照すること。返されるポインタは、常に、ロックされたサブリージョンの左上のバイトを指す。

インデックス バッファや頂点バッファを操作する場合は、複数のロック呼び出しが行えるが、ロック呼び出しの数とアンロック呼び出しの数が一致している必要がある。

符号化された 4x4 ブロックにピクセルを格納する圧縮テクスチャ フォーマットの Microsoft® DirectX® Transform セットは、4x4 の境界でのみロックすることができる。