VertexBuffer.Lock Method (Int32, Int32, LockFlags)
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
Locks a range of vertex data and obtains the vertex buffer memory.
Namespace: Microsoft.WindowsMobile.DirectX.Direct3D
Assembly: Microsoft.WindowsMobile.DirectX (in Microsoft.WindowsMobile.DirectX.dll)
Syntax
'Declaration
Public Function Lock ( _
offsetToLock As Integer, _
sizeToLock As Integer, _
flags As LockFlags _
) As GraphicsStream
'Usage
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
Parameters
- offsetToLock
Type: System.Int32
Offset into the vertex data to lock, in bytes. To lock the entire vertex buffer, specify 0 for both sizeToLock and offsetToLock.
- sizeToLock
Type: System.Int32
Size of the vertex data to lock, in bytes. To lock the entire vertex buffer, specify 0 for both sizeToLock and offsetToLock.
- flags
Type: Microsoft.WindowsMobile.DirectX.Direct3D.LockFlags
Zero or more LockFlags values that describe the type of lock to perform. The valid flags for this method are NoDirtyUpdate, NoOverwrite, and ReadOnly.
Return Value
Type: Microsoft.WindowsMobile.DirectX.GraphicsStream
A GraphicsStream that represents the locked vertex buffer.
Exceptions
Exception | Condition |
---|---|
InvalidCallException | The method call is invalid. For example, a method's parameter may contain an invalid value. |
Remarks
Note that the .NET Compact Framework does not support multiple lock calls.
When using this method to retrieve an array from a resource that was not created with a type, always use the overload that accepts a type.
The Discard and NoOverwrite values for LockFlags are valid only on buffers created with Dynamic specified for Usage.
Examples
The following example shows how to use the Lock method.
' Create several meshes and associated data.
Dim i As Integer
For 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 Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
Platforms
Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information
.NET Compact Framework
Supported in: 3.5, 2.0