D3DImage.Unlock Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt het aantal vergrendelingen voor de D3DImage.
public:
void Unlock();
public void Unlock();
member this.Unlock : unit -> unit
Public Sub Unlock ()
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de Unlock methode aanroept om de bijgewerkte backbuffer naar de frontbuffer te kopiƫren. Zie Walkthrough: Direct3D9-inhoud hosten in WPF voor meer informatie.
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();
Opmerkingen
Wanneer het aantal vergrendelingen voor de D3DImage nul bereikt, wordt de D3DImage vergrendeling volledig ontgrendeld. Het D3DImage is gemarkeerd voor rendering als de afbeelding gebieden heeft gewijzigd die zijn opgegeven door eerdere aanroepen naar de AddDirtyRect methode.
Wanneer de wijzigingen worden doorgevoerd en weergegeven, worden er extra aanroepen naar het Lock methodeblok uitgevoerd totdat de renderthread de inhoud van de backbuffer naar de voorbuffer heeft gekopieerd. Deze synchronisatie voorkomt dat artefacten worden weergegeven, zoals scheuren.
Note
Werk het Direct3D-oppervlak niet bij terwijl het D3DImage ontgrendeld is.