PFND3D11_1DDI_CLEARVIEW função de retorno de chamada (d3d10umddi.h)
PFND3D11_1DDI_CLEARVIEW define todos os elementos em uma exibição de recurso como um valor. Uma exibição de recurso é um descritor de superfície que indica um formato e, possivelmente, um subconjunto do recurso.
Sintaxe
PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;
void Pfnd3d111DdiClearview(
D3D10DDI_HDEVICE hDevice,
D3D11DDI_HANDLETYPE viewType,
VOID *hView,
const FLOAT Color[4],
const D3D10_DDI_RECT *pRect,
UINT NumRects
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
viewType
Um valor do tipo D3D11DDI_HANDLETYPE que identifica o tipo de identificador de exibição que dá suporte a essa operação clara. Os tipos possíveis são os seguintes.
- D3D10DDI_HT_RENDERTARGETVIEW
- D3D11DDI_HT_UNORDEREDACCESSVIEW
- Qualquer tipo de D3D11_1DDI_HT_VIDEOXXX
hView
Um ponteiro para a exibição de recurso a ser desmarcada.
Color[4]
pRect
Uma matriz de estruturas RECT para que os retângulos na exibição de recurso sejam limpos. Se NULL, ClearView limpará toda a superfície.
NumRects
O número de retângulos na matriz especificada pelo parâmetro pRect.
Valor de retorno
Nenhum
Observações
ClearView funciona apenas em RTVs (exibições de destino de renderização), exibições de acesso não ordenado (UAVs) ou qualquer exibição de vídeo de uma superfícietexture2D. Retângulos vazios na matriz de de pRect são um no-op. Um retângulo estará vazio se o valor superior for igual ao valor inferior ou o valor esquerdo for igual ao valor à direita.
ClearView não dá suporte a texturas 3D.
ClearView aplica o mesmo valor de cor a todas as fatias de matriz em um modo de exibição; todos os retângulos na matriz pRect correspondem a cada fatia de matriz. A matriz de pRect de retângulos é um conjunto de áreas a serem limpas em uma única superfície. Se a exibição for uma matriz, ClearView limpará todos os retângulos em cada fatia de matriz individualmente.
Quando o driver do modo de usuário aplica retângulos a buffers, ele deve definir o valor superior como 0 e o valor inferior como 1 e definir o valor esquerdo e o valor direito para descrever a extensão dentro do buffer. Quando o valor superior é igual ao valor inferior ou o valor esquerdo é igual ao valor direito, o retângulo fica vazio e um no-op é alcançado.
O driver deve converter e fixar valores de cor no formato de destino conforme apropriado de acordo com as regras de conversão do Direct3D. Por exemplo, se o formato da exibição for DXGI_FORMAT_R8G8B8A8_UNORM, fixe as entradas para 0,0f a 1,0f (+INF –> 1,0f (0XFF)/NaN –> 0,0f).
Se o formato for inteiro, como DXGI_FORMAT_R8G8B8A8_UINT, use entradas como floats integrais. Portanto, 235,0f mapeia para 235 (arredonda para zero, valores fora do intervalo/INF fixam para o intervalo de destino e NaN a zero).
Aqui estão os mapeamentos de cores:
- Cor[0]: R (ou Y para vídeo)
- Cor[1]: G (ou U/Cb para vídeo)
- Cor[2]: B (ou V/Cr para vídeo)
- Cor[3]: A
Para exibições de vídeo com formatos YUV ou YCbBr, ClearView não converte valores de cores. Em situações em que o nome do formato não indica _UNORM, _UINT e assim por diante, ClearView assume _UINT. Portanto, 235,0f mapeia para 235 (arredonda para zero, valores fora do intervalo/INF fixam para o intervalo de destino e NaN a zero).
Para exibições do Microsoft Direct3D das superfícies de vídeo rtv ou UAV subampladas, observe que as dimensões do modo de exibição são baseadas em quantos pixels estão no formato de exibição, em vez do número lógico subjacente de pixels de vídeo. Por exemplo, suponha que a superfície tenha o formato YUY2 com dimensão 1920 por 1080 pixels e um RTV use o formato DXGI_FORMAT_R8G8B8A8_UINT. A exibição aparece para Direct3D como tendo 1920/2 = 960 R8G8B8A8 pixels na direção horizontal. Portanto, todos os retângulos passados para ClearView são interpretados neste espaço. Além disso, o valor claro é usado para todos os quatro componentes, R8G8B8A8, como se não fosse diferente de uma superfície de R8G8B8A8 verdadeira. Nesse caso, R, G, B e A não significam valores de cor RGBA padrão; em vez disso, eles identificam um local na memória e o chamador é responsável por entender o que significa colocar dados nesse local no contexto de uma superfície de vídeo.
No entanto, exibições de vídeo de uma superfície de vídeo (como exibições fornecidas para a função CreateVideoDecoderOutputView e outras xxxInputView e funções de XxxOutputView) aparecem nas dimensões lógicas completas. Nesse caso, a dimensão horizontal tem 1920 pixels de largura, portanto, estruturas de RECT passadas para ClearView honrar isso. Esses RECTs devem ser alinhados para que eles não peramplem blocos subsamplados, caso contrário, o runtime removerá a chamada para essa função. Para exibições de vídeo, as cores YUV devem ser replicadas adequadamente para formatos subsampados. Por exemplo, YUV na chamada ClearView tem o valor Y duplicado para cada bloco em uma superfície YUY2.
A estrutura D3D10_DDI_RECT é definida como uma estrutura deRECT.
typedef RECT D3D10_DDI_RECT;
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8 |
servidor com suporte mínimo | Windows Server 2012 |
da Plataforma de Destino | Área de trabalho |
cabeçalho | d3d10umddi.h (inclua D3d10umddi.h) |