Partilhar via


D3DImage.Unlock Método

Definição

Diminui a contagem de bloqueio da D3DImage.

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

Exemplos

O exemplo de código a seguir mostra como chamar o Unlock método para copiar o buffer back atualizado para o buffer frontal. Para obter mais informações, consulte Instruções Passo a Passo: Hospedando Conteúdo Direct3D9 no 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();

Comentários

Quando a contagem de bloqueios D3DImage atingir zero, ela D3DImage será totalmente desbloqueada. O D3DImage valor será marcado para renderização se a imagem tiver alterado áreas especificadas por chamadas anteriores ao AddDirtyRect método.

Quando as alterações são confirmadas e a renderização ocorre, chamadas adicionais para o Lock método bloqueiam até que o thread de renderização tenha copiado o conteúdo do buffer traseiro para o buffer frontal. Essa sincronização evita a exibição de artefatos, como rasgos.

Observação

Não atualize a superfície do Direct3D enquanto ela D3DImage estiver desbloqueada.

Aplica-se a

Confira também