IDirect3DVertexBuffer9::Lock メソッド

IDirect3DVertexBuffer9::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 を返す。

注意

頂点バッファを操作するときは、複数のロック呼び出しを実行できる。ただし、ロック呼び出しの数とアンロック呼び出しの数を一致させる必要がある。現在設定している頂点バッファでロック カウントが残っている場合、DrawPrimitive の呼び出しは失敗する。

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

IDirect3DVertexBuffer9::Lock での D3DLOCK_DISCARD または D3DLOCK_NOOVERWRITE の使い方の詳細は、「動的な頂点バッファとインデックス バッファの使い方」を参照すること

参照

IDirect3DVertexBuffer9::Unlock