Platform SDK: DirectX |
Direct3DVertexBuffer7.Lock メソッドは、頂点バッファをロックする。
object.Lock(flags As CONST_DDLOCKFLAGS)
メソッドが失敗するとエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
D3DERR_VERTEXBUFFEROPTIMIZED |
DDERR_INVALIDPARAMS |
DDERR_OUTOFMEMORY |
DDERR_SURFACEBUSY |
DDERR_SURFACELOST |
トラッピング エラーについては、「Visual Basic エラー トラッピング」を参照すること。
頂点バッファがロックされているときに、バッファ内のデータを操作するには、Direct3DVertexBuffer7.GetVertices および Direct3DVertexBuffer7.SetVertices メソッドを使用する。頂点バッファのロック後、対応する Direct3DVertexBuffer7.Unlock を呼び出すまで、このメモリにアクセスすることができる。
頂点バッファがロックされているときはレンダリングすることはできない。ロックされた頂点バッファを使って Direct3DDevice7.DrawIndexedPrimitiveVB または Direct3DDevice7.DrawPrimitiveVB メソッドを呼び出そうとすると失敗し、D3DERR_VERTEXBUFFERLOCKED を返す。
このメソッドは、Direct3DVertexBuffer7.Unlock メソッドを呼び出すまで、Win16Mutex をホールドさせることがしばしばある。GUI デバッガは、Win16Mutex がホールドされている間は動作しない。