D3DImage.Unlock Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Diminui a contagem de bloqueios para o D3DImage.
public:
void Unlock();
public void Unlock();
member this.Unlock : unit -> unit
Public Sub Unlock ()
Exemplos
O exemplo de código seguinte mostra como chamar o Unlock método para copiar o back buffer atualizado para o front buffer. Para obter mais informações, consulte 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();
Observações
Quando a contagem de bloqueios para o D3DImage atinge zero, o D3DImage é totalmente desbloqueado. O D3DImage é marcado para renderização se a imagem tiver alterado as áreas especificadas por chamadas anteriores ao AddDirtyRect método.
Quando as alterações são confirmadas e ocorre a renderização, são feitas chamadas adicionais ao bloco Lock de método até que o thread de renderização tenha copiado o conteúdo do back buffer para o front buffer. Esta sincronização evita artefactos de exibição, como tearing.
Note
Não atualize a superfície Direct3D enquanto esta D3DImage estiver desbloqueada.