Partilhar via


Comportamento do modo de tela inteira

Um driver de exibição no modo de usuário pode determinar que um dispositivo de renderização está no modo de tela inteira:

  • Se o sinalizador de campo de bits Fullscreen estiver definido no membro Flags da estrutura D3DDDIARG_OPENRESOURCE para a qual o parâmetro pResource aponta em uma chamada para a função OpenResource do driver.

  • Se o sinalizador de campo de bit primário for definido no membro Flags da estrutura D3DDDIARG_CREATERESOURCE para a qual o parâmetro pResource aponta em uma chamada para a função CreateResource do driver.

Um aplicativo desenvolvido para o Microsoft DirectX 9.0 ou anterior fará com que o runtime do Microsoft Direct3D chame OpenResource para abrir a superfície primária compartilhada e, em seguida, CriarResource para criar buffers back adicionais. Um aplicativo Microsoft DirectX 9L fará com que o runtime do Direct3D chame CreateResource (sem chamar OpenResource) para criar todos os buffers de cadeia de troca. O runtime do Direct3D especifica a orientação da superfície primária no membro Rotation das estruturas D3DDDIARG_OPENRESOURCE e D3DDDIARG_CREATERESOURCE para as quais o parâmetro pResource aponta em chamadas para as funções OpenResource e CreateResource , respectivamente.

Para um dispositivo de tela inteira, um driver de exibição no modo de usuário deve bloquear um recurso girado, renderizar para um recurso girado e executar transferências de bloco de bits (bitblt) de um recurso girado. Normalmente, o driver de exibição do modo de usuário cria destinos de renderização provisórios na orientação girada (todos os bloqueios, bitblts e renderizações irão para esses destinos de renderização provisória) e alocações primárias na orientação paisagem (ou seja, a orientação que o conversor digital para analógico [DAC] usa para verificar). Quando o driver de exibição do modo de usuário é chamado para inverter os dados, ele executa um bitblt giratório do destino de renderização provisória para o buffer de paisagem antes de chamar a função pfnPresentCb para emitir o comando flip.

Sempre que um driver de exibição do modo de usuário deve executar um bitblt que envolve um recurso girado e um recurso não girado, o runtime do Direct3D especifica o sinalizador Girar campo de bits no membro Flags da estrutura D3DDDIARG_BLT em uma chamada para a função Blt do driver para indicar ao driver que a rotação adequada deve ocorrer para o bitblt.

Os aplicativos DirectX 9L podem ter reconhecimento de rotação, o que significa que eles renderizarão tudo na orientação adequada e manipularão corretamente os bloqueios para um buffer girado. Quando o runtime do Direct3D cria uma cadeia de troca para um aplicativo com reconhecimento de rotação, o runtime sempre especifica a rotação como D3DDDI_ROTATION_IDENTITY no membro Rotation da estrutura D3DDDIARG_CREATERESOURCE porque o driver de exibição no modo de usuário não é necessário para executar ações especiais para que o aplicativo com reconhecimento de rotação funcione.