VertexBuffer.Lock メソッド (Int32, Int32, LockFlags)
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
頂点データの範囲をロックし、頂点バッファー メモリを取得します。
名前空間: Microsoft.WindowsMobile.DirectX.Direct3D
アセンブリ: Microsoft.WindowsMobile.DirectX (Microsoft.WindowsMobile.DirectX.dll 内)
構文
'宣言
Public Function Lock ( _
offsetToLock As Integer, _
sizeToLock As Integer, _
flags As LockFlags _
) As GraphicsStream
'使用
Dim instance As VertexBuffer
Dim offsetToLock As Integer
Dim sizeToLock As Integer
Dim flags As LockFlags
Dim returnValue As GraphicsStream
returnValue = instance.Lock(offsetToLock, _
sizeToLock, flags)
public GraphicsStream Lock(
int offsetToLock,
int sizeToLock,
LockFlags flags
)
public:
GraphicsStream^ Lock(
int offsetToLock,
int sizeToLock,
LockFlags flags
)
member Lock :
offsetToLock:int *
sizeToLock:int *
flags:LockFlags -> GraphicsStream
パラメーター
- offsetToLock
型 : System.Int32
ロックする頂点データへのオフセット (バイト単位)。頂点バッファー全体をロックするには、sizeToLock と offsetToLock の両方に 0 を指定します。
- sizeToLock
型 : System.Int32
ロックする頂点データのサイズ (バイト単位)。頂点バッファー全体をロックするには、sizeToLock と offsetToLock の両方に 0 を指定します。
- flags
型 : Microsoft.WindowsMobile.DirectX.Direct3D.LockFlags
実行するロックの種類を示す、0 個以上の LockFlags 値。このメソッドで有効なフラグは、NoDirtyUpdate、NoOverwrite、および ReadOnly です。
戻り値
型 : Microsoft.WindowsMobile.DirectX.GraphicsStream
ロックされた頂点バッファーを表す GraphicsStream。
例外
例外 | 条件 |
---|---|
InvalidCallException | メソッドの呼び出しが無効です。たとえば、メソッドのパラメーターに無効な値が含まれている場合などです。 |
解説
.NET Compact Framework は、複数のロック呼び出しをサポートしていません。
このメソッドを使用して、型を指定して作成されていないリソースから配列を取得するときは、型を受け入れるオーバーロードを使用してください。
Discard の NoOverwrite 値と LockFlags 値は、Dynamic に Usage を指定して作成されたバッファーでのみ有効です。
例
Lock メソッドを使用する方法の例を次に示します。
' Create several meshes and associated data.Dim i AsIntegerFor i = 0 To numberOfMeshes
Dim vertexData As GraphicsStream
meshes(i) = Mesh.Box(device, 1F, 1F, 1F)
' Arrange the boxes in a grid, with each ' successive box farther in the distance.
meshLocations(i) = New Vector3((i Mod 3) * 2 - 2, i / 3 * 2 - 2, i)
' Compute the bounding box for a mesh.Dim description As VertexBufferDescription = meshes(i).VertexBuffer.Description
vertexData = meshes(i).VertexBuffer.Lock(0, 0, LockFlags.ReadOnly)
Geometry.ComputeBoundingBox(vertexData, meshes(i).NumberVertices, description.VertexFormat, meshBoundingBoxMinValues(i), meshBoundingBoxMaxValues(i))
meshes(i).VertexBuffer.Unlock()
Next i
// Create several meshes and associated data.for (int i = 0; i < numberOfMeshes; i++)
{
GraphicsStream vertexData;
meshes[i] = Mesh.Box(device, 1.0f, 1.0f, 1.0f);
// Arrange the boxes in a grid, with each// successive box farther in the distance.
meshLocations[i] = new Vector3(((i % 3) * 2) - 2,
((i / 3) * 2) - 2, i);
// Compute the bounding box for a mesh.
VertexBufferDescription description =
meshes[i].VertexBuffer.Description;
vertexData = meshes[i].VertexBuffer.Lock
(0, 0, LockFlags.ReadOnly);
Geometry.ComputeBoundingBox(vertexData,
meshes[i].NumberVertices,description.VertexFormat,
out meshBoundingBoxMinValues[i],
out meshBoundingBoxMaxValues[i]);
meshes[i].VertexBuffer.Unlock();
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。 このメンバーは、部分的に信頼されているコードから使用することはできません。 詳細については、「部分的に信頼される側のコードからライブラリの使用」を参照してください。
プラットフォーム
Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET フレームワークのシステム要件」を参照してください。
バージョン情報
.NET Compact Framework
サポート対象 : 3.5、2.0