Freigeben über


D3DImage.Unlock Methode

Definition

Verringert die Sperrenanzahl für das D3DImage.

public:
 void Unlock();
public void Unlock ();
member this.Unlock : unit -> unit
Public Sub Unlock ()

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die Unlock Methode aufgerufen wird, um den aktualisierten Backpuffer in den Frontpuffer zu kopieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Hosting von Direct3D9-Inhalten in WPF.

d3dimg.Lock();
// Repeatedly calling SetBackBuffer with the same IntPtr is 
// a no-op. There is no performance penalty.
d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface);
HRESULT.Check(Render());
d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight));
d3dimg.Unlock();

Hinweise

Wenn die Sperranzahl für die D3DImage Null erreicht wird, wird die D3DImage Sperrung vollständig entsperrt. Dies D3DImage ist für das Rendern markiert, wenn das Bild Bereiche geändert hat, die von vorherigen Aufrufen der AddDirtyRect Methode angegeben wurden.

Wenn die Änderungen festgelegt und gerendert werden, werden zusätzliche Aufrufe des Lock Methodenblocks ausgeführt, bis der Renderthread den Inhalt des Backpuffers in den Frontpuffer kopiert hat. Diese Synchronisierung verhindert, dass Artefakte angezeigt werden, z. B. Reißen.

Hinweis

Aktualisieren Sie die Direct3D-Oberfläche nicht, während die D3DImage Entsperrung erfolgt.

Gilt für

Siehe auch