D3DImage.Unlock Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.