次の方法で共有


IDirect3DIndexBuffer9::Lock メソッド

IDirect3DIndexBuffer9::Lock メソッド

インデックス データの範囲をロックし、インデックス バッファ メモリへのポインタを取得する。

構文

HRESULT Lock(      
    UINT OffsetToLock,
    UINT SizeToLock,
    VOID **ppbData,
    DWORD Flags
);

パラメータ

  • OffsetToLock
    [in] ロックするインデックス データへのオフセット (バイト単位)。インデックス バッファ全体をロックするには、SizeToLockOffsetToLock の両方のパラメータに 0 を指定する。

  • SizeToLock
    [in] ロックするインデックス データのサイズ (バイト単位)。インデックス バッファ全体をロックするには、SizeToLockOffsetToLock の両方のパラメータに 0 を指定する。

  • ppbData
    [out] 返されたインデックス データを含むメモリ バッファへの VOID* ポインタ。

  • Flags
    [in] 実行するロックの種類を記述する、0 個以上のロッキング フラグの組み合わせ。このメソッドに使用できるフラグは次のとおり。

    • D3DLOCK_DISCARD
    • D3DLOCK_NO_DIRTY_UPDATE
    • D3DLOCK_NO_SYSLOCK
    • D3DLOCK_READONLY
    • D3DLOCK_NOOVERWRITE

    フラグについては、「D3DLOCK」を参照すること。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、D3DERR_INVALIDCALL を返す。

注意

インデックス バッファの処理では、ロックの呼び出しを複数回行える。ただし、ロックの呼び出し回数とアンロックの呼び出し回数が一致している必要がある。現在設定しているインデックス バッファでロック カウントが残っている場合、IDirect3DDevice9::DrawPrimitive の呼び出しは失敗する。

D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE フラグは、D3DUSAGE_DYNAMIC で作成されたバッファに対してのみ有効である。

D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE.の使い方については、「プログラミングのヒント」を参照すること。

参照

IDirect3DIndexBuffer9::Unlock