This topic has not yet been rated - Rate this topic

D3DImage.Unlock Method

Decrements the lock count for the D3DImage.

Namespace:  System.Windows.Interop
Assembly:  PresentationCore (in PresentationCore.dll)
public void Unlock()

When the lock count for the D3DImage reaches zero, the D3DImage is fully unlocked. The D3DImage is marked for rendering if the image has changed areas that were specified by previous calls to the AddDirtyRect method.

When the changes are committed and rendering occurs, additional calls to the Lock method block until the render thread has copied the contents of the back buffer to the front buffer. This synchronization avoids display artifacts, such as tearing.

NoteNote

Do not update the Direct3D surface while the D3DImage is unlocked.

The following code example shows how to call the Unlock method to copy the updated back buffer to the front buffer. For more information, see Walkthrough: Hosting Direct3D9 Content 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();

.NET Framework

Supported in: 4.5, 4, 3.5 SP1, 3.0 SP2

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.