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 D3D11_1DDI_HT_VIDEO tipoXXX
hView
Um ponteiro para a exibição de recurso a ser limpa.
Color[4]
pRect
Uma matriz de estruturas RECT para os retângulos na exibição de recursos a serem limpos. Se FOR NULL, ClearView limpará toda a superfície.
NumRects
O número de retângulos na matriz especificada pelo parâmetro pRect .
Retornar valor
Nenhum
Comentários
ClearView funciona apenas em RTVs (exibições de destino de renderização), UAVs (exibições de acesso não ordenado) ou qualquer exibição de vídeo de uma superfície Texture2D . Retângulos vazios na matriz pRect são não op. Um retângulo estará vazio se o valor superior for igual ao valor inferior ou se 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 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 de 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 uma não operação é obtida.
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 é mapeado para 235 (arredonda para zero, valores fora do intervalo/INF fixados para o intervalo de destino e NaN a zero).
Aqui estão os mapeamentos de cores:
- Color[0]: R (ou Y para vídeo)
- Color[1]: G (ou U/Cb para vídeo)
- Color[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 cor. Em situações em que o nome do formato não indica _UNORM, _UINT e assim por diante, ClearView pressupõe _UINT. Portanto, 235,0f é mapeado para 235 (arredonda para zero, valores fora do intervalo/INF fixados para o intervalo de destino e NaN a zero).
Para exibições do Microsoft Direct3D das superfícies de vídeo RTV ou UAV subampledas, observe que as dimensões da 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. O modo de 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 nesse 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, as exibições de vídeo de uma superfície de vídeo (como exibições fornecidas para a função CreateVideoDecoderOutputView e outras funções XxxInputView e XxxOutputView ) aparecem nas dimensões lógicas completas. Nesse caso, a dimensão horizontal tem 1920 pixels de largura, portanto, as estruturas RECT passadas para ClearView respeitam isso. Esses RECTsdevem ser alinhados para que não usem blocos subamostrados, 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 subamostrados. 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 RECT .
typedef RECT D3D10_DDI_RECT;
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Servidor mínimo com suporte | Windows Server 2012 |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3d10umddi.h (inclua D3d10umddi.h) |