PFND3DWDDM1_3DDI_GETMIPPACKING função de retorno de chamada (d3d10umddi.h)

Para um determinado recurso lado a lado, retorna quantos mips estão empacotados e quantos blocos são necessários para armazenar todos os mips empacotados.

Sintaxe

PFND3DWDDM1_3DDI_GETMIPPACKING Pfnd3dwddm13DdiGetmippacking;

void Pfnd3dwddm13DdiGetmippacking(
  D3D10DDI_HDEVICE hDevice,
  D3D10DDI_HRESOURCE hTiledResource,
  UINT *pNumPackedMips,
  UINT *pNumTilesForPackedMips
)
{...}

Parâmetros

hDevice

Um identificador para o dispositivo de exibição (contexto gráfico).

hTiledResource

Um identificador para o recurso lado a lado.

pNumPackedMips

Um ponteiro para uma variável que recebe o número de mips que são empacotados, para uma determinada fatia de matriz, incluindo quaisquer mips que não usam as formas de bloco padrão.

Se não houver empacotamento, um valor igual a zero deverá ser retornado.

pNumTilesForPackedMips

Um ponteiro para uma variável que recebe o número de blocos nos quais os mips empacotados se encaixam, para uma determinada fatia de matriz.

Esse parâmetro será ignorado se *pNumPackedMips retornar zero.

Retornar valor

Nenhum

Comentários

O driver pode usar a função de retorno de chamada pfnSetErrorCb para definir um código de erro. O driver poderá definir E_INVALIDARG se um parâmetro de entrada não existir ou for NULL.

Mips empacotados incluem casos em que vários mips pequenos compartilham blocos e também mips para os quais um determinado dispositivo não pode usar formas de bloco padrão. É possível que um recurso inteiro seja considerado empacotado.

Os aplicativos não são informados sobre as formas de bloco ou layout para mips empacotados e devem simplesmente mapear todos ou nenhum dos blocos empacotados se qualquer um dos mipmaps deve ser acessado. Caso contrário, o mapeamento observado de pixels individuais acessados é indefinido e é específico para o IHV (fornecedor independente de hardware).

Mipmaps que têm dimensões de pixel que preenchem totalmente pelo menos um bloco em forma padrão em todas as dimensões não têm permissão para serem considerados parte do conjunto de mips empacotados. Caso contrário, o runtime removerá o dispositivo em um driver inválido.
Um exemplo de dimensões que um dispositivo pode colocar em blocos empacotados (o que significa que o IHV pode usar seu próprio detalhamento de bloco personalizado) é um mip que tem pelo menos um bloco de largura, mas menor que um bloco alto. No entanto, o ideal é que um dispositivo use a divisão de bloco padrão para esse caso (para que o aplicativo possa gerenciar os blocos de maneira padrão). Se um dispositivo precisar usar um bloco personalizado, o aplicativo não será informado do que é o detalhamento do bloco (apenas quantos blocos estão envolvidos no empacotamento geral) e, portanto, perde alguma liberdade.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1,WDDM 1.3
Servidor mínimo com suporte Windows Server 2012 R2
Plataforma de Destino Área de Trabalho
Cabeçalho d3d10umddi.h (inclua D3d10umddi.h)

Confira também

pfnSetErrorCb