Compartilhar via


Método IDCompositionTexture::GetAvailableFence (dcomp.h)

Importante

Algumas informações estão relacionadas a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.

Recupera um par de valores/cerca de sincronização direct3D que indica quando a textura de composição ficará disponível, se essas informações forem conhecidas. O valor retornado depende do estado de disponibilidade da textura de composição. Um estado de disponibilidade especifica se, e quando, é seguro renderizar para a textura de composição.

Consulte a seção Comentários para os estados de disponibilidade, suas descrições e como GetAvailableFence se comporta para cada estado.

Se uma textura de composição ficar disponível, seu aplicativo deverá ter cuidado para emitir a renderização apenas para a sub-região exata da textura Direct3D à qual se refere.

Sintaxe

HRESULT GetAvailableFence(
  UINT64 *fenceValue,
  REFIID iid,
  void   **availableFence
);

Parâmetros

fenceValue

Tipo: _Out_ UINT64*

O valor de cerca retornado.

iid

Tipo: _In_ REFIID

Um identificador de interface.

availableFence

Tipo: _Outptr_result_maybenull_ void**

A cerca disponível retornada, ou nullptr, dependendo do estado de disponibilidade da textura de composição. Para obter detalhes, consulte a seção Comentários .

Retornar valor

Tipo: HRESULT

Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Aqui estão os estados de disponibilidade, suas descrições e como GetAvailableFence se comporta para cada estado.

disponível imediatamente. A textura de composição não está sendo exibida pelo DWM (gerenciador de janelas da área de trabalho), nem os commits de aplicativo estão na fila para fazê-lo. Portanto, a textura de composição é segura para gravar imediatamente. GetAvailableFence retorna a cerca disponível, que já corresponderá ao valor retornado.

em breve estará disponível. A textura de composição está sendo exibida atualmente pelo DWM, mas o aplicativo a removeu de sua árvore visual e se comprometeu com o DWM. No entanto, esse commit ainda não foi processado pelo DWM, portanto, o DWM ainda não parou de exibir a textura. Seu aplicativo poderá renderizar para uma textura em breve disponível se esse trabalho for sincronizado com a cerca disponível da textura. GetAvailableFence retorna a cerca disponível. A textura de composição será segura para gravar quando essa cerca for sinalizada para o valor retornado.

indisponível. A textura de composição está sendo exibida atualmente pelo DWM ou está na fila para exibição pelo DWM. Portanto, seu aplicativo não deve gravar nele. GetAvailableFence retorna nullptr em vez de uma cerca.

A cerca disponível descreve a disponibilidade de uma única textura de composição. Várias texturas de composição podem referenciar a mesma textura direct3D, se cada textura de composição tomar uma região diferente (não sobreposta) da textura direct3D maior especificando uma rect de origem (uma técnica conhecida como atlasing). Em um caso como esse, se uma textura de composição ficar disponível, seu aplicativo deverá ter cuidado para emitir a renderização apenas para a sub-região exata da textura Direct3D; para não interferir em pixels que podem pertencer a outras texturas de composição (que podem não estar disponíveis). Isso ocorre porque regiões diferentes de uma única textura Direct3D podem ter estados de disponibilidade diferentes.

Requisitos

Requisito Valor
Cabeçalho dcomp.h

Confira também