Compartilhar via


Aguardar um evento quando a renderização é desnecessária

Os aplicativos podem esperar em um evento quando a renderização para a tela é desnecessária (ou seja, enquanto eles são ocluídos). Quando o DWM (Gerenciador de Janelas da Área de Trabalho) ou um aplicativo é impedido, nenhuma renderização é necessária e o sistema operacional pode permanecer em estados de energia mais baixos por períodos mais longos de tempo. Isso economiza energia e estende a duração da bateria.

Um aplicativo pode aguardar um evento quando:

  • Todos os monitores estão desativados.
  • A sessão em que o aplicativo é executado está desconectada.
  • O aplicativo é executado em tela inteira exclusivamente em uma configuração de monitor único.
  • O aplicativo é executado em uma área de trabalho diferente da área de trabalho ativa e não tem permissão para renderizar na área de trabalho ativa.

O sistema operacional dispara o evento quando o aplicativo é capaz de renderizar novamente. O evento não é limpo durante uma atualização do driver ou a procissão de TDR (detecção e recuperação de tempo limite), no entanto, ele é limpo quando o novo adaptador e os monitores se tornam ativos.

Se você quiser que seu aplicativo seja notificado sobre alterações de status de oclusão, o aplicativo deverá se registrar para essas alterações. Um aplicativo pode se registrar para ser notificado sobre alterações de oclusão status por meio de uma mensagem para uma janela ou por meio de sinalização de evento. Para se registrar para receber mensagens de notificação em uma janela sobre alterações de status de oclusão, um aplicativo chama o método IDXGIFactory2::RegisterOcclusionStatusWindow. Para se registrar para receber notificação de alterações de status de oclusão por meio da sinalização de evento, um aplicativo chama o método IDXGIFactory2::RegisterOcclusionStatusEvent. Ambos os métodos retornam um ponteiro para um valor de chave que o aplicativo pode usar para cancelar o registro da notificação. Para cancelar o registro da notificação, o aplicativo passa esse valor de chave para o método IDXGIFactory2::UnregisterOcclusionStatus .

Melhorias do DXGI 1.2