次の方法で共有


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 を指定します。

戻り値

型 : Microsoft.WindowsMobile.DirectX.GraphicsStream
ロックされた頂点バッファーを表す GraphicsStream

例外

例外 条件
InvalidCallException

メソッドの呼び出しが無効です。たとえば、メソッドのパラメーターに無効な値が含まれている場合などです。

解説

.NET Compact Framework は、複数のロック呼び出しをサポートしていません。

このメソッドを使用して、型を指定して作成されていないリソースから配列を取得するときは、型を受け入れるオーバーロードを使用してください。

DiscardNoOverwrite 値と LockFlags 値は、DynamicUsage を指定して作成されたバッファーでのみ有効です。

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

参照

参照

VertexBuffer クラス

VertexBuffer メンバー

Lock オーバーロード

Microsoft.WindowsMobile.DirectX.Direct3D 名前空間