D3DImage.Unlock Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.